traits:
- name: 3scale
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The 3scale trait can be used to automatically create annotations that
    allow 3scale to discover the generated service and make it available for API management.
    The 3scale trait is disabled by default.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Enables automatic configuration of the trait.
  - name: scheme
    type: string
    description: The scheme to use to contact the service (default `http`)
  - name: path
    type: string
    description: The path where the API is published (default `/`)
  - name: port
    type: int
    description: The port where the service is exposed (default `80`)
  - name: description-path
    type: string
    description: The path where the Open-API specification is published (default `/openapi.json`)
- name: affinity
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: Allows constraining which nodes the integration pod(s) are eligible
    to be scheduled on, based on labels on the node, or with inter-pod affinity and
    anti-affinity, based on labels on pods that are already running on the nodes.
    It's disabled by default.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: pod-affinity
    type: bool
    description: Always co-locates multiple replicas of the integration in the same
      node (default *false*).
  - name: pod-anti-affinity
    type: bool
    description: Never co-locates multiple replicas of the integration in the same
      node (default *false*).
  - name: node-affinity-labels
    type: '[]string'
    description: Defines a set of nodes the integration pod(s) are eligible to be
      scheduled on, based on labels on the node.
  - name: pod-affinity-labels
    type: '[]string'
    description: Defines a set of pods (namely those matching the label selector,
      relative to the given namespace) that the integration pod(s) should be co-located
      with.
  - name: pod-anti-affinity-labels
    type: '[]string'
    description: Defines a set of pods (namely those matching the label selector,
      relative to the given namespace) that the integration pod(s) should not be co-located
      with.
- name: aws-secrets-manager
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Secrets Manager trait can be used to use secrets from AWS Secrets
    Manager The AWS Secrets Manager trait is disabled by default. For more information
    about how to use secrets from AWS Secrets Manager take a look at the components
    docs: xref:components::aws-secrets-manager-component.adoc[AWS Secrets Manager
    component] A sample execution of this trait, would require the following trait
    options: -t aws-secrets-manager.enabled=true -t aws-secrets-manager.access-key="aws-access-key"
    -t aws-secrets-manager.secret-key="aws-secret-key" -t aws-secrets-manager.region="aws-region"
    To enable the automatic context reload on secrets updates you should define the
    following trait options: -t aws-secrets-manager.enabled=true -t aws-secrets-manager.access-key="aws-access-key"
    -t aws-secrets-manager.secret-key="aws-secret-key" -t aws-secrets-manager.region="aws-region"
    -t aws-secrets-manager.context-reload-enabled="true" -t aws-secrets-manager.refresh-enabled="true"
    -t aws-secrets-manager.refresh-period="30000" -t aws-secrets-manager.secrets="test*"'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Enables automatic configuration of the trait.
  - name: access-key
    type: string
    description: The AWS Access Key to use
  - name: secret-key
    type: string
    description: The AWS Secret Key to use
  - name: region
    type: string
    description: The AWS Region to use
  - name: use-default-credentials-provider
    type: bool
    description: Define if we want to use the Default Credentials Provider chain as
      authentication method
  - name: context-reload-enabled
    type: bool
    description: Define if we want to use the Camel Context Reload feature or not
  - name: refresh-enabled
    type: bool
    description: Define if we want to use the Refresh Feature for secrets
  - name: refresh-period
    type: string
    description: If Refresh is enabled, this defines the interval to check the refresh
      event
  - name: secrets
    type: string
    description: If Refresh is enabled, the regular expression representing the secrets
      we want to track
- name: azure-key-vault
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Azure Key Vault trait can be used to use secrets from Azure Key
    Vault service The Azure Key Vault trait is disabled by default. For more information
    about how to use secrets from Azure Key Vault component take a look at the components
    docs: xref:components::azure-key-vault-component.adoc[Azure Key Vault component]
    A sample execution of this trait, would require the following trait options: -t
    azure-key-vault.enabled=true -t azure-key-vault.tenant-id="tenant-id" -t azure-key-vault.client-id="client-id"
    -t azure-key-vault.client-secret="client-secret" -t azure-key-vault.vault-name="vault-name"
    To enable the automatic context reload on secrets updates you should define the
    following trait options: -t azure-key-vault.enabled=true -t azure-key-vault.tenant-id="tenant-id"
    -t azure-key-vault.client-id="client-id" -t azure-key-vault.client-secret="client-secret"
    -t azure-key-vault.vault-name="vault-name" -t azure-key-vault.context-reload-enabled="true"
    -t azure-key-vault.refresh-enabled="true" -t azure-key-vault.refresh-period="30000"
    -t azure-key-vault.secrets="test*" -t azure-key-vault.eventhub-connection-string="connection-string"
    -t azure-key-vault.blob-account-name="account-name"  -t azure-key-vault.blob-container-name="container-name"  -t
    azure-key-vault.blob-access-key="account-name"'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Enables automatic configuration of the trait.
  - name: tenant-id
    type: string
    description: The Azure Tenant Id for accessing Key Vault
  - name: client-id
    type: string
    description: The Azure Client Id for accessing Key Vault
  - name: client-secret
    type: string
    description: The Azure Client Secret for accessing Key Vault
  - name: vault-name
    type: string
    description: The Azure Vault Name for accessing Key Vault
  - name: context-reload-enabled
    type: bool
    description: Define if we want to use the Camel Context Reload feature or not
  - name: refresh-enabled
    type: bool
    description: Define if we want to use the Refresh Feature for secrets
  - name: refresh-period
    type: string
    description: If Refresh is enabled, this defines the interval to check the refresh
      event
  - name: secrets
    type: string
    description: If Refresh is enabled, the regular expression representing the secrets
      we want to track
  - name: eventhub-connection-string
    type: string
    description: If Refresh is enabled, the connection String to point to the Eventhub
      service used to track updates
  - name: blob-account-name
    type: string
    description: If Refresh is enabled, the account name for Azure Storage Blob service
      used to save checkpoint while consuming from Eventhub
  - name: blob-access-key
    type: string
    description: If Refresh is enabled, the access key for Azure Storage Blob service
      used to save checkpoint while consuming from Eventhub
  - name: blob-container-name
    type: string
    description: If Refresh is enabled, the container name for Azure Storage Blob
      service used to save checkpoint while consuming from Eventhub
