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

package v1alpha1

// PolicyApplyConfiguration represents a declarative configuration of the Policy type for use
// with apply.
type PolicyApplyConfiguration struct {
	RootOfTrust    *PolicyRootOfTrustApplyConfiguration `json:"rootOfTrust,omitempty"`
	SignedIdentity *PolicyIdentityApplyConfiguration    `json:"signedIdentity,omitempty"`
}

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

// WithRootOfTrust sets the RootOfTrust 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 RootOfTrust field is set to the value of the last call.
func (b *PolicyApplyConfiguration) WithRootOfTrust(value *PolicyRootOfTrustApplyConfiguration) *PolicyApplyConfiguration {
	b.RootOfTrust = value
	return b
}

// WithSignedIdentity sets the SignedIdentity 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 SignedIdentity field is set to the value of the last call.
func (b *PolicyApplyConfiguration) WithSignedIdentity(value *PolicyIdentityApplyConfiguration) *PolicyApplyConfiguration {
	b.SignedIdentity = value
	return b
}
