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

package v1

// OIDCClientReferenceApplyConfiguration represents a declarative configuration of the OIDCClientReference type for use
// with apply.
//
// OIDCClientReference is a reference to a platform component
// client configuration.
type OIDCClientReferenceApplyConfiguration struct {
	// oidcProviderName is a required reference to the 'name' of the identity provider configured in 'oidcProviders' that this client is associated with.
	//
	// oidcProviderName must not be an empty string ("").
	OIDCProviderName *string `json:"oidcProviderName,omitempty"`
	// issuerURL is a required field that specifies the URL of the identity provider that this client is configured to make requests against.
	//
	// issuerURL must use the 'https' scheme.
	IssuerURL *string `json:"issuerURL,omitempty"`
	// clientID is a required field that specifies the client identifier, from the identity provider, that the platform component is using for authentication requests made to the identity provider.
	//
	// clientID must not be empty.
	ClientID *string `json:"clientID,omitempty"`
}

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

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

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

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