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

package v1beta1

import (
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

// MachineSetSpecApplyConfiguration represents an declarative configuration of the MachineSetSpec type for use
// with apply.
type MachineSetSpecApplyConfiguration struct {
	Replicas        *int32                                 `json:"replicas,omitempty"`
	MinReadySeconds *int32                                 `json:"minReadySeconds,omitempty"`
	DeletePolicy    *string                                `json:"deletePolicy,omitempty"`
	Selector        *v1.LabelSelector                      `json:"selector,omitempty"`
	Template        *MachineTemplateSpecApplyConfiguration `json:"template,omitempty"`
}

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

// WithReplicas sets the Replicas 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 Replicas field is set to the value of the last call.
func (b *MachineSetSpecApplyConfiguration) WithReplicas(value int32) *MachineSetSpecApplyConfiguration {
	b.Replicas = &value
	return b
}

// WithMinReadySeconds sets the MinReadySeconds 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 MinReadySeconds field is set to the value of the last call.
func (b *MachineSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *MachineSetSpecApplyConfiguration {
	b.MinReadySeconds = &value
	return b
}

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

// WithSelector sets the Selector 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 Selector field is set to the value of the last call.
func (b *MachineSetSpecApplyConfiguration) WithSelector(value v1.LabelSelector) *MachineSetSpecApplyConfiguration {
	b.Selector = &value
	return b
}

// WithTemplate sets the Template 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 Template field is set to the value of the last call.
func (b *MachineSetSpecApplyConfiguration) WithTemplate(value *MachineTemplateSpecApplyConfiguration) *MachineSetSpecApplyConfiguration {
	b.Template = value
	return b
}
