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

package v1

import (
	v1beta1 "github.com/openshift/client-go/machine/applyconfigurations/machine/v1beta1"
)

// OpenShiftMachineV1Beta1MachineTemplateApplyConfiguration represents an declarative configuration of the OpenShiftMachineV1Beta1MachineTemplate type for use
// with apply.
type OpenShiftMachineV1Beta1MachineTemplateApplyConfiguration struct {
	FailureDomains *FailureDomainsApplyConfiguration                           `json:"failureDomains,omitempty"`
	ObjectMeta     *ControlPlaneMachineSetTemplateObjectMetaApplyConfiguration `json:"metadata,omitempty"`
	Spec           *v1beta1.MachineSpecApplyConfiguration                      `json:"spec,omitempty"`
}

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

// WithFailureDomains sets the FailureDomains 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 FailureDomains field is set to the value of the last call.
func (b *OpenShiftMachineV1Beta1MachineTemplateApplyConfiguration) WithFailureDomains(value *FailureDomainsApplyConfiguration) *OpenShiftMachineV1Beta1MachineTemplateApplyConfiguration {
	b.FailureDomains = value
	return b
}

// WithObjectMeta sets the ObjectMeta 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 ObjectMeta field is set to the value of the last call.
func (b *OpenShiftMachineV1Beta1MachineTemplateApplyConfiguration) WithObjectMeta(value *ControlPlaneMachineSetTemplateObjectMetaApplyConfiguration) *OpenShiftMachineV1Beta1MachineTemplateApplyConfiguration {
	b.ObjectMeta = value
	return b
}

// WithSpec sets the Spec 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 Spec field is set to the value of the last call.
func (b *OpenShiftMachineV1Beta1MachineTemplateApplyConfiguration) WithSpec(value *v1beta1.MachineSpecApplyConfiguration) *OpenShiftMachineV1Beta1MachineTemplateApplyConfiguration {
	b.Spec = value
	return b
}
