Merge pull request #9005 from hashicorp/azr/document-hcl2-json-block-type-specific-exceptions

Document Block-type-specific Exceptions in HCL2 json
This commit is contained in:
Wilken Rivera 2020-04-06 21:14:40 -04:00 committed by GitHub
commit 1515875217
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 33 additions and 1 deletions

View File

@ -86,7 +86,9 @@ source "amazon-ebs" "example" {
```
Within each top-level block type the rules for mapping to JSON are slightly
different (see [Block-type-specific Exceptions][inpage-exceptions] below), but the following general rules apply in most cases:
different (see the [block-type-specific
exceptions](#block-type-specific-exceptions) below), but the following general
rules apply in most cases:
* The JSON object representing the block body contains properties that
correspond either to argument names or to nested block type names.
@ -274,3 +276,33 @@ configuration file. This can be useful to note which program created the file.
"//": "This file is generated by generate-outputs.py. DO NOT HAND-EDIT!",
}
```
## Block-type-specific Exceptions
[inpage-block]: #block-type-specific-exceptions
Certain arguments within specific block types are processed in a special way,
and so their mapping to the JSON syntax does not follow the general rules
described above. The following sub-sections describe the special mapping rules
that apply to each top-level block type.
### `variable` blocks
All arguments inside `variable` blocks have non-standard mappings to JSON:
* `type`: a string containing a type expression, like `"string"` or `"list(string)"`.
* `default`: a literal JSON value that can be converted to the given type.
Strings within this value are taken literally and _not_ interpreted as
string templates.
* `description`: a literal JSON string, _not_ interpreted as a template.
```json
{
"variable": {
"example": {
"type": "string",
"default": "hello"
}
}
}
```