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

package v1

import (
	machinev1 "github.com/openshift/api/machine/v1"
)

// ControlPlaneMachineSetTemplateApplyConfiguration represents a declarative configuration of the ControlPlaneMachineSetTemplate type for use
// with apply.
//
// ControlPlaneMachineSetTemplate is a template used by the ControlPlaneMachineSet
// to create the Machines that it will manage in the future.
type ControlPlaneMachineSetTemplateApplyConfiguration struct {
	// machineType determines the type of Machines that should be managed by the ControlPlaneMachineSet.
	// Currently, the only valid value is machines_v1beta1_machine_openshift_io.
	MachineType *machinev1.ControlPlaneMachineSetMachineType `json:"machineType,omitempty"`
	// OpenShiftMachineV1Beta1Machine defines the template for creating Machines
	// from the v1beta1.machine.openshift.io API group.
	OpenShiftMachineV1Beta1Machine *OpenShiftMachineV1Beta1MachineTemplateApplyConfiguration `json:"machines_v1beta1_machine_openshift_io,omitempty"`
}

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

// WithMachineType sets the MachineType 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 MachineType field is set to the value of the last call.
func (b *ControlPlaneMachineSetTemplateApplyConfiguration) WithMachineType(value machinev1.ControlPlaneMachineSetMachineType) *ControlPlaneMachineSetTemplateApplyConfiguration {
	b.MachineType = &value
	return b
}

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