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

package v1

// KuryrConfigApplyConfiguration represents an declarative configuration of the KuryrConfig type for use
// with apply.
type KuryrConfigApplyConfiguration struct {
	DaemonProbesPort             *uint32 `json:"daemonProbesPort,omitempty"`
	ControllerProbesPort         *uint32 `json:"controllerProbesPort,omitempty"`
	OpenStackServiceNetwork      *string `json:"openStackServiceNetwork,omitempty"`
	EnablePortPoolsPrepopulation *bool   `json:"enablePortPoolsPrepopulation,omitempty"`
	PoolMaxPorts                 *uint   `json:"poolMaxPorts,omitempty"`
	PoolMinPorts                 *uint   `json:"poolMinPorts,omitempty"`
	PoolBatchPorts               *uint   `json:"poolBatchPorts,omitempty"`
	MTU                          *uint32 `json:"mtu,omitempty"`
}

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

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

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

// WithOpenStackServiceNetwork sets the OpenStackServiceNetwork 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 OpenStackServiceNetwork field is set to the value of the last call.
func (b *KuryrConfigApplyConfiguration) WithOpenStackServiceNetwork(value string) *KuryrConfigApplyConfiguration {
	b.OpenStackServiceNetwork = &value
	return b
}

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

// WithPoolMaxPorts sets the PoolMaxPorts 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 PoolMaxPorts field is set to the value of the last call.
func (b *KuryrConfigApplyConfiguration) WithPoolMaxPorts(value uint) *KuryrConfigApplyConfiguration {
	b.PoolMaxPorts = &value
	return b
}

// WithPoolMinPorts sets the PoolMinPorts 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 PoolMinPorts field is set to the value of the last call.
func (b *KuryrConfigApplyConfiguration) WithPoolMinPorts(value uint) *KuryrConfigApplyConfiguration {
	b.PoolMinPorts = &value
	return b
}

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