Schema Keywords

Success Icon

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 less flexible type system than JSON Schema. For instance, managing anyOf with multiple subtypes requires a large set of combined types, leading to practical and implementation challenges.

Consider replacing anyOf in your schema with oneOf or allOf. This adjustment aligns with Terraform’s capabilities: 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, oneOf is defined as a SingleNestedAttribute where each potential child is represented by a unique key. To ensure compliance with oneOf semantics, conflicts-with plan validators are added to confirm that only one of these keys is active at any given time.

If a oneOf is declared at the root level of an entity, the Speakeasy generator will extract common property attributes and duplicate 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 allOf, Speakeasy merges all sub-schemas into a single combined attribute, creating a unified schema component that encapsulates all specified properties.