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

package v1

// GCPKMSKeyReferenceApplyConfiguration represents a declarative configuration of the GCPKMSKeyReference type for use
// with apply.
type GCPKMSKeyReferenceApplyConfiguration struct {
	Name      *string `json:"name,omitempty"`
	KeyRing   *string `json:"keyRing,omitempty"`
	ProjectID *string `json:"projectID,omitempty"`
	Location  *string `json:"location,omitempty"`
}

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

// 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 *GCPKMSKeyReferenceApplyConfiguration) WithName(value string) *GCPKMSKeyReferenceApplyConfiguration {
	b.Name = &value
	return b
}

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

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

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