# ---------------------------------------------------------------------------
# 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:
  labels:
    app: "camel-k"
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: kameletbindings.camel.apache.org
spec:
  additionalPrinterColumns:
  - JSONPath: .status.phase
    description: The Kamelet Binding phase
    name: Phase
    type: string
  group: camel.apache.org
  names:
    categories:
    - kamel
    - camel
    kind: KameletBinding
    listKind: KameletBindingList
    plural: kameletbindings
    shortNames:
    - klb
    singular: kameletbinding
  scope: Namespaced
  subresources:
    status: {}
  validation:
    openAPIV3Schema:
      description: KameletBinding is the Schema for the kamelets binding 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: KameletBindingSpec --
          properties:
            integration:
              description: Integration is an optional integration used to specify
                custom parameters
              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:
                    description: Flow is an unstructured object representing a Camel
                      Flow in YAML/JSON DSL
                    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
                      property-names:
                        description: List of property names defined in the source
                          (e.g. if type is "template")
                        items:
                          type: string
                        type: array
                      type:
                        description: Type defines the kind of source described by
                          this object
                        type: string
                    type: object
                  type: array
                traits:
                  additionalProperties:
                    description: A TraitSpec contains the configuration of a trait
                    properties:
                      configuration:
                        description: TraitConfiguration --
                        type: object
                    required:
                    - configuration
                    type: object
                  type: object
              type: object
            sink:
              description: Sink is the destination of the integration defined by this
                binding
              properties:
                properties:
                  description: Properties are a key value representation of endpoint
                    properties
                  type: object
                ref:
                  description: Ref can be used to declare a Kubernetes resource as
                    source/sink endpoint
                  properties:
                    apiVersion:
                      description: API version of the referent.
                      type: string
                    fieldPath:
                      description: 'If referring to a piece of an object instead of
                        an entire object, this string should contain a valid JSON/Go
                        field access statement, such as desiredState.manifest.containers[2].
                        For example, if the object reference is to a container within
                        a pod, this would take on a value like: "spec.containers{name}"
                        (where "name" refers to the name of the container that triggered
                        the event) or if no container name is specified "spec.containers[2]"
                        (container with index 2 in this pod). This syntax is chosen
                        only to have some well-defined way of referencing a part of
                        an object. TODO: this design is not final and this field is
                        subject to change in the future.'
                      type: string
                    kind:
                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    name:
                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                    namespace:
                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                      type: string
                    resourceVersion:
                      description: 'Specific resourceVersion to which this reference
                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                      type: string
                    uid:
                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                      type: string
                  type: object
                uri:
                  description: URI can alternatively be used to specify the (Camel)
                    endpoint explicitly
                  type: string
              type: object
            source:
              description: Source is the starting point of the integration defined
                by this binding
              properties:
                properties:
                  description: Properties are a key value representation of endpoint
                    properties
                  type: object
                ref:
                  description: Ref can be used to declare a Kubernetes resource as
                    source/sink endpoint
                  properties:
                    apiVersion:
                      description: API version of the referent.
                      type: string
                    fieldPath:
                      description: 'If referring to a piece of an object instead of
                        an entire object, this string should contain a valid JSON/Go
                        field access statement, such as desiredState.manifest.containers[2].
                        For example, if the object reference is to a container within
                        a pod, this would take on a value like: "spec.containers{name}"
                        (where "name" refers to the name of the container that triggered
                        the event) or if no container name is specified "spec.containers[2]"
                        (container with index 2 in this pod). This syntax is chosen
                        only to have some well-defined way of referencing a part of
                        an object. TODO: this design is not final and this field is
                        subject to change in the future.'
                      type: string
                    kind:
                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    name:
                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                    namespace:
                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                      type: string
                    resourceVersion:
                      description: 'Specific resourceVersion to which this reference
                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                      type: string
                    uid:
                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                      type: string
                  type: object
                uri:
                  description: URI can alternatively be used to specify the (Camel)
                    endpoint explicitly
                  type: string
              type: object
          type: object
        status:
          description: KameletBindingStatus --
          properties:
            conditions:
              description: Conditions --
              items:
                description: KameletBindingCondition 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 kameletBinding condition.
                    type: string
                required:
                - status
                - type
                type: object
              type: array
            phase:
              description: Phase --
              type: string
          type: object
      type: object
  version: v1alpha1
  versions:
  - name: v1alpha1
    served: true
    storage: true