- name: builder
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: BuilderTrait is internally used to determine the best strategy to build
    and configure IntegrationKits.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: verbose
    type: bool
    description: Enable verbose logging on build components that support it (e.g.
      Kaniko build pod).
  - name: properties
    type: '[]string'
    description: A list of properties to be provided to the build task
  - name: strategy
    type: string
    description: The strategy to use, either `pod` or `routine` (default routine)
  - name: order-strategy
    type: string
    description: The build order strategy to use, either `dependencies`, `fifo` or
      `sequential` (default sequential)
  - name: request-cpu
    type: string
    description: When using `pod` strategy, the minimum amount of CPU required by
      the pod builder.
  - name: request-memory
    type: string
    description: When using `pod` strategy, the minimum amount of memory required
      by the pod builder.
  - name: limit-cpu
    type: string
    description: When using `pod` strategy, the maximum amount of CPU required by
      the pod builder.
  - name: limit-memory
    type: string
    description: When using `pod` strategy, the maximum amount of memory required
      by the pod builder.
  - name: maven-profile
    type: string
    description: 'A reference pointing to a configmap/secret that contains a maven
      profile. The content of the maven profile is expected to be a text containing
      a valid maven profile starting with `<profile>` and ending with `</profile>`
      that will be integrated as an inline profile in the POM. Syntax: [configmap|secret]:name[/key],
      where name represents the resource name, key optionally represents the resource
      key to be filtered (default key value = profile.xml).'
  - name: tasks
    type: '[]string'
    description: A list of tasks to be executed (available only when using `pod` strategy)
      with format <name>;<container-image>;<container-command>
- name: camel
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Camel trait can be used to configure versions of Apache Camel K
    runtime and related libraries, it cannot be disabled.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: runtime-version
    type: string
    description: The camel-k-runtime version to use for the integration. It overrides
      the default version set in the Integration Platform.
  - name: properties
    type: '[]string'
    description: A list of properties to be provided to the Integration runtime
- name: container
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Container trait can be used to configure properties of the container
    where the integration will run. It also provides configuration for Services associated
    to the container.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: To automatically enable the trait
  - name: request-cpu
    type: string
    description: The minimum amount of CPU required.
  - name: request-memory
    type: string
    description: The minimum amount of memory required.
  - name: limit-cpu
    type: string
    description: The maximum amount of CPU required.
  - name: limit-memory
    type: string
    description: The maximum amount of memory required.
  - name: expose
    type: bool
    description: Can be used to enable/disable exposure via kubernetes Service.
  - name: port
    type: int
    description: To configure a different port exposed by the container (default `8080`).
  - name: port-name
    type: string
    description: To configure a different port name for the port exposed by the container.
      It defaults to `http` only when the `expose` parameter is true.
  - name: service-port
    type: int
    description: To configure under which service port the container port is to be
      exposed (default `80`).
  - name: service-port-name
    type: string
    description: To configure under which service port name the container port is
      to be exposed (default `http`).
  - name: name
    type: string
    description: The main container name. It's named `integration` by default.
  - name: image
    type: string
    description: The main container image
  - name: image-pull-policy
    type: PullPolicy
    description: 'The pull policy: Always|Never|IfNotPresent'
