{ "title" : "Automatic Deployment for Continuous Integration Pipelines",
  "arguments" : {
    "cloud-provider" : {
      "variableName" : "cloudProvider",
      "defaultValue" : "last || aws",
      "type" : "parameter",
      "longCommand" : "cloud-provider",
      "shortCommand" : "cp",
      "definition" : "Defines the cloud provider to deploy.",
      "usage" : ["aws", "gcp"]
    },
    "cloud-service" : {
      "variableName" : "cloudService",
      "defaultValue" : "last",
      "type" : "parameter",
      "longCommand" : "cloud-service",
      "shortCommand" : "cs",
      "definition" : "Defines the cloud service infrastructure to deploy.",
      "usage" : ["ebt", "mcd"]
    },
    "command-line-tool" : {
      "variableName" : "commandLineTool",
      "defaultValue" : "last",
      "type" : "parameter",
      "longCommand" : "command-line-tool",
      "shortCommand" : "clt",
      "definition" : "Defines the cloud SDK tool to use in deployment procedure.",
      "usage" : ["eb", "codecommit"]
    },
    "application" : {
      "variableName" : "application",
      "defaultValue" : "last || all",
      "type" : "parameter",
      "longCommand" : "application",
      "shortCommand" : "app",
      "definition" : "Defines the application name to deploy.",
      "usage" : "<AplicationName>"
    },
    "environment" : {
      "variableName" : "environment",
      "defaultValue" : "last || staging",
      "type" : "parameter",
      "longCommand" : "environment",
      "shortCommand" : "env",
      "definition" : "Defines the application environment to deploy.",
      "usage" : "<EnvironmentName>"
    },
    "config-file" : {
      "variableName" : "configFile",
      "defaultValue" : ".ciautodeploy.yaml",
      "type" : "parameter",
      "longCommand" : "config-file",
      "shortCommand" : "conf",
      "definition" : "Defines the file which includes configuration defaults. (*.yaml)",
      "usage" : "<PathToConfigFile>"
    },
    "config-path" : {
      "variableName" : "configPath",
      "defaultValue" : ".ciautodeploy",
      "type" : "parameter",
      "longCommand" : "config-path",
      "shortCommand" : "cp",
      "definition" : "Defines the configuration path which includes deployment configuration files.",
      "usage" : "<PathOfDeploymentConfigurations>"
    },
    "force-create" : {
      "variableName" : "forceCreate",
      "defaultValue" : true,
      "type" : "boolean",
      "longCommand" : "force-create",
      "shortCommand" : "fc",
      "definition" : "Creates environment if it does not already exist.",
      "usage" : null
    },
    "version-label" : {
      "variableName" : "versionLabel",
      "defaultValue" : "describe",
      "type" : "parameter",
      "longCommand" : "version-label",
      "shortCommand" : "vl",
      "definition" : "Defines the version label. If describe is passed, git describe is used.",
      "usage" : "<VersionLabel> | describe | package"
    },
    "description-text" : {
      "variableName" : "descriptionText",
      "defaultValue" : null,
      "type" : "parameter",
      "longCommand" : "description-text",
      "shortCommand" : "dt",
      "definition" : "Defines the deployment description text. Last commit message is used , if nothing supplied.",
      "usage" : "<DescriptionText>"
    },
    "version-prefix" : {
      "variableName" : "versionPrefix",
      "defaultValue" : "v",
      "type" : "parameter",
      "longCommand" : "version-prefix",
      "shortCommand" : "vp",
      "definition" : "Defines the version prefix.",
      "usage" : "<VersionPrefix>"
    },
    "package-file" : {
      "variableName" : "packageFile",
      "defaultValue" : "package.json",
      "type" : "parameter",
      "longCommand" : "package-file",
      "shortCommand" : "pf",
      "definition" : "Defines the package definition file.",
      "usage" : "<PackageFile>"
    },
    "existing-version" : {
      "variableName" : "existingVersion",
      "defaultValue" : null,
      "type" : "parameter",
      "longCommand" : "existing-version",
      "shortCommand" : "ev",
      "definition" : "Defines the existing application version to be updated.",
      "usage" : "<ExistingVersion>"
    },
    "deploy-staged" : {
      "variableName" : "deployStaged",
      "defaultValue" : null,
      "type" : "boolean",
      "longCommand" : "staged",
      "shortCommand" : "st",
      "definition" : "Deploys staged state of repository instead of commited version.",
      "usage" : null
    },
    "force-update" : {
      "variableName" : "forceUpdate",
      "defaultValue" : null,
      "type" : "boolean",
      "longCommand" : "force-update",
      "shortCommand" : "fu",
      "definition" : "Deletes existing version it it already exists.",
      "usage" : null
    },
    "revision-prefix" : {
      "variableName" : "revisionPrefix",
      "defaultValue" : "r",
      "type" : "parameter",
      "longCommand" : "revision-prefix",
      "shortCommand" : "rp",
      "definition" : "Defines the revision prefix when existing application version to be updated.",
      "usage" : "<RevisionPrefix>"
    },
    "revision-number" : {
      "variableName" : "revisionNumber",
      "defaultValue" : "auto",
      "type" : "parameter",
      "longCommand" : "revision-number",
      "shortCommand" : "rn",
      "definition" : "Defines the manual revision number when existing application version to be updated.",
      "usage" : "<RevisionNumber> | auto"
    },
    "version-suffix" : {
      "variableName" : "versionSuffix",
      "defaultValue" : null,
      "type" : "parameter",
      "longCommand" : "version-suffix",
      "shortCommand" : "vs",
      "definition" : "Defines the manual version suffix to be added to the version.",
      "usage" : "<VersionSuffix>"
    },
    "last-run-file" : {
      "variableName" : "lastRunFile",
      "defaultValue" : ".cilastrun.yaml",
      "type" : "parameter",
      "longCommand" : "last-run-file",
      "shortCommand" : "lrf",
      "definition" : "Defines the name of the file in which last ran arguments will be saved.",
      "usage" : "<LastRunfile.yaml>"
    },
    "region" : {
      "variableName" : "region",
      "defaultValue" : "eu-central-1",
      "type" : "parameter",
      "longCommand" : "region",
      "shortCommand" : "rg",
      "definition" : "Defines the server region where application will be deployed.",
      "usage" : "<RegionName>"
    },
    "simulate" : {
      "variableName" : "simulate",
      "defaultValue" : null,
      "type" : "boolean",
      "longCommand" : "simulate",
      "shortCommand" : "sim",
      "definition" : "Does not run the deploy commands.",
      "usage" : null
    },
    "debug" : {
      "variableName" : "debug",
      "defaultValue" : null,
      "type" : "boolean",
      "longCommand" : "debug",
      "shortCommand" : "dbg",
      "definition" : "Prints out stack information on error.",
      "usage" : null
    },
    "app-config" : {
      "variableName" : "appConfig",
      "defaultValue" : "default",
      "type" : "parameter",
      "longCommand" : "app-config",
      "shortCommand" : "ac",
      "definition" : "Selects the application configuration.",
      "usage" : "<AppConfigName>"
    },
    "env-suffix" : {
      "variableName" : "envSuffix",
      "defaultValue" : "active",
      "type" : "parameter",
      "longCommand" : "env-suffix",
      "shortCommand" : "es",
      "definition" : "Defines environment suffix name to be appended.",
      "usage" : "<EnvironmentSuffix>"
    },
    "cname" : {
      "variableName" : "cname",
      "defaultValue" : null,
      "type" : "parameter",
      "longCommand" : "cname",
      "shortCommand" : "cn",
      "definition" : "Defines  cname of the environment.",
      "usage" : "<Cname>"
    },
    "launch" : {
      "variableName" : "launch",
      "defaultValue" : null,
      "type" : "parameter",
      "longCommand" : "launch",
      "shortCommand" : "ln",
      "definition" : "Defines  the launch configuration.",
      "usage" : "<Cname>"
    },
    "launch-file" : {
      "variableName" : "launchFile",
      "defaultValue" : "last",
      "type" : "parameter",
      "longCommand" : "launch-file",
      "shortCommand" : "lnf",
      "definition" : "Defines the file which includes launch configurations.",
      "usage" : "<LaunchFile.yaml>"
    },
    "deploy-config-file" : {
      "variableName" : "deployConfigFile",
      "defaultValue" : "last",
      "type" : "parameter",
      "longCommand" : "deploy-config-file",
      "shortCommand" : "dcf",
      "definition" : "Defines the file which includes deployment configurations.",
      "usage" : "<DeployConfigFile.yaml>"
    },
    "environment-variable" : {
      "variableName" : "environmentVariable",
      "defaultValue" : "CI_AUTO_DEPLOY",
      "type" : "parameter",
      "longCommand" : "environment-variable",
      "shortCommand" : "ev",
      "definition" : "Defines the environment variable name to be used.",
      "usage" : "<EnvironmentVariableName>"
    },
    "secrets-path" : {
      "variableName" : "secretsPath",
      "defaultValue" : ".cisecrets",
      "type" : "parameter",
      "longCommand" : "secrets-path",
      "shortCommand" : "sp",
      "definition" : "Defines the path where token and password files are stored.",
      "usage" : "<SecretsPath>"
    },
    "password-file" : {
      "variableName" : "passwordFile",
      "defaultValue" : ".cipass.yaml",
      "type" : "parameter",
      "longCommand" : "password-file",
      "shortCommand" : "pf",
      "definition" : "Defines the file name where ci-auto-deploy passwords are stored.",
      "usage" : "<PasswordFileName.yaml>"
    },
    "env-path" : {
      "variableName" : "envPath",
      "defaultValue" : "env_config",
      "type" : "parameter",
      "longCommand" : "env-path",
      "shortCommand" : "ep",
      "definition" : "Defines the path where environment files are stored.",
      "usage" : "<EnvPath>"
    },
    "passwords" : {
      "variableName" : "passwords",
      "defaultValue" : null,
      "type" : "parameter",
      "longCommand" : "passwords",
      "shortCommand" : "pwd",
      "definition" : "Defines the passwords for respective environments",
      "usage" : "<{environment1: password1, environment2: password2}>"
    },
    "password-hashs" : {
      "variableName" : "passwordHashs",
      "defaultValue" : null,
      "type" : "parameter",
      "longCommand" : "password-hashs",
      "shortCommand" : "pwh",
      "definition" : "Defines the password hashs for respective environments",
      "usage" : "<{environment1: passwordHash1, environment2: passwordHash2}>"
    },
    "copy-secrets" : {
      "variableName" : "copySecrets",
      "defaultValue" : true,
      "type" : "boolean",
      "longCommand" : "copy-secrets",
      "shortCommand" : "csr",
      "definition" : "If specified, copies tokens from tokens file into environment file.",
      "usage" : null
    },
    "env-file" : {
      "variableName" : "envFile",
      "defaultValue" : ".env",
      "type" : "parameter",
      "longCommand" : "env-file",
      "shortCommand" : "enf",
      "definition" : "Target environment file name.Always '.env' for nodejs environment.",
      "usage" : "<EnvFileName>"
    },
    "build-deploy" : {
      "variableName" : "buildDeploy",
      "defaultValue" : false,
      "type" : "boolean",
      "longCommand" : "build-deploy",
      "shortCommand" : "bld",
      "definition" : "If specified, deploys only build directory.",
      "usage" : null
    },
    "build-path" : {
      "variableName" : "buildPath",
      "defaultValue" : "build",
      "type" : "parameter",
      "longCommand" : "build-path",
      "shortCommand" : "bpt",
      "definition" : "Defines build path name to be deployed.",
      "usage" : "<BuildPath>"
    },
    "build-script" : {
      "variableName" : "buildScript",
      "defaultValue" : "build",
      "type" : "parameter",
      "longCommand" : "build-script",
      "shortCommand" : "bsc",
      "definition" : "Defines npm build script name in package file.",
      "usage" : "<BuildScriptName>"
    },
    "build-run" : {
      "variableName" : "buildRun",
      "defaultValue" : false,
      "type" : "boolean",
      "longCommand" : "build-run",
      "shortCommand" : "brn",
      "definition" : "If specified, runs build script before deployment.",
      "usage" : null
    },
    "access-profile" : {
      "variableName" : "accessProfile",
      "defaultValue" : null,
      "type" : "parameter",
      "longCommand" : "access-profile",
      "shortCommand" : "acp",
      "definition" : "Defines access profile name to be used as credentials.",
      "usage" : "<AccessProfileName>"
    }
  },
  "positionals" : ["application", "environment", "env-suffix", "app-config", "cloud-provider"],
  "examples" : {
    "1" : {
      "title" : "FIRST, ADD FOLLOWING LINE to your scripts in package.json.",
      "example" : "deploy: node deploy.js"
    },
    "2" : {
      "title" : "Deploy myApi1 to staging environment at AWS Elastic Beans Talk",
      "example" : "deploy myApi1 staging"
    },
    "3" : {
      "title" : "Deploy all applications to staging environment. Note that all is a group definition in config file.",
      "example" : "deploy all staging"
    },
    "4" : {
      "title" : "Positional arguments: [application] [environment] [env-suffix] [app-config] [cloud-provider] ",
      "example" : "deploy myApi2 staging active highSecurity"
    }
  }

}
