v1alpha1

package
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 28, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// AddToScheme applies the SchemeBuilder functions to a specified scheme.
	AddToScheme = schemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = kschema.GroupVersion{
	Group:   "hub.traefik.io",
	Version: "v1alpha1",
}

SchemeGroupVersion is group version used to register these objects.

Functions

func Resource

func Resource(resource string) kschema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource.

Types

type API

type API struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec APISpec `json:"spec,omitempty"`

	// The current status of this API.
	// +optional
	Status APIStatus `json:"status,omitempty"`
}

API defines an HTTP interface that is exposed to external clients. It specifies the supported versions and provides instructions for accessing its documentation. Once instantiated, an API object is associated with an Ingress, IngressRoute, or HTTPRoute resource, enabling the exposure of the described API to the outside world.

func (*API) DeepCopy

func (in *API) DeepCopy() *API

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new API.

func (*API) DeepCopyInto

func (in *API) DeepCopyInto(out *API)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*API) DeepCopyObject

func (in *API) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIAccess

type APIAccess struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// The desired behavior of this APIAccess.
	// +kubebuilder:validation:XValidation:message="groups and everyone are mutually exclusive",rule="(has(self.everyone) && has(self.groups)) ? !(self.everyone && self.groups.size() > 0) : true"
	Spec APIAccessSpec `json:"spec,omitempty"`

	// The current status of this APIAccess.
	// +optional
	Status APIAccessStatus `json:"status,omitempty"`
}

APIAccess defines who can access to a set of APIs.

func (*APIAccess) DeepCopy

func (in *APIAccess) DeepCopy() *APIAccess

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIAccess.

func (*APIAccess) DeepCopyInto

func (in *APIAccess) DeepCopyInto(out *APIAccess)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIAccess) DeepCopyObject

func (in *APIAccess) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIAccessList

type APIAccessList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []APIAccess `json:"items"`
}

APIAccessList defines a list of APIAccesses.

func (*APIAccessList) DeepCopy

func (in *APIAccessList) DeepCopy() *APIAccessList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIAccessList.

func (*APIAccessList) DeepCopyInto

func (in *APIAccessList) DeepCopyInto(out *APIAccessList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIAccessList) DeepCopyObject

func (in *APIAccessList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIAccessSpec

type APIAccessSpec struct {
	// Groups are the consumer groups that will gain access to the selected APIs.
	// +optional
	Groups []string `json:"groups,omitempty"`

	// Everyone indicates that all users will have access to the selected APIs.
	// +optional
	Everyone bool `json:"everyone,omitempty"`

	// APISelector selects the APIs that will be accessible to the configured audience.
	// Multiple APIAccesses can select the same set of APIs.
	// This field is optional and follows standard label selector semantics.
	// An empty APISelector matches any API.
	// +optional
	APISelector *metav1.LabelSelector `json:"apiSelector,omitempty"`

	// APIs defines a set of APIs that will be accessible to the configured audience.
	// Multiple APIAccesses can select the same APIs.
	// When combined with APISelector, this set of APIs is appended to the matching APIs.
	// +optional
	// +kubebuilder:validation:MaxItems=100
	// +kubebuilder:validation:XValidation:message="duplicated apis",rule="self.all(x, self.exists_one(y, x.name == y.name))"
	APIs []APIReference `json:"apis,omitempty"`

	// OperationFilter specifies the allowed operations on APIs and APIVersions.
	// If not set, all operations are available.
	// An empty OperationFilter prohibits all operations.
	// +optional
	OperationFilter *OperationFilter `json:"operationFilter,omitempty"`
}

APIAccessSpec configures an APIAccess.

func (*APIAccessSpec) DeepCopy

func (in *APIAccessSpec) DeepCopy() *APIAccessSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIAccessSpec.

func (*APIAccessSpec) DeepCopyInto

func (in *APIAccessSpec) DeepCopyInto(out *APIAccessSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIAccessStatus

type APIAccessStatus struct {
	Version  string       `json:"version,omitempty"`
	SyncedAt *metav1.Time `json:"syncedAt,omitempty"`

	// Hash is a hash representing the APIAccess.
	Hash string `json:"hash,omitempty"`
}

APIAccessStatus is the status of an APIAccess.

func (*APIAccessStatus) DeepCopy

func (in *APIAccessStatus) DeepCopy() *APIAccessStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIAccessStatus.

func (*APIAccessStatus) DeepCopyInto

func (in *APIAccessStatus) DeepCopyInto(out *APIAccessStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIList

type APIList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []API `json:"items"`
}

APIList defines a list of APIs.

func (*APIList) DeepCopy

func (in *APIList) DeepCopy() *APIList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIList.

func (*APIList) DeepCopyInto

func (in *APIList) DeepCopyInto(out *APIList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIList) DeepCopyObject

func (in *APIList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIPortal

type APIPortal struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// The desired behavior of this APIPortal.
	Spec APIPortalSpec `json:"spec,omitempty"`

	// The current status of this APIPortal.
	// +optional
	Status APIPortalStatus `json:"status,omitempty"`
}

APIPortal defines a developer portal for accessing the documentation of APIs.

func (*APIPortal) DeepCopy

func (in *APIPortal) DeepCopy() *APIPortal

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIPortal.

func (*APIPortal) DeepCopyInto

func (in *APIPortal) DeepCopyInto(out *APIPortal)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIPortal) DeepCopyObject

func (in *APIPortal) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIPortalList

type APIPortalList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []APIPortal `json:"items"`
}

