{
  "name": "dbt",
  "description": "CLI for dbt - Data Build Tool",
  "subcommands": [
    {
      "name": "build",
      "description": "Run models, test tests, snapshot snapshots, and seed seeds",
      "options": [
        {
          "names": [
            "--full-refresh"
          ],
          "description": "Treat incremental models as table models"
        },
        {
          "names": [
            "-x",
            "--fail-fast"
          ],
          "description": "Exit immediately if a single model fails to build"
        },
        {
          "names": [
            "--profiles-dir"
          ],
          "description": "Set the profiles directory",
          "takes_arg": true,
          "arg": {
            "name": "directory",
            "description": "Directory containing profiles.yml",
            "suggestions": [
              "profiles"
            ],
            "template": "folders"
          }
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Use the selected profile",
          "takes_arg": true,
          "arg": {
            "name": "name",
            "description": "Name of profile to use when running dbt project",
            "suggestions": [
              "default"
            ]
          }
        },
        {
          "names": [
            "--target"
          ],
          "description": "Target profile configuration i.e. prod/dev",
          "takes_arg": true,
          "arg": {
            "name": "profile",
            "description": "Target profile configuration (dev/prod)",
            "suggestions": [
              "dev",
              "prod"
            ]
          }
        },
        {
          "names": [
            "--vars"
          ],
          "description": "Variable values to override dbt_project.yml",
          "takes_arg": true,
          "arg": {
            "name": "variables",
            "description": "A short YAML string eg. '{my_variable: my_value}'"
          }
        },
        {
          "names": [
            "--threads"
          ],
          "description": "Number of concurrent database jobs",
          "takes_arg": true,
          "arg": {
            "name": "THREADS"
          }
        },
        {
          "names": [
            "-s",
            "--select"
          ],
          "description": "Select subset of models",
          "takes_arg": true,
          "arg": {
            "name": "subset",
            "description": "Select subset of models",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "Exclude subset of models",
          "takes_arg": true,
          "arg": {
            "name": "subset",
            "description": "Exclude subset of models",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--bypass-cache"
          ],
          "description": "Bypass the cache"
        }
      ]
    },
    {
      "name": "run",
      "description": "Runs the models in a project",
      "options": [
        {
          "names": [
            "--full-refresh"
          ],
          "description": "Treat incremental models as table models"
        },
        {
          "names": [
            "-x",
            "--fail-fast"
          ],
          "description": "Exit immediately if a single model fails to build"
        },
        {
          "names": [
            "--use-colors"
          ],
          "description": "Default value -- colorize run logs"
        },
        {
          "names": [
            "--no-use-colors"
          ],
          "description": "Disable log colorizing"
        },
        {
          "names": [
            "--profiles-dir"
          ],
          "description": "Set the profiles directory",
          "takes_arg": true,
          "arg": {
            "name": "directory",
            "description": "Directory containing profiles.yml",
            "suggestions": [
              "profiles"
            ],
            "template": "folders"
          }
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select the profile to use",
          "takes_arg": true,
          "arg": {
            "name": "name",
            "description": "Name of profile to use when running dbt project",
            "suggestions": [
              "default"
            ]
          }
        },
        {
          "names": [
            "--target"
          ],
          "description": "The target profile",
          "takes_arg": true,
          "arg": {
            "name": "Target profile",
            "description": "Target profile configuration (dev/prod)",
            "suggestions": [
              "dev",
              "prod"
            ]
          }
        },
        {
          "names": [
            "--vars"
          ],
          "description": "Variable values to override dbt_project.yml",
          "takes_arg": true,
          "arg": {
            "name": "variables",
            "description": "A short YAML string eg. '{my_variable: my_value}'"
          }
        },
        {
          "names": [
            "--threads"
          ],
          "description": "Number of concurrent database jobs",
          "takes_arg": true,
          "arg": {
            "name": "threads"
          }
        },
        {
          "names": [
            "-s",
            "--select"
          ],
          "description": "Select subset of models",
          "takes_arg": true,
          "arg": {
            "name": "subset",
            "description": "Select subset of models",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "Exclude subset of models",
          "takes_arg": true,
          "arg": {
            "name": "subset",
            "description": "Exclude subset of models",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--bypass-cache"
          ],
          "description": "Bypass the cache"
        }
      ]
    },
    {
      "name": "debug",
      "description": "Debugs dbt connections and projects",
      "options": [
        {
          "names": [
            "--config-dir"
          ]
        }
      ]
    },
    {
      "name": "init",
      "description": "Initializes a new dbt project",
      "options": [
        {
          "names": [
            "--adapter"
          ],
          "description": "Add an adapter",
          "takes_arg": true,
          "arg": {
            "name": "adapter",
            "description": "E.g. big query"
          }
        }
      ],
      "args": [
        {
          "name": "name"
        }
      ]
    },
    {
      "name": "compile",
      "description": "Compiles (but does not run) the models in a project",
      "options": [
        {
          "names": [
            "--profiles-dir"
          ],
          "description": "Set the profiles directory",
          "takes_arg": true,
          "arg": {
            "name": "directory",
            "description": "Directory containing profiles.yml",
            "suggestions": [
              "profiles"
            ],
            "template": "folders"
          }
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select the profile to use",
          "takes_arg": true,
          "arg": {
            "name": "name",
            "description": "Name of profile to use when running dbt project",
            "suggestions": [
              "default"
            ]
          }
        },
        {
          "names": [
            "--target"
          ],
          "description": "The target profile",
          "takes_arg": true,
          "arg": {
            "name": "Target profile",
            "description": "Target profile configuration (dev/prod)",
            "suggestions": [
              "dev",
              "prod"
            ]
          }
        },
        {
          "names": [
            "--vars"
          ],
          "description": "Variable values to override dbt_project.yml",
          "takes_arg": true,
          "arg": {
            "name": "Variable values",
            "description": "A short YAML string eg. '{my_variable: my_value}'"
          }
        },
        {
          "names": [
            "--threads"
          ],
          "description": "Number of concurrent database jobs",
          "takes_arg": true,
          "arg": {
            "name": "THREADS"
          }
        },
        {
          "names": [
            "--select"
          ],
          "description": "Select subset of models",
          "takes_arg": true,
          "arg": {
            "name": "Select subset",
            "description": "Select subset of models",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "Exclude subset of models",
          "takes_arg": true,
          "arg": {
            "name": "Exclude subset",
            "description": "Exclude subset of models",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--bypass-cache"
          ],
          "description": "Bypass the cache"
        },
        {
          "names": [
            "--selector"
          ],
          "description": "This flag specifies one or more named selectors, defined in a <selector name>.yml file",
          "takes_arg": true,
          "arg": {
            "name": "YAML selector file name",
            "is_variadic": true
          }
        },
        {
          "names": [
            "--defer"
          ],
          "description": "Defer"
        }
      ]
    },
    {
      "name": "test",
      "description": "Executes tests defined in a project",
      "options": [
        {
          "names": [
            "-x",
            "--fail-fast"
          ],
          "description": "Exit immediately if a single model fails to build"
        },
        {
          "names": [
            "--profiles-dir"
          ],
          "description": "Set the profiles directory",
          "takes_arg": true,
          "arg": {
            "name": "directory",
            "description": "Directory containing profiles.yml",
            "suggestions": [
              "profiles"
            ],
            "template": "folders"
          }
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select the profile to use",
          "takes_arg": true,
          "arg": {
            "name": "name",
            "description": "Name of profile to use when running dbt project",
            "suggestions": [
              "default"
            ]
          }
        },
        {
          "names": [
            "--data"
          ],
          "description": "Run only custom data tests"
        },
        {
          "names": [
            "--schema"
          ],
          "description": "Run only schema tests"
        },
        {
          "names": [
            "-s",
            "--select"
          ],
          "description": "Select subset of models",
          "takes_arg": true,
          "arg": {
            "name": "subset",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "Exclude subset of models",
          "takes_arg": true,
          "arg": {
            "name": "subset",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--bypass-cache"
          ],
          "description": "Bypass the cache"
        },
        {
          "names": [
            "--selector"
          ],
          "description": "This flag specifies one or more named selectors, defined in a <selector name>.yml file",
          "takes_arg": true,
          "arg": {
            "name": "YAML selector file name",
            "is_variadic": true
          }
        },
        {
          "names": [
            "--defer"
          ],
          "description": "Defer"
        }
      ]
    },
    {
      "name": "deps",
      "description": "Downloads dependencies for a project"
    },
    {
      "name": "snapshot",
      "description": "Executes 'snapshot' jobs defined in a project",
      "options": [
        {
          "names": [
            "--profiles-dir"
          ],
          "description": "Set the profiles directory",
          "takes_arg": true,
          "arg": {
            "name": "profiles directory",
            "description": "Directory containing profiles.yml",
            "suggestions": [
              "profiles"
            ],
            "template": "folders"
          }
        },
        {
          "names": [
            "-x",
            "--fail-fast"
          ],
          "description": "Exit immediately if a single model fails to build"
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select the profile to use",
          "takes_arg": true,
          "arg": {
            "name": "Profile name",
            "description": "Name of profile to use when running dbt project",
            "suggestions": [
              "default"
            ]
          }
        },
        {
          "names": [
            "--target"
          ],
          "description": "The target profile",
          "takes_arg": true,
          "arg": {
            "name": "Target profile",
            "description": "Target profile configuration (dev/prod)",
            "suggestions": [
              "dev",
              "prod"
            ]
          }
        },
        {
          "names": [
            "--vars"
          ],
          "description": "Variable values to override dbt_project.yml",
          "takes_arg": true,
          "arg": {
            "name": "Variable values",
            "description": "A short YAML string eg. '{my_variable: my_value}'"
          }
        },
        {
          "names": [
            "--threads"
          ],
          "description": "Number of concurrent database jobs",
          "takes_arg": true,
          "arg": {
            "name": "thread"
          }
        },
        {
          "names": [
            "--select"
          ],
          "description": "Select subset of models",
          "takes_arg": true,
          "arg": {
            "name": "subset",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "Exclude subset of models",
          "takes_arg": true,
          "arg": {
            "name": "Exclude subset",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--bypass-cache"
          ],
          "description": "Bypass the cache"
        }
      ]
    },
    {
      "name": "clean",
      "description": "Deletes artifacts present in the dbt project"
    },
    {
      "name": "seed",
      "description": "Loads CSV files into the database",
      "options": [
        {
          "names": [
            "--profiles-dir"
          ],
          "description": "Set the profiles directory",
          "takes_arg": true,
          "arg": {
            "name": "profiles directory",
            "description": "Directory containing profiles.yml",
            "suggestions": [
              "profiles"
            ],
            "template": "folders"
          }
        },
        {
          "names": [
            "--profile"
          ],
          "description": "Select the profile to use",
          "takes_arg": true,
          "arg": {
            "name": "Profile name",
            "description": "Name of profile to use when running dbt project",
            "suggestions": [
              "default"
            ]
          }
        },
        {
          "names": [
            "-x",
            "--fail-fast"
          ],
          "description": "Exit immediately if a single model fails to build"
        },
        {
          "names": [
            "--select"
          ],
          "description": "Run specific seeds",
          "takes_arg": true,
          "arg": {
            "name": "Select subset",
            "description": "E.g. country_codes",
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "Exclude subset of models",
          "takes_arg": true,
          "arg": {
            "name": "Exclude subset",
            "description": "Exclude subset of models",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--bypass-cache"
          ],
          "description": "Bypass the cache"
        },
        {
          "names": [
            "--selector"
          ],
          "description": "This flag specifies one or more named selectors, defined in a <selector name>.yml file",
          "takes_arg": true,
          "arg": {
            "name": "YAML selector file name",
            "is_variadic": true
          }
        }
      ]
    },
    {
      "name": "docs",
      "description": "Generates documentation for a project",
      "subcommands": [
        {
          "name": "generate",
          "description": "Generate your project's documentation website",
          "options": [
            {
              "names": [
                "--no-compile"
              ],
              "description": "Skip re-compilation"
            }
          ]
        },
        {
          "name": "serve",
          "description": "Serve your documentation on a local webserver (default prot 8000)",
          "options": [
            {
              "names": [
                "--profiles-dir"
              ],
              "description": "Skip re-compilation",
              "takes_arg": true,
              "arg": {
                "name": "PROFILES_DIR",
                "description": "Path to profiles directory",
                "template": "folders"
              }
            },
            {
              "names": [
                "--profile"
              ],
              "description": "Choose a profile",
              "takes_arg": true,
              "arg": {
                "name": "PROFILE NAME"
              }
            },
            {
              "names": [
                "--target"
              ],
              "description": "The target profile",
              "takes_arg": true,
              "arg": {
                "name": "Target profile",
                "description": "Target profile configuration (dev/prod)",
                "suggestions": [
                  "dev",
                  "prod"
                ]
              }
            },
            {
              "names": [
                "--port"
              ],
              "description": "Choose a port",
              "takes_arg": true,
              "arg": {
                "name": "port number",
                "description": "Default is 8000"
              }
            }
          ]
        }
      ]
    },
    {
      "name": "source",
      "description": "Provides tools for working with source data (including validating that sources are 'fresh')",
      "subcommands": [
        {
          "name": "snapshot-freshness",
          "options": [
            {
              "names": [
                "-o",
                "--output"
              ],
              "description": "Override the destination for sources.json",
              "takes_arg": true,
              "arg": {
                "name": "FILEPATH",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--select"
              ],
              "description": "This flag specifies one or more selection-type arguments used to filter the nodes returned by the dbt ls command",
              "takes_arg": true,
              "arg": {
                "name": "Select subset",
                "is_variadic": true,
                "suggestions": [
                  "path:",
                  "tag:",
                  "config:",
                  "test_type:",
                  "test_name:"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "run-operation",
      "description": "Runs arbitrary maintenance SQL against the database",
      "options": [
        {
          "names": [
            "--args"
          ],
          "description": "Supply arguments to the macro",
          "takes_arg": true,
          "arg": {
            "name": "ARGS",
            "description": "A short YAML string eg. '{my_variable: my_value}'"
          }
        }
      ],
      "args": [
        {
          "name": "MACRO",
          "description": "Dbt will call this macro with the supplied arguments and then exit"
        }
      ]
    },
    {
      "name": "rpc",
      "description": "Runs an RPC server that clients can submit queries to",
      "options": [
        {
          "names": [
            "--host"
          ],
          "description": "Specify the host to listen on",
          "takes_arg": true,
          "arg": {
            "name": "HOST",
            "description": "Default: 0.0.0.0"
          }
        },
        {
          "names": [
            "--port"
          ],
          "description": "The port to use",
          "takes_arg": true,
          "arg": {
            "name": "PORT",
            "description": "Default: 8580"
          }
        }
      ]
    },
    {
      "name": "ls",
      "aliases": [
        "list"
      ],
      "description": "Lists resources defined in a dbt project",
      "options": [
        {
          "names": [
            "--resource-type"
          ],
          "description": "This flag limits the 'resource types' that dbt will return in the dbt ls command. By default, the following resources are included in the results of dbt ls: models, snapshots, seeds, tests, and source",
          "takes_arg": true,
          "arg": {
            "name": "resource-type",
            "suggestions": [
              "source",
              "analysis",
              "model",
              "snapshot",
              "test",
              "seed",
              "default",
              "all"
            ]
          }
        },
        {
          "names": [
            "-s",
            "--select"
          ],
          "description": "This flag specifies one or more selection-type arguments used to filter the nodes returned by the dbt ls command",
          "takes_arg": true,
          "arg": {
            "name": "SELECTION_ARG",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--exclude"
          ],
          "description": "Specify selectors that should be excluded from the list of returned nodes",
          "takes_arg": true,
          "arg": {
            "name": "SELECTOR",
            "is_variadic": true,
            "suggestions": [
              "path:",
              "tag:",
              "config:",
              "test_type:",
              "test_name:"
            ]
          }
        },
        {
          "names": [
            "--selector"
          ],
          "description": "This flag specifies one or more named selectors, defined in a <selector name>.yml file",
          "takes_arg": true,
          "arg": {
            "name": "YAML selector file name",
            "is_variadic": true
          }
        },
        {
          "names": [
            "--output"
          ],
          "description": "This flag controls the format of output from the dbt ls command",
          "takes_arg": true,
          "arg": {
            "name": "output",
            "is_variadic": true,
            "suggestions": [
              "json",
              "name",
              "path",
              "selector"
            ]
          }
        }
      ]
    },
    {
      "name": "parse",
      "description": "Parse dbt project and write detailed timing information"
    }
  ],
  "options": [
    {
      "names": [
        "--version"
      ],
      "description": "Currently installed version"
    },
    {
      "names": [
        "-r",
        "--record-timing-info"
      ],
      "description": "Create a new file to record timing info",
      "takes_arg": true,
      "arg": {
        "name": "file name",
        "description": "Create a new file to record timing info"
      }
    },
    {
      "names": [
        "-d",
        "--debug"
      ],
      "description": "Redirect debug logs to standard out"
    },
    {
      "names": [
        "--log-format"
      ],
      "description": "Specify how dbt's logs should be formatted",
      "takes_arg": true,
      "arg": {
        "name": "log format",
        "suggestions": [
          "text",
          "json",
          "default"
        ]
      }
    },
    {
      "names": [
        "--no-write-json"
      ],
      "description": "Prevent dbt from writing JSOn artifacts to the 'target/' directory"
    },
    {
      "names": [
        "-S",
        "--strict"
      ],
      "description": "Perform extra validation of dbt objects and internal consistency checks during compilation. Use only during development"
    },
    {
      "names": [
        "--warn-error"
      ],
      "description": "Convert dbt warnings into errors"
    },
    {
      "names": [
        "--partial-parse"
      ],
      "description": "Configure partial parsing for your project"
    },
    {
      "names": [
        "--no-partial-parse"
      ],
      "description": "Turn off partial parsing for your project"
    },
    {
      "names": [
        "--use-colors"
      ],
      "description": "Default value -- colorize run logs"
    },
    {
      "names": [
        "--no-use-colors"
      ],
      "description": "Disable log colorizing"
    }
  ]
}
