{
  "name": "molecule",
  "description": "Molecule aids in the development and testing of Ansible roles",
  "subcommands": [
    {
      "name": "check",
      "description": "Use the provisioner to perform a Dry-Run (destroy, dependency, create, prepare, converge)",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        },
        {
          "names": [
            "--parallel"
          ],
          "description": "Enable parallel mode"
        },
        {
          "names": [
            "--no-parallel"
          ],
          "description": "Disable parallel mode"
        }
      ]
    },
    {
      "name": "cleanup",
      "description": "Use the provisioner to cleanup any changes made to external systems during the stages of testing",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        }
      ]
    },
    {
      "name": "converge",
      "description": "Use the provisioner to configure instances (dependency, create, prepare converge)",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        }
      ]
    },
    {
      "name": "create",
      "description": "Use the provisioner to start the instances",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        },
        {
          "names": [
            "--driver-name",
            "-d"
          ],
          "description": "Name of driver to use. (delegated)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT",
            "suggestions": [
              "delegated",
              "docker",
              "podman",
              "vagrant",
              "azure",
              "hetzner"
            ]
          }
        }
      ]
    },
    {
      "name": "dependency",
      "description": "Manage the role's dependencies",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        }
      ]
    },
    {
      "name": "destroy",
      "description": "Use the provisioner to destroy the instances",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        },
        {
          "names": [
            "--driver-name",
            "-d"
          ],
          "description": "Name of driver to use. (delegated)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT",
            "suggestions": [
              "delegated",
              "docker",
              "podman",
              "vagrant",
              "azure",
              "hetzner"
            ]
          }
        },
        {
          "names": [
            "--all"
          ],
          "description": "Destroy all scenarios. Default is False"
        },
        {
          "names": [
            "--no-all"
          ],
          "description": "Do not destroy all scenarios"
        },
        {
          "names": [
            "--parallel"
          ],
          "description": "Enable parallel mode"
        },
        {
          "names": [
            "--no-parallel"
          ],
          "description": "Disable parallel mode"
        }
      ]
    },
    {
      "name": "drivers",
      "description": "List drivers",
      "options": [
        {
          "names": [
            "--format",
            "-f"
          ],
          "description": "Change output format. (simple)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT",
            "suggestions": [
              "simple",
              "plain"
            ]
          }
        }
      ]
    },
    {
      "name": "idempotence",
      "description": "Use the provisioner to configure the instances and parse the output to determine idempotence",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        }
      ]
    },
    {
      "name": "init",
      "description": "Initialize a new role or scenario",
      "subcommands": [
        {
          "name": "role",
          "description": "Initialize a new role for use with Molecule, namespace is required outside collections, like acme.myrole",
          "options": [
            {
              "names": [
                "--dependency-name"
              ],
              "description": "Name of dependency to initialize. (galaxy)",
              "takes_arg": true,
              "arg": {
                "name": "TEXT",
                "suggestions": [
                  "galaxy"
                ]
              }
            },
            {
              "names": [
                "--driver-name",
                "-d"
              ],
              "description": "Name of driver to use. (delegated)",
              "takes_arg": true,
              "arg": {
                "name": "TEXT",
                "suggestions": [
                  "delegated",
                  "docker",
                  "podman",
                  "vagrant",
                  "azure",
                  "hetzner"
                ]
              }
            },
            {
              "names": [
                "--lint-name"
              ],
              "description": "Name of lint to initialize. (yamllint)",
              "takes_arg": true,
              "arg": {
                "name": "TEXT",
                "suggestions": [
                  "yamllint"
                ]
              }
            },
            {
              "names": [
                "--provisioner-name"
              ],
              "description": "Name of provisioner to initialize. (ansible)",
              "takes_arg": true,
              "arg": {
                "name": "TEXT",
                "suggestions": [
                  "ansible"
                ]
              }
            },
            {
              "names": [
                "--verifier-name"
              ],
              "description": "Name of verifier to initialize. (ansible)",
              "takes_arg": true,
              "arg": {
                "name": "TEXT",
                "suggestions": [
                  "ansible",
                  "testinfra"
                ]
              }
            }
          ],
          "args": [
            {
              "name": "ROLE_NAME"
            }
          ]
        },
        {
          "name": "scenario",
          "description": "Initialize a new scenario for use with Molecule",
          "options": [
            {
              "names": [
                "--dependency-name"
              ],
              "description": "Name of dependency to initialize. (galaxy)",
              "takes_arg": true,
              "arg": {
                "name": "TEXT",
                "suggestions": [
                  "galaxy"
                ]
              }
            },
            {
              "names": [
                "--driver-name",
                "-d"
              ],
              "description": "Name of driver to use. (delegated)",
              "takes_arg": true,
              "arg": {
                "name": "TEXT",
                "suggestions": [
                  "delegated",
                  "docker",
                  "podman",
                  "vagrant",
                  "azure",
                  "hetzner"
                ]
              }
            },
            {
              "names": [
                "--lint-name"
              ],
              "description": "Name of lint to initialize. (yamllint)",
              "takes_arg": true,
              "arg": {
                "name": "TEXT",
                "suggestions": [
                  "yamllint"
                ]
              }
            },
            {
              "names": [
                "--provisioner-name"
              ],
              "description": "Name of provisioner to initialize. (ansible)",
              "takes_arg": true,
              "arg": {
                "name": "TEXT",
                "suggestions": [
                  "ansible"
                ]
              }
            },
            {
              "names": [
                "--role-name",
                "-r"
              ],
              "description": "Name of the role to create",
              "takes_arg": true,
              "arg": {
                "name": "TEXT"
              }
            },
            {
              "names": [
                "--verifier-name"
              ],
              "description": "Name of verifier to initialize. (ansible)",
              "takes_arg": true,
              "arg": {
                "name": "TEXT",
                "suggestions": [
                  "ansible",
                  "testinfra"
                ]
              }
            }
          ],
          "args": [
            {
              "name": "SCENARIO_NAME"
            }
          ]
        }
      ]
    },
    {
      "name": "lint",
      "description": "Lint the role (dependency, lint)",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        }
      ]
    },
    {
      "name": "list",
      "description": "List status of instances",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        },
        {
          "names": [
            "--format",
            "-f"
          ],
          "description": "Change output format. (simple)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT",
            "suggestions": [
              "simple",
              "plain",
              "yaml"
            ]
          }
        }
      ]
    },
    {
      "name": "login",
      "description": "Log in to one instance",
      "options": [
        {
          "names": [
            "--host",
            "-h"
          ],
          "description": "Host to access",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        },
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        }
      ]
    },
    {
      "name": "matrix",
      "description": "List matrix of steps used to test instances",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        }
      ]
    },
    {
      "name": "prepare",
      "description": "Use the provisioner to prepare the instances into a particular starting state",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        },
        {
          "names": [
            "--driver-name",
            "-d"
          ],
          "description": "Name of driver to use. (delegated)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT",
            "suggestions": [
              "delegated",
              "docker",
              "podman",
              "vagrant",
              "azure",
              "hetzner"
            ]
          }
        },
        {
          "names": [
            "--force"
          ],
          "description": "Enable force mode. Default is disabled"
        },
        {
          "names": [
            "--no-force"
          ],
          "description": "Disable force mode"
        }
      ]
    },
    {
      "name": "reset",
      "description": "Reset molecule temporary folders",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        }
      ]
    },
    {
      "name": "side-effect",
      "description": "Use the provisioner to perform side-effects to the instances",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        }
      ]
    },
    {
      "name": "syntax",
      "description": "Use the provisioner to syntax check the role",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        }
      ]
    },
    {
      "name": "test",
      "description": "Test (dependency, lint, cleanup, destroy, syntax, create, prepare, converge, idempotence, side_effect, verify, cleanup, destroy)",
      "options": [
        {
          "names": [
            "--scenario-name",
            "-s"
          ],
          "description": "Name of the scenario to target. (default)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT"
          }
        },
        {
          "names": [
            "--driver-name",
            "-d"
          ],
          "description": "Name of driver to use. (delegated)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT",
            "suggestions": [
              "delegated",
              "docker",
              "podman",
              "vagrant",
              "azure",
              "hetzner"
            ]
          }
        },
        {
          "names": [
            "--all"
          ],
          "description": "Test all scenarios. Default is False"
        },
        {
          "names": [
            "--no-all"
          ],
          "description": "Do not test all scenarios"
        },
        {
          "names": [
            "--destroy"
          ],
          "description": "The destroy strategy used at the conclusion of a Molecule run (always)",
          "takes_arg": true,
          "arg": {
            "name": "TEXT",
            "suggestions": [
              "always",
              "never"
            ]
          }
        },
        {
          "names": [
            "--parallel"
          ],
          "description": "Enable parallel mode"
        },
        {
          "names": [
            "--no-parallel"
          ],
          "description": "Disable parallel mode"
        }
      ]
    }
  ],
  "options": [
    {
      "names": [
        "--help"
      ],
      "description": "Show help"
    },
    {
      "names": [
        "--version"
      ],
      "description": "Show molecule version"
    }
  ]
}
