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

package v1

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

// OpenShiftSDNConfigApplyConfiguration represents an declarative configuration of the OpenShiftSDNConfig type for use
// with apply.
type OpenShiftSDNConfigApplyConfiguration struct {
	Mode                   *v1.SDNMode `json:"mode,omitempty"`
	VXLANPort              *uint32     `json:"vxlanPort,omitempty"`
	MTU                    *uint32     `json:"mtu,omitempty"`
	UseExternalOpenvswitch *bool       `json:"useExternalOpenvswitch,omitempty"`
	EnableUnidling         *bool       `json:"enableUnidling,omitempty"`
}

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

// WithMode sets the Mode 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 Mode field is set to the value of the last call.
func (b *OpenShiftSDNConfigApplyConfiguration) WithMode(value v1.SDNMode) *OpenShiftSDNConfigApplyConfiguration {
	b.Mode = &value
	return b
}

// WithVXLANPort sets the VXLANPort 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 VXLANPort field is set to the value of the last call.
func (b *OpenShiftSDNConfigApplyConfiguration) WithVXLANPort(value uint32) *OpenShiftSDNConfigApplyConfiguration {
	b.VXLANPort = &value
	return b
}

// WithMTU sets the MTU 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 MTU field is set to the value of the last call.
func (b *OpenShiftSDNConfigApplyConfiguration) WithMTU(value uint32) *OpenShiftSDNConfigApplyConfiguration {
	b.MTU = &value
	return b
}

// WithUseExternalOpenvswitch sets the UseExternalOpenvswitch 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 UseExternalOpenvswitch field is set to the value of the last call.
func (b *OpenShiftSDNConfigApplyConfiguration) WithUseExternalOpenvswitch(value bool) *OpenShiftSDNConfigApplyConfiguration {
	b.UseExternalOpenvswitch = &value
	return b
}

// WithEnableUnidling sets the EnableUnidling 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 EnableUnidling field is set to the value of the last call.
func (b *OpenShiftSDNConfigApplyConfiguration) WithEnableUnidling(value bool) *OpenShiftSDNConfigApplyConfiguration {
	b.EnableUnidling = &value
	return b
}
