{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "SchematicsEPCCNew",
  "title": "Elastic Path Commerce Cloud New Options Schema",
  "type": "object",
  "description": "Creates a new Elastic Path Commerce Cloud storefront by combining the workspace and application schematics.",
  "additionalProperties": false,
  "properties": {
    "directory": {
      "type": "string",
      "description": "The directory name to create the workspace in."
    },
    "name": {
      "description": "The name of the new workspace and project.",
      "type": "string",
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-prompt": "What name would you like to use for the new workspace and initial project?"
    },
    "epccClientId": {
      "description": "The client id value for an Elastic Path Commerce Cloud store.",
      "type": "string",
      "x-prompt": "What is the client id for your store?"
    },
    "epccClientSecret": {
      "description": "The client secret value for an Elastic Path Commerce Cloud store.",
      "type": "string",
      "x-prompt": "What is the client secret for your store?"
    },
    "epccEndpointUrl": {
      "description": "The geographical endpoint url for an Elastic Path Commerce Cloud store.",
      "type": "string",
      "default": "euwest.api.elasticpath.com",
      "x-prompt": "What is the endpoint for your store?"
    },
    "skipInstall": {
      "description": "Do not install dependency packages.",
      "type": "boolean",
      "default": false
    },
    "skipGit": {
      "description": "Do not initialize a git repository.",
      "type": "boolean",
      "default": false,
      "alias": "g"
    },
    "commit": {
      "description": "Initial git repository commit information.",
      "oneOf": [
        { "type": "boolean" },
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "email": {
              "type": "string",
              "format": "email"
            },
            "message": {
              "type": "string"
            }
          },
          "required": ["name", "email"]
        }
      ],
      "default": true
    },
    "skipTests": {
      "description": "Do not generate \"spec.ts\" test files for the new project.",
      "type": "boolean",
      "default": false,
      "alias": "S"
    }
  },
  "required": ["name", "epccClientId", "epccClientSecret", "epccEndpointUrl"]
}
