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

package v1

// AuthenticationStatusApplyConfiguration represents a declarative configuration of the AuthenticationStatus type for use
// with apply.
type AuthenticationStatusApplyConfiguration struct {
	// integratedOAuthMetadata contains the discovery endpoint data for OAuth 2.0
	// Authorization Server Metadata for the in-cluster integrated OAuth server.
	// This discovery document can be viewed from its served location:
	// oc get --raw '/.well-known/oauth-authorization-server'
	// For further details, see the IETF Draft:
	// https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2
	// This contains the observed value based on cluster state.
	// An explicitly set value in spec.oauthMetadata has precedence over this field.
	// This field has no meaning if authentication spec.type is not set to IntegratedOAuth.
	// The key "oauthMetadata" is used to locate the data.
	// If the config map or expected key is not found, no metadata is served.
	// If the specified metadata is not valid, no metadata is served.
	// The namespace for this config map is openshift-config-managed.
	IntegratedOAuthMetadata *ConfigMapNameReferenceApplyConfiguration `json:"integratedOAuthMetadata,omitempty"`
	// oidcClients is where participating operators place the current OIDC client status for OIDC clients that can be customized by the cluster-admin.
	OIDCClients []OIDCClientStatusApplyConfiguration `json:"oidcClients,omitempty"`
}

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

// WithIntegratedOAuthMetadata sets the IntegratedOAuthMetadata 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 IntegratedOAuthMetadata field is set to the value of the last call.
func (b *AuthenticationStatusApplyConfiguration) WithIntegratedOAuthMetadata(value *ConfigMapNameReferenceApplyConfiguration) *AuthenticationStatusApplyConfiguration {
	b.IntegratedOAuthMetadata = value
	return b
}

// WithOIDCClients adds the given value to the OIDCClients field in the declarative configuration
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
// If called multiple times, values provided by each call will be appended to the OIDCClients field.
func (b *AuthenticationStatusApplyConfiguration) WithOIDCClients(values ...*OIDCClientStatusApplyConfiguration) *AuthenticationStatusApplyConfiguration {
	for i := range values {
		if values[i] == nil {
			panic("nil value passed to WithOIDCClients")
		}
		b.OIDCClients = append(b.OIDCClients, *values[i])
	}
	return b
}
