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

package v1

// GCPResourceLabelApplyConfiguration represents a declarative configuration of the GCPResourceLabel type for use
// with apply.
//
// GCPResourceLabel is a label to apply to GCP resources created for the cluster.
type GCPResourceLabelApplyConfiguration struct {
	// key is the key part of the label. A label key can have a maximum of 63 characters and cannot be empty.
	// Label key must begin with a lowercase letter, and must contain only lowercase letters, numeric characters,
	// and the following special characters `_-`. Label key must not have the reserved prefixes `kubernetes-io`
	// and `openshift-io`.
	Key *string `json:"key,omitempty"`
	// value is the value part of the label. A label value can have a maximum of 63 characters and cannot be empty.
	// Value must contain only lowercase letters, numeric characters, and the following special characters `_-`.
	Value *string `json:"value,omitempty"`
}

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

// 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 *GCPResourceLabelApplyConfiguration) WithKey(value string) *GCPResourceLabelApplyConfiguration {
	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 *GCPResourceLabelApplyConfiguration) WithValue(value string) *GCPResourceLabelApplyConfiguration {
	b.Value = &value
	return b
}
