{
  "name": "terraform",
  "description": "Terraform CLI",
  "subcommands": [
    {
      "name": "init",
      "description": "Prepare your working directory for other commands",
      "options": [
        {
          "names": [
            "-upgrade"
          ],
          "description": "Opt to upgrade modules and plugins as part of their respective installation steps"
        },
        {
          "names": [
            "-lock"
          ],
          "description": "Lock the state file when locking is supported. Defaults to true",
          "takes_arg": true,
          "arg": {
            "name": "true or false",
            "suggestions": [
              "true",
              "false"
            ]
          }
        },
        {
          "names": [
            "-force"
          ],
          "description": "Delete the workspace even if its state is not empty. Defaults to false",
          "takes_arg": true,
          "arg": {
            "name": "true or false",
            "suggestions": [
              "true",
              "false"
            ]
          }
        },
        {
          "names": [
            "-lock-timeout"
          ],
          "description": "Duration to retry a state lock. Default 0s",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        },
        {
          "names": [
            "-input"
          ],
          "description": "Ask for input for variables if not directly set",
          "takes_arg": true,
          "arg": {
            "name": "true or false",
            "suggestions": [
              "true",
              "false"
            ]
          }
        },
        {
          "names": [
            "-no-color"
          ],
          "description": "Disables output with coloring"
        },
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "validate",
      "description": "Check whether the configuration is valid",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "plan",
      "description": "Show changes required by the current configuration",
      "options": [
        {
          "names": [
            "-compact-warnings"
          ],
          "description": "If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages"
        },
        {
          "names": [
            "-destroy"
          ],
          "description": "If set, generates a plan to destroy all the known resources"
        },
        {
          "names": [
            "-detailed-exitcode"
          ],
          "description": "Return a detailed exit code when the command exits"
        },
        {
          "names": [
            "-out"
          ],
          "description": "The path to save the generated execution plan"
        },
        {
          "names": [
            "-parallelism"
          ],
          "description": "Limit the number of concurrent operation as Terraform walks the graph. Defaults to 10",
          "takes_arg": true,
          "arg": {
            "name": "number"
          }
        },
        {
          "names": [
            "-refresh"
          ],
          "description": "Update the state prior to checking for differences",
          "takes_arg": true,
          "arg": {
            "name": "true or false",
            "suggestions": [
              "true",
              "false"
            ]
          }
        },
        {
          "names": [
            "-state"
          ],
          "description": "Path to the state file. Defaults to 'terraform.tfstate'. Ignored when remote state is used",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-target"
          ],
          "description": "A Resource Address to target. This flag can be used multiple times"
        },
        {
          "names": [
            "-var"
          ],
          "description": "Set a variable in the Terraform configuration. This flag can be set multiple times",
          "takes_arg": true,
          "arg": {
            "name": "foo=bar"
          }
        },
        {
          "names": [
            "-var-file"
          ],
          "description": "Set variables in the Terraform configuration from a variable file",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-lock"
          ],
          "description": "Lock the state file when locking is supported. Defaults to true",
          "takes_arg": true,
          "arg": {
            "name": "true or false",
            "suggestions": [
              "true",
              "false"
            ]
          }
        },
        {
          "names": [
            "-force"
          ],
          "description": "Delete the workspace even if its state is not empty. Defaults to false",
          "takes_arg": true,
          "arg": {
            "name": "true or false",
            "suggestions": [
              "true",
              "false"
            ]
          }
        },
        {
          "names": [
            "-lock-timeout"
          ],
          "description": "Duration to retry a state lock. Default 0s",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        },
        {
          "names": [
            "-input"
          ],
          "description": "Ask for input for variables if not directly set",
          "takes_arg": true,
          "arg": {
            "name": "true or false",
            "suggestions": [
              "true",
              "false"
            ]
          }
        },
        {
          "names": [
            "-no-color"
          ],
          "description": "Disables output with coloring"
        },
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "apply",
      "description": "Create or update infrastructure",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "destroy",
      "description": "Destroy previously-created infrastructure",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "console",
      "description": "Try Terraform expressions at an interactive command prompt",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "fmt",
      "description": "Reformat your configuration in the standard style",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "force-unlock",
      "description": "Release a stuck lock on the current workspace",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "get",
      "description": "Install or upgrade remote Terraform modules",
      "options": [
        {
          "names": [
            "-update"
          ],
          "description": "If specified, modules that are already downloaded will be checked for updates and the updates will be downloaded if present"
        },
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "graph",
      "description": "Generate a Graphviz graph of the steps in an operation",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "import",
      "description": "Associate existing infrastructure with a Terraform resource",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "login",
      "description": "Obtain and save credentials for a remote hos",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "logout",
      "description": "Remove locally-stored credentials for a remote host",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "output",
      "description": "Show output values from your root module",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "providers",
      "description": "Show the providers required for this configuration",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "refresh",
      "description": "Update the state to match remote systems",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "show",
      "description": "Show the current state or a saved plan",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "state",
      "description": "Advanced state management"
    },
    {
      "name": "taint",
      "description": "Mark a resource instance as not fully functional",
      "options": [
        {
          "names": [
            "-allow-missing"
          ],
          "description": "If specified, the command will succeed (exit code 0) even if the resource is missing. The command might still return an error for other situations, such as if there is a problem reading or writing the"
        },
        {
          "names": [
            "-lock"
          ],
          "description": "Disables Terraform's default behavior of attempting to take a read/write lock on the state for the duration of the operation if set to false. Defaults to true",
          "takes_arg": true,
          "arg": {
            "name": "true or false",
            "suggestions": [
              "true",
              "false"
            ]
          }
        },
        {
          "names": [
            "-lock-timeout"
          ],
          "description": "Unless locking is disabled with -lock=false, instructs Terraform to retry acquiring a lock for a period of time before returning an error. The duration syntax is a number followed by a time unit lette",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        },
        {
          "names": [
            "-ignore-remote-version"
          ],
          "description": "When using the enhanced remote backend with Terraform Cloud, continue even if remote and local Terraform versions differ. This may result in an unusable Terraform Cloud workspace, and should be used w",
          "takes_arg": true,
          "arg": {
            "name": "seconds"
          }
        },
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ],
      "args": [
        {
          "name": "address"
        }
      ]
    },
    {
      "name": "untaint",
      "description": "Remove the 'tainted' state from a resource instance",
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "workspace",
      "description": "Workspace management",
      "subcommands": [
        {
          "name": "new",
          "description": "Create a new workspace",
          "options": [
            {
              "names": [
                "-lock"
              ],
              "description": "Lock the state file when locking is supported. Defaults to true",
              "takes_arg": true,
              "arg": {
                "name": "true or false",
                "suggestions": [
                  "true",
                  "false"
                ]
              }
            },
            {
              "names": [
                "-lock-timeout"
              ],
              "description": "Duration to retry a stae lock. Default 0s",
              "takes_arg": true,
              "arg": {
                "name": "seconds"
              }
            },
            {
              "names": [
                "-state"
              ],
              "description": "Path to an existing state file to initialize the state of this environment",
              "takes_arg": true,
              "arg": {
                "name": "path",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "-help"
              ],
              "description": "Show this help output, or the help for a specified subcommand"
            },
            {
              "names": [
                "-chdir"
              ],
              "description": "Switch to a different working directory before executing the given subcommand",
              "takes_arg": true,
              "arg": {
                "template": "filepaths"
              }
            },
            {
              "names": [
                "-version"
              ],
              "description": "Show the current Terraform version"
            }
          ],
          "args": [
            {
              "name": "workspace name"
            }
          ]
        },
        {
          "name": "show",
          "description": "Display the current workspace",
          "options": [
            {
              "names": [
                "-help"
              ],
              "description": "Show this help output, or the help for a specified subcommand"
            },
            {
              "names": [
                "-chdir"
              ],
              "description": "Switch to a different working directory before executing the given subcommand",
              "takes_arg": true,
              "arg": {
                "template": "filepaths"
              }
            },
            {
              "names": [
                "-version"
              ],
              "description": "Show the current Terraform version"
            }
          ]
        },
        {
          "name": "list",
          "description": "List the workspace",
          "options": [
            {
              "names": [
                "-help"
              ],
              "description": "Show this help output, or the help for a specified subcommand"
            },
            {
              "names": [
                "-chdir"
              ],
              "description": "Switch to a different working directory before executing the given subcommand",
              "takes_arg": true,
              "arg": {
                "template": "filepaths"
              }
            },
            {
              "names": [
                "-version"
              ],
              "description": "Show the current Terraform version"
            }
          ]
        },
        {
          "name": "delete",
          "description": "Delete the specified workspace",
          "options": [
            {
              "names": [
                "-lock"
              ],
              "description": "Lock the state file when locking is supported. Defaults to true",
              "takes_arg": true,
              "arg": {
                "name": "true or false",
                "suggestions": [
                  "true",
                  "false"
                ]
              }
            },
            {
              "names": [
                "-force"
              ],
              "description": "Delete the workspace even if its state is not empty. Defaults to false",
              "takes_arg": true,
              "arg": {
                "name": "true or false",
                "suggestions": [
                  "true",
                  "false"
                ]
              }
            },
            {
              "names": [
                "-lock-timeout"
              ],
              "description": "Duration to retry a state lock. Default 0s",
              "takes_arg": true,
              "arg": {
                "name": "seconds"
              }
            },
            {
              "names": [
                "-input"
              ],
              "description": "Ask for input for variables if not directly set",
              "takes_arg": true,
              "arg": {
                "name": "true or false",
                "suggestions": [
                  "true",
                  "false"
                ]
              }
            },
            {
              "names": [
                "-no-color"
              ],
              "description": "Disables output with coloring"
            }
          ],
          "args": [
            {
              "name": "workspace name"
            }
          ]
        },
        {
          "name": "select",
          "description": "Change the current working workspace"
        }
      ],
      "options": [
        {
          "names": [
            "-help"
          ],
          "description": "Show this help output, or the help for a specified subcommand"
        },
        {
          "names": [
            "-chdir"
          ],
          "description": "Switch to a different working directory before executing the given subcommand",
          "takes_arg": true,
          "arg": {
            "template": "filepaths"
          }
        },
        {
          "names": [
            "-version"
          ],
          "description": "Show the current Terraform version"
        }
      ]
    },
    {
      "name": "-install-autocomplete",
      "description": "Install bash/zsh tab completion"
    },
    {
      "name": "-uninstall-autocomplete",
      "description": "Uninstall bash/zsh tab completion"
    }
  ],
  "options": [
    {
      "names": [
        "-help"
      ],
      "description": "Show this help output, or the help for a specified subcommand"
    },
    {
      "names": [
        "-chdir"
      ],
      "description": "Switch to a different working directory before executing the given subcommand",
      "takes_arg": true,
      "arg": {
        "template": "filepaths"
      }
    },
    {
      "names": [
        "-version"
      ],
      "description": "Show the current Terraform version"
    }
  ]
}
