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

package v1

// SecretsStoreTokenRequestApplyConfiguration represents a declarative configuration of the SecretsStoreTokenRequest type for use
// with apply.
//
// SecretsStoreTokenRequest specifies a service account token audience configuration
// for workload identity federation (WIF) with the Secrets Store CSI driver.
type SecretsStoreTokenRequestApplyConfiguration struct {
	// audience is the intended audience of the service account token.
	// An empty string means the issued token will use the kube-apiserver's default APIAudiences.
	Audience *string `json:"audience,omitempty"`
	// expirationSeconds is the requested duration of validity of the service account token.
	// The token issuer may return a token with a different validity duration.
	// When omitted, the token expiration is determined by the kube-apiserver.
	// Must be at least 600 seconds (10 minutes) and no more than 315360000 seconds (~10 years).
	ExpirationSeconds *int32 `json:"expirationSeconds,omitempty"`
}

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

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

// WithExpirationSeconds sets the ExpirationSeconds 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 ExpirationSeconds field is set to the value of the last call.
func (b *SecretsStoreTokenRequestApplyConfiguration) WithExpirationSeconds(value int32) *SecretsStoreTokenRequestApplyConfiguration {
	b.ExpirationSeconds = &value
	return b
}
