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

package v1

// VSpherePlatformNodeNetworkingSpecApplyConfiguration represents a declarative configuration of the VSpherePlatformNodeNetworkingSpec type for use
// with apply.
type VSpherePlatformNodeNetworkingSpecApplyConfiguration struct {
	NetworkSubnetCIDR        []string `json:"networkSubnetCidr,omitempty"`
	Network                  *string  `json:"network,omitempty"`
	ExcludeNetworkSubnetCIDR []string `json:"excludeNetworkSubnetCidr,omitempty"`
}

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

// WithNetworkSubnetCIDR adds the given value to the NetworkSubnetCIDR field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the NetworkSubnetCIDR field.
func (b *VSpherePlatformNodeNetworkingSpecApplyConfiguration) WithNetworkSubnetCIDR(values ...string) *VSpherePlatformNodeNetworkingSpecApplyConfiguration {
	for i := range values {
		b.NetworkSubnetCIDR = append(b.NetworkSubnetCIDR, values[i])
	}
	return b
}

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

// WithExcludeNetworkSubnetCIDR adds the given value to the ExcludeNetworkSubnetCIDR field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the ExcludeNetworkSubnetCIDR field.
func (b *VSpherePlatformNodeNetworkingSpecApplyConfiguration) WithExcludeNetworkSubnetCIDR(values ...string) *VSpherePlatformNodeNetworkingSpecApplyConfiguration {
	for i := range values {
		b.ExcludeNetworkSubnetCIDR = append(b.ExcludeNetworkSubnetCIDR, values[i])
	}
	return b
}
