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

package v1

// MTUMigrationApplyConfiguration represents a declarative configuration of the MTUMigration type for use
// with apply.
//
// MTUMigration contains infomation about MTU migration.
type MTUMigrationApplyConfiguration struct {
	// network contains information about MTU migration for the default network.
	// Migrations are only allowed to MTU values lower than the machine's uplink
	// MTU by the minimum appropriate offset.
	Network *MTUMigrationValuesApplyConfiguration `json:"network,omitempty"`
	// machine contains MTU migration configuration for the machine's uplink.
	// Needs to be migrated along with the default network MTU unless the
	// current uplink MTU already accommodates the default network MTU.
	Machine *MTUMigrationValuesApplyConfiguration `json:"machine,omitempty"`
}

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

// 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 *MTUMigrationApplyConfiguration) WithNetwork(value *MTUMigrationValuesApplyConfiguration) *MTUMigrationApplyConfiguration {
	b.Network = value
	return b
}

// WithMachine sets the Machine 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 Machine field is set to the value of the last call.
func (b *MTUMigrationApplyConfiguration) WithMachine(value *MTUMigrationValuesApplyConfiguration) *MTUMigrationApplyConfiguration {
	b.Machine = value
	return b
}
