Closed bflad closed 1 year ago
I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active contributions. If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.
This changeset modifies the JSON schema
required
property in various objects:#/$defs/datasource_schema
attribute or block requirement: Datasources can be technically be created without either, however to generally be useful a data source should always have at least have one attribute for referencing elsewhere. It is extremely unlikely that a real world datasource would contain blocks, but no top level attributes.#/$defs/*_nested_attribute_object
/#/$defs/*_single_nested_attribute
attributes requirement: A nested object may be configurable as an empty object ({}
) to match its API, which should be allowed rather than developers thinking they need to switch to a list/map/set of (empty) object type or figure out that an empty attributes array will validate correctly.#/$defs/*_nested_block_object
/#/$defs/*_single_nested_block
attributes or blocks requirement: A nested object may be configurable as an empty object ({}
) to match its API, which should be allowed rather than developers figuring out that an empty attributes or blocks array will validate correctly.#/$defs/resource_schema
attribute or block requirement: Resources can be technically be created without either, however to generally be useful a resource should always have at least have one identifying attribute for refresh. It is extremely unlikely that a real world resource would contain blocks, but no top level attributes.#/$defs/schema_custom_type
import requirement. Provider code should be definable with custom types that are declared in the same package as the generation, therefore making an external import unnecessary. The Go bindings already account for this being optionally defined and this matches the implementation of custom defaults, plan modifiers, and validators.