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

package v1

// RouteTargetReferenceApplyConfiguration represents an declarative configuration of the RouteTargetReference type for use
// with apply.
type RouteTargetReferenceApplyConfiguration struct {
	Kind   *string `json:"kind,omitempty"`
	Name   *string `json:"name,omitempty"`
	Weight *int32  `json:"weight,omitempty"`
}

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

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

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

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