You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As the code generation ecosystem grows with more use-cases it's likely that tools will want to store additional data that may not be applicable to Terraform concepts, but rather, specific to a generating/consuming tool (like OpenAPI).
Currently, the provider code specification does not allow additional fields certain levels of the schema, with the usage of additionalProperties: false:
We don't want to remove this restriction completely, but we should add a designated prefix for custom fields and document it's intended use. We could follow OpenAPI's pattern of allowing properties prefixed with x- at different levels of the schema such as:
Root level, sibling to version string and resources/datasources/provider objects
Sibling to the attribute data (name, {type})
Sibling to the resource/data source/provider schema
Example w/ Petstore
{"provider": {"name": "petstore"},"resources": [{"name": "pet","schema": {"attributes": [{"name": "photo_urls","x-tfplugingen-openapi": {// This is the original OpenAPI spec property name"oas_property": "photoURLs",// This is the OpenAPI type format, for denoting specific types of data"oas_format": "date-time"},"list": {"computed_optional_required": "required","element_type": {"string": {}}}}]}}],"version": "0.1"}
The text was updated successfully, but these errors were encountered:
The lack of ability to add extra info to the spec makes it impossible to write a TF provider generator from OAS that is actually end-to-end, is there any plan to move this forward ?
Context
As the code generation ecosystem grows with more use-cases it's likely that tools will want to store additional data that may not be applicable to Terraform concepts, but rather, specific to a generating/consuming tool (like OpenAPI).
Currently, the provider code specification does not allow additional fields certain levels of the schema, with the usage of
additionalProperties: false
:Proposal
We don't want to remove this restriction completely, but we should add a designated prefix for custom fields and document it's intended use. We could follow OpenAPI's pattern of allowing properties prefixed with
x-
at different levels of the schema such as:version
string andresources
/datasources
/provider
objectsname
,{type}
)Example w/ Petstore
The text was updated successfully, but these errors were encountered: