traits:
- name: affinity
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: Allows to constrain 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 theintegration 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 theintegration pod(s) should not be co-located
      with.
- name: builder
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The builder trait is internally used to determine the best strategy
    tobuild 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: 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: 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: ""
  - 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
      (default `http`).
  - 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: probes-enabled
    type: bool
    description: ProbesEnabled enable/disable probes on the container (default `false`)
  - name: probe-path
    type: string
    description: Path to access on the probe ( default `/health`). Note that this
      property is not supportedon quarkus runtime and setting it will result in the
      integration failing to start.
  - name: liveness-initial-delay
    type: int32
    description: Number of seconds after the container has started before liveness
      probes are initiated.
  - name: liveness-timeout
    type: int32
    description: Number of seconds after which the probe times out. Applies to the
      liveness probe.
  - name: liveness-period
    type: int32
    description: How often to perform the probe. Applies to the liveness probe.
  - name: liveness-success-threshold
    type: int32
    description: Minimum consecutive successes for the probe to be considered successful
      after having failed.Applies to the liveness probe.
  - name: liveness-failure-threshold
    type: int32
    description: Minimum consecutive failures for the probe to be considered failed
      after having succeeded.Applies to the liveness probe.
  - name: readiness-initial-delay
    type: int32
    description: Number of seconds after the container has started before readiness
      probes are initiated.
  - name: readiness-timeout
    type: int32
    description: Number of seconds after which the probe times out. Applies to the
      readiness probe.
  - name: readiness-period
    type: int32
    description: How often to perform the probe. Applies to the readiness probe.
  - name: readiness-success-threshold
    type: int32
    description: Minimum consecutive successes for the probe to be considered successful
      after having failed.Applies to the readiness probe.
  - name: readiness-failure-threshold
    type: int32
    description: Minimum consecutive failures for the probe to be considered failed
      after having succeeded.Applies to the readiness probe.
- 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 periods can be written
    as cron expressions. E.g. `timer:tick?period=60000`.- `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 thismechanism 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 isactivated (it''s present in
      the `org.apache.camel.k:camel-k-runtime-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 integrationas 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 areeither
      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: dependencies
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Dependencies trait is internally used to automatically add runtime
    dependencies based on theintegration that the user wants to run.
  properties: []
- name: deployer
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The deployer trait can be used to explicitly select the kind of high
    level resource thatwill deploy the integration.
  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: deployment
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Deployment trait is responsible for generating the Kubernetes deployment
    that will make surethe 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: 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: ""
- 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: ./pkg/trait.discoveryCacheType
    description: Discovery client cache to be used, either `disabled`, `disk` or `memory`
      (default `memory`)
- name: ingress
  platform: false
  profiles:
  - Kubernetes
  description: The Ingress trait can be used to expose the service associated with
    the integrationto 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: host
    type: string
    description: '**Required**. To configure the host exposed by the ingress.'
  - name: auto
    type: bool
    description: To automatically add an ingress whenever the integration uses a HTTP
      endpoint consumer.
- name: istio
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Istio trait allows to configure 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 comma-separated list of additional Jolokia options as definedin
      https://jolokia.org/reference/html/agents.html#agent-jvm-config[JVM agent configuration
      options],e.g.: `keystore=...,executor=...`'
- 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: debug-address
    type: string
    description: Transport address at which to listen for the newly launched JVM (default
      `*:5005`)
  - name: options
    type: string
    description: A comma-separated list of JVM options
  - name: print-command
    type: bool
    description: Prints the command used the start the JVM in the container logs (default
      `true`)
- name: knative-service
  platform: false
  profiles:
  - Knative
  description: The Knative Service trait allows to configure options when running
    the integration as Knative service instead ofa standard Kubernetes Deployment.Running
    integrations as Knative Services adds auto-scaling (and scaling-to-zero) features,
    but those featuresare only meaningful when the routes use a 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 thatthe 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: 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 a HTTP based consumer or a passive consumer (e.g. `direct` is
      a passive consumer)
