Files
terraform-docs/docs/reference/asciidoc-document.md
Khosrow Moossavi 304bce9bb0 Refactor docs to be published on website
Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
2021-02-23 17:28:12 -05:00

7.6 KiB

title, description, menu, weight, toc
title description menu weight toc
asciidoc document Generate AsciiDoc document of inputs and outputs.
docs
parent
asciidoc
952 true

Synopsis

Generate AsciiDoc document of inputs and outputs.

terraform-docs asciidoc document [PATH] [flags]

Options

  -h, --help   help for document

Inherited Options

  -c, --config string               config file name (default ".terraform-docs.yml")
      --header-from string          relative path of a file to read header from (default "main.tf")
      --hide strings                hide section [header, inputs, modules, outputs, providers, requirements, resources]
      --hide-all                    hide all sections (default false)
      --indent int                  indention level of AsciiDoc sections [1, 2, 3, 4, 5] (default 2)
      --output-values               inject output values into outputs (default false)
      --output-values-from string   inject output values from file into outputs (default "")
      --required                    show Required column or section (default true)
      --sensitive                   show Sensitive column or section (default true)
      --show strings                show section [header, inputs, modules, outputs, providers, requirements, resources]
      --show-all                    show all sections (default true)
      --sort                        sort items (default true)
      --sort-by-required            sort items by name and print required ones first (default false)
      --sort-by-type                sort items by type of them (default false)

Example

Given the examples module:

terraform-docs asciidoc document ./examples/

generates the following output:

Usage:

Example of 'foo_bar' module in `foo_bar.tf`.

- list item 1
- list item 2

Even inline **formatting** in _here_ is possible.  
and some [link](https://domain.com/)

* list item 3
* list item 4

```hcl
module "foo_bar" {
  source = "github.com/foo/bar"

  id   = "1234567890"
  name = "baz"

  zones = ["us-east-1", "us-west-1"]

  tags = {
    Name         = "baz"
    Created-By   = "first.last@email.com"
    Date-Created = "20180101"
  }
}
```

Here is some trailing text after code block,  
followed by another line of text.

| Name | Description     |
|------|-----------------|
| Foo  | Foo description |
| Bar  | Bar description |

== Requirements

The following requirements are needed by this module:

- terraform (>= 0.12)

- aws (>= 2.15.0)

- random (>= 2.2.0)

== Providers

The following providers are used by this module:

- aws (>= 2.15.0)

- aws.ident (>= 2.15.0)

- null

- tls

== Modules

The following Modules are called:

=== bar

Source: baz

Version: 4.5.6

=== baz

Source: baz

Version: 4.5.6

=== foo

Source: bar

Version: 1.2.3

== Resources

The following resources are used by this module:

- https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity[aws_caller_identity]
- https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource[null_resource]
- https://registry.terraform.io/providers/hashicorp/tls/latest/docs/resources/private_key[tls_private_key]

== Required Inputs

The following input variables are required:

=== input_with_underscores

Description: A variable with underscores.

Type: `any`

=== list-2

Description: It's list number two.

Type: `list`

=== map-2

Description: It's map number two.

Type: `map`

=== number-2

Description: It's number number two.

Type: `number`

=== string-2

Description: It's string number two.

Type: `string`

=== string_no_default

Description: n/a

Type: `string`

=== unquoted

Description: n/a

Type: `any`

== Optional Inputs

The following input variables are optional (have default values):

=== bool-1

Description: It's bool number one.

Type: `bool`

Default: `true`

=== bool-2

Description: It's bool number two.

Type: `bool`

Default: `false`

=== bool-3

Description: n/a

Type: `bool`

Default: `true`

=== bool_default_false

Description: n/a

Type: `bool`

Default: `false`

=== input-with-code-block

Description: This is a complicated one. We need a newline.  
And an example in a code block
```
default     = [
  "machine rack01:neptune"
]
```

Type: `list`

Default:
[source,json]
----
[
  "name rack:location"
]
----

=== input-with-pipe

Description: It includes v1 \| v2 \| v3

Type: `string`

Default: `"v1"`

=== list-1

Description: It's list number one.

Type: `list`

Default:
[source,json]
----
[
  "a",
  "b",
  "c"
]
----

=== list-3

Description: n/a

Type: `list`

Default: `[]`

=== list_default_empty

Description: n/a

Type: `list(string)`

Default: `[]`

=== long_type

Description: This description is itself markdown.

It spans over multiple lines.

Type:
[source,hcl]
----
object({
    name = string,
    foo  = object({ foo = string, bar = string }),
    bar  = object({ foo = string, bar = string }),
    fizz = list(string),
    buzz = list(string)
  })
----

Default:
[source,json]
----
{
  "bar": {
    "bar": "bar",
    "foo": "bar"
  },
  "buzz": [
    "fizz",
    "buzz"
  ],
  "fizz": [],
  "foo": {
    "bar": "foo",
    "foo": "foo"
  },
  "name": "hello"
}
----

=== map-1

Description: It's map number one.

Type: `map`

Default:
[source,json]
----
{
  "a": 1,
  "b": 2,
  "c": 3
}
----

=== map-3

Description: n/a

Type: `map`

Default: `{}`

=== no-escape-default-value

Description: The description contains `something_with_underscore`. Defaults to 'VALUE_WITH_UNDERSCORE'.

Type: `string`

Default: `"VALUE_WITH_UNDERSCORE"`

=== number-1

Description: It's number number one.

Type: `number`

Default: `42`

=== number-3

Description: n/a

Type: `number`

Default: `"19"`

=== number-4

Description: n/a

Type: `number`

Default: `15.75`

=== number_default_zero

Description: n/a

Type: `number`

Default: `0`

=== object_default_empty

Description: n/a

Type: `object({})`

Default: `{}`

=== string-1

Description: It's string number one.

Type: `string`

Default: `"bar"`

=== string-3

Description: n/a

Type: `string`

Default: `""`

=== string-special-chars

Description: n/a

Type: `string`

Default: `"\\.<>[]{}_-"`

=== string_default_empty

Description: n/a

Type: `string`

Default: `""`

=== string_default_null

Description: n/a

Type: `string`

Default: `null`

=== with-url

Description: The description contains url. https://www.domain.com/foo/bar_baz.html

Type: `string`

Default: `""`

== Outputs

The following outputs are exported:

=== output-0.12

Description: terraform 0.12 only

=== output-1

Description: It's output number one.

=== output-2

Description: It's output number two.

=== unquoted

Description: It's unquoted output.