// Code generated by applyconfiguration-gen. DO NOT EDIT.

package v1

import (
	v1 "github.com/openshift/api/operator/v1"
)

// AdditionalNetworkDefinitionApplyConfiguration represents an declarative configuration of the AdditionalNetworkDefinition type for use
// with apply.
type AdditionalNetworkDefinitionApplyConfiguration struct {
	Type                *v1.NetworkType                        `json:"type,omitempty"`
	Name                *string                                `json:"name,omitempty"`
	Namespace           *string                                `json:"namespace,omitempty"`
	RawCNIConfig        *string                                `json:"rawCNIConfig,omitempty"`
	SimpleMacvlanConfig *SimpleMacvlanConfigApplyConfiguration `json:"simpleMacvlanConfig,omitempty"`
}

// AdditionalNetworkDefinitionApplyConfiguration constructs an declarative configuration of the AdditionalNetworkDefinition type for use with
// apply.
func AdditionalNetworkDefinition() *AdditionalNetworkDefinitionApplyConfiguration {
	return &AdditionalNetworkDefinitionApplyConfiguration{}
}

// WithType sets the Type field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Type field is set to the value of the last call.
func (b *AdditionalNetworkDefinitionApplyConfiguration) WithType(value v1.NetworkType) *AdditionalNetworkDefinitionApplyConfiguration {
	b.Type = &value
	return b
}

// WithName sets the Name field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Name field is set to the value of the last call.
func (b *AdditionalNetworkDefinitionApplyConfiguration) WithName(value string) *AdditionalNetworkDefinitionApplyConfiguration {
	b.Name = &value
	return b
}

// WithNamespace sets the Namespace field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Namespace field is set to the value of the last call.
func (b *AdditionalNetworkDefinitionApplyConfiguration) WithNamespace(value string) *AdditionalNetworkDefinitionApplyConfiguration {
	b.Namespace = &value
	return b
}

// WithRawCNIConfig sets the RawCNIConfig field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the RawCNIConfig field is set to the value of the last call.
func (b *AdditionalNetworkDefinitionApplyConfiguration) WithRawCNIConfig(value string) *AdditionalNetworkDefinitionApplyConfiguration {
	b.RawCNIConfig = &value
	return b
}

// WithSimpleMacvlanConfig sets the SimpleMacvlanConfig field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the SimpleMacvlanConfig field is set to the value of the last call.
func (b *AdditionalNetworkDefinitionApplyConfiguration) WithSimpleMacvlanConfig(value *SimpleMacvlanConfigApplyConfiguration) *AdditionalNetworkDefinitionApplyConfiguration {
	b.SimpleMacvlanConfig = value
	return b
}
