# ---------------------------------------------------------------------------
# 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: kamelets.camel.apache.org
spec:
  additionalPrinterColumns:
  - JSONPath: .status.phase
    description: The Kamelet phase
    name: Phase
    type: string
  group: camel.apache.org
  names:
    categories:
    - kamel
    - camel
    kind: Kamelet
    listKind: KameletList
    plural: kamelets
    shortNames:
    - kl
    singular: kamelet
  scope: Namespaced
  subresources:
    status: {}
  validation:
    openAPIV3Schema:
      description: Kamelet is the Schema for the kamelets 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: KameletSpec defines the desired state of Kamelet
          properties:
            authorization:
              description: AuthorizationSpec is TODO (oauth information)
              type: object
            definition:
              description: JSONSchemaProps is a JSON-Schema definition.
              properties:
                $ref:
                  type: string
                $schema:
                  description: JSONSchemaURL represents a schema url.
                  type: string
                additionalItems:
                  type: boolean
                additionalProperties:
                  type: boolean
                allOf:
                  items: {}
                  type: array
                anyOf:
                  items: {}
                  type: array
                default:
                  description: default is a default value for undefined object fields.
                    Defaulting is a beta feature under the CustomResourceDefaulting
                    feature gate. Defaulting requires spec.preserveUnknownFields to
                    be false.
                  format: byte
                  type: string
                definitions:
                  additionalProperties: {}
                  description: JSONSchemaDefinitions contains the models explicitly
                    defined in this spec.
                  type: object
                dependencies:
                  additionalProperties:
                    items:
                      type: string
                    type: array
                  description: JSONSchemaDependencies represent a dependencies property.
                  type: object
                description:
                  type: string
                enum:
                  items:
                    description: 'JSON represents any valid JSON value. These types
                      are supported: bool, int64, float64, string, []interface{},
                      map[string]interface{} and nil.'
                    format: byte
                    type: string
                  type: array
                example:
                  description: 'JSON represents any valid JSON value. These types
                    are supported: bool, int64, float64, string, []interface{}, map[string]interface{}
                    and nil.'
                  format: byte
                  type: string
                exclusiveMaximum:
                  type: boolean
                exclusiveMinimum:
                  type: boolean
                externalDocs:
                  description: ExternalDocumentation allows referencing an external
                    resource for extended documentation.
                  properties:
                    description:
                      type: string
                    url:
                      type: string
                  type: object
                format:
                  description: "format is an OpenAPI v3 format string. Unknown formats
                    are ignored. The following formats are validated: \n - bsonobjectid:
                    a bson object ID, i.e. a 24 characters hex string - uri: an URI
                    as parsed by Golang net/url.ParseRequestURI - email: an email
                    address as parsed by Golang net/mail.ParseAddress - hostname:
                    a valid representation for an Internet host name, as defined by
                    RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed
                    by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP
                    - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC
                    address as parsed by Golang net.ParseMAC - uuid: an UUID that
                    allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$
                    - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$
                    - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
                    - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
                    - isbn: an ISBN10 or ISBN13 number string like \"0321751043\"
                    or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\"
                    - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard:
                    a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$
                    with any non digit characters mixed in - ssn: a U.S. social security
                    number following the regex ^\\\\d{3}[- ]?\\\\d{2}[- ]?\\\\d{4}$
                    - hexcolor: an hexadecimal color code like \"#FFFFFF: following
                    the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB
                    color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded
                    binary data - password: any kind of string - date: a date string
                    like \"2006-01-02\" as defined by full-date in RFC3339 - duration:
                    a duration string like \"22 ns\" as parsed by Golang time.ParseDuration
                    or compatible with Scala duration format - datetime: a date time
                    string like \"2014-12-15T19:30:20.000Z\" as defined by date-time
                    in RFC3339."
                  type: string
                id:
                  type: string
                items: {}
                maxItems:
                  format: int64
                  type: integer
                maxLength:
                  format: int64
                  type: integer
                maxProperties:
                  format: int64
                  type: integer
                maximum:
                  description: A Number represents a JSON number literal.
                  type: string
                minItems:
                  format: int64
                  type: integer
                minLength:
                  format: int64
                  type: integer
                minProperties:
                  format: int64
                  type: integer
                minimum:
                  description: A Number represents a JSON number literal.
                  type: string
                multipleOf:
                  description: A Number represents a JSON number literal.
                  type: string
                not: {}
                nullable:
                  type: boolean
                oneOf:
                  items: {}
                  type: array
                pattern:
                  type: string
                patternProperties:
                  additionalProperties: {}
                  type: object
                properties:
                  additionalProperties: {}
                  type: object
                required:
                  items:
                    type: string
                  type: array
                title:
                  type: string
                type:
                  type: string
                uniqueItems:
                  type: boolean
                x-descriptors:
                  description: x-descriptors annotates an object to define additional
                    display options.
                  items:
                    type: string
                  type: array
                x-kubernetes-embedded-resource:
                  description: x-kubernetes-embedded-resource defines that the value
                    is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta.
                    The type must be object. It is allowed to further restrict the
                    embedded object. kind, apiVersion and metadata are validated automatically.
                    x-kubernetes-preserve-unknown-fields is allowed to be true, but
                    does not have to be if the object is fully specified (up to kind,
                    apiVersion, metadata).
                  type: boolean
                x-kubernetes-int-or-string:
                  description: "x-kubernetes-int-or-string specifies that this value
                    is either an integer or a string. If this is true, an empty type
                    is allowed and type as child of anyOf is permitted if following
                    one of the following patterns: \n 1) anyOf:    - type: integer
                    \   - type: string 2) allOf:    - anyOf:      - type: integer
                    \     - type: string    - ... zero or more"
                  type: boolean
                x-kubernetes-list-map-keys:
                  description: "x-kubernetes-list-map-keys annotates an array with
                    the x-kubernetes-list-type `map` by specifying the keys used as
                    the index of the map. \n This tag MUST only be used on lists that
                    have the \"x-kubernetes-list-type\" extension set to \"map\".
                    Also, the values specified for this attribute must be a scalar
                    typed field of the child structure (no nesting is supported).
                    \n The properties specified must either be required or have a
                    default value, to ensure those properties are present for all
                    list items."
                  items:
                    type: string
                  type: array
                x-kubernetes-list-type:
                  description: "x-kubernetes-list-type annotates an array to further
                    describe its topology. This extension must only be used on lists
                    and may have 3 possible values: \n 1) `atomic`: the list is treated
                    as a single entity, like a scalar.      Atomic lists will be entirely
                    replaced when updated. This extension      may be used on any
                    type of list (struct, scalar, ...). 2) `set`:      Sets are lists
                    that must not have multiple items with the same value. Each      value
                    must be a scalar, an object with x-kubernetes-map-type `atomic`
                    or an      array with x-kubernetes-list-type `atomic`. 3) `map`:
                    \     These lists are like maps in that their elements have a
                    non-index key      used to identify them. Order is preserved upon
                    merge. The map tag      must only be used on a list with elements
                    of type object. Defaults to atomic for arrays."
                  type: string
                x-kubernetes-map-type:
                  description: "x-kubernetes-map-type annotates an object to further
                    describe its topology. This extension must only be used when type
                    is object and may have 2 possible values: \n 1) `granular`:      These
                    maps are actual maps (key-value pairs) and each fields are independent
                    \     from each other (they can each be manipulated by separate
                    actors). This is      the default behaviour for all maps. 2) `atomic`:
                    the list is treated as a single entity, like a scalar.      Atomic
                    maps will be entirely replaced when updated."
                  type: string
                x-kubernetes-preserve-unknown-fields:
                  description: x-kubernetes-preserve-unknown-fields stops the API
                    server decoding step from pruning fields which are not specified
                    in the validation schema. This affects fields recursively, but
                    switches back to normal pruning behaviour if nested properties
                    or additionalProperties are specified in the schema. This can
                    either be true or undefined. False is forbidden.
                  type: boolean
              type: object
            dependencies:
              items:
                type: string
              type: array
            flow:
              description: Flow is an unstructured object representing a Camel Flow
                in YAML/JSON DSL
              type: object
            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
            types:
              additionalProperties:
                properties:
                  mediaType:
                    type: string
                  schema:
                    description: JSONSchemaProps is a JSON-Schema definition.
                    properties:
                      $ref:
                        type: string
                      $schema:
                        description: JSONSchemaURL represents a schema url.
                        type: string
                      additionalItems:
                        type: boolean
                      additionalProperties:
                        type: boolean
                      allOf:
                        items: {}
                        type: array
                      anyOf:
                        items: {}
                        type: array
                      default:
                        description: default is a default value for undefined object
                          fields. Defaulting is a beta feature under the CustomResourceDefaulting
                          feature gate. Defaulting requires spec.preserveUnknownFields
                          to be false.
                        format: byte
                        type: string
                      definitions:
                        additionalProperties: {}
                        description: JSONSchemaDefinitions contains the models explicitly
                          defined in this spec.
                        type: object
                      dependencies:
                        additionalProperties:
                          items:
                            type: string
                          type: array
                        description: JSONSchemaDependencies represent a dependencies
                          property.
                        type: object
                      description:
                        type: string
                      enum:
                        items:
                          description: 'JSON represents any valid JSON value. These
                            types are supported: bool, int64, float64, string, []interface{},
                            map[string]interface{} and nil.'
                          format: byte
                          type: string
                        type: array
                      example:
                        description: 'JSON represents any valid JSON value. These
                          types are supported: bool, int64, float64, string, []interface{},
                          map[string]interface{} and nil.'
                        format: byte
                        type: string
                      exclusiveMaximum:
                        type: boolean
                      exclusiveMinimum:
                        type: boolean
                      externalDocs:
                        description: ExternalDocumentation allows referencing an external
                          resource for extended documentation.
                        properties:
                          description:
                            type: string
                          url:
                            type: string
                        type: object
                      format:
                        description: "format is an OpenAPI v3 format string. Unknown
                          formats are ignored. The following formats are validated:
                          \n - bsonobjectid: a bson object ID, i.e. a 24 characters
                          hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI
                          - email: an email address as parsed by Golang net/mail.ParseAddress
                          - hostname: a valid representation for an Internet host
                          name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4:
                          an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6
                          IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed
                          by Golang net.ParseCIDR - mac: a MAC address as parsed by
                          Golang net.ParseMAC - uuid: an UUID that allows uppercase
                          defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$
                          - uuid3: an UUID3 that allows uppercase defined by the regex
                          (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$
                          - uuid4: an UUID4 that allows uppercase defined by the regex
                          (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
                          - uuid5: an UUID5 that allows uppercase defined by the regex
                          (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$
                          - isbn: an ISBN10 or ISBN13 number string like \"0321751043\"
                          or \"978-0321751041\" - isbn10: an ISBN10 number string
                          like \"0321751043\" - isbn13: an ISBN13 number string like
                          \"978-0321751041\" - creditcard: a credit card number defined
                          by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\\\d{3})\\\\d{11})$
                          with any non digit characters mixed in - ssn: a U.S. social
                          security number following the regex ^\\\\d{3}[- ]?\\\\d{2}[-
                          ]?\\\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF:
                          following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                          - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\"
                          - byte: base64 encoded binary data - password: any kind
                          of string - date: a date string like \"2006-01-02\" as defined
                          by full-date in RFC3339 - duration: a duration string like
                          \"22 ns\" as parsed by Golang time.ParseDuration or compatible
                          with Scala duration format - datetime: a date time string
                          like \"2014-12-15T19:30:20.000Z\" as defined by date-time
                          in RFC3339."
                        type: string
                      id:
                        type: string
                      items: {}
                      maxItems:
                        format: int64
                        type: integer
                      maxLength:
                        format: int64
                        type: integer
                      maxProperties:
                        format: int64
                        type: integer
                      maximum:
                        description: A Number represents a JSON number literal.
                        type: string
                      minItems:
                        format: int64
                        type: integer
                      minLength:
                        format: int64
                        type: integer
                      minProperties:
                        format: int64
                        type: integer
                      minimum:
                        description: A Number represents a JSON number literal.
                        type: string
                      multipleOf:
                        description: A Number represents a JSON number literal.
                        type: string
                      not: {}
                      nullable:
                        type: boolean
                      oneOf:
                        items: {}
                        type: array
                      pattern:
                        type: string
                      patternProperties:
                        additionalProperties: {}
                        type: object
                      properties:
                        additionalProperties: {}
                        type: object
                      required:
                        items:
                          type: string
                        type: array
                      title:
                        type: string
                      type:
                        type: string
                      uniqueItems:
                        type: boolean
                      x-descriptors:
                        description: x-descriptors annotates an object to define additional
                          display options.
                        items:
                          type: string
                        type: array
                      x-kubernetes-embedded-resource:
                        description: x-kubernetes-embedded-resource defines that the
                          value is an embedded Kubernetes runtime.Object, with TypeMeta
                          and ObjectMeta. The type must be object. It is allowed to
                          further restrict the embedded object. kind, apiVersion and
                          metadata are validated automatically. x-kubernetes-preserve-unknown-fields
                          is allowed to be true, but does not have to be if the object
                          is fully specified (up to kind, apiVersion, metadata).
                        type: boolean
                      x-kubernetes-int-or-string:
                        description: "x-kubernetes-int-or-string specifies that this
                          value is either an integer or a string. If this is true,
                          an empty type is allowed and type as child of anyOf is permitted
                          if following one of the following patterns: \n 1) anyOf:
                          \   - type: integer    - type: string 2) allOf:    - anyOf:
                          \     - type: integer      - type: string    - ... zero
                          or more"
                        type: boolean
                      x-kubernetes-list-map-keys:
                        description: "x-kubernetes-list-map-keys annotates an array
                          with the x-kubernetes-list-type `map` by specifying the
                          keys used as the index of the map. \n This tag MUST only
                          be used on lists that have the \"x-kubernetes-list-type\"
                          extension set to \"map\". Also, the values specified for
                          this attribute must be a scalar typed field of the child
                          structure (no nesting is supported). \n The properties specified
                          must either be required or have a default value, to ensure
                          those properties are present for all list items."
                        items:
                          type: string
                        type: array
                      x-kubernetes-list-type:
                        description: "x-kubernetes-list-type annotates an array to
                          further describe its topology. This extension must only
                          be used on lists and may have 3 possible values: \n 1) `atomic`:
                          the list is treated as a single entity, like a scalar.      Atomic
                          lists will be entirely replaced when updated. This extension
                          \     may be used on any type of list (struct, scalar, ...).
                          2) `set`:      Sets are lists that must not have multiple
                          items with the same value. Each      value must be a scalar,
                          an object with x-kubernetes-map-type `atomic` or an      array
                          with x-kubernetes-list-type `atomic`. 3) `map`:      These
                          lists are like maps in that their elements have a non-index
                          key      used to identify them. Order is preserved upon
                          merge. The map tag      must only be used on a list with
                          elements of type object. Defaults to atomic for arrays."
                        type: string
                      x-kubernetes-map-type:
                        description: "x-kubernetes-map-type annotates an object to
                          further describe its topology. This extension must only
                          be used when type is object and may have 2 possible values:
                          \n 1) `granular`:      These maps are actual maps (key-value
                          pairs) and each fields are independent      from each other
                          (they can each be manipulated by separate actors). This
                          is      the default behaviour for all maps. 2) `atomic`:
                          the list is treated as a single entity, like a scalar.      Atomic
                          maps will be entirely replaced when updated."
                        type: string
                      x-kubernetes-preserve-unknown-fields:
                        description: x-kubernetes-preserve-unknown-fields stops the
                          API server decoding step from pruning fields which are not
                          specified in the validation schema. This affects fields
                          recursively, but switches back to normal pruning behaviour
                          if nested properties or additionalProperties are specified
                          in the schema. This can either be true or undefined. False
                          is forbidden.
                        type: boolean
                    type: object
                type: object
              type: object
          type: object
        status:
          description: KameletStatus defines the observed state of Kamelet
          properties:
            conditions:
              items:
                description: KameletCondition 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 kamelet condition.
                    type: string
                required:
                - status
                - type
                type: object
              type: array
            phase:
              type: string
            properties:
              items:
                properties:
                  default:
                    type: string
                  name:
                    type: string
                type: object
              type: array
          type: object
      type: object
  version: v1alpha1
  versions:
  - name: v1alpha1
    served: true
    storage: true
