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

package v1

// FeaturesMigrationApplyConfiguration represents an declarative configuration of the FeaturesMigration type for use
// with apply.
type FeaturesMigrationApplyConfiguration struct {
	EgressIP       *bool `json:"egressIP,omitempty"`
	EgressFirewall *bool `json:"egressFirewall,omitempty"`
	Multicast      *bool `json:"multicast,omitempty"`
}

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

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

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

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