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

package v1alpha1

// CustomPKIPolicyApplyConfiguration represents a declarative configuration of the CustomPKIPolicy type for use
// with apply.
//
// CustomPKIPolicy contains administrator-specified cryptographic configuration.
// Administrators must specify defaults for all certificates and may optionally
// override specific categories of certificates.
type CustomPKIPolicyApplyConfiguration struct {
	PKIProfileApplyConfiguration `json:",inline"`
}

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

// WithDefaults sets the Defaults 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 Defaults field is set to the value of the last call.
func (b *CustomPKIPolicyApplyConfiguration) WithDefaults(value *DefaultCertificateConfigApplyConfiguration) *CustomPKIPolicyApplyConfiguration {
	b.PKIProfileApplyConfiguration.Defaults = value
	return b
}

// WithSignerCertificates sets the SignerCertificates 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 SignerCertificates field is set to the value of the last call.
func (b *CustomPKIPolicyApplyConfiguration) WithSignerCertificates(value *CertificateConfigApplyConfiguration) *CustomPKIPolicyApplyConfiguration {
	b.PKIProfileApplyConfiguration.SignerCertificates = value
	return b
}

// WithServingCertificates sets the ServingCertificates 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 ServingCertificates field is set to the value of the last call.
func (b *CustomPKIPolicyApplyConfiguration) WithServingCertificates(value *CertificateConfigApplyConfiguration) *CustomPKIPolicyApplyConfiguration {
	b.PKIProfileApplyConfiguration.ServingCertificates = value
	return b
}

// WithClientCertificates sets the ClientCertificates 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 ClientCertificates field is set to the value of the last call.
func (b *CustomPKIPolicyApplyConfiguration) WithClientCertificates(value *CertificateConfigApplyConfiguration) *CustomPKIPolicyApplyConfiguration {
	b.PKIProfileApplyConfiguration.ClientCertificates = value
	return b
}
