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

package v1

// IPv6OVNKubernetesConfigApplyConfiguration represents a declarative configuration of the IPv6OVNKubernetesConfig type for use
// with apply.
type IPv6OVNKubernetesConfigApplyConfiguration struct {
	// internalTransitSwitchSubnet is a v4 subnet in IPV4 CIDR format used internally
	// by OVN-Kubernetes for the distributed transit switch in the OVN Interconnect
	// architecture that connects the cluster routers on each node together to enable
	// east west traffic. The subnet chosen should not overlap with other networks
	// specified for OVN-Kubernetes as well as other networks used on the host.
	// When ommitted, this means no opinion and the platform is left to choose a reasonable
	// default which is subject to change over time.
	// The subnet must be large enough to accommodate one IP per node in your cluster
	// The current default subnet is fd97::/64
	// The value must be in proper IPV6 CIDR format
	// Note that IPV6 dual addresses are not permitted
	InternalTransitSwitchSubnet *string `json:"internalTransitSwitchSubnet,omitempty"`
	// internalJoinSubnet is a v6 subnet used internally by ovn-kubernetes in case the
	// default one is being already used by something else. It must not overlap with
	// any other subnet being used by OpenShift or by the node network. The size of the
	// subnet must be larger than the number of nodes.
	// The subnet must be large enough to accommodate one IP per node in your cluster
	// The current default value is fd98::/64
	// The value must be in proper IPV6 CIDR format
	// Note that IPV6 dual addresses are not permitted
	InternalJoinSubnet *string `json:"internalJoinSubnet,omitempty"`
}

// IPv6OVNKubernetesConfigApplyConfiguration constructs a declarative configuration of the IPv6OVNKubernetesConfig type for use with
// apply.
func IPv6OVNKubernetesConfig() *IPv6OVNKubernetesConfigApplyConfiguration {
	return &IPv6OVNKubernetesConfigApplyConfiguration{}
}

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

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