# ---------------------------------------------------------------------------
# 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/v1beta1
kind: CustomResourceDefinition
metadata:
  name: integrations.camel.apache.org
  labels:
    app: "camel-k"
spec:
  additionalPrinterColumns:
    - JSONPath: .status.phase
      description: The integration phase
      name: Phase
      type: string
    - JSONPath: .status.kit
      description: The integration kit
      name: Kit
      type: string
    - JSONPath: .status.replicas
      description: The number of pods
      name: Replicas
      type: integer
  group: camel.apache.org
  names:
    kind: Integration
    listKind: IntegrationList
    plural: integrations
    shortNames:
      - it
    singular: integration
    categories:
      - kamel
      - camel
  scope: Namespaced
  subresources:
    scale:
      labelSelectorPath: .status.selector
      specReplicasPath: .spec.replicas
      statusReplicasPath: .status.replicas
    status: {}
  validation:
    openAPIV3Schema:
      description: Integration is the Schema for the integrations 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: IntegrationSpec defines the desired state of Integration
          properties:
            configuration:
              items:
                description: ConfigurationSpec --
                properties:
                  type:
                    type: string
                  value:
                    type: string
                required:
                  - type
                  - value
                type: object
              type: array
            dependencies:
              items:
                type: string
              type: array
            flows:
              items:
                type: object
              type: array
            kit:
              type: string
            profile:
              description: TraitProfile represents lists of traits that are enabled
                for the specific installation/integration
              type: string
            replicas:
              format: int32
              type: integer
            repositories:
              items:
                type: string
              type: array
            resources:
              items:
                description: ResourceSpec --
                properties:
                  compression:
                    type: boolean
                  content:
                    type: string
                  contentKey:
                    type: string
                  contentRef:
                    type: string
                  mountPath:
                    type: string
                  name:
                    type: string
                  type:
                    description: ResourceType --
                    type: string
                type: object
              type: array
            serviceAccountName:
              type: string
            sources:
              items:
                description: SourceSpec --
                properties:
                  compression:
                    type: boolean
                  content:
                    type: string
                  contentKey:
                    type: string
                  contentRef:
                    type: string
                  interceptors:
                    description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
                      uses to pre/post process sources
                    items:
                      type: string
                    type: array
                  language:
                    description: Language --
                    type: string
                  loader:
                    description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                      that will interpret this source at runtime
                    type: string
                  name:
                    type: string
                type: object
              type: array
            traits:
              additionalProperties:
                description: A TraitSpec contains the configuration of a trait
                properties:
                  configuration:
                    type: object
                required:
                  - configuration
                type: object
              type: object
          type: object
        status:
          description: IntegrationStatus defines the observed state of Integration
          properties:
            capabilities:
              items:
                type: string
              type: array
            conditions:
              items:
                description: IntegrationCondition 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
            dependencies:
              items:
                type: string
              type: array
            digest:
              type: string
            failure:
              description: Failure --
              properties:
                reason:
                  type: string
                recovery:
                  description: FailureRecovery --
                  properties:
                    attempt:
                      type: integer
                    attemptMax:
                      type: integer
                    attemptTime:
                      format: date-time
                      type: string
                  required:
                    - attempt
                    - attemptMax
                  type: object
                time:
                  format: date-time
                  type: string
              required:
                - reason
                - recovery
                - time
              type: object
            generatedResources:
              items:
                description: ResourceSpec --
                properties:
                  compression:
                    type: boolean
                  content:
                    type: string
                  contentKey:
                    type: string
                  contentRef:
                    type: string
                  mountPath:
                    type: string
                  name:
                    type: string
                  type:
                    description: ResourceType --
                    type: string
                type: object
              type: array
            generatedSources:
              items:
                description: SourceSpec --
                properties:
                  compression:
                    type: boolean
                  content:
                    type: string
                  contentKey:
                    type: string
                  contentRef:
                    type: string
                  interceptors:
                    description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
                      uses to pre/post process sources
                    items:
                      type: string
                    type: array
                  language:
                    description: Language --
                    type: string
                  loader:
                    description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                      that will interpret this source at runtime
                    type: string
                  name:
                    type: string
                type: object
              type: array
            image:
              type: string
            kit:
              type: string
            phase:
              description: IntegrationPhase --
              type: string
            platform:
              type: string
            profile:
              description: TraitProfile represents lists of traits that are enabled
                for the specific installation/integration
              type: string
            replicas:
              format: int32
              type: integer
            runtimeProvider:
              description: RuntimeProvider --
              type: string
            runtimeVersion:
              type: string
            selector:
              type: string
            version:
              type: string
          type: object
      type: object
  version: v1
  versions:
    - name: v1
      served: true
      storage: true
