= 3scale Trait

// Start of autogenerated code - DO NOT EDIT! (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.


This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.

// End of autogenerated code - DO NOT EDIT! (description)
// Start of autogenerated code - DO NOT EDIT! (configuration)
== Configuration

Trait properties can be specified when running any integration with the CLI:
```
kamel run --trait 3scale.[key]=[value] --trait 3scale.[key2]=[value2] integration.groovy
```
The following configuration options are available:

[cols="2,1,5a"]
|===
|Property | Type | Description

| 3scale.enabled
| bool
| Can be used to enable or disable a trait. All traits share this common property.

| 3scale.auto
| bool
| Enables automatic configuration of the trait.

| 3scale.scheme
| string
| The scheme to use to contact the service (default `http`)

| 3scale.path
| string
| The path where the API is published (default `/`)

| 3scale.port
| int
| The port where the service is exposed (default `80`)

| 3scale.description-path
| string
| The path where the Open-API specification is published (default `/openapi.json`)

|===

// End of autogenerated code - DO NOT EDIT! (configuration)
