{
    "$schema": "http://json-schema.org/schema",
    "cli": "nx",
    "$id": "AddProjectEnvironment",
    "title": "",
    "type": "object",
    "properties": {
        "environmentName": {
            "type": "string",
            "description": "The name of the environment to add.",
            "alias": "e",
            "x-prompt": "What is the name of the environment you want to add?"
        },
        "project": {
            "type": "string",
            "description": "The name of the project the environment is associated with, used for project specific environments."
        },
        "subscriptionId": {
            "type": "string",
            "description": "The Azure subscription this environment will use.",
            "alias": "s"
        },
        "resourceGroupName": {
            "type": "string",
            "description": "The Azure resource group this environment will use (defaults to `${prefix}-rg-${environment}-${workloadName}`)."
        },
        "skipEnvironmentCreation": {
            "type": "boolean",
            "description": "Opts out of workload environment creation in Azure (rg, kv), note rg will still be created if storage type is azure storage",
            "default": false
        },
        "keyVaultName": {
            "type": "string",
            "description": "The name of the key vault containing this environment's secrets (defaults to `${prefix}-kv-${environment}-${workloadName}`)."
        },
        "location": {
            "type": "string",
            "description": "The Azure location to use for the environment.",
            "default": "australiaeast"
        },
        "tenantId": {
            "type": "string",
            "description": "The Azure tenant ID to use for the environment (for RBAC)."
        },
        "azureLogLevel": {
            "type": "string",
            "enum": [
                "verbose",
                "info",
                "warning",
                "error"
            ],
            "description": "The Azure ARM log level to use when executing the generator."
        },
        "tfStorageAccountName": {
            "type": "string",
            "description": "The storage account to store the state in (defaults to `${prefix}${environment}tfstore${workloadName}`) if workload configured to use azure storage."
        },
        "containerName": {
            "type": "string",
            "description": "The storage account container to store the state in if using azure storage for tf state.",
            "default": "tfstate"
        },
        "tfWorkspaceName": {
            "type": "string",
            "description": "The Hashicorp Cloud Hosted Terraform workspace name (defaults to `${workloadName}-${environmentName}`) if workload configured to use terraform cloud."
        }
    },
    "required": [
        "environmentName",
        "subscriptionId",
        "tenantId",
        "containerName",
        "location"
    ]
}
