A new schema for API specifications, along with JSON schema files that can
be used to validate specification, and runtime conversion of new schema
to the old one to avoid large changes across our codegen templates.
Motivation and Context
Existing specification had some edge cases that made writing codegen more complicated:
maps were used as lists making every object not self-contained
parameters that were objects had no type
it was possible to access any parameter data without checking if it is valid for the given parameter type (eg. checking items type for simple specs)
validation rules for parameters, locations, entries were flattened into the parent objects
golang templates were directly referenced in entries
New schema solves those and some other issues, and removes codegen-level data (like NameVariants) that will be implemented in the Sdk and Terraform marshallers.
How Has This Been Tested?
Screenshots (if appropriate)
Types of changes
New feature (non-breaking change which adds functionality)
Description
A new schema for API specifications, along with JSON schema files that can be used to validate specification, and runtime conversion of new schema to the old one to avoid large changes across our codegen templates.
Motivation and Context
Existing specification had some edge cases that made writing codegen more complicated:
New schema solves those and some other issues, and removes codegen-level data (like NameVariants) that will be implemented in the Sdk and Terraform marshallers.
How Has This Been Tested?
Screenshots (if appropriate)
Types of changes