# Copyright (C) 2015 The Gravitee team (http://gravitee.io) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.18.0 gravitee.io/operator.version: 4.12.0-rc name: applications.gravitee.io spec: group: gravitee.io names: kind: Application listKind: ApplicationList plural: applications shortNames: - graviteeapplications singular: application scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.name name: Name type: string - jsonPath: .spec.applicationType name: Type type: string name: v1alpha1 schema: openAPIV3Schema: properties: apiVersion: description: APIVersion defines the versioned schema of this representation of an object. type: string kind: description: Kind is a string value representing the REST resource this object represents. type: string metadata: type: object spec: description: Application is the main resource handled by the Kubernetes Operator properties: background: description: The base64 encoded background to use for this application when displaying it on the portal type: string contextRef: properties: kind: type: string name: type: string namespace: type: string required: - name type: object description: description: Application Description type: string domain: description: Application domain type: string groups: description: Application groups items: type: string type: array hrid: type: string id: description: |- io.gravitee.definition.model.Application Application ID type: string members: description: Application members items: properties: role: default: USER description: The API role associated with this Member type: string source: description: Member source example: gravitee type: string sourceId: description: Member source ID example: user@email.com type: string required: - source - sourceId type: object type: array metadata: description: Application metadata items: properties: defaultValue: description: Metadata DefaultValue type: string format: description: Metadata Format enum: - STRING - NUMERIC - BOOLEAN - DATE - MAIL - URL type: string hidden: description: Metadata is hidden or not? type: boolean name: description: Metadata Name type: string value: description: Metadata Value type: string required: - name type: object type: array name: description: Application name type: string notifyMembers: description: Notify members when they are added to the application type: boolean picture: description: The base64 encoded picture to use for this application when displaying it on the portal (if not... type: string pictureUrl: description: A URL pointing to the picture to use when displaying the application on the portal type: string settings: description: Application settings properties: app: properties: clientId: description: ClientID is the client id of the application type: string type: description: Application Type type: string required: - type type: object oauth: properties: applicationType: description: Oauth client application type enum: - BACKEND_TO_BACKEND - NATIVE - BROWSER - WEB type: string grantTypes: description: List of Oauth client grant types items: enum: - authorization_code - client_credentials - refresh_token - password - implicit type: string type: array redirectUris: description: List of Oauth client redirect uris items: type: string type: array required: - applicationType - grantTypes type: object tls: description: >- TLS settings are used to configure client side TLS in order to be able to subscribe to a MTLS plan. properties: clientCertificate: description: "Deprecated: use ClientCertificates instead." type: string clientCertificates: description: List of client certificates for mTLS plans. items: description: ClientCertificate represents a client certificate for mTLS plans. properties: content: description: Content is the certificate inlined (PEM or Base64) or a template [[ ]] notation. type: string encoded: description: Encoded indicates whether the content is base64 encoded. type: boolean endsAt: description: EndsAt is the optional end date of the certificate validity (RFC3339). type: string name: description: Name is an optional label for this certificate. type: string ref: description: Ref is a reference to a Secret or ConfigMap containing the certificate. properties: key: default: tls.crt description: Key in the referenced Secret or ConfigMap data. Defaults to "tls.crt". type: string kind: default: secrets description: Kind of the referenced resource. Defaults to "secrets". enum: - secrets - configmaps type: string name: description: Name of the referenced Secret or ConfigMap. type: string namespace: description: Namespace of the referenced resource. Defaults to the Application namespace. type: string required: - name type: object startsAt: description: StartsAt is the optional start date of the certificate validity (RFC3339). type: string type: object type: array type: object type: object required: - contextRef - description - name - settings type: object status: description: ApplicationStatus defines the observed state of Application. properties: conditions: default: [] description: Conditions describe the current conditions of the Application. items: description: Condition contains details for one aspect of the current state of this API Resource. properties: lastTransitionTime: description: lastTransitionTime is the last time the condition transitioned from one status to another. format: date-time type: string message: description: message is a human readable message indicating details about the transition. maxLength: 32768 type: string observedGeneration: description: observedGeneration represents the .metadata.generation that the condition was set based upon. format: int64 minimum: 0 type: integer reason: description: reason contains a programmatic identifier indicating the reason for the condition's last transition. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object maxItems: 8 type: array x-kubernetes-list-map-keys: - type x-kubernetes-list-type: map environmentId: description: The environment ID, if a management context has been defined to sync with an APIM instance type: string errors: description: >- When application has been created regardless of errors, this field is used to persist the error... properties: severe: description: >- severe errors do not pass admission and will block reconcile hence, this field should always be... items: type: string type: array warning: description: |- warning errors do not block object reconciliation, most of the time because the value is ignored or... items: type: string type: array type: object id: description: The ID of the Application, if a management context has been defined to sync with an APIM instance type: string organizationId: description: The organization ID, if a management context has been defined to sync with an APIM instance type: string processingStatus: description: The processing status of the Application. type: string subscriptions: description: The number of subscriptions that reference the application type: integer type: object type: object served: true storage: true subresources: status: {}