--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.14.0 name: apiportals.hub.traefik.io spec: group: hub.traefik.io names: kind: APIPortal listKind: APIPortalList plural: apiportals singular: apiportal scope: Namespaced versions: - name: v1alpha1 schema: openAPIV3Schema: description: APIPortal defines a developer portal for accessing the documentation of APIs. properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: The desired behavior of this APIPortal. properties: description: description: Description of the APIPortal. type: string title: description: Title is the public facing name of the APIPortal. type: string trustedUrls: description: TrustedURLs are the urls that are trusted by the OAuth 2.0 authorization server. items: type: string maxItems: 1 minItems: 1 type: array x-kubernetes-validations: - message: must be a valid URLs rule: self.all(x, isURL(x)) ui: description: UI holds the UI customization options. properties: logoUrl: description: LogoURL is the public URL of the logo. type: string type: object required: - trustedUrls type: object status: description: The current status of this APIPortal. properties: hash: description: Hash is a hash representing the APIPortal. type: string oidc: description: OIDC is the OIDC configuration for accessing the exposed APIPortal WebUI. properties: clientId: description: ClientID is the OIDC ClientID for accessing the exposed APIPortal WebUI. type: string companyClaim: description: CompanyClaim is the name of the JWT claim containing the user company. type: string emailClaim: description: EmailClaim is the name of the JWT claim containing the user email. type: string firstnameClaim: description: FirstnameClaim is the name of the JWT claim containing the user firstname. type: string generic: description: Generic indicates whether or not the APIPortal authentication relies on Generic OIDC. type: boolean groupsClaim: description: GroupsClaim is the name of the JWT claim containing the user groups. type: string issuer: description: Issuer is the OIDC issuer for accessing the exposed APIPortal WebUI. type: string lastnameClaim: description: LastnameClaim is the name of the JWT claim containing the user lastname. type: string scopes: description: Scopes is the OIDC scopes for getting user attributes during the authentication to the exposed APIPortal WebUI. type: string secretName: description: SecretName is the name of the secret containing the OIDC ClientSecret for accessing the exposed APIPortal WebUI. type: string syncedAttributes: description: SyncedAttributes configure the user attributes to sync. items: type: string type: array userIdClaim: description: UserIDClaim is the name of the JWT claim containing the user ID. type: string type: object syncedAt: format: date-time type: string version: type: string type: object type: object served: true storage: true