APIPortalList defines a list of APIPortals.

func (*APIPortalList) DeepCopy

func (in *APIPortalList) DeepCopy() *APIPortalList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIPortalList.

func (*APIPortalList) DeepCopyInto

func (in *APIPortalList) DeepCopyInto(out *APIPortalList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIPortalList) DeepCopyObject

func (in *APIPortalList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIPortalSpec

type APIPortalSpec struct {
	// Title is the public facing name of the APIPortal.
	// +optional
	Title string `json:"title,omitempty"`

	// Description of the APIPortal.
	// +optional
	Description string `json:"description,omitempty"`

	// TrustedURLs are the urls that are trusted by the OAuth 2.0 authorization server.
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=1
	// +kubebuilder:validation:XValidation:message="must be a valid URLs",rule="self.all(x, isURL(x))"
	TrustedURLs []string `json:"trustedUrls"`

	// UI holds the UI customization options.
	// +optional
	UI *UISpec `json:"ui,omitempty"`
}

APIPortalSpec configures an APIPortal.

func (*APIPortalSpec) DeepCopy

func (in *APIPortalSpec) DeepCopy() *APIPortalSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIPortalSpec.

func (*APIPortalSpec) DeepCopyInto

func (in *APIPortalSpec) DeepCopyInto(out *APIPortalSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIPortalStatus

type APIPortalStatus struct {
	Version  string       `json:"version,omitempty"`
	SyncedAt *metav1.Time `json:"syncedAt,omitempty"`

	// OIDC is the OIDC configuration for accessing the exposed APIPortal WebUI.
	// +optional
	OIDC *OIDCConfigStatus `json:"oidc,omitempty"`

	// Hash is a hash representing the APIPortal.
	Hash string `json:"hash,omitempty"`
}

APIPortalStatus is the status of an APIPortal.

func (*APIPortalStatus) DeepCopy

func (in *APIPortalStatus) DeepCopy() *APIPortalStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIPortalStatus.

func (*APIPortalStatus) DeepCopyInto

func (in *APIPortalStatus) DeepCopyInto(out *APIPortalStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIRateLimit

type APIRateLimit struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// The desired behavior of this APIRateLimit.
	// +kubebuilder:validation:XValidation:message="groups and everyone are mutually exclusive",rule="(has(self.everyone) && has(self.groups)) ? !(self.everyone && self.groups.size() > 0) : true"
	Spec APIRateLimitSpec `json:"spec,omitempty"`

	// The current status of this APIRateLimit.
	// +optional
	Status APIRateLimitStatus `json:"status,omitempty"`
}

APIRateLimit defines how group of consumers are rate limited on a set of APIs.

func (*APIRateLimit) DeepCopy

func (in *APIRateLimit) DeepCopy() *APIRateLimit

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIRateLimit.

func (*APIRateLimit) DeepCopyInto

func (in *APIRateLimit) DeepCopyInto(out *APIRateLimit)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIRateLimit) DeepCopyObject

func (in *APIRateLimit) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIRateLimitList

type APIRateLimitList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []APIRateLimit `json:"items"`
}

APIRateLimitList defines a list of APIRateLimits.

func (*APIRateLimitList) DeepCopy

func (in *APIRateLimitList) DeepCopy() *APIRateLimitList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIRateLimitList.

func (*APIRateLimitList) DeepCopyInto

func (in *APIRateLimitList) DeepCopyInto(out *APIRateLimitList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIRateLimitList) DeepCopyObject

