Schema keywords
Tip
This section is not an exhaustive list of available keyword options. If you’re unsure whether a keyword is supported, please reach out to our team at support@speakeasy.com.
The anyOf keyword
Terraform has limited support for the anyOf
keyword due to its type system, which is less flexible than the JSON Schema type system. For instance, managing anyOf
with multiple subtypes requires a large set of combined types, leading to practical and implementation challenges.
Consider replacing anyOf
in the schema with oneOf
or allOf
. This adjustment aligns with Terraform’s capabilities, namely, using oneOf
for union types and allOf
for intersection types.
For more guidance or to discuss schema adaptations, contact our support team at support@speakeasy.com.
The oneOf keyword
In Terraform, the oneOf
keyword is defined as a SingleNestedAttribute
, where each potential child is represented by a unique key. To ensure compliance with oneOf
semantics, Speakeasy adds conflicts-with
plan validators to confirm that only one of these keys is active at any given time.
If a oneOf
keyword is declared at the root level of an entity, the Speakeasy generator extracts common property attributes and duplicates them into the root level. This is important if, for instance, a common id
property is required for making read, update, or delete requests.
The allOf keyword
For the allOf
keyword, Speakeasy merges all subschemas into a single combined attribute, creating a unified schema component that encapsulates all specified properties.
Last updated on