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

package v1

// VSpherePlatformNodeNetworkingApplyConfiguration represents a declarative configuration of the VSpherePlatformNodeNetworking type for use
// with apply.
//
// VSpherePlatformNodeNetworking holds the external and internal node networking spec.
type VSpherePlatformNodeNetworkingApplyConfiguration struct {
	// external represents the network configuration of the node that is externally routable.
	External *VSpherePlatformNodeNetworkingSpecApplyConfiguration `json:"external,omitempty"`
	// internal represents the network configuration of the node that is routable only within the cluster.
	Internal *VSpherePlatformNodeNetworkingSpecApplyConfiguration `json:"internal,omitempty"`
}

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

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

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