func (in *APIRateLimitList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIRateLimitSpec

type APIRateLimitSpec struct {
	// Limit is the maximum number of token in the bucket.
	// +kubebuilder:validation:XValidation:message="must be a positive number",rule="self >= 0"
	Limit int `json:"limit"`

	// Period is the unit of time for the Limit.
	// +optional
	// +kubebuilder:validation:XValidation:message="must be between 1s and 1h",rule="self >= duration('1s') && self <= duration('1h')"
	Period *Period `json:"period,omitempty"`

	// Strategy defines how the bucket state will be synchronized between the different Traefik Hub instances.
	// It can be, either "local" or "distributed".
	// +optional
	// +kubebuilder:validation:Enum=local;distributed
	Strategy Strategy `json:"strategy,omitempty"`

	// Groups are the consumer groups that will be rate limited.
	// Multiple APIRateLimits can target the same set of consumer groups, the most restrictive one applies.
	// When a consumer belongs to multiple groups, the least restrictive APIRateLimit applies.
	// +optional
	Groups []string `json:"groups,omitempty"`

	// Everyone indicates that all users will, by default, be rate limited with this configuration.
	// If an APIRateLimit explicitly target a group, the default rate limit will be ignored.
	// +optional
	Everyone bool `json:"everyone,omitempty"`

	// APISelector selects the APIs that will be rate limited.
	// Multiple APIRateLimits can select the same set of APIs.
	// This field is optional and follows standard label selector semantics.
	// An empty APISelector matches any API.
	// +optional
	APISelector *metav1.LabelSelector `json:"apiSelector,omitempty"`

	// APIs defines a set of APIs that will be rate limited.
	// Multiple APIRateLimits can select the same APIs.
	// When combined with APISelector, this set of APIs is appended to the matching APIs.
	// +optional
	// +kubebuilder:validation:MaxItems=100
	// +kubebuilder:validation:XValidation:message="duplicated apis",rule="self.all(x, self.exists_one(y, x.name == y.name))"
	APIs []APIReference `json:"apis,omitempty"`
}

APIRateLimitSpec configures an APIRateLimit. The rate limiter is implemented using the Token Bucket algorithm, meaning, a virtual bucket is refilled at a constant rate defined by Limit/Period: https://en.wikipedia.org/wiki/Token_bucket

func (*APIRateLimitSpec) DeepCopy

func (in *APIRateLimitSpec) DeepCopy() *APIRateLimitSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIRateLimitSpec.

func (*APIRateLimitSpec) DeepCopyInto

func (in *APIRateLimitSpec) DeepCopyInto(out *APIRateLimitSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIRateLimitStatus

type APIRateLimitStatus struct {
	Version  string       `json:"version,omitempty"`
	SyncedAt *metav1.Time `json:"syncedAt,omitempty"`
	// Hash is a hash representing the APIRateLimit.
	Hash string `json:"hash,omitempty"`
}

APIRateLimitStatus is the status of an APIRateLimit.

func (*APIRateLimitStatus) DeepCopy

func (in *APIRateLimitStatus) DeepCopy() *APIRateLimitStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIRateLimitStatus.

func (*APIRateLimitStatus) DeepCopyInto

func (in *APIRateLimitStatus) DeepCopyInto(out *APIRateLimitStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIReference

type APIReference struct {
	// Name of the API.
	// +kubebuilder:validation:MaxLength=253
	Name string `json:"name"`
}

APIReference references an API.

func (*APIReference) DeepCopy

func (in *APIReference) DeepCopy() *APIReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIReference.

func (*APIReference) DeepCopyInto

func (in *APIReference) DeepCopyInto(out *APIReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APISpec

type APISpec struct {
	// OpenAPISpec defines the API contract as an OpenAPI specification.
	// +optional
	// +kubebuilder:validation:XValidation:message="path or url must be defined",rule="has(self.path) || has(self.url)"
	OpenAPISpec *OpenAPISpec `json:"openApiSpec,omitempty"`

	// Versions are the different APIVersions available.
	// +optional
	// +kubebuilder:validation:MaxItems=100
	// +kubebuilder:validation:MinItems=1
	Versions []APIVersionRef `json:"versions,omitempty"`
}

APISpec describes the API.

func (*APISpec) DeepCopy

func (in *APISpec) DeepCopy() *APISpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APISpec.

func (*APISpec) DeepCopyInto

func (in *APISpec) DeepCopyInto(out *APISpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIStatus

type APIStatus struct {
	Version  string       `json:"version,omitempty"`
	SyncedAt *metav1.Time `json:"syncedAt,omitempty"`
	// Hash is a hash representing the API.
	Hash string `json:"hash,omitempty"`
}

APIStatus is the status of the API.

func (*APIStatus) DeepCopy

func (in *APIStatus) DeepCopy() *APIStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIStatus.

func (*APIStatus) DeepCopyInto

func (in *APIStatus) DeepCopyInto(out *APIStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIVersion

type APIVersion struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// The desired behavior of this APIVersion.
	Spec APIVersionSpec `json:"spec,omitempty"`

	// The current status of this APIVersion.
	// +optional
	Status APIVersionStatus `json:"status,omitempty"`
}

APIVersion defines a version of an API. +kubebuilder:printcolumn:name="Title",type=string,JSONPath=`.spec.title` +kubebuilder:printcolumn:name="Release",type=string,JSONPath=`.spec.release`

func (*APIVersion) DeepCopy

func (in *APIVersion) DeepCopy() *APIVersion

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersion.

func (*APIVersion) DeepCopyInto

func (in *APIVersion) DeepCopyInto(out *APIVersion)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIVersion) DeepCopyObject

func (in *APIVersion) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIVersionList

type APIVersionList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []APIVersion `json:"items"`
}

APIVersionList defines a list of APIVersionList.

func (*APIVersionList) DeepCopy

func (in *APIVersionList) DeepCopy() *APIVersionList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersionList.

func (*APIVersionList) DeepCopyInto

func (in *APIVersionList) DeepCopyInto(out *APIVersionList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*APIVersionList) DeepCopyObject

func (in *APIVersionList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type APIVersionRef added in v1.0.0

type APIVersionRef struct {
	// Name of the APIVersion.
	// +kubebuilder:validation:MaxLength=253
	Name string `json:"name"`
}

APIVersionRef references an APIVersion.

func (*APIVersionRef) DeepCopy added in v1.0.0

func (in *APIVersionRef) DeepCopy() *APIVersionRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersionRef.

func (*APIVersionRef) DeepCopyInto added in v1.0.0

func (in *APIVersionRef) DeepCopyInto(out *APIVersionRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIVersionSpec

type APIVersionSpec struct {
	// Title is the public facing name of the APIVersion.
	// +optional
	Title string `json:"title,omitempty"`

	// Release is the version number of the API.
	// This value must follow the SemVer format: https://semver.org/
	// +kubebuilder:validation:MaxLength=100
	// +kubebuilder:validation:XValidation:message="must be a valid semver version",rule="self.matches(r\"\"\"^v?(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$\"\"\")"
	Release string `json:"release"`

	// OpenAPISpec defines the API contract as an OpenAPI specification.
	// +optional
	// +kubebuilder:validation:XValidation:message="path or url must be defined",rule="has(self.path) || has(self.url)"
	OpenAPISpec *OpenAPISpec `json:"openApiSpec,omitempty"`
}

APIVersionSpec configures an APIVersion.

func (*APIVersionSpec) DeepCopy

func (in *APIVersionSpec) DeepCopy() *APIVersionSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersionSpec.

func (*APIVersionSpec) DeepCopyInto

func (in *APIVersionSpec) DeepCopyInto(out *APIVersionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type APIVersionStatus

type APIVersionStatus struct {
	Version  string       `json:"version,omitempty"`
	SyncedAt *metav1.Time `json:"syncedAt,omitempty"`
	// Hash is a hash representing the APIVersion.
	Hash string `json:"hash,omitempty"`
}

APIVersionStatus is the status of an APIVersion.

func (*APIVersionStatus) DeepCopy

func (in *APIVersionStatus) DeepCopy() *APIVersionStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersionStatus.

func (*APIVersionStatus) DeepCopyInto

func (in *APIVersionStatus) DeepCopyInto(out *APIVersionStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessControlOAuthIntro

type AccessControlOAuthIntro struct {
	// +kubebuilder:validation:Required
	ClientConfig AccessControlOAuthIntroClientConfig `json:"clientConfig"`
	// +kubebuilder:validation:Required
	TokenSource    TokenSource       `json:"tokenSource"`
	Claims         string            `json:"claims,omitempty"`
	ForwardHeaders map[string]string `json:"forwardHeaders,omitempty"`
}

AccessControlOAuthIntro configures an OAuth 2.0 Token Introspection access control policy.

func (*AccessControlOAuthIntro) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlOAuthIntro.

func (*AccessControlOAuthIntro) DeepCopyInto

func (in *AccessControlOAuthIntro) DeepCopyInto(out *AccessControlOAuthIntro)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessControlOAuthIntroClientConfig

type AccessControlOAuthIntroClientConfig struct {
	HTTPClientConfig `json:",inline"`

	// URL of the Authorization Server.
	// +kubebuilder:validation:Required
	URL string `json:"url"`
	// Headers to set when sending requests to the Authorization Server.
	Headers map[string]string `json:"headers,omitempty"`
	// TokenTypeHint is a hint to pass to the Authorization Server.
	// See https://tools.ietf.org/html/rfc7662#section-2.1 for more information.
	TokenTypeHint string `json:"tokenTypeHint,omitempty"`
}

AccessControlOAuthIntroClientConfig configures the OAuth 2.0 client for issuing token introspection requests.

func (*AccessControlOAuthIntroClientConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlOAuthIntroClientConfig.

func (*AccessControlOAuthIntroClientConfig) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessControlPolicy

type AccessControlPolicy struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec AccessControlPolicySpec `json:"spec,omitempty"`

	// The current status of this access control policy.
	// +optional
	Status AccessControlPolicyStatus `json:"status,omitempty"`
}

AccessControlPolicy defines an access control policy. +kubebuilder:resource:scope=Cluster

func (*AccessControlPolicy) DeepCopy

func (in *AccessControlPolicy) DeepCopy() *AccessControlPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlPolicy.

func (*AccessControlPolicy) DeepCopyInto

func (in *AccessControlPolicy) DeepCopyInto(out *AccessControlPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AccessControlPolicy) DeepCopyObject

func (in *AccessControlPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AccessControlPolicyAPIKey

type AccessControlPolicyAPIKey struct {
	// KeySource defines how to extract API keys from requests.
	// +kubebuilder:validation:Required
	KeySource TokenSource `json:"keySource"`
	// Keys define the set of authorized keys to access a protected resource.
	Keys []AccessControlPolicyAPIKeyKey `json:"keys,omitempty"`
	// ForwardHeaders instructs the middleware to forward key metadata as header values upon successful authentication.
	ForwardHeaders map[string]string `json:"forwardHeaders,omitempty"`
}

AccessControlPolicyAPIKey configure an APIKey control policy.

func (*AccessControlPolicyAPIKey) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlPolicyAPIKey.

func (*AccessControlPolicyAPIKey) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessControlPolicyAPIKeyKey

type AccessControlPolicyAPIKeyKey struct {
	// ID is the unique identifier of the key.
	// +kubebuilder:validation:Required
	ID string `json:"id"`
	// Value is the SHAKE-256 hash (using 64 bytes) of the API key.
	// +kubebuilder:validation:Required
	Value string `json:"value"`
	// Metadata holds arbitrary metadata for this key, can be used by ForwardHeaders.
	Metadata map[string]string `json:"metadata,omitempty"`
}

AccessControlPolicyAPIKeyKey defines an API key.

func (*AccessControlPolicyAPIKeyKey) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlPolicyAPIKeyKey.

func (*AccessControlPolicyAPIKeyKey) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessControlPolicyBasicAuth

type AccessControlPolicyBasicAuth struct {
	Users                    []string `json:"users,omitempty"`
	Realm                    string   `json:"realm,omitempty"`
	StripAuthorizationHeader bool     `json:"stripAuthorizationHeader,omitempty"`
	ForwardUsernameHeader    string   `json:"forwardUsernameHeader,omitempty"`
}

AccessControlPolicyBasicAuth holds the HTTP basic authentication configuration.

func (*AccessControlPolicyBasicAuth) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlPolicyBasicAuth.

func (*AccessControlPolicyBasicAuth) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessControlPolicyJWT

type AccessControlPolicyJWT struct {
	SigningSecret              string            `json:"signingSecret,omitempty"`
	SigningSecretBase64Encoded bool              `json:"signingSecretBase64Encoded,omitempty"`
	PublicKey                  string            `json:"publicKey,omitempty"`
	JWKsFile                   string            `json:"jwksFile,omitempty"`
	JWKsURL                    string            `json:"jwksUrl,omitempty"`
	StripAuthorizationHeader   *bool             `json:"stripAuthorizationHeader,omitempty"`
	ForwardHeaders             map[string]string `json:"forwardHeaders,omitempty"`
	TokenQueryKey              string            `json:"tokenQueryKey,omitempty"`
	Claims                     string            `json:"claims,omitempty"`
}

AccessControlPolicyJWT configures a JWT access control policy.

func (*AccessControlPolicyJWT) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlPolicyJWT.

func (*AccessControlPolicyJWT) DeepCopyInto

func (in *AccessControlPolicyJWT) DeepCopyInto(out *AccessControlPolicyJWT)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessControlPolicyList

type AccessControlPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `son:"metadata,omitempty"`

	Items []AccessControlPolicy `json:"items"`
}

AccessControlPolicyList defines a list of access control policy.

func (*AccessControlPolicyList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlPolicyList.

func (*AccessControlPolicyList) DeepCopyInto

func (in *AccessControlPolicyList) DeepCopyInto(out *AccessControlPolicyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AccessControlPolicyList) DeepCopyObject

func (in *AccessControlPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AccessControlPolicyOIDC

type AccessControlPolicyOIDC struct {
	Issuer   string `json:"issuer,omitempty"`
	ClientID string `json:"clientId,omitempty"`

	Secret *corev1.SecretReference `json:"secret,omitempty"`

	RedirectURL                 string            `json:"redirectUrl,omitempty"`
	LogoutURL                   string            `json:"logoutUrl,omitempty"`
	DisableAuthRedirectionPaths []string          `json:"disableAuthRedirectionPaths,omitempty"`
	AuthParams                  map[string]string `json:"authParams,omitempty"`

	StateCookie *StateCookie `json:"stateCookie,omitempty"`
	Session     *Session     `json:"session,omitempty"`

	Scopes         []string          `json:"scopes,omitempty"`
	ForwardHeaders map[string]string `json:"forwardHeaders,omitempty"`
	Claims         string            `json:"claims,omitempty"`
}

AccessControlPolicyOIDC holds the OIDC authentication configuration.

func (*AccessControlPolicyOIDC) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlPolicyOIDC.

func (*AccessControlPolicyOIDC) DeepCopyInto

func (in *AccessControlPolicyOIDC) DeepCopyInto(out *AccessControlPolicyOIDC)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessControlPolicyOIDCGoogle

type AccessControlPolicyOIDCGoogle struct {
	ClientID string `json:"clientId,omitempty"`

	Secret *corev1.SecretReference `json:"secret,omitempty"`

	RedirectURL string            `json:"redirectUrl,omitempty"`
	LogoutURL   string            `json:"logoutUrl,omitempty"`
	AuthParams  map[string]string `json:"authParams,omitempty"`

	StateCookie *StateCookie `json:"stateCookie,omitempty"`
	Session     *Session     `json:"session,omitempty"`

	ForwardHeaders map[string]string `json:"forwardHeaders,omitempty"`
	// Emails are the allowed emails to connect.
	// +kubebuilder:validation:MinItems:=1
	Emails []string `json:"emails,omitempty"`
}

AccessControlPolicyOIDCGoogle holds the Google OIDC authentication configuration.

func (*AccessControlPolicyOIDCGoogle) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlPolicyOIDCGoogle.

func (*AccessControlPolicyOIDCGoogle) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessControlPolicySpec

type AccessControlPolicySpec struct {
	JWT        *AccessControlPolicyJWT        `json:"jwt,omitempty"`
	BasicAuth  *AccessControlPolicyBasicAuth  `json:"basicAuth,omitempty"`
	APIKey     *AccessControlPolicyAPIKey     `json:"apiKey,omitempty"`
	OIDC       *AccessControlPolicyOIDC       `json:"oidc,omitempty"`
	OIDCGoogle *AccessControlPolicyOIDCGoogle `json:"oidcGoogle,omitempty"`
	OAuthIntro *AccessControlOAuthIntro       `json:"oAuthIntro,omitempty"`
}

AccessControlPolicySpec configures an access control policy.

func (*AccessControlPolicySpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlPolicySpec.

func (*AccessControlPolicySpec) DeepCopyInto

func (in *AccessControlPolicySpec) DeepCopyInto(out *AccessControlPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AccessControlPolicyStatus

type AccessControlPolicyStatus struct {
	Version  string      `json:"version,omitempty"`
	SyncedAt metav1.Time `json:"syncedAt,omitempty"`
	SpecHash string      `json:"specHash,omitempty"`
}

AccessControlPolicyStatus is the status of the access control policy.

func (*AccessControlPolicyStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessControlPolicyStatus.

func (*AccessControlPolicyStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPClientConfig

type HTTPClientConfig struct {
	// TLS configures TLS communication with the Authorization Server.
	TLS *HTTPClientConfigTLS `json:"tls,omitempty"`
	// TimeoutSeconds configures the maximum amount of seconds to wait before giving up on requests.
	// +kubebuilder:default:=5
	TimeoutSeconds int `json:"timeoutSeconds,omitempty"`
	// MaxRetries defines the number of retries for introspection requests.
	// +kubebuilder:default:=3
	MaxRetries int `json:"maxRetries,omitempty"`
}

HTTPClientConfig configures HTTP clients.

func (*HTTPClientConfig) DeepCopy

func (in *HTTPClientConfig) DeepCopy() *HTTPClientConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPClientConfig.

func (*HTTPClientConfig) DeepCopyInto

func (in *HTTPClientConfig) DeepCopyInto(out *HTTPClientConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPClientConfigTLS

type HTTPClientConfigTLS struct {
	// CA sets the CA bundle used to sign the Authorization Server certificate.
	CA string `json:"ca,omitempty"`
	// InsecureSkipVerify skips the Authorization Server certificate validation.
	// For testing purposes only, do not use in production.
	InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"`
}

HTTPClientConfigTLS configures TLS for HTTP clients.

func (*HTTPClientConfigTLS) DeepCopy

func (in *HTTPClientConfigTLS) DeepCopy() *HTTPClientConfigTLS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPClientConfigTLS.

func (*HTTPClientConfigTLS) DeepCopyInto

func (in *HTTPClientConfigTLS) DeepCopyInto(out *HTTPClientConfigTLS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OIDCConfigStatus

type OIDCConfigStatus struct {
	// Generic indicates whether or not the APIPortal authentication relies on Generic OIDC.
	// +optional
	Generic bool `json:"generic,omitempty"`

	// Issuer is the OIDC issuer for accessing the exposed APIPortal WebUI.
	// +optional
	Issuer string `json:"issuer,omitempty"`

	// ClientID is the OIDC ClientID for accessing the exposed APIPortal WebUI.
	// +optional
	ClientID string `json:"clientId,omitempty"`

	// SecretName is the name of the secret containing the OIDC ClientSecret for accessing the exposed APIPortal WebUI.
	// +optional
	SecretName string `json:"secretName,omitempty"`

	// Scopes is the OIDC scopes for getting user attributes during the authentication to the exposed APIPortal WebUI.
	// +optional
	Scopes string `json:"scopes,omitempty"`

	// UserIDClaim is the name of the JWT claim containing the user ID.
	// +optional
	UserIDClaim string `json:"userIdClaim,omitempty"`

	// FirstnameClaim is the name of the JWT claim containing the user firstname.
	// +optional
	FirstnameClaim string `json:"firstnameClaim,omitempty"`

	// LastnameClaim is the name of the JWT claim containing the user lastname.
	// +optional
	LastnameClaim string `json:"lastnameClaim,omitempty"`

	// EmailClaim is the name of the JWT claim containing the user email.
	// +optional
	EmailClaim string `json:"emailClaim,omitempty"`

	// GroupsClaim is the name of the JWT claim containing the user groups.
	// +optional
	GroupsClaim string `json:"groupsClaim,omitempty"`

	// CompanyClaim is the name of the JWT claim containing the user company.
	// +optional
	CompanyClaim string `json:"companyClaim,omitempty"`

	// SyncedAttributes configure the user attributes to sync.
	// +optional
	SyncedAttributes []string `json:"syncedAttributes,omitempty"`
}

OIDCConfigStatus is the OIDC configuration status.

func (*OIDCConfigStatus) DeepCopy

func (in *OIDCConfigStatus) DeepCopy() *OIDCConfigStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCConfigStatus.

func (*OIDCConfigStatus) DeepCopyInto

func (in *OIDCConfigStatus) DeepCopyInto(out *OIDCConfigStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenAPISpec

type OpenAPISpec struct {
	// URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification.
	// The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification.
	// +optional
	// +kubebuilder:validation:XValidation:message="must be a valid URL",rule="isURL(self)"
	URL string `json:"url,omitempty"`

	// Override holds data used to override OpenAPI specification.
	// +optional
	Override *Override `json:"override,omitempty"`

	// Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained.
	// The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached.
	// It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services.
	// The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification.
	// +optional
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:XValidation:message="must start with a '/'",rule="self.startsWith('/')"
	// +kubebuilder:validation:XValidation:message="cannot contains '../'",rule="!self.matches(r\"\"\"(\\/\\.\\.\\/)|(\\/\\.\\.$)\"\"\")"
	Path string `json:"path,omitempty"`

	// OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses.
	// +optional
	// +kubebuilder:validation:MaxItems=100
	OperationSets []OperationSet `json:"operationSets,omitempty"`
}

OpenAPISpec defines the API contract as an OpenAPI specification.

func (*OpenAPISpec) DeepCopy

func (in *OpenAPISpec) DeepCopy() *OpenAPISpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenAPISpec.

func (*OpenAPISpec) DeepCopyInto

func (in *OpenAPISpec) DeepCopyInto(out *OpenAPISpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperationFilter

type OperationFilter struct {
	// Include defines the names of OperationSets that will be accessible.
	// +optional
	// +kubebuilder:validation:MaxItems=100
	Include []string `json:"include,omitempty"`
}

OperationFilter specifies the allowed operations on APIs and APIVersions.

func (*OperationFilter) DeepCopy

func (in *OperationFilter) DeepCopy() *OperationFilter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationFilter.

func (*OperationFilter) DeepCopyInto

func (in *OperationFilter) DeepCopyInto(out *OperationFilter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperationMatcher

type OperationMatcher struct {
	// Path specifies the exact path of the operations to select.
	// +optional
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:XValidation:message="must start with a '/'",rule="self.startsWith('/')"
	// +kubebuilder:validation:XValidation:message="cannot contains '../'",rule="!self.matches(r\"\"\"(\\/\\.\\.\\/)|(\\/\\.\\.$)\"\"\")"
	Path string `json:"path,omitempty"`

	// PathPrefix specifies the path prefix of the operations to select.
	// +optional
	// +kubebuilder:validation:MaxLength=255
	// +kubebuilder:validation:XValidation:message="must start with a '/'",rule="self.startsWith('/')"
	// +kubebuilder:validation:XValidation:message="cannot contains '../'",rule="!self.matches(r\"\"\"(\\/\\.\\.\\/)|(\\/\\.\\.$)\"\"\")"
	PathPrefix string `json:"pathPrefix,omitempty"`

	// PathRegex specifies a regular expression pattern for matching operations based on their paths.
	// +optional
	PathRegex string `json:"pathRegex,omitempty"`

	// Methods specifies the HTTP methods to be included for selection.
	// +optional
	// +kubebuilder:validation:MaxItems=10
	Methods *[]string `json:"methods,omitempty"`
}

OperationMatcher defines criteria for matching an OpenAPI operation. +kubebuilder:validation:MinProperties=1 +kubebuilder:validation:XValidation:message="path, pathPrefix and pathRegex are mutually exclusive",rule="[has(self.path), has(self.pathPrefix), has(self.pathRegex)].filter(x, x).size() <= 1"

func (*OperationMatcher) DeepCopy

func (in *OperationMatcher) DeepCopy() *OperationMatcher

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationMatcher.

func (*OperationMatcher) DeepCopyInto

func (in *OperationMatcher) DeepCopyInto(out *OperationMatcher)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperationSet

type OperationSet struct {
	// Name is the name of the OperationSet to reference in APIAccesses.
	// +kubebuilder:validation:MaxLength=253
	Name string `json:"name"`

	// Matchers defines a list of alternative rules for matching OpenAPI operations.
	// +kubebuilder:validation:MaxItems=100
	// +kubebuilder:validation:MinItems=1
	Matchers []OperationMatcher `json:"matchers"`
}

OperationSet gives a name to a set of matching OpenAPI operations. This set of operations can then be referenced for granular filtering in APIAccesses.

func (*OperationSet) DeepCopy

func (in *OperationSet) DeepCopy() *OperationSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationSet.

func (*OperationSet) DeepCopyInto

func (in *OperationSet) DeepCopyInto(out *OperationSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Override added in v1.3.0

type Override struct {
	// +kubebuilder:validation:MaxItems=100
	// +kubebuilder:validation:MinItems=1
	Servers []Server `json:"servers"`
}

func (*Override) DeepCopy added in v1.3.0

func (in *Override) DeepCopy() *Override

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Override.

func (*Override) DeepCopyInto added in v1.3.0

func (in *Override) DeepCopyInto(out *Override)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Period

type Period time.Duration

Period describes the time window on which a limit applies. +kubebuilder:validation:Type=string +kubebuilder:validation:Format=duration

func NewPeriod

func NewPeriod(d time.Duration) *Period

NewPeriod creates a new Period.

func (*Period) IsZero

func (p *Period) IsZero() bool

IsZero checks whether the period is a zero-value Period.

func (*Period) MarshalJSON

func (p *Period) MarshalJSON() ([]byte, error)

MarshalJSON marshals the Period.

func (*Period) Seconds

func (p *Period) Seconds() float64

Seconds returns the period in seconds.

func (*Period) String

func (p *Period) String() string

func (*Period) UnmarshalJSON

func (p *Period) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the buffer into a Period.

type Server added in v1.3.1

type Server struct {
	// +kubebuilder:validation:XValidation:message="must be a valid URL",rule="isURL(self)"
	URL string `json:"url"`
}

func (*Server) DeepCopy added in v1.3.1

func (in *Server) DeepCopy() *Server

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Server.

func (*Server) DeepCopyInto added in v1.3.1

func (in *Server) DeepCopyInto(out *Server)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Session

type Session struct {
	SameSite string `json:"sameSite,omitempty"`
	Secure   bool   `json:"secure,omitempty"`
	Domain   string `json:"domain,omitempty"`
	Path     string `json:"path,omitempty"`
	Refresh  *bool  `json:"refresh,omitempty"`
}

Session holds session configuration.

func (*Session) DeepCopy

func (in *Session) DeepCopy() *Session

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Session.

func (*Session) DeepCopyInto

func (in *Session) DeepCopyInto(out *Session)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StateCookie

type StateCookie struct {
	SameSite string `json:"sameSite,omitempty"`
	Secure   bool   `json:"secure,omitempty"`
	Domain   string `json:"domain,omitempty"`
	Path     string `json:"path,omitempty"`
}

StateCookie holds state cookie configuration.

func (*StateCookie) DeepCopy

func (in *StateCookie) DeepCopy() *StateCookie

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StateCookie.

func (*StateCookie) DeepCopyInto

func (in *StateCookie) DeepCopyInto(out *StateCookie)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Strategy

type Strategy string

Strategy defines how the rate limit buckets will be stored.

const (
	StrategyLocal       Strategy = "local"
	StrategyDistributed Strategy = "distributed"
)

Supported rate limiting strategy.

type TokenSource

type TokenSource struct {
	// Header is the name of a header.
	Header string `json:"header,omitempty"`
	// HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization".
	// If set, this scheme is removed from the token, and all requests not including it are dropped.
	HeaderAuthScheme string `json:"headerAuthScheme,omitempty"`
	// Query is the name of a query parameter.
	Query string `json:"query,omitempty"`
	// Cookie is the name of a cookie.
	Cookie string `json:"cookie,omitempty"`
}

TokenSource describes how to extract tokens from HTTP requests. If multiple sources are set, the order is the following: header > query > cookie.

func (*TokenSource) DeepCopy

func (in *TokenSource) DeepCopy() *TokenSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenSource.

func (*TokenSource) DeepCopyInto

func (in *TokenSource) DeepCopyInto(out *TokenSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UISpec

type UISpec struct {
	// LogoURL is the public URL of the logo.
	// +optional
	LogoURL string `json:"logoUrl,omitempty"`
}

UISpec configures the UI customization.

func (*UISpec) DeepCopy

func (in *UISpec) DeepCopy() *UISpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UISpec.

func (*UISpec) DeepCopyInto

func (in *UISpec) DeepCopyInto(out *UISpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL