# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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:
  name: integrationplatforms.camel.apache.org
  labels:
    app: "camel-k"
spec:
  group: camel.apache.org
  names:
    kind: IntegrationPlatform
    listKind: IntegrationPlatformList
    plural: integrationplatforms
    shortNames:
      - ip
    singular: integrationplatform
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - description: The integration platform phase
          jsonPath: .status.phase
          name: Phase
          type: string
      name: v1
      schema:
        openAPIV3Schema:
          description: IntegrationPlatform is the Schema for the integrationplatforms
            API
          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: IntegrationPlatformSpec defines the desired state of IntegrationPlatform
              properties:
                build:
                  description: IntegrationPlatformBuildSpec contains platform related
                    build information
                  properties:
                    baseImage:
                      type: string
                    buildStrategy:
                      description: IntegrationPlatformBuildStrategy enumerates all implemented
                        build strategies
                      type: string
                    httpProxySecret:
                      type: string
                    kanikoBuildCache:
                      type: boolean
                    maven:
                      description: MavenSpec --
                      properties:
                        localRepository:
                          type: string
                        settings:
                          description: ValueSource --
                          properties:
                            configMapKeyRef:
                              description: Selects a key of a ConfigMap.
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind,
                                  uid?'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its
                                    key must be defined
                                  type: boolean
                              required:
                                - key
                              type: object
                            secretKeyRef:
                              description: Selects a key of a secret.
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must
                                    be a valid secret key.
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind,
                                  uid?'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key
                                    must be defined
                                  type: boolean
                              required:
                                - key
                              type: object
                          type: object
                        timeout:
                          type: string
                      type: object
                    persistentVolumeClaim:
                      type: string
                    properties:
                      additionalProperties:
                        type: string
                      type: object
                    publishStrategy:
                      description: IntegrationPlatformBuildPublishStrategy enumerates
                        all implemented publish strategies
                      type: string
                    registry:
                      description: IntegrationPlatformRegistrySpec --
                      properties:
                        address:
                          type: string
                        ca:
                          type: string
                        insecure:
                          type: boolean
                        organization:
                          type: string
                        secret:
                          type: string
                      type: object
                    runtimeProvider:
                      description: RuntimeProvider --
                      type: string
                    runtimeVersion:
                      type: string
                    timeout:
                      type: string
                  type: object
                cluster:
                  description: IntegrationPlatformCluster is the kind of orchestration
                    cluster the platform is installed into
                  type: string
                configuration:
                  items:
                    description: ConfigurationSpec --
                    properties:
                      type:
                        type: string
                      value:
                        type: string
                    required:
                      - type
                      - value
                    type: object
                  type: array
                profile:
                  description: TraitProfile represents lists of traits that are enabled
                    for the specific installation/integration
                  type: string
                resources:
                  description: IntegrationPlatformResourcesSpec contains platform related
                    resources
                  properties:
                    kits:
                      items:
                        type: string
                      type: array
                  type: object
                traits:
                  additionalProperties:
                    description: A TraitSpec contains the configuration of a trait
                    properties:
                      configuration:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  type: object
              type: object
            status:
              description: IntegrationPlatformStatus defines the observed state of IntegrationPlatform
              properties:
                build:
                  description: IntegrationPlatformBuildSpec contains platform related
                    build information
                  properties:
                    baseImage:
                      type: string
                    buildStrategy:
                      description: IntegrationPlatformBuildStrategy enumerates all implemented
                        build strategies
                      type: string
                    httpProxySecret:
                      type: string
                    kanikoBuildCache:
                      type: boolean
                    maven:
                      description: MavenSpec --
                      properties:
                        localRepository:
                          type: string
                        settings:
                          description: ValueSource --
                          properties:
                            configMapKeyRef:
                              description: Selects a key of a ConfigMap.
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind,
                                  uid?'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its
                                    key must be defined
                                  type: boolean
                              required:
                                - key
                              type: object
                            secretKeyRef:
                              description: Selects a key of a secret.
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must
                                    be a valid secret key.
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind,
                                  uid?'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key
                                    must be defined
                                  type: boolean
                              required:
                                - key
                              type: object
                          type: object
                        timeout:
                          type: string
                      type: object
                    persistentVolumeClaim:
                      type: string
                    properties:
                      additionalProperties:
                        type: string
                      type: object
                    publishStrategy:
                      description: IntegrationPlatformBuildPublishStrategy enumerates
                        all implemented publish strategies
                      type: string
                    registry:
                      description: IntegrationPlatformRegistrySpec --
                      properties:
                        address:
                          type: string
                        ca:
                          type: string
                        insecure:
                          type: boolean
                        organization:
                          type: string
                        secret:
                          type: string
                      type: object
                    runtimeProvider:
                      description: RuntimeProvider --
                      type: string
                    runtimeVersion:
                      type: string
                    timeout:
                      type: string
                  type: object
                cluster:
                  description: IntegrationPlatformCluster is the kind of orchestration
                    cluster the platform is installed into
                  type: string
                conditions:
                  items:
                    description: IntegrationPlatformCondition describes the state of
                      a resource at a certain point.
                    properties:
                      lastTransitionTime:
                        description: Last time the condition transitioned from one status
                          to another.
                        format: date-time
                        type: string
                      lastUpdateTime:
                        description: The last time this condition was updated.
                        format: date-time
                        type: string
                      message:
                        description: A human readable message indicating details about
                          the transition.
                        type: string
                      reason:
                        description: The reason for the condition's last transition.
                        type: string
                      status:
                        description: Status of the condition, one of True, False, Unknown.
                        type: string
                      type:
                        description: Type of integration condition.
                        type: string
                    required:
                      - status
                      - type
                    type: object
                  type: array
                configuration:
                  items:
                    description: ConfigurationSpec --
                    properties:
                      type:
                        type: string
                      value:
                        type: string
                    required:
                      - type
                      - value
                    type: object
                  type: array
                phase:
                  description: IntegrationPlatformPhase --
                  type: string
                profile:
                  description: TraitProfile represents lists of traits that are enabled
                    for the specific installation/integration
                  type: string
                resources:
                  description: IntegrationPlatformResourcesSpec contains platform related
                    resources
                  properties:
                    kits:
                      items:
                        type: string
                      type: array
                  type: object
                traits:
                  additionalProperties:
                    description: A TraitSpec contains the configuration of a trait
                    properties:
                      configuration:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  type: object
                version:
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
