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

package v1

import (
	corev1 "k8s.io/api/core/v1"
)

// TemplateInstanceSpecApplyConfiguration represents an declarative configuration of the TemplateInstanceSpec type for use
// with apply.
type TemplateInstanceSpecApplyConfiguration struct {
	Template  *TemplateApplyConfiguration                  `json:"template,omitempty"`
	Secret    *corev1.LocalObjectReference                 `json:"secret,omitempty"`
	Requester *TemplateInstanceRequesterApplyConfiguration `json:"requester,omitempty"`
}

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

// 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 *TemplateInstanceSpecApplyConfiguration) WithTemplate(value *TemplateApplyConfiguration) *TemplateInstanceSpecApplyConfiguration {
	b.Template = value
	return b
}

// WithSecret sets the Secret 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 Secret field is set to the value of the last call.
func (b *TemplateInstanceSpecApplyConfiguration) WithSecret(value corev1.LocalObjectReference) *TemplateInstanceSpecApplyConfiguration {
	b.Secret = &value
	return b
}

// WithRequester sets the Requester 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 Requester field is set to the value of the last call.
func (b *TemplateInstanceSpecApplyConfiguration) WithRequester(value *TemplateInstanceRequesterApplyConfiguration) *TemplateInstanceSpecApplyConfiguration {
	b.Requester = value
	return b
}
