Use nested attribute types instead of block types for new schema implementations. Block support is mainly for migrating legacy SDK-based providers.
Blocks are containers for other attributes and blocks in resource, data source, or provider schemas. Every block has an associated value type, which describes the kind of data the block holds. Blocks also can describe value plan modifiers (resources only) and value validators in addition to those defined by the value type.