- name: cron
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Cron trait can be used to customize the behaviour of periodic
    timer/cron based integrations. While normally an integration requires a pod to
    be always up and running, some periodic tasks, such as batch jobs, require to
    be activated at specific hours of the day or with a periodic delay of minutes.
    For such tasks, the cron trait can materialize the integration as a Kubernetes
    CronJob instead of a standard deployment, in order to save resources when the
    integration does not need to be executed. Integrations that start from the following
    components are evaluated by the cron trait: `timer`, `cron`, `quartz`. The rules
    for using a Kubernetes CronJob are the following: - `timer`: when period is set
    in milliseconds with no remaining seconds, for example 120000. If there is any
    second left as in 121000 (120s and 1s) or the presence of any of these parameters
    (delay, repeatCount, time) then a CronJob  won''t be created, but a standard deployment.
    - `cron`, `quartz`: when the cron expression does not contain seconds (or the
    "seconds" part is set to 0). E.g. `cron:tab?schedule=0/2${plus}*{plus}*{plus}*{plus}?`
    or `quartz:trigger?cron=0{plus}0/2{plus}*{plus}*{plus}*{plus}?`.'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: schedule
    type: string
    description: The CronJob schedule for the whole integration. If multiple routes
      are declared, they must have the same schedule for this mechanism to work correctly.
  - name: components
    type: string
    description: 'A comma separated list of the Camel components that need to be customized
      in order for them to work when the schedule is triggered externally by Kubernetes.
      A specific customizer is activated for each specified component. E.g. for the
      `timer` component, the `cron-timer` customizer is activated (it''s present in
      the `org.apache.camel.k:camel-k-cron` library).  Supported components are currently:
      `cron`, `timer` and `quartz`.'
  - name: fallback
    type: bool
    description: Use the default Camel implementation of the `cron` endpoint (`quartz`)
      instead of trying to materialize the integration as Kubernetes CronJob.
  - name: concurrency-policy
    type: string
    description: 'Specifies how to treat concurrent executions of a Job. Valid values
      are: - "Allow": allows CronJobs to run concurrently; - "Forbid" (default): forbids
      concurrent runs, skipping next run if previous run hasn''t finished yet; - "Replace":
      cancels currently running job and replaces it with a new one'
  - name: auto
    type: bool
    description: Automatically deploy the integration as CronJob when all routes are
      either starting from a periodic consumer (only `cron`, `timer` and `quartz`
      are supported) or a passive consumer (e.g. `direct` is a passive consumer).  It's
      required that all periodic consumers have the same period, and it can be expressed
      as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`, while `35m` or
      `50s` cannot).
  - name: starting-deadline-seconds
    type: int64
    description: Optional deadline in seconds for starting the job if it misses scheduled
      time for any reason.  Missed jobs executions will be counted as failed ones.
  - name: active-deadline-seconds
    type: int64
    description: Specifies the duration in seconds, relative to the start time, that
      the job may be continuously active before it is considered to be failed. It
      defaults to 60s.
  - name: backoff-limit
    type: int32
    description: Specifies the number of retries before marking the job failed. It
      defaults to 2.
- name: dependencies
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Dependencies trait is internally used to automatically add runtime
    dependencies based on the integration that the user wants to run.
  properties: []
- name: deployer
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The deployer trait is responsible for deploying the resources owned
    by the integration, and can be used to explicitly select the underlying controller
    that will manage the integration pods.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: kind
    type: string
    description: Allows to explicitly select the desired deployment kind between `deployment`,
      `cron-job` or `knative-service` when creating the resources for running the
      integration.
  - name: use-ssa
    type: bool
    description: Use server-side apply to update the owned resources (default `true`).
      Note that it automatically falls back to client-side patching, if SSA is not
      available, e.g., on old Kubernetes clusters.
- name: deployment
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Deployment trait is responsible for generating the Kubernetes deployment
    that will make sure the integration will run in the cluster.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: progress-deadline-seconds
    type: int32
    description: The maximum time in seconds for the deployment to make progress before
      it is considered to be failed. It defaults to 60s.
  - name: strategy
    type: DeploymentStrategyType
    description: The deployment strategy to use to replace existing pods with new
      ones.
  - name: rolling-update-max-unavailable
    type: int
    description: 'The maximum number of pods that can be unavailable during the update.
      Value can be an absolute number (ex: 5) or a percentage of desired pods (ex:
      10%). Absolute number is calculated from percentage by rounding down. This can
      not be 0 if MaxSurge is 0. Defaults to 25%.'
  - name: rolling-update-max-surge
    type: int
    description: 'The maximum number of pods that can be scheduled above the desired
      number of pods. Value can be an absolute number (ex: 5) or a percentage of desired
      pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is
      calculated from percentage by rounding up. Defaults to 25%.'
- name: environment
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The environment trait is used internally to inject standard environment
    variables in the integration container, such as `NAMESPACE`, `POD_NAME` and others.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: container-meta
    type: bool
    description: Enables injection of `NAMESPACE` and `POD_NAME` environment variables
      (default `true`)
  - name: http-proxy
    type: bool
    description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment
      variables (default `true`)
  - name: vars
    type: '[]string'
    description: A list of environment variables to be added to the integration container.
      The syntax is KEY=VALUE, e.g., `MY_VAR="my value"`. These take precedence over
      the previously defined environment variables.
- name: error-handler
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The error-handler is a platform trait used to inject Error Handler
    source into the integration runtime.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: ref
    type: string
    description: The error handler ref name provided or found in application properties
- name: gc
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The GC Trait garbage-collects all resources that are no longer necessary
    upon integration updates.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: discovery-cache
    type: github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait.DiscoveryCacheType
    description: 'Discovery client cache to be used, either `disabled`, `disk` or
      `memory` (default `memory`). Deprecated: to be removed from trait configuration.'
- name: gcp-secret-manager
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Google Secret Manager trait can be used to use secrets from Google
    Secret Manager The Google Secret Manager trait is disabled by default. For more
    information about how to use secrets from Google Secret Manager take a look at
    the components docs: xref:components::google-secret-manager-component.adoc[AWS
    Secrets Manager component] A sample execution of this trait, would require the
    following trait options: -t gpc-secret-manager.enabled=true -t gpc-secret-manager.project-id="project-id"
    -t gpc-secret-manager.service-account-key="file:serviceaccount.json" To enable
    the automatic context reload on secrets updates you should define the following
    trait options: -t gpc-secret-manager.enabled=true -t gpc-secret-manager.project-id="project-id"
    -t gpc-secret-manager.service-account-key="file:serviceaccount.json" -t gcp-secret-manager.subscription-name="pubsub-sub"
    -t gcp-secret-manager.context-reload-enabled="true" -t gcp-secret-manager.refresh-enabled="true"
    -t gcp-secret-manager.refresh-period="30000" -t gcp-secret-manager.secrets="test*"'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Enables automatic configuration of the trait.
  - name: project-id
    type: string
    description: The Project Id from Google Cloud
  - name: service-account-key
    type: string
    description: The Path to a service account Key File to use secrets from Google
      Secret Manager
  - name: use-default-instance
    type: bool
    description: Define if we want to use the Default Instance approach for accessing
      the Google Secret Manager service
  - name: context-reload-enabled
    type: bool
    description: Define if we want to use the Camel Context Reload feature or not
  - name: refresh-enabled
    type: bool
    description: Define if we want to use the Refresh Feature for secrets
  - name: refresh-period
    type: string
    description: If Refresh is enabled, this defines the interval to check the refresh
      event
  - name: secrets
    type: string
    description: If Refresh is enabled, the regular expression representing the secrets
      we want to track
  - name: subscription-name
    type: string
    description: If Refresh is enabled, this defines the subscription name to the
      Google PubSub topic used to keep track of updates
- name: hashicorp-vault
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Hashicorp Vault trait can be used to use secrets from Hashicorp
    Vault The Hashicorp Vault trait is disabled by default. For more information about
    how to use secrets from Hashicorp vault take a look at the components docs: xref:components::hashicorp-vault-component.adoc[Hashicorp
    Vault component] A sample execution of this trait, would require the following
    trait options: -t hashicorp-vault.enabled=true -t hashicorp-vault.token="token"
    -t hashicorp-vault.port="port" -t hashicorp-vault.engine="engine" -t hashicorp-vault.port="port"
    -t hashicorp-vault.scheme="scheme"'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Enables automatic configuration of the trait.
  - name: host
    type: string
    description: The Host to use
  - name: port
    type: string
    description: The Port to use
  - name: engine
    type: string
    description: The Hashicorp engine to use
  - name: token
    type: string
    description: The token to access Hashicorp Vault
  - name: scheme
    type: string
    description: The scheme to access Hashicorp Vault
- name: health
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The health trait is responsible for configuring the health probes on
    the integration container. It's disabled by default.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: liveness-probe-enabled
    type: bool
    description: Configures the liveness probe for the integration container (default
      `false`).
  - name: liveness-scheme
    type: string
    description: Scheme to use when connecting to the liveness probe (default `HTTP`).
  - name: liveness-initial-delay
    type: int32
    description: Number of seconds after the container has started before the liveness
      probe is initiated.
  - name: liveness-timeout
    type: int32
    description: Number of seconds after which the liveness probe times out.
  - name: liveness-period
    type: int32
    description: How often to perform the liveness probe.
  - name: liveness-success-threshold
    type: int32
    description: Minimum consecutive successes for the liveness probe to be considered
      successful after having failed.
  - name: liveness-failure-threshold
    type: int32
    description: Minimum consecutive failures for the liveness probe to be considered
      failed after having succeeded.
  - name: readiness-probe-enabled
    type: bool
    description: Configures the readiness probe for the integration container (default
      `true`).
  - name: readiness-scheme
    type: string
    description: Scheme to use when connecting to the readiness probe (default `HTTP`).
  - name: readiness-initial-delay
    type: int32
    description: Number of seconds after the container has started before the readiness
      probe is initiated.
  - name: readiness-timeout
    type: int32
    description: Number of seconds after which the readiness probe times out.
  - name: readiness-period
    type: int32
    description: How often to perform the readiness probe.
  - name: readiness-success-threshold
    type: int32
    description: Minimum consecutive successes for the readiness probe to be considered
      successful after having failed.
  - name: readiness-failure-threshold
    type: int32
    description: Minimum consecutive failures for the readiness probe to be considered
      failed after having succeeded.
  - name: startup-probe-enabled
    type: bool
    description: Configures the startup probe for the integration container (default
      `false`).
  - name: startup-scheme
    type: string
    description: Scheme to use when connecting to the startup probe (default `HTTP`).
  - name: startup-initial-delay
    type: int32
    description: Number of seconds after the container has started before the startup
      probe is initiated.
  - name: startup-timeout
    type: int32
    description: Number of seconds after which the startup probe times out.
  - name: startup-period
    type: int32
    description: How often to perform the startup probe.
  - name: startup-success-threshold
    type: int32
    description: Minimum consecutive successes for the startup probe to be considered
      successful after having failed.
  - name: startup-failure-threshold
    type: int32
    description: Minimum consecutive failures for the startup probe to be considered
      failed after having succeeded.
- name: ingress
  platform: false
  profiles:
  - Kubernetes
  description: The Ingress trait can be used to expose the service associated with
    the integration to the outside world with a Kubernetes Ingress. It's enabled by
    default whenever a Service is added to the integration (through the `service`
    trait).
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: annotations
    type: map[string]string
    description: 'The annotations added to the ingress. This can be used to set controller
      specific annotations, e.g., when using the NGINX Ingress controller: See https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md'
  - name: host
    type: string
    description: To configure the host exposed by the ingress.
  - name: path
    type: string
    description: To configure the path exposed by the ingress (default `/`).
  - name: path-type
    type: k8s.io/api/networking/v1.PathType
    description: To configure the path type exposed by the ingress. One of `Exact`,
      `Prefix`, `ImplementationSpecific` (default to `Prefix`).
  - name: auto
    type: bool
    description: To automatically add an ingress whenever the integration uses an
      HTTP endpoint consumer.
- name: istio
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Istio trait allows configuring properties related to the Istio
    service mesh, such as sidecar injection and outbound IP ranges.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: allow
    type: string
    description: Configures a (comma-separated) list of CIDR subnets that should not
      be intercepted by the Istio proxy (`10.0.0.0/8,172.16.0.0/12,192.168.0.0/16`
      by default).
  - name: inject
    type: bool
    description: Forces the value for labels `sidecar.istio.io/inject`. By default
      the label is set to `true` on deployment and not set on Knative Service.
- name: jolokia
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Jolokia trait activates and configures the Jolokia Java agent.
    See https://jolokia.org/reference/html/agents.html
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: ca-cert
    type: string
    description: The PEM encoded CA certification file path, used to verify client
      certificates, applicable when `protocol` is `https` and `use-ssl-client-authentication`
      is `true` (default `/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt`
      for OpenShift).
  - name: client-principal
    type: '[]string'
    description: The principal(s) which must be given in a client certificate to allow
      access to the Jolokia endpoint, applicable when `protocol` is `https` and `use-ssl-client-authentication`
      is `true` (default `clientPrincipal=cn=system:master-proxy`, `cn=hawtio-online.hawtio.svc`
      and `cn=fuse-console.fuse.svc` for OpenShift).
  - name: discovery-enabled
    type: bool
    description: Listen for multicast requests (default `false`)
  - name: extended-client-check
    type: bool
    description: Mandate the client certificate contains a client flag in the extended
      key usage section, applicable when `protocol` is `https` and `use-ssl-client-authentication`
      is `true` (default `true` for OpenShift).
  - name: host
    type: string
    description: The Host address to which the Jolokia agent should bind to. If `"\*"`
      or `"0.0.0.0"` is given, the servers binds to every network interface (default
      `"*"`).
  - name: password
    type: string
    description: The password used for authentication, applicable when the `user`
      option is set.
  - name: port
    type: int
    description: The Jolokia endpoint port (default `8778`).
  - name: protocol
    type: string
    description: The protocol to use, either `http` or `https` (default `https` for
      OpenShift)
  - name: user
    type: string
    description: The user to be used for authentication
  - name: use-ssl-client-authentication
    type: bool
    description: Whether client certificates should be used for authentication (default
      `true` for OpenShift).
  - name: options
    type: '[]string'
    description: A list of additional Jolokia options as defined in https://jolokia.org/reference/html/agents.html#agent-jvm-config[JVM
      agent configuration options]
- name: jvm
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The JVM trait is used to configure the JVM that runs the integration.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: debug
    type: bool
    description: Activates remote debugging, so that a debugger can be attached to
      the JVM, e.g., using port-forwarding
  - name: debug-suspend
    type: bool
    description: Suspends the target JVM immediately before the main class is loaded
  - name: print-command
    type: bool
    description: Prints the command used the start the JVM in the container logs (default
      `true`)
  - name: debug-address
    type: string
    description: Transport address at which to listen for the newly launched JVM (default
      `*:5005`)
  - name: options
    type: '[]string'
    description: A list of JVM options
  - name: classpath
    type: string
    description: Additional JVM classpath (use `Linux` classpath separator)
- name: kamelets
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The kamelets trait is a platform trait used to inject Kamelets into
    the integration runtime.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Automatically inject all referenced Kamelets and their default configuration
      (enabled by default)
  - name: list
    type: string
    description: Comma separated list of Kamelet names to load into the current integration
- name: keda
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The KEDA trait can be used for automatic integration with KEDA autoscalers.
    The trait can be either manually configured using the `triggers` option or automatically
    configured via markers in the Kamelets. For information on how to use KEDA enabled
    Kamelets with the KEDA trait, refer to xref:ROOT:kamelets/kamelets-user.adoc#kamelet-keda-user[the
    KEDA section in the Kamelets user guide]. If you want to create Kamelets that
    contain KEDA metadata, refer to xref:ROOT:kamelets/kamelets-dev.adoc#kamelet-keda-dev[the
    KEDA section in the Kamelets development guide]. The KEDA trait is disabled by
    default.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Enables automatic configuration of the trait. Allows the trait to
      infer KEDA triggers from the Kamelets.
  - name: hack-controller-replicas
    type: bool
    description: Set the spec->replicas field on the top level controller to an explicit
      value if missing, to allow KEDA to recognize it as a scalable resource.
  - name: polling-interval
    type: int32
    description: Interval (seconds) to check each trigger on.
  - name: cooldown-period
    type: int32
    description: The wait period between the last active trigger reported and scaling
      the resource back to 0.
  - name: idle-replica-count
    type: int32
    description: Enabling this property allows KEDA to scale the resource down to
      the specified number of replicas.
  - name: min-replica-count
    type: int32
    description: Minimum number of replicas.
  - name: max-replica-count
    type: int32
    description: Maximum number of replicas.
  - name: triggers
    type: '[]github.com/apache/camel-k/v2/addons/keda.kedaTrigger'
    description: Definition of triggers according to the KEDA format. Each trigger
      must contain `type` field corresponding to the name of a KEDA autoscaler and
      a key/value map named `metadata` containing specific trigger options. An optional
      `authentication-secret` can be declared per trigger and the operator will link
      each entry of the secret to a KEDA authentication parameter.
- name: knative
  platform: false
  profiles:
  - Knative
  description: The Knative trait automatically discovers addresses of Knative resources
    and inject them into the running integration. The full Knative configuration is
    injected in the CAMEL_KNATIVE_CONFIGURATION in JSON format. The Camel Knative
    component will then use the full configuration to configure the routes. The trait
    is enabled by default when the Knative profile is active.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: configuration
    type: string
    description: Can be used to inject a Knative complete configuration in JSON format.
  - name: channel-sources
    type: '[]string'
    description: List of channels used as source of integration routes. Can contain
      simple channel names or full Camel URIs.
  - name: channel-sinks
    type: '[]string'
    description: List of channels used as destination of integration routes. Can contain
      simple channel names or full Camel URIs.
  - name: endpoint-sources
    type: '[]string'
    description: List of channels used as source of integration routes.
  - name: endpoint-sinks
    type: '[]string'
    description: List of endpoints used as destination of integration routes. Can
      contain simple endpoint names or full Camel URIs.
  - name: event-sources
    type: '[]string'
    description: List of event types that the integration will be subscribed to. Can
      contain simple event types or full Camel URIs (to use a specific broker different
      from "default").
  - name: event-sinks
    type: '[]string'
    description: List of event types that the integration will produce. Can contain
      simple event types or full Camel URIs (to use a specific broker).
  - name: filter-source-channels
    type: bool
    description: Enables filtering on events based on the header "ce-knativehistory".
      Since this header has been removed in newer versions of Knative, filtering is
      disabled by default.
  - name: sink-binding
    type: bool
    description: Allows binding the integration to a sink via a Knative SinkBinding
      resource. This can be used when the integration targets a single sink. It's
      enabled by default when the integration targets a single sink (except when the
      integration is owned by a Knative source).
  - name: auto
    type: bool
    description: Enable automatic discovery of all trait properties.
  - name: namespace-label
    type: bool
    description: 'Enables the camel-k-operator to set the "bindings.knative.dev/include=true"
      label to the namespace As Knative requires this label to perform injection of
      K_SINK URL into the service. If this is false, the integration pod may start
      and fail, read the SinkBinding Knative documentation. (default: true)'
- name: knative-service
  platform: false
  profiles:
  - Knative
  description: The Knative Service trait allows configuring options when running the
    Integration as a Knative service, instead of a standard Kubernetes Deployment.
    Running an Integration as a Knative Service enables auto-scaling (and scaling-to-zero),
    but those features are only relevant when the Camel route(s) use(s) an HTTP endpoint
    consumer.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: autoscaling-class
    type: string
    description: Configures the Knative autoscaling class property (e.g. to set `hpa.autoscaling.knative.dev`
      or `kpa.autoscaling.knative.dev` autoscaling).  Refer to the Knative documentation
      for more information.
  - name: autoscaling-metric
    type: string
    description: Configures the Knative autoscaling metric property (e.g. to set `concurrency`
      based or `cpu` based autoscaling).  Refer to the Knative documentation for more
      information.
  - name: autoscaling-target
    type: int
    description: Sets the allowed concurrency level or CPU percentage (depending on
      the autoscaling metric) for each Pod.  Refer to the Knative documentation for
      more information.
  - name: min-scale
    type: int
    description: The minimum number of Pods that should be running at any time for
      the integration. It's **zero** by default, meaning that the integration is scaled
      down to zero when not used for a configured amount of time.  Refer to the Knative
      documentation for more information.
  - name: max-scale
    type: int
    description: An upper bound for the number of Pods that can be running in parallel
      for the integration. Knative has its own cap value that depends on the installation.  Refer
      to the Knative documentation for more information.
  - name: rollout-duration
    type: string
    description: Enables to gradually shift traffic to the latest Revision and sets
      the rollout duration. It's disabled by default and must be expressed as a Golang
      `time.Duration` string representation, rounded to a second precision.
  - name: visibility
    type: string
    description: Setting `cluster-local`, Knative service becomes a private service.
      Specifically, this option applies the `networking.knative.dev/visibility` label
      to Knative service.  Refer to the Knative documentation for more information.
  - name: auto
    type: bool
    description: 'Automatically deploy the integration as Knative service when all
      conditions hold:  * Integration is using the Knative profile * All routes are
      either starting from an HTTP based consumer or a passive consumer (e.g. `direct`
      is a passive consumer)'
- name: logging
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Logging trait is used to configure Integration runtime logging
    options (such as color and format). The logging backend is provided by Quarkus,
    whose configuration is documented at https://quarkus.io/guides/logging.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: color
    type: bool
    description: Colorize the log output
  - name: format
    type: string
    description: Logs message format
  - name: level
    type: string
    description: Adjust the logging level (defaults to INFO)
  - name: json
    type: bool
    description: Output the logs in JSON
  - name: json-pretty-print
    type: bool
    description: Enable "pretty printing" of the JSON logs
- name: master
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Master trait allows to configure the integration to automatically
    leverage Kubernetes resources for doing leader election and starting *master*
    routes only on certain instances. It''s activated automatically when using the
    master endpoint in a route, e.g. `from("master:lockname:telegram:bots")...`. NOTE:
    this trait adds special permissions to the integration service account in order
    to read/write configmaps and read pods. It''s recommended to use a different service
    account than "default" when running the integration.'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Enables automatic configuration of the trait.
  - name: include-delegate-dependencies
    type: bool
    description: When this flag is active, the operator analyzes the source code to
      add dependencies required by delegate endpoints. E.g. when using `master:lockname:timer`,
      then `camel:timer` is automatically added to the set of dependencies. It's enabled
      by default.
  - name: resource-name
    type: string
    description: Name of the configmap that will be used to store the lock. Defaults
      to "<integration-name>-lock". Name of the configmap/lease resource that will
      be used to store the lock. Defaults to "<integration-name>-lock".
  - name: resource-type
    type: string
    description: Type of Kubernetes resource to use for locking ("ConfigMap" or "Lease").
      Defaults to "Lease".
  - name: label-key
    type: string
    description: Label that will be used to identify all pods contending the lock.
      Defaults to "camel.apache.org/integration".
  - name: label-value
    type: string
    description: Label value that will be used to identify all pods contending the
      lock. Defaults to the integration name.
- name: mount
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Mount trait can be used to configure volumes mounted on the Integration
    Pods.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: configs
    type: '[]string'
    description: 'A list of configuration pointing to configmap/secret. The configuration
      are expected to be UTF-8 resources as they are processed by runtime Camel Context
      and tried to be parsed as property files. They are also made available on the
      classpath in order to ease their usage directly from the Route. Syntax: [configmap|secret]:name[/key],
      where name represents the resource name and key optionally represents the resource
      key to be filtered'
  - name: resources
    type: '[]string'
    description: 'A list of resources (text or binary content) pointing to configmap/secret.
      The resources are expected to be any resource type (text or binary content).
      The destination path can be either a default location or any path specified
      by the user. Syntax: [configmap|secret]:name[/key][@path], where name represents
      the resource name, key optionally represents the resource key to be filtered
      and path represents the destination path'
  - name: volumes
    type: '[]string'
    description: 'A list of Persistent Volume Claims to be mounted. Syntax: [pvcname:/container/path]'
- name: openapi
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The OpenAPI DSL trait is internally used to allow creating integrations
    from a OpenAPI specs.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: configmaps
    type: '[]string'
    description: The configmaps holding the spec of the OpenAPI
- name: owner
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Owner trait ensures that all created resources belong to the integration
    being created and transfers annotations and labels on the integration onto these
    owned resources.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: target-annotations
    type: '[]string'
    description: The set of annotations to be transferred
  - name: target-labels
    type: '[]string'
    description: The set of labels to be transferred
- name: pdb
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The PDB trait allows to configure the PodDisruptionBudget resource
    for the Integration pods.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: min-available
    type: string
    description: The number of pods for the Integration that must still be available
      after an eviction. It can be either an absolute number or a percentage. Only
      one of `min-available` and `max-unavailable` can be specified.
  - name: max-unavailable
    type: string
    description: The number of pods for the Integration that can be unavailable after
      an eviction. It can be either an absolute number or a percentage (default `1`
      if `min-available` is also not set). Only one of `max-unavailable` and `min-available`
      can be specified.
- name: platform
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The platform trait is a base trait that is used to assign an integration
    platform to an integration. In case the platform is missing, the trait is allowed
    to create a default platform. This feature is especially useful in contexts where
    there's no need to provide a custom configuration for the platform (e.g. on OpenShift
    the default settings work, since there's an embedded container image registry).
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: create-default
    type: bool
    description: To create a default (empty) platform when the platform is missing.
  - name: global
    type: bool
    description: Indicates if the platform should be created globally in the case
      of global operator (default true).
  - name: auto
    type: bool
    description: To automatically detect from the environment if a default platform
      can be created (it will be created on OpenShift only).
- name: pod
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The pod trait allows the customization of the Integration pods. It
    applies the `PodSpecTemplate` struct contained in the Integration `.spec.podTemplate`
    field, into the Integration deployment Pods template, using strategic merge patch.
    This can be used to customize the container where Camel routes execute, by using
    the `integration` container name.
  properties: []
- name: prometheus
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Prometheus trait configures a Prometheus-compatible endpoint.
    It also creates a `PodMonitor` resource, so that the endpoint can be scraped automatically,
    when using the Prometheus operator. The metrics are exposed using Micrometer Metrics.
    WARNING: The creation of the `PodMonitor` resource requires the https://github.com/coreos/prometheus-operator[Prometheus
    Operator] custom resource definition to be installed. You can set `pod-monitor`
    to `false` for the Prometheus trait to work without the Prometheus Operator. WARNING:
    By default the metrics API is not available in JSON The Prometheus trait is disabled
    by default.'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: pod-monitor
    type: bool
    description: Whether a `PodMonitor` resource is created (default `true`).
  - name: pod-monitor-labels
    type: '[]string'
    description: The `PodMonitor` resource labels, applicable when `pod-monitor` is
      `true`.
- name: pull-secret
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Pull Secret trait sets a pull secret on the pod, to allow Kubernetes
    to retrieve the container image from an external registry. The pull secret can
    be specified manually or, in case you've configured authentication for an external
    container registry on the `IntegrationPlatform`, the same secret is used to pull
    images. It's enabled by default whenever you configure authentication for an external
    container registry, so it assumes that external registries are private. If your
    registry does not need authentication for pulling images, you can disable this
    trait.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: secret-name
    type: string
    description: The pull secret name to set on the Pod. If left empty this is automatically
      taken from the `IntegrationPlatform` registry configuration.
  - name: image-puller-delegation
    type: bool
    description: When using a global operator with a shared platform, this enables
      delegation of the `system:image-puller` cluster role on the operator namespace
      to the integration service account.
  - name: auto
    type: bool
    description: Automatically configures the platform registry secret on the pod
      if it is of type `kubernetes.io/dockerconfigjson`.
- name: quarkus
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Quarkus trait configures the Quarkus runtime. It''s enabled by
    default. NOTE: Compiling to a native executable, i.e. when using `package-type=native`,
    requires at least 4GiB of memory, so the Pod running the native build, that is
    either the operator Pod, or the build Pod (depending on the build strategy configured
    for the platform), must have enough memory available.'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: package-type
    type: '[]github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait.QuarkusPackageType'
    description: The Quarkus package types, either `fast-jar` or `native` (default
      `fast-jar`). In case both `fast-jar` and `native` are specified, two `IntegrationKit`
      resources are created, with the `native` kit having precedence over the `fast-jar`
      one once ready. The order influences the resolution of the current kit for the
      integration. The kit corresponding to the first package type will be assigned
      to the integration in case no existing kit that matches the integration exists.
- name: registry
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Registry trait sets up Maven to use the Image registry as a Maven
    repository.
  properties: []
- name: resume
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Resume trait can be used to manage and configure resume strategies.
    This feature is meant to allow quick resume of processing by Camel K instances
    after they have been restarted. This is an experimental implementation based on
    the support available on Camel Core resume strategies. The Resume trait is disabled
    by default. The main different from the implementation on Core is that it''s not
    necessary to bind the strategies to the registry. This step will be done automatically
    by Camel K, after resolving the options passed to the trait. A sample execution
    of this trait, using the Kafka backend (the only one supported at the moment),
    would require the following trait options: -t resume.enabled=true -t resume.resume-path=camel-file-sets
    -t resume.resume-server="address-of-your-kafka:9092"'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Enables automatic configuration of the trait.
  - name: resume-strategy,omitempty
    type: string
    description: The type of the resume strategy to use
  - name: resume-path,omitempty
    type: string
    description: The path used by the resume strategy (this is specific to the resume
      strategy type)
  - name: resume-server,omitempty
    type: string
    description: The address of the resume server to use (protocol / implementation
      specific)
  - name: cache-fill-policy,omitempty
    type: string
    description: 'The adapter-specific policy to use when filling the cache (use:
      minimizing / maximizing). Check the component documentation if unsure'
- name: route
  platform: false
  profiles:
  - OpenShift
  description: 'The Route trait can be used to configure the creation of OpenShift
    routes for the integration. The certificate and key contents may be sourced either
    from the local filesystem or in a OpenShift `secret` object. The user may use
    the parameters ending in `-secret` (example: `tls-certificate-secret`) to reference
    a certificate stored in a `secret`. Parameters ending in `-secret` have higher
    priorities and in case the same route parameter is set, for example: `tls-key-secret`
    and `tls-key`, then `tls-key-secret` is used. The recommended approach to set
    the key and certificates is to use `secrets` to store their contents and use the
    following parameters to reference them: `tls-certificate-secret`, `tls-key-secret`,
    `tls-ca-certificate-secret`, `tls-destination-ca-certificate-secret` See the examples
    section at the end of this page to see the setup options.'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: host
    type: string
    description: To configure the host exposed by the route.
  - name: tls-termination
    type: string
    description: The TLS termination type, like `edge`, `passthrough` or `reencrypt`.  Refer
      to the OpenShift route documentation for additional information.
  - name: tls-certificate
    type: string
    description: The TLS certificate contents.  Refer to the OpenShift route documentation
      for additional information.
  - name: tls-certificate-secret
    type: string
    description: The secret name and key reference to the TLS certificate. The format
      is "secret-name[/key-name]", the value represents the secret name, if there
      is only one key in the secret it will be read, otherwise you can set a key name
      separated with a "/".  Refer to the OpenShift route documentation for additional
      information.
  - name: tls-key
    type: string
    description: The TLS certificate key contents.  Refer to the OpenShift route documentation
      for additional information.
  - name: tls-key-secret
    type: string
    description: The secret name and key reference to the TLS certificate key. The
      format is "secret-name[/key-name]", the value represents the secret name, if
      there is only one key in the secret it will be read, otherwise you can set a
      key name separated with a "/".  Refer to the OpenShift route documentation for
      additional information.
  - name: tls-ca-certificate
    type: string
    description: The TLS CA certificate contents.  Refer to the OpenShift route documentation
      for additional information.
  - name: tls-ca-certificate-secret
    type: string
    description: The secret name and key reference to the TLS CA certificate. The
      format is "secret-name[/key-name]", the value represents the secret name, if
      there is only one key in the secret it will be read, otherwise you can set a
      key name separated with a "/".  Refer to the OpenShift route documentation for
      additional information.
  - name: tls-destination-ca-certificate
    type: string
    description: The destination CA certificate provides the contents of the ca certificate
      of the final destination.  When using reencrypt termination this file should
      be provided in order to have routers use it for health checks on the secure
      connection. If this field is not specified, the router may provide its own destination
      CA and perform hostname validation using the short service name (service.namespace.svc),
      which allows infrastructure generated certificates to automatically verify.  Refer
      to the OpenShift route documentation for additional information.
  - name: tls-destination-ca-certificate-secret
    type: string
    description: The secret name and key reference to the destination CA certificate.
      The format is "secret-name[/key-name]", the value represents the secret name,
      if there is only one key in the secret it will be read, otherwise you can set
      a key name separated with a "/".  Refer to the OpenShift route documentation
      for additional information.
  - name: tls-insecure-edge-termination-policy
    type: string
    description: To configure how to deal with insecure traffic, e.g. `Allow`, `Disable`
      or `Redirect` traffic.  Refer to the OpenShift route documentation for additional
      information.
- name: service
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Service trait exposes the integration with a Service resource so
    that it can be accessed by other applications (or integrations) in the same namespace.
    It's enabled by default if the integration depends on a Camel component that can
    expose a HTTP endpoint.
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: To automatically detect from the code if a Service needs to be created.
  - name: node-port
    type: bool
    description: 'Enable Service to be exposed as NodePort (default `false`). Deprecated:
      Use service type instead.'
  - name: type
    type: github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait.ServiceType
    description: The type of service to be used, either 'ClusterIP', 'NodePort' or
      'LoadBalancer'.
- name: service-binding
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Service Binding trait allows users to connect to Services in Kubernetes:
    https://github.com/k8s-service-bindings/spec#service-binding As the specification
    is still evolving this is subject to change.'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: services
    type: '[]string'
    description: List of Services in the form [[apigroup/]version:]kind:[namespace/]name
- name: telemetry
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Telemetry trait can be used to automatically publish tracing information
    to an OTLP compatible collector. The trait is able to automatically discover the
    telemetry OTLP endpoint available in the namespace (supports **Jaerger** in version
    1.35+). The Telemetry trait is disabled by default. WARNING: The Telemetry trait
    can''t be enabled at the same time as the Tracing trait.'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Enables automatic configuration of the trait, including automatic
      discovery of the telemetry endpoint.
  - name: service-name
    type: string
    description: The name of the service that publishes telemetry data (defaults to
      the integration name)
  - name: endpoint
    type: string
    description: The target endpoint of the Telemetry service (automatically discovered
      by default)
  - name: sampler
    type: string
    description: The sampler of the telemetry used for tracing (default "on")
  - name: sampler-ratio
    type: string
    description: The sampler ratio of the telemetry used for tracing
  - name: sampler-parent-based
    type: bool
    description: The sampler of the telemetry used for tracing is parent based (default
      "true")
- name: toleration
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'This trait sets Tolerations over Integration pods. Tolerations allow
    (but do not require) the pods to schedule onto nodes with matching taints. See
    https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
    for more details. The toleration should be expressed in a similar manner that
    of taints, i.e., `Key[=Value]:Effect[:Seconds]`, where values in square brackets
    are optional. For examples: - `node-role.kubernetes.io/master:NoSchedule` - `node.kubernetes.io/network-unavailable:NoExecute:3000`
    - `disktype=ssd:PreferNoSchedule` It''s disabled by default.'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: taints
    type: '[]string'
    description: The list of taints to tolerate, in the form `Key[=Value]:Effect[:Seconds]`
- name: tracing
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'WARNING: The Tracing trait has been **deprecated** in favor of the
    xref:traits:telemetry.adoc[Telemetry] trait. The Tracing trait can be used to
    automatically publish tracing information to an OpenTracing compatible collector.
    The trait is able to automatically discover the tracing endpoint available in
    the namespace (supports **Jaeger**). The Tracing trait is disabled by default.
    WARNING: The Tracing trait can''t be enabled at the same time as the Telemetry
    trait.'
  properties:
  - name: enabled
    type: bool
    description: Can be used to enable or disable a trait. All traits share this common
      property.
  - name: auto
    type: bool
    description: Enables automatic configuration of the trait, including automatic
      discovery of the tracing endpoint.
  - name: service-name
    type: string
    description: The name of the service that publishes tracing data (defaults to
      the integration name)
  - name: endpoint
    type: string
    description: The target endpoint of the OpenTracing service (automatically discovered
      by default)
  - name: sampler-type
    type: string
    description: The sampler type (default "const")
  - name: sampler-param
    type: string
    description: The sampler specific param (default "1")
