{
  "name": "rush",
  "description": "Multi-Project Build Tool",
  "subcommands": [
    {
      "name": "add",
      "description": "Adds one or more dependencies to the package.json and runs rush update",
      "options": [
        {
          "names": [
            "-p",
            "--package"
          ],
          "description": "Specify package to the dependencies of the current project",
          "takes_arg": true,
          "arg": {
            "name": "PACKAGE"
          },
          "is_required": true
        },
        {
          "names": [
            "--exact"
          ],
          "description": "If specified, the SemVer specifier added to the package.json will be an exact version (e.g. without tilde or caret)"
        },
        {
          "names": [
            "--caret"
          ],
          "description": "If specified, the SemVer specifier added to the package.json will be a prepended with a \"caret\" specifier (\"^\")"
        },
        {
          "names": [
            "--dev"
          ],
          "description": "If specified, the package will be added to the \"devDependencies\" section of the package.json"
        },
        {
          "names": [
            "-m",
            "--make-consistent"
          ],
          "description": "If specified, other packages with this dependency will have their package.json files updated to use the same version of the dependency"
        },
        {
          "names": [
            "-s",
            "--skip-update"
          ],
          "description": "If specified, the \"rush update\" command will not be run after updating the package.json files"
        },
        {
          "names": [
            "--all"
          ],
          "description": "If specified, the dependency will be added to all projects"
        }
      ]
    },
    {
      "name": "change",
      "description": "Records changes made to projects, indicating how the package version number should be bumped for the next publish",
      "options": [
        {
          "names": [
            "-v",
            "--verify"
          ],
          "description": "Verify the change file has been generated and that it is a valid JSON file"
        },
        {
          "names": [
            "--no-fetch"
          ],
          "description": "Skips fetching the baseline branch before running \"git diff\" to detect changes"
        },
        {
          "names": [
            "-b",
            "--target-branch"
          ],
          "description": "If this parameter is specified, compare the checked out branch with the specified branch to determine which projects were changed. If this parameter is not specified, the checked out branch is compare",
          "takes_arg": true,
          "arg": {
            "name": "BRANCH"
          }
        },
        {
          "names": [
            "--overwrite"
          ],
          "description": "If a changefile already exists, overwrite without prompting (or erroring in --bulk mode)"
        },
        {
          "names": [
            "--email"
          ],
          "description": "The email address to use in changefiles. If this parameter is not provided, the email address will be detected or prompted for in interactive mode",
          "takes_arg": true,
          "arg": {
            "name": "EMAIL"
          }
        },
        {
          "names": [
            "--bulk"
          ],
          "description": "If this flag is specified, apply the same change message and bump type to all changed projects. The --message and the --bump-type parameters must be specified if the --bulk parameter is specified"
        },
        {
          "names": [
            "--message"
          ],
          "description": "The message to apply to all changed projects if the --bulk flag is provided",
          "takes_arg": true,
          "arg": {
            "name": "MESSAGE"
          }
        },
        {
          "names": [
            "--bump-type"
          ],
          "description": "The bump type to apply to all changed projects if the --bulk flag is provided",
          "takes_arg": true,
          "arg": {
            "name": "BUMP_TYPE",
            "suggestions": [
              "major",
              "minor",
              "patch",
              "none"
            ]
          }
        }
      ]
    },
    {
      "name": "check",
      "description": "Checks each project's package.json files and ensures that all dependencies are of the same version throughout the repository",
      "options": [
        {
          "names": [
            "--variant"
          ],
          "description": "Run command using a variant installation configuration. This parameter may alternatively be specified via the RUSH_VARIANT environment variable",
          "takes_arg": true,
          "arg": {
            "name": "VARIANT"
          }
        },
        {
          "names": [
            "--json"
          ],
          "description": "If this flag is specified, output will be in JSON format"
        }
      ]
    },
    {
      "name": "deploy",
      "description": "Prepares a deployment by copying a subset of Rush projects and their dependencies to a target folder",
      "options": [
        {
          "names": [
            "-p",
            "--project"
          ],
          "description": "Specifies the name of the main Rush project to be deployed. It must appear in the \"deploymentProjectNames\" setting in the deployment config file",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT_NAME"
          }
        },
        {
          "names": [
            "-s",
            "--scenario"
          ],
          "description": "By default, the deployment configuration is specified in \"common/config/rush/deploy.json\". You can use \"--scenario\" to specify an alternate name. The name must be lowercase and separated by dashes. Fo",
          "takes_arg": true,
          "arg": {
            "name": "SCENARIO_NAME"
          }
        },
        {
          "names": [
            "--overwrite"
          ],
          "description": "By default, deployment will fail if the target folder is not empty. SPECIFYING THIS FLAG WILL RECURSIVELY DELETE EXISTING CONTENTS OF THE TARGET FOLDER"
        },
        {
          "names": [
            "-t",
            "--target-folder"
          ],
          "description": "By default, files are deployed to the \"common/deploy\" folder inside the Rush repo. Use this parameter to specify a different location. WARNING: USE CAUTION WHEN COMBINING WITH \"--overwrite\". This para",
          "takes_arg": true,
          "arg": {
            "name": "PATH"
          }
        },
        {
          "names": [
            "--create-archive"
          ],
          "description": "If specified, after the deployment has been prepared, \"rush deploy\" will create an archive containing the contents of the target folder. The newly created archive file will be placed according to the ",
          "takes_arg": true,
          "arg": {
            "name": "ARCHIVE_PATH"
          }
        }
      ]
    },
    {
      "name": "init",
      "description": "Initializes a new repository to be managed by Rush",
      "options": [
        {
          "names": [
            "--overwrite-existing"
          ],
          "description": "By default \"rush init\" will not overwrite existing config files. Specify this switch to override that.  This can be useful when upgrading your repo to a newer release of Rush. WARNING: USE WITH CARE!"
        },
        {
          "names": [
            "--rush-example-repo"
          ],
          "description": "When copying the template config files, this uncomments fragments that are used by the \"rush-example\" GitHub repo, which is a sample monorepo that illustrates many Rush features. This option is primar"
        }
      ]
    },
    {
      "name": "init-autoinstaller",
      "description": "Initializes a new autoinstaller",
      "options": [
        {
          "names": [
            "--name"
          ],
          "description": "Specifies the name of the autoinstaller folder, which must conform to the naming rules for NPM packages",
          "takes_arg": true,
          "arg": {
            "name": "AUTOINSTALLER_NAME"
          }
        }
      ]
    },
    {
      "name": "init-deploy",
      "description": "Creates a deployment scenario config file for use with \"rush deploy\"",
      "options": [
        {
          "names": [
            "-p",
            "--project"
          ],
          "description": "Specifies the name of the main Rush project to be deployed in this scenario. It will be added to the \"deploymentProjectNames\" setting",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT_NAME"
          }
        },
        {
          "names": [
            "-s",
            "--scenario"
          ],
          "description": "By default, the deployment configuration will be written to \"common/config/rush/deploy.json\". You can use \"--scenario\" to specify an alternate name. The name must be lowercase and separated by dashes.",
          "takes_arg": true,
          "arg": {
            "name": "SCENARIO"
          }
        }
      ]
    },
    {
      "name": "install",
      "description": "Install package dependencies for all projects in the repo according to the shrinkwrap file",
      "options": [
        {
          "names": [
            "-p",
            "--purge"
          ],
          "description": "Perform \"rush purge\" before starting the installation"
        },
        {
          "names": [
            "--bypass-policy"
          ],
          "description": "Overrides enforcement of the \"gitPolicy\" rules from rush.json (use honorably!)"
        },
        {
          "names": [
            "--no-link"
          ],
          "description": "If \"--no-link\" is specified, then project symlinks will NOT be created after the installation completes. You will need to run \"rush link\" manually. This flag is useful for automated builds that want t"
        },
        {
          "names": [
            "--network-concurrency"
          ],
          "description": "If specified, limits the maximum number of concurrent network requests. This is useful when troubleshooting network failures",
          "takes_arg": true,
          "arg": {
            "name": "COUNT"
          }
        },
        {
          "names": [
            "--debug-package-manager"
          ],
          "description": "Activates verbose logging for the package manager. You will probably want to pipe the output of Rush to a file when using this command"
        },
        {
          "names": [
            "--max-install-attempts"
          ],
          "description": "Overrides the default maximum number of install attempts. The default value is 3",
          "takes_arg": true,
          "arg": {
            "name": "NUMBER"
          }
        },
        {
          "names": [
            "--ignore-hooks"
          ],
          "description": "Skips execution of the \"eventHooks\" scripts defined in rush.json. Make sure you know what you are skipping"
        },
        {
          "names": [
            "--variant"
          ],
          "description": "Run command using a variant installation configuration. This parameter may alternatively be specified via the RUSH_VARIANT environment variable",
          "takes_arg": true,
          "arg": {
            "name": "VARIANT"
          }
        },
        {
          "names": [
            "-t",
            "--to"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--to\" parameter expands this selection to include PROJECT and all its dep",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-T",
            "--to-except"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--to-except\" parameter expands this selection to include all dependencies",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-f",
            "--from"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--from\" parameter expands this selection to include PROJECT and all proje",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-o",
            "--only"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--only\" parameter expands this selection to include PROJECT; its dependen",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-i",
            "--impacted-by"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--impacted-by\" parameter expands this selection to include PROJECT and an",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-I",
            "--impacted-by-except"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--impacted-by-except\" parameter works the same as \"--impacted-by\" except ",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "--to-version-policy"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. The \"--to-version-policy\" parameter is equivalent to specifying \"--to\" for each",
          "takes_arg": true,
          "arg": {
            "name": "VERSION_POLICY_NAME"
          }
        },
        {
          "names": [
            "--from-version-policy"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. The \"--from-version-policy\" parameter is equivalent to specifying \"--from\" for ",
          "takes_arg": true,
          "arg": {
            "name": "VERSION_POLICY_NAME"
          }
        },
        {
          "names": [
            "--check-only"
          ],
          "description": "Only check the validity of the shrinkwrap file without performing an install"
        }
      ]
    },
    {
      "name": "link",
      "description": "Create node_modules symlinks for all projects",
      "options": [
        {
          "names": [
            "-f",
            "--force"
          ],
          "description": "Deletes and recreates all links, even if the filesystem state seems to indicate that this is unnecessary"
        }
      ]
    },
    {
      "name": "list",
      "description": "List package information for all projects in the repo",
      "options": [
        {
          "names": [
            "-v",
            "--version"
          ],
          "description": "If this flag is specified, the project version will be displayed in a column along with the package name"
        },
        {
          "names": [
            "-p",
            "--path"
          ],
          "description": "If this flag is specified, the project path will be displayed in a column along with the package name"
        },
        {
          "names": [
            "--full-path"
          ],
          "description": "If this flag is specified, the project full path will be displayed in a column along with the package name"
        },
        {
          "names": [
            "--detailed"
          ],
          "description": "For the non --json view, if this flag is specified, include path (-p), version (-v) columns along with the project's applicable: versionPolicy, versionPolicyName, shouldPublish, and reviewPolicy field"
        },
        {
          "names": [
            "--json"
          ],
          "description": "If this flag is specified, output will be in JSON format"
        }
      ]
    },
    {
      "name": "publish",
      "description": "Reads and processes package publishing change requests generated by \"rush change\"",
      "options": [
        {
          "names": [
            "-a",
            "--apply"
          ],
          "description": "If this flag is specified, the change requests will be applied to package.json files"
        },
        {
          "names": [
            "-b",
            "--target-branch"
          ],
          "description": "If this flag is specified, applied changes and deleted change requests will be committed and merged into the target branch",
          "takes_arg": true,
          "arg": {
            "name": "BRANCH"
          }
        },
        {
          "names": [
            "-p",
            "--publish"
          ],
          "description": "If this flag is specified, applied changes will be published to the NPM registry"
        },
        {
          "names": [
            "--add-commit-details"
          ],
          "description": "Adds commit author and hash to the changelog.json files for each change"
        },
        {
          "names": [
            "--regenerate-changelogs"
          ],
          "description": "Regenerates all changelog files based on the current JSON content"
        },
        {
          "names": [
            "-r",
            "--registry"
          ],
          "description": "Publishes to a specified NPM registry. If this is specified, it will prevent the current commit will not be tagged",
          "takes_arg": true,
          "arg": {
            "name": "REGISTRY"
          }
        },
        {
          "names": [
            "-n",
            "--npm-auth-token"
          ],
          "description": "(DEPRECATED) Specifies the authentication token to use during publishing. This parameter is deprecated because command line parameters may be readable by unrelated processes on a lab machine. Instead,",
          "takes_arg": true,
          "arg": {
            "name": "TOKEN"
          }
        },
        {
          "names": [
            "-t",
            "--tag"
          ],
          "description": "The tag option to pass to npm publish. By default NPM will publish using the 'latest' tag, even if the package is older than the current latest, so in publishing workflows for older releases, providin",
          "takes_arg": true,
          "arg": {
            "name": "TAG"
          }
        },
        {
          "names": [
            "--set-access-level"
          ],
          "description": "By default, when Rush invokes \"npm publish\" it will publish scoped packages with an access level of \"restricted\". Scoped packages can be published with an access level of \"public\" by specifying that v",
          "takes_arg": true,
          "arg": {
            "name": "ACCESS_LEVEL",
            "suggestions": [
              "public",
              "restricted"
            ]
          }
        },
        {
          "names": [
            "--pack"
          ],
          "description": "Packs projects into tarballs instead of publishing to npm repository. It can only be used when --include-all is specified. If this flag is specified, NPM registry related parameters will be ignored"
        },
        {
          "names": [
            "--release-folder"
          ],
          "description": "This parameter is used with --pack parameter to provide customized location for the tarballs instead of the default value",
          "takes_arg": true,
          "arg": {
            "name": "FOLDER"
          }
        },
        {
          "names": [
            "--include-all"
          ],
          "description": "If this flag is specified, all packages with shouldPublish=true in rush.json or with a specified version policy will be published if their version is newer than published version"
        },
        {
          "names": [
            "--version-policy"
          ],
          "description": "Version policy name. Only projects with this version policy will be published if used with --include-all",
          "takes_arg": true,
          "arg": {
            "name": "POLICY"
          }
        },
        {
          "names": [
            "--prerelease-name"
          ],
          "description": "Bump up to a prerelease version with the provided prerelease name. Cannot be used with --suffix",
          "takes_arg": true,
          "arg": {
            "name": "NAME"
          }
        },
        {
          "names": [
            "--partial-prerelease"
          ],
          "description": "Used with --prerelease-name. Only bump packages to a prerelease version if they have changes"
        },
        {
          "names": [
            "--suffix"
          ],
          "description": "Append a suffix to all changed versions. Cannot be used with --prerelease-name",
          "takes_arg": true,
          "arg": {
            "name": "SUFFIX"
          }
        },
        {
          "names": [
            "--force"
          ],
          "description": "If this flag is specified with --publish, packages will be published with --force on npm"
        },
        {
          "names": [
            "--apply-git-tags-on-pack"
          ],
          "description": "If specified with --publish and --pack, git tags will be applied for packages as if a publish was being run without --pack"
        },
        {
          "names": [
            "-c",
            "--commit"
          ],
          "description": "Used in conjunction with git tagging -- apply git tags at the commit hash specified. If not provided, the current HEAD will be tagged",
          "takes_arg": true,
          "arg": {
            "name": "COMMIT_ID"
          }
        },
        {
          "names": [
            "--ignore-git-hooks"
          ],
          "description": "Skips execution of all git hooks. Make sure you know what you are skipping"
        }
      ]
    },
    {
      "name": "purge",
      "description": "For diagnostic purposes, use this command to delete caches and other temporary files used by Rush",
      "options": [
        {
          "names": [
            "--unsafe"
          ],
          "description": "(UNSAFE!) Also delete shared files such as the package manager instances stored in the \".rush\" folder in the user's home directory. This is a more aggressive fix that is NOT SAFE to run in a live envi"
        }
      ]
    },
    {
      "name": "scan",
      "description": "When migrating projects into a Rush repo, this command is helpful for detecting undeclared dependencies",
      "options": [
        {
          "names": [
            "--json"
          ],
          "description": "If this flag is specified, output will be in JSON format"
        },
        {
          "names": [
            "--all"
          ],
          "description": "If this flag is specified, output will list all detected dependencies"
        }
      ]
    },
    {
      "name": "setup",
      "description": "(EXPERIMENTAL) Invoke this command before working in a new repo to ensure that any required prerequisites are installed and permissions are configured"
    },
    {
      "name": "unlink",
      "description": "Delete node_modules symlinks for all projects in the repo"
    },
    {
      "name": "update",
      "description": "Install package dependencies for all projects in the repo, and create or update the shrinkwrap file as needed",
      "options": [
        {
          "names": [
            "-p",
            "--purge"
          ],
          "description": "Perform \"rush purge\" before starting the installation"
        },
        {
          "names": [
            "--bypass-policy"
          ],
          "description": "Overrides enforcement of the \"gitPolicy\" rules from rush.json (use honorably!)"
        },
        {
          "names": [
            "--no-link"
          ],
          "description": "If \"--no-link\" is specified, then project symlinks will NOT be created after the installation completes.  You will need to run \"rush link\" manually. This flag is useful for automated builds that want "
        },
        {
          "names": [
            "--network-concurrency"
          ],
          "description": "If specified, limits the maximum number of concurrent network requests. This is useful when troubleshooting network failures",
          "takes_arg": true,
          "arg": {
            "name": "COUNT"
          }
        },
        {
          "names": [
            "--debug-package-manager"
          ],
          "description": "Activates verbose logging for the package manager.  You will probably want to pipe the output of Rush to a file when using this command"
        },
        {
          "names": [
            "--max-install-attempts"
          ],
          "description": "Overrides the default maximum number of install attempts. The default value is 3",
          "takes_arg": true,
          "arg": {
            "name": "NUMBER"
          }
        },
        {
          "names": [
            "--ignore-hooks"
          ],
          "description": "Skips execution of the \"eventHooks\" scripts defined in rush.json. Make sure you know what you are skipping"
        },
        {
          "names": [
            "--variant"
          ],
          "description": "Run command using a variant installation configuration. This parameter may alternatively be specified via the RUSH_VARIANT environment variable",
          "takes_arg": true,
          "arg": {
            "name": "VARIANT"
          }
        },
        {
          "names": [
            "--full"
          ],
          "description": "Normally \"rush update\" tries to preserve your existing installed versions and only makes the minimum updates needed to satisfy the package.json files. This conservative approach prevents your PR from "
        },
        {
          "names": [
            "--recheck"
          ],
          "description": "If the shrinkwrap file appears to already satisfy the package.json files, then \"rush update\" will skip invoking the package manager at all. In certain situations this heuristic may be inaccurate. Use "
        }
      ]
    },
    {
      "name": "update-autoinstaller",
      "description": "Updates autoinstaller package dependenices",
      "options": [
        {
          "names": [
            "--name"
          ],
          "description": "Specifies the name of the autoinstaller, which must be one of the folders under common/autoinstallers",
          "takes_arg": true,
          "arg": {
            "name": "AUTOINSTALLER_NAME"
          }
        }
      ]
    },
    {
      "name": "update-cloud-credentials",
      "description": "(EXPERIMENTAL) Update the credentials used by the build cache provider",
      "options": [
        {
          "names": [
            "-i",
            "--interactive"
          ],
          "description": "Run the credential update operation in interactive mode, if supported by the provider"
        },
        {
          "names": [
            "--credential"
          ],
          "description": "A static credential, to be cached",
          "takes_arg": true,
          "arg": {
            "name": "CREDENTIAL_STRING"
          }
        },
        {
          "names": [
            "-d",
            "--delete"
          ],
          "description": "If specified, delete stored credentials"
        }
      ]
    },
    {
      "name": "version",
      "description": "Manage package versions in the repo",
      "options": [
        {
          "names": [
            "-b",
            "--target-branch"
          ],
          "description": "If this flag is specified, changes will be committed and merged into the target branch",
          "takes_arg": true,
          "arg": {
            "name": "BRANCH"
          }
        },
        {
          "names": [
            "--ensure-version-policy"
          ],
          "description": "Updates package versions if needed to satisfy version policies"
        },
        {
          "names": [
            "--override-version"
          ],
          "description": "Override the version in the specified --version-policy. This setting only works for lock-step version policy and when --ensure-version-policy is specified",
          "takes_arg": true,
          "arg": {
            "name": "NEW_VERSION"
          }
        },
        {
          "names": [
            "--bump"
          ],
          "description": "Bumps package version based on version policies"
        },
        {
          "names": [
            "--bypass-policy"
          ],
          "description": "Overrides \"gitPolicy\" enforcement (use honorably!)"
        },
        {
          "names": [
            "--version-policy"
          ],
          "description": "The name of the version policy",
          "takes_arg": true,
          "arg": {
            "name": "POLICY"
          }
        },
        {
          "names": [
            "--override-bump"
          ],
          "description": "Overrides the bump type in the version-policy.json for the specified version policy. Valid BUMPTYPE values include: prerelease, patch, preminor, minor, major. This setting only works for lock-step ver",
          "takes_arg": true,
          "arg": {
            "name": "BUMPTYPE"
          }
        },
        {
          "names": [
            "--override-prerelease-id"
          ],
          "description": "Overrides the prerelease identifier in the version value of version-policy.json for the specified version policy. This setting only works for lock-step version policy. This setting increases to new pr",
          "takes_arg": true,
          "arg": {
            "name": "ID"
          }
        },
        {
          "names": [
            "--ignore-git-hooks"
          ],
          "description": "Skips execution of all git hooks. Make sure you know what you are skipping"
        }
      ]
    },
    {
      "name": "build",
      "description": "Build all projects that haven't been built, or have changed since they were last built",
      "options": [
        {
          "names": [
            "-p",
            "--parallelism"
          ],
          "description": "Specifies the maximum number of concurrent processes to launch during a build. The COUNT should be a positive integer or else the word \"max\" to specify a count that is equal to the number of CPU cores",
          "takes_arg": true,
          "arg": {
            "name": "COUNT"
          }
        },
        {
          "names": [
            "-t",
            "--to"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--to\" parameter expands this selection to include PROJECT and all its dep",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-T",
            "--to-except"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--to-except\" parameter expands this selection to include all dependencies",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-f",
            "--from"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--from\" parameter expands this selection to include PROJECT and all proje",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-o",
            "--only"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--only\" parameter expands this selection to include PROJECT; its dependen",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-i",
            "--impacted-by"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--impacted-by\" parameter expands this selection to include PROJECT and an",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-I",
            "--impacted-by-except"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--impacted-by-except\" parameter works the same as \"--impacted-by\" except ",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "--to-version-policy"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. The \"--to-version-policy\" parameter is equivalent to specifying \"--to\" for each",
          "takes_arg": true,
          "arg": {
            "name": "VERSION_POLICY_NAME"
          }
        },
        {
          "names": [
            "--from-version-policy"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. The \"--from-version-policy\" parameter is equivalent to specifying \"--from\" for ",
          "takes_arg": true,
          "arg": {
            "name": "VERSION_POLICY_NAME"
          }
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Display the logs during the build, rather than just displaying the build status summary"
        },
        {
          "names": [
            "-c",
            "--changed-projects-only"
          ],
          "description": "Normally the incremental build logic will rebuild changed projects as well as any projects that directly or indirectly depend on a changed project. Specify \"--changed-projects-only\" to ignore dependen"
        },
        {
          "names": [
            "--ignore-hooks"
          ],
          "description": "Skips execution of the \"eventHooks\" scripts defined in rush.json. Make sure you know what you are skipping"
        }
      ]
    },
    {
      "name": "rebuild",
      "description": "Clean and rebuild the entire set of projects",
      "options": [
        {
          "names": [
            "-p",
            "--parallelism"
          ],
          "description": "Specifies the maximum number of concurrent processes to launch during a build. The COUNT should be a positive integer or else the word \"max\" to specify a count that is equal to the number of CPU cores",
          "takes_arg": true,
          "arg": {
            "name": "COUNT"
          }
        },
        {
          "names": [
            "-t",
            "--to"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--to\" parameter expands this selection to include PROJECT and all its dep",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-T",
            "--to-except"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--to-except\" parameter expands this selection to include all dependencies",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-f",
            "--from"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--from\" parameter expands this selection to include PROJECT and all proje",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-o",
            "--only"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--only\" parameter expands this selection to include PROJECT; its dependen",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-i",
            "--impacted-by"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--impacted-by\" parameter expands this selection to include PROJECT and an",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "-I",
            "--impacted-by-except"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. Each \"--impacted-by-except\" parameter works the same as \"--impacted-by\" except ",
          "takes_arg": true,
          "arg": {
            "name": "PROJECT"
          }
        },
        {
          "names": [
            "--to-version-policy"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. The \"--to-version-policy\" parameter is equivalent to specifying \"--to\" for each",
          "takes_arg": true,
          "arg": {
            "name": "VERSION_POLICY_NAME"
          }
        },
        {
          "names": [
            "--from-version-policy"
          ],
          "description": "Normally all projects in the monorepo will be processed; adding this parameter will instead select a subset of projects. The \"--from-version-policy\" parameter is equivalent to specifying \"--from\" for ",
          "takes_arg": true,
          "arg": {
            "name": "VERSION_POLICY_NAME"
          }
        },
        {
          "names": [
            "-v",
            "--verbose"
          ],
          "description": "Display the logs during the build, rather than just displaying the build status summary"
        },
        {
          "names": [
            "--ignore-hooks"
          ],
          "description": "Skips execution of the \"eventHooks\" scripts defined in rush.json. Make sure you know what you are skipping"
        }
      ]
    },
    {
      "name": "tab-complete",
      "description": "Provides tab completion",
      "options": [
        {
          "names": [
            "--word"
          ],
          "description": "The word to complete. The default value is \"\"",
          "takes_arg": true,
          "arg": {
            "name": "WORD"
          }
        },
        {
          "names": [
            "--position"
          ],
          "description": "The position in the word to be completed. The default value is 0",
          "takes_arg": true,
          "arg": {
            "name": "INDEX"
          }
        }
      ]
    }
  ],
  "options": [
    {
      "names": [
        "-h",
        "--help"
      ],
      "description": "Show this help message and exit"
    },
    {
      "names": [
        "-d",
        "--debug"
      ],
      "description": "Show the full call stack if an error occurs while executing the tool"
    }
  ]
}
