= Openapi Trait

// Start of autogenerated code - DO NOT EDIT! (description)
The OpenAPI DSL trait is internally used to allow creating integrations from a OpenAPI specs.


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

WARNING: The openapi trait is a *platform trait*: disabling it may compromise the platform functionality.

// 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 openapi.[key]=[value] integration.groovy
```
The following configuration options are available:

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

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

|===

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