- name: knative
  platform: false
  profiles:
  - Knative
  description: The Knative trait automatically discovers addresses of Knative resources
    and inject them into therunning 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: Comma-separated list of channels used as source of integration routes.Can
      contain simple channel names or full Camel URIs.
  - name: channel-sinks
    type: string
    description: Comma-separated list of channels used as destination of integration
      routes.Can contain simple channel names or full Camel URIs.
  - name: endpoint-sources
    type: string
    description: Comma-separated list of channels used as source of integration routes.
  - name: endpoint-sinks
    type: string
    description: Comma-separated list of endpoints used as destination of integration
      routes.Can contain simple endpoint names or full Camel URIs.
  - name: event-sources
    type: string
    description: Comma-separated 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: Comma-separated 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 is an experimental headerthat can be removed in a future version
      of Knative, filtering is enabled only when the integration islistening from
      more than 1 channel.
  - name: camel-source-compat
    type: bool
    description: Enables Knative CamelSource pre 0.15 compatibility fixes (will be
      removed in future versions).
  - name: auto
    type: bool
    description: Enable automatic discovery of all trait properties.
- name: master
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Master trait allows to configure the integration to automatically
    leverage Kubernetes resources for doingleader 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: configmap
    type: string
    description: Name of the configmap that will be used to store the lock. Defaults
      to "<integration-name>-lock".
  - 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: 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: owner
  platform: true
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Owner trait ensures that all created resources belong to the integration
    being createdand 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 annotations to be transferred (A comma-separated list of label
      keys)
  - name: target-labels
    type: string
    description: The labels to be transferred (A comma-separated list of label keys)
- 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: 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: prometheus
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: 'The Prometheus trait configures the Prometheus JMX exporter and exposes
    the integration with a `Service`and a `ServiceMonitor` resources so that the Prometheus
    endpoint can be scraped.WARNING: The creation of the `ServiceMonitor` resource
    requires the https://github.com/coreos/prometheus-operator[Prometheus Operator]custom
    resource definition to be installed.You can set `service-monitor` to `false` for
    the Prometheus trait to work without the Prometheus operator.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: port
    type: int
    description: The Prometheus endpoint port (default `9779`).
  - name: service-monitor
    type: bool
    description: Whether a `ServiceMonitor` resource is created (default `true`).
  - name: service-monitor-labels
    type: string
    description: The `ServiceMonitor` resource labels, applicable when `service-monitor`
      is `true`.
  - name: configmap
    type: string
    description: To use a custom ConfigMap containing the Prometheus exporter configuration
      (under the `content` ConfigMap key). When this property is left empty (default),Camel
      K generates a standard Prometheus configuration for the integration.
- 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 registryon 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: auto
    type: bool
    description: Automatically configures the platform registry secret on the pod
      if it is of type `kubernetes.io/dockerconfigjson`.
- name: quarkus
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Quarkus trait activates the Quarkus runtime.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: native
    type: bool
    description: The Quarkus runtime type (reserved for future use)
- name: route
  platform: false
  profiles:
  - OpenShift
  description: The Route trait can be used to configure the creation of OpenShift
    routes for the integration.
  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 documentation for additional information.
  - name: tls-certificate
    type: string
    description: The TLS certificate contents.Refer to the OpenShift documentation
      for additional information.
  - name: tls-key
    type: string
    description: The TLS certificate key contents.Refer to the OpenShift documentation
      for additional information.
  - name: tls-ca-certificate
    type: string
    description: The TLS cert authority certificate contents.Refer to the OpenShift
      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 reencrypttermination 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 usingthe short service name (service.namespace.svc),
      which allows infrastructure generated certificates to automaticallyverify.Refer
      to the OpenShift 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 documentation for additional information.
- name: service
  platform: false
  profiles:
  - Kubernetes
  - 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: 3scale
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The 3scale trait can be used to automatically create annotations that
    allow3scale 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: tracing
  platform: false
  profiles:
  - Kubernetes
  - Knative
  - OpenShift
  description: The Tracing trait can be used to automatically publish tracing information
    to anOpenTracing 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.
  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")
