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

package v1

// AzureResourceTagApplyConfiguration represents a declarative configuration of the AzureResourceTag type for use
// with apply.
//
// AzureResourceTag is a tag to apply to Azure resources created for the cluster.
type AzureResourceTagApplyConfiguration struct {
	// key is the key part of the tag. A tag key can have a maximum of 128 characters and cannot be empty. Key
	// must begin with a letter, end with a letter, number or underscore, and must contain only alphanumeric
	// characters and the following special characters `_ . -`.
	Key *string `json:"key,omitempty"`
	// value is the value part of the tag. A tag value can have a maximum of 256 characters and cannot be empty. Value
	// must contain only alphanumeric characters and the following special characters `_ + , - . / : ; < = > ? @`.
	Value *string `json:"value,omitempty"`
}

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

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

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