> ## Documentation Index
> Fetch the complete documentation index at: https://developer.upsun.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get an environment's deployment information

> Retrieve the read-only configuration of an environment's deployment.
The returned information is everything required to
recreate a project's current deployment.

More specifically, the objects
returned by this endpoint contain the configuration derived from the
repository's YAML configuration file: `.upsun/config.yaml`.

Additionally, any values deriving from environment variables, the
domains attached to a project, project access settings, etc. are
included here.

This endpoint currently returns a list containing a single deployment
configuration with an `id` of `current`. This may be subject to change
in the future.




## OpenAPI

````yaml https://meta.upsun.com/openapi-spec get /projects/{projectId}/environments/{environmentId}/deployments
openapi: 3.0.1
info:
  title: Upsun.com Rest API
  version: '1.0'
  contact:
    name: Support
    url: https://upsun.com/contact-us/
  termsOfService: https://upsun.com/trust-center/legal/tos/
  description: >
    # Introduction


    Upsun, formerly Platform.sh, is a container-based Platform-as-a-Service. Our
    main API

    is simply Git. With a single `git push` and a couple of YAML files in

    your repository you can deploy an arbitrarily complex cluster.

    Every [**Project**](#tag/Project) can have multiple applications (PHP,

    Node.js, Python, Ruby, Go, etc.) and managed, automatically

    provisioned services (databases, message queues, etc.).


    Each project also comes with multiple concurrent

    live staging/development [**Environments**](#tag/Environment).

    These ephemeral development environments

    are automatically created every time you push a new branch or create a

    pull request, and each has a full copy of the data of its parent branch,

    which is created on-the-fly in seconds.


    Our Git implementation supports integrations with third party Git

    providers such as GitHub, Bitbucket, or GitLab, allowing you to simply

    integrate Upsun into your existing workflow.


    ## Using the REST API


    In addition to the Git API, we also offer a REST API that allows you to
    manage

    every aspect of the platform, from managing projects and environments,

    to accessing accounts and subscriptions, to creating robust workflows

    and integrations with your CI systems and internal services.


    These API docs are generated from a standard **OpenAPI (Swagger)**
    Specification document

    which you can find here in [YAML](openapispec-upsun.yaml) and in
    [JSON](openapispec-upsun.json) formats.


    This RESTful API consumes and produces HAL-style JSON over HTTPS,

    and any REST library can be used to access it. On GitHub, we also host

    a few API libraries that you can use to make API access easier, such as our

    [PHP API client](https://github.com/upsun/upsun-sdk-php).


    In order to use the API you will first need to have an [Upsun
    account](https://auth.upsun.com/register/) 

    and [create an API Token](https://docs.upsun.com/anchors/cli/api-token/).


    # Authentication


    ## OAuth2


    API authentication is done with OAuth2 access tokens.


    ### API tokens


    You can use an API token as one way to get an OAuth2 access token. This

    is particularly useful in scripts, e.g. for CI pipelines.


    To create an API token, go to the "API Tokens" section

    of the "Account Settings" tab on the [Console](https://console.upsun.com).


    To exchange this API token for an access token, a `POST` request

    must be made to `https://auth.upsun.com/oauth2/token`.


    The request will look like this in cURL:


    <pre>

    curl -u platform-api-user: \
        -d 'grant_type=api_token&amp;api_token=<em><b>API_TOKEN</b></em>' \
        https://auth.upsun.com/oauth2/token
    </pre>


    This will return a "Bearer" access token that

    can be used to authenticate further API requests, for example:


    <pre>

    {
        "access_token": "<em><b>abcdefghij1234567890</b></em>",
        "expires_in": 900,
        "token_type": "bearer"
    }

    </pre>


    ### Using the Access Token


    To authenticate further API requests, include this returned bearer token

    in the `Authorization` header. For example, to retrieve a list of

    [Projects](#tag/Project)

    accessible by the current user, you can make the following request

    (substituting the dummy token for your own):


    <pre>

    curl -H "Authorization: Bearer <em><b>abcdefghij1234567890</b></em>" \
        https://api.upsun.com/projects
    </pre>


    # HAL Links


    Most endpoints in the API return fields which defines a HAL

    (Hypertext Application Language) schema for the requested endpoint.

    The particular objects returns and their contents can vary by endpoint.

    The payload examples we give here for the requests do not show these

    elements. These links can allow you to create a fully dynamic API client

    that does not need to hardcode any method or schema.


    Unless they are used for pagination we do not show the HAL links in the

    payload examples in this documentation for brevity and as their content

    is contextual (based on the permissions of the user).


    ## _links Objects


    Most endpoints that respond to `GET` requests will include a `_links` object

    in their response. The `_links` object contains a key-object pair labelled
    `self`, which defines

    two further key-value pairs:


    * `href` - A URL string referring to the fully qualified name of the
    returned object. For many endpoints, this will be the direct link to the API
    endpoint on the region gateway, rather than on the general API gateway. This
    means it may reference a host of, for example, `eu-2.platform.sh` rather
    than `api.upsun.com`.

    * `meta` - An object defining the OpenAPI Specification (OAS) [schema
    object](https://swagger.io/specification/#schemaObject) of the component
    returned by the endpoint.


    There may be zero or more other fields in the `_links` object resembling
    fragment identifiers

    beginning with a hash mark, e.g. `#edit` or `#delete`. Each of these keys

    refers to a JSON object containing two key-value pairs:


    * `href` - A URL string referring to the path name of endpoint which can
    perform the action named in the key.

    * `meta` - An object defining the OAS schema of the endpoint. This consists
    of a key-value pair, with the key defining an HTTP method and the value
    defining the [operation
    object](https://swagger.io/specification/#operationObject) of the endpoint.


    To use one of these HAL links, you must send a new request to the URL
    defined

    in the `href` field which contains a body defined the schema object in the
    `meta` field.


    For example, if you make a request such as `GET
    /projects/abcdefghij1234567890`, the `_links`

    object in the returned response will include the key `#delete`. That object

    will look something like this fragment:


    ```

    "#delete": {
        "href": "/api/projects/abcdefghij1234567890",
        "meta": {
            "delete": {
                "responses": {
                    . . . // Response definition omitted for space
                },
                "parameters": []
            }
        }
    }

    ```


    To use this information to delete a project, you would then send a `DELETE`

    request to the endpoint
    `https://api.upsun.com/api/projects/abcdefghij1234567890`

    with no body or parameters to delete the project that was originally
    requested.


    ## _embedded Objects


    Requests to endpoints which create or modify objects, such as `POST`,
    `PATCH`, or `DELETE`

    requests, will include an `_embedded` key in their response. The object

    represented by this key will contain the created or modified object. This

    object is identical to what would be returned by a subsequent `GET` request

    for the object referred to by the endpoint.
  x-logo:
    url: https://docs.upsun.com/images/upsun-api.svg
    href: https://upsun.com/#section/Introduction
    altText: Upsun logo
servers:
  - url: '{schemes}://api.upsun.com'
    description: The Upsun.com API gateway
    variables:
      schemes:
        default: https
security:
  - BearerAuth: []
tags:
  - name: Cert Management
    description: >
      User-supplied SSL/TLS certificates can be managed using these

      endpoints. You can now list and modify certificate provisioners

      using the `/projects/{projectId}/provisioners` and

      `/projects/{projectId}/provisioners/{certificateProvisionerDocumentId}`

      endpoints. For more information, see our

      [Third-party TLS
      certificate](https://docs.upsun.com/anchors/domains/custom/custom-certificates/)

      documentation. These endpoints are not for managing certificates

      that are automatically supplied by Upsun via Let's Encrypt.
  - name: Environment
    description: |
      On Upsun, an environment encompasses a single instance of your
      entire application stack, the services used by the application,
      the application's data storage, and the environment's backups.

      In general, an environment represents a single branch or merge request
      in the Git repository backing a project. It is a virtual cluster
      of read-only application and service containers with read-write
      mounts for application and service data.

      On Upsun, the default branch is your production environment—thus,
      merging changes to this branch will put those changes to production.
  - name: Environment Type
    description: >
      Environment Types is the way Upsun manages access. We currently have 3
      environment types:

      * Development

      * Staging

      * Production


      Each environment type will contain a group of users and their accesses. We
      manage access,

      adding, updating and removing users and their roles, here.


      Each environment will have a type, pointing to one of these 3 environment
      types.

      See `type` in [Environments](#tag/Environment).


      In general:

      * Production will be reserved for the default branch, and cannot be set
      manually.

      * An environment can be set to be type `staging` or development manually
      and when branching.


      Dedicated Generation 2 projects have different rules for environment
      types. If your project

      contains at least one of those Dedicated Generation 2 environments, the
      rules are slightly different:

      * All non-dedicated environments in your project can be `development` or
      `staging`, but never `production`.

      * Dedicated Generation 2 environments can be set either to `staging` or
      `production`, but never `development`.

      * The default branch is not considered to be a special case.
  - name: Environment Backups
    description: |
      A snapshot is a complete backup of an environment, including all the
      persistent data from all services running in an environment and all
      files present in mounted volumes.

      These endpoints can be used to trigger the creation of new backups,
      get information about existing backups, delete existing backups or
      restore a backup.
      More information about backups can be found in our
      [documentation](https://docs.upsun.com/anchors/environments/backup/).
  - name: Environment Variables
    description: >
      These endpoints manipulate user-defined variables which are bound to a

      specific environment, as well as (optionally) the children of an

      environment. These variables can be made available at both build time

      and runtime. For more information on environment variables,

      see the
      [Variables](https://docs.upsun.com/anchors/variables/set/environment/create/)

      section of the documentation.
  - name: Autoscaling
    description: >
      Upsun provides native support for autoscaling, allowing your applications
      to automatically adjust based on resource usage.

      This ensures that your apps remain responsive under load while helping you
      optimize costs.

      You can configure thresholds for metrics such as CPU, RAM, and request
      latency.  

      Resources will automatically scale to meet demand.

      Each container profile assigned to an application or service provides a
      specific combination of CPU and RAM, which you can select via the Upsun UI
      or CLI.


      These endpoints manage autoscaling configurations that are tied to a

      specific environment, and optionally to its child environments.

      You can define scaling rules based on metrics like CPU, memory, or

      request latency, and these rules will be applied at both build time

      and runtime. For more information on configuring autoscaling for your

      environments, see the
      [Autoscaling](https://docs.upsun.com/manage-resources/autoscaling.html)
      section

      of the documentation.
  - name: Project
    description: >
      ## Project Overview


      On Upsun, a Project is backed by a single Git repository

      and encompasses your entire application stack, the services

      used by your application, the application's data storage,

      the production and staging environments, and the backups of those

      environments.


      When you create a new project, you start with a single

      [Environment](#tag/Environment) called *Master*,

      corresponding to the master branch in the Git repository of

      the project—this will be your production environment.


      If you connect your project to an external Git repo

      using one of our [Third-Party Integrations](#tag/Third-Party-Integrations)

      a new development environment can be created for each branch

      or pull request created in the repository. When a new development

      environment is created, the production environment's data

      will be cloned on-the-fly, giving you an isolated, production-ready

      test environment.


      This set of API endpoints can be used to retrieve a list of projects

      associated with an API key, as well as create and update the parameters

      of existing projects.


      > **Note**:

      >

      > To list projects or to create a new project, use
      [`/subscriptions`](#tag/Subscriptions).
  - name: Project Variables
    description: >
      These endpoints manipulate user-defined variables which are bound to an

      entire project. These variables are accessible to all environments

      within a single project, and they can be made available at both build

      time and runtime. For more information on project variables,

      see the
      [Variables](https://docs.upsun.com/anchors/variables/set/project/create/)

      section of the documentation.
  - name: Project Settings
    description: >
      These endpoints can be used to retrieve and manipulate project-level

      settings. Only the `initialize` property can be set by end users. It is
      used

      to initialize a project from an existing Git repository.


      The other properties can only be set by a privileged user.
  - name: Repository
    description: >
      The Git repository backing projects hosted on Upsun can be

      accessed in a **read-only** manner through the
      `/projects/{projectId}/git/*`

      family of endpoints. With these endpoints, you can retrieve objects from

      the Git repository in the same way that you would in a local environment.
  - name: Domain Management
    description: |
      These endpoints can be used to add, modify, or remove domains from
      a project. For more information on how domains function on
      Upsun, see the [Domains](https://docs.upsun.com/anchors/domains/custom/)
      section of our documentation.
  - name: Routing
    description: >
      These endpoints modify an environment's `routes:` section of the
      `.upsun/config.yaml` file.

      For routes to propagate to child environments, the child environments

      must be synchronized with their parent.


      More information about routing can be found in the
      [Routes](https://docs.upsun.com/anchors/routes/)

      section of the documentation.
  - name: Source Operations
    description: >
      These endpoints interact with source code operations as defined in the
      `source.operations`

      key in a project's `.upsun/config.yaml` configuration. More information

      on source code operations is

      [available in our user
      documentation](https://docs.upsun.com/anchors/app/source-operations/).
  - name: Deployment Target
    description: |
      Upsun is capable of deploying the production environments of
      projects in multiple topologies: both in clusters of containers, and
      as dedicated virtual machines. This is an internal API that can
      only be used by privileged users.
  - name: Deployments
    description: |
      The deployments endpoints gives detailed information about the actual
      deployment of an active environment. Currently, it returns the _current_
      deployment with information about the different apps, services, and
      routes contained within.
  - name: Third-Party Integrations
    description: |
      Upsun can easily integrate with many third-party services, including
      Git hosting services (GitHub, GitLab, and Bitbucket),
      health notification services (email, Slack, PagerDuty),
      performance analytics platforms (New Relic, Blackfire, Tideways),
      and webhooks.

      For clarification about what information each field requires, see the
      [External Integrations](https://docs.upsun.com/anchors/integrations/)
      documentation. NOTE: The names of the CLI arguments listed in the
      documentation are not always named exactly the same as the
      required body fields in the API request.
  - name: MFA
    description: >
      Multi-factor authentication (MFA) requires the user to present two (or
      more) types of evidence (or factors) to prove their identity.


      For example, the evidence might be a password and a device-generated code,
      which show the user has the knowledge factor ("something you know") 

      as well as the possession factor ("something you have"). In this way MFA
      offers good protection against the compromise of any single factor, 

      such as a stolen password.


      Using the MFA API you can set up time-based one-time passcodes (TOTP),
      which can be generated on a single registered device ("something you
      have") such as a mobile phone.
  - name: Subscriptions
    description: >
      Each project is represented by a subscription that holds the plan
      information.

      These endpoints can be used to go to a larger plan, add more storage, or
      subscribe to

      optional features.
  - name: Orders
    description: |
      These endpoints can be used to retrieve order information from our billing
      system. Here you can view information about your bill for our services,
      include the billed amount and a link to a PDF of the bill.
  - name: Invoices
    description: >
      These endpoints can be used to retrieve invoices from our billing system.

      An invoice of type "invoice" is generated automatically every month, if
      the customer has active projects.

      Invoices of type "credit_memo" are a result of manual action when there
      was a refund or an invoice correction.
  - name: Vouchers
    description: >
      These endpoints can be used to retrieve vouchers associated with a
      particular

      user as well as apply a voucher to a particular user.
  - name: Records
    description: >
      These endpoints retrieve information about which plans were assigned to a
      particular

      project at which time.
  - name: Support
    description: >
      These endpoints can be used to retrieve information about support ticket
      priority

      and allow you to submit new ticket to the Upsun Support Team.
  - name: System Information
    description: >
      These endpoints can be used to retrieve low-level information and interact
      with the

      core component of Upsun infrastructure.


      This is an internal API that can only be used by privileged users.
paths:
  /projects/{projectId}/environments/{environmentId}/deployments:
    get:
      tags:
        - Deployment
      summary: Get an environment's deployment information
      description: |
        Retrieve the read-only configuration of an environment's deployment.
        The returned information is everything required to
        recreate a project's current deployment.

        More specifically, the objects
        returned by this endpoint contain the configuration derived from the
        repository's YAML configuration file: `.upsun/config.yaml`.

        Additionally, any values deriving from environment variables, the
        domains attached to a project, project access settings, etc. are
        included here.

        This endpoint currently returns a list containing a single deployment
        configuration with an `id` of `current`. This may be subject to change
        in the future.
      operationId: list-projects-environments-deployments
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeploymentCollection'
components:
  schemas:
    DeploymentCollection:
      type: array
      items:
        $ref: '#/components/schemas/Deployment'
    Deployment:
      type: object
      properties:
        id:
          type: string
          title: Deployment Identifier
          description: The identifier of Deployment
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
          description: The creation date of the deployment
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
          description: The update date of the deployment
        fingerprint:
          type: string
          title: Deployment fingerprint
          description: The fingerprint of the deployment
        cluster_name:
          type: string
          title: Cluster name
          description: The name of the cluster
        project_info:
          type: object
          properties:
            title:
              type: string
              title: Title
              description: ''
            name:
              type: string
              title: Name
              description: ''
            namespace:
              type: string
              nullable: true
              title: Namespace
              description: ''
            organization:
              type: string
              nullable: true
              title: Organization
              description: ''
            capabilities:
              type: object
              title: Capabilities
              description: ''
            settings:
              type: object
              title: Settings
              description: ''
          required:
            - title
            - name
            - namespace
            - organization
            - capabilities
            - settings
          additionalProperties: false
          title: Project info
          description: The project information
        environment_info:
          type: object
          properties:
            name:
              type: string
              title: Environment name
              description: The machine name of the environment
            status:
              type: string
              title: Environment status
              description: The enviroment status
            is_main:
              type: boolean
              title: Is main environment
              description: Is this environment the main environment
            is_production:
              type: boolean
              title: Is production environment
              description: Is this environment a production environment
            constraints:
              type: object
              title: Environment constraints
              description: Constraints of the environment's deployment
            reference:
              type: string
              title: Git reference
              description: The reference in Git for this environment
            machine_name:
              type: string
              title: Machine name
              description: The machine name of the environment
            environment_type:
              type: string
              title: Environment type
              description: The type of environment (Production, Staging or Development)
            links:
              type: object
              title: Links
              description: ''
          required:
            - name
            - status
            - is_main
            - is_production
            - constraints
            - reference
            - machine_name
            - environment_type
            - links
          additionalProperties: false
          title: Environment info
          description: The environment information
        deployment_target:
          type: string
          title: Deployment target
          description: The deployment target
        vpn:
          type: object
          properties:
            version:
              type: integer
              enum:
                - 1
                - 2
              title: IKE Version
              description: The IKE version to use (1 or 2)
            aggressive:
              type: string
              enum:
                - 'no'
                - 'yes'
              title: Aggressive Mode
              description: Whether to use IKEv1 Aggressive or Main Mode
            modeconfig:
              type: string
              enum:
                - pull
                - push
              title: Mode Config
              description: >-
                Defines which mode is used to assign a virtual IP (must be the
                same on both sides)
            authentication:
              type: string
              title: Authentication scheme
              description: The authentication scheme
            gateway_ip:
              type: string
              title: Remote gateway IP
              description: ''
            identity:
              type: string
              nullable: true
              title: Identity
              description: The identity of the ipsec participant
            second_identity:
              type: string
              nullable: true
              title: Second Identity
              description: The second identity of the ipsec participant
            remote_identity:
              type: string
              nullable: true
              title: Remote Identity
              description: The identity of the remote ipsec participant
            remote_subnets:
              type: array
              items:
                type: string
              title: Remote Subnets
              description: Remote subnets (CIDR notation)
            ike:
              type: string
              title: IKE algorithms
              description: The IKE algorithms to negotiate for this VPN connection.
            esp:
              type: string
              title: ESP algorithms
              description: The ESP algorithms to negotiate for this VPN connection.
            ikelifetime:
              type: string
              title: IKE Lifetime
              description: The lifetime of the IKE exchange.
            lifetime:
              type: string
              title: ESP Lifetime
              description: The lifetime of the ESP exchange.
            margintime:
              type: string
              title: Margin Time
              description: The margin time for re-keying.
          required:
            - version
            - aggressive
            - modeconfig
            - authentication
            - gateway_ip
            - identity
            - second_identity
            - remote_identity
            - remote_subnets
            - ike
            - esp
            - ikelifetime
            - lifetime
            - margintime
          additionalProperties: false
          nullable: true
          title: VPN configuration
          description: The configuration of the VPN
        http_access:
          type: object
          properties:
            is_enabled:
              type: boolean
              title: Is enabled
              description: Whether http_access control is enabled
            addresses:
              type: array
              items:
                type: object
                properties:
                  permission:
                    type: string
                    enum:
                      - allow
                      - deny
                    title: Permission
                    description: ''
                  address:
                    type: string
                    title: Address
                    description: IP address or CIDR
                required:
                  - permission
                  - address
                additionalProperties: false
              title: Address grants
              description: ''
            basic_auth:
              type: object
              additionalProperties:
                type: string
              title: Basic auth grants
              description: ''
          required:
            - is_enabled
            - addresses
            - basic_auth
          additionalProperties: false
          title: HTTP access permissions
          description: The permissions of the HTTP access
        enable_smtp:
          type: boolean
          title: Enable SMTP
          description: Whether to configure SMTP for this environment
        restrict_robots:
          type: boolean
          title: Restrict robots
          description: Whether to restrict robots for this environment
        variables:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                title: Variable name
                description: Name of the variable
              value:
                type: string
                title: Variable value
                description: Value of the variable
              is_sensitive:
                type: boolean
                title: Is sensitive
                description: The variable is sensitive
              is_json:
                type: boolean
                title: Is JSON
                description: The variable is a JSON string
              visible_build:
                type: boolean
                title: Visible at build time
                description: The variable is visible during build
              visible_runtime:
                type: boolean
                title: Visible at runtime
                description: The variable is visible at runtime
            required:
              - name
              - is_sensitive
              - is_json
              - visible_build
              - visible_runtime
            additionalProperties: false
          title: Environment variables
          description: The variables applying to this environment
        access:
          type: array
          items:
            type: object
            properties:
              entity_id:
                type: string
                title: Entity ID
                description: ''
              role:
                type: string
                enum:
                  - admin
                  - contributor
                  - viewer
                title: Role
                description: ''
            required:
              - entity_id
              - role
            additionalProperties: false
          title: Access control
          description: Access control definition for this enviroment
        subscription:
          type: object
          properties:
            license_uri:
              type: string
              title: Subscription URI
              description: URI of the subscription
            plan:
              type: string
              enum:
                - 2xlarge
                - 2xlarge-high-memory
                - 4xlarge
                - 8xlarge
                - development
                - large
                - large-high-memory
                - medium
                - medium-high-memory
                - standard
                - standard-high-memory
                - xlarge
                - xlarge-high-memory
              title: Plan level
              description: ''
            environments:
              type: integer
              title: Environments number
              description: Number of environments
            storage:
              type: integer
              title: Storage
              description: Size of storage (in MB)
            included_users:
              type: integer
              title: Included users
              description: Number of users
            subscription_management_uri:
              type: string
              title: Subscription management URI
              description: URI for managing the subscription
            restricted:
              type: boolean
              title: Is subscription attributes frozen
              description: >-
                True if subscription attributes, like number of users, are
                frozen
            suspended:
              type: boolean
              title: Is subscription suspended
              description: Whether or not the subscription is suspended
            user_licenses:
              type: integer
              title: Current number of users
              description: Current number of users
            resources:
              type: object
              properties:
                container_profiles:
                  type: boolean
                  title: Is Container profiles enabled
                  description: Enable support for customizable container profiles
                production:
                  type: object
                  properties:
                    legacy_development:
                      type: boolean
                      title: Legacy development sizing
                      description: >-
                        Enable legacy development sizing for this environment
                        type
                    max_cpu:
                      type: number
                      format: float
                      nullable: true
                      title: Maximum CPU units
                      description: Maximum number of allocated CPU units
                    max_memory:
                      type: integer
                      nullable: true
                      title: Maximum RAM
                      description: Maximum amount of allocated RAM
                    max_environments:
                      type: integer
                      nullable: true
                      title: Maximum environments
                      description: Maximum number of environments
                  required:
                    - legacy_development
                    - max_cpu
                    - max_memory
                    - max_environments
                  additionalProperties: false
                  title: Production resources
                  description: Resources for production environments
                development:
                  type: object
                  properties:
                    legacy_development:
                      type: boolean
                      title: Legacy development sizing
                      description: >-
                        Enable legacy development sizing for this environment
                        type
                    max_cpu:
                      type: number
                      format: float
                      nullable: true
                      title: Maximum CPU units
                      description: Maximum number of allocated CPU units
                    max_memory:
                      type: integer
                      nullable: true
                      title: Maximum RAM
                      description: Maximum amount of allocated RAM
                    max_environments:
                      type: integer
                      nullable: true
                      title: Maximum environments
                      description: Maximum number of environments
                  required:
                    - legacy_development
                    - max_cpu
                    - max_memory
                    - max_environments
                  additionalProperties: false
                  title: Development resources
                  description: Resources for development environments
              required:
                - container_profiles
                - production
                - development
              additionalProperties: false
              title: Resources limits
              description: Resources limits
            resource_validation_url:
              type: string
              title: Resource validation URL
              description: URL for resources validation
            image_types:
              type: object
              properties:
                only:
                  type: array
                  items:
                    type: string
                  title: Allowed image types
                  description: Image types to be allowed use.
                exclude:
                  type: array
                  items:
                    type: string
                  title: Denied image types
                  description: Image types to be denied use.
              additionalProperties: false
              title: Image type restrictions
              description: Restricted and denied image types
          required:
            - license_uri
            - storage
            - included_users
            - subscription_management_uri
            - restricted
            - suspended
            - user_licenses
          additionalProperties: false
          title: Subscription
          description: Subscription
        services:
          type: object
          additionalProperties:
            type: object
            properties:
              type:
                type: string
                title: Service type
                description: The service type.
              size:
                type: string
                enum:
                  - 2XL
                  - 4XL
                  - AUTO
                  - L
                  - M
                  - S
                  - XL
                title: Service size
                description: The service size.
              disk:
                type: integer
                nullable: true
                title: The size of the disk.
                description: ''
              access:
                type: object
                title: Access configuration
                description: The configuration of the service.
              configuration:
                type: object
                title: Service configuration
                description: The configuration of the service.
              relationships:
                type: object
                additionalProperties:
                  type: string
                title: Service relationships
                description: The relationships of the service to other services.
              firewall:
                type: object
                properties:
                  outbound:
                    type: array
                    items:
                      type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - tcp
                          title: IP Protocol
                          description: The IP protocol to apply the restriction on.
                        ips:
                          type: array
                          items:
                            type: string
                          title: IP Ranges
                          description: >-
                            The IP range in CIDR notation to apply the
                            restriction on.
                        domains:
                          type: array
                          items:
                            type: string
                          title: Domains
                          description: Domains of the restriction.
                        ports:
                          type: array
                          items:
                            type: integer
                          title: Ports
                          description: The port to apply the restriction on.
                      required:
                        - protocol
                        - ips
                        - domains
                        - ports
                      additionalProperties: false
                    nullable: true
                    title: Outbound Firewall Restrictions
                    description: Outbound firewall restrictions
                required:
                  - outbound
                additionalProperties: false
                nullable: true
                title: Firewall
                description: ''
              resources:
                type: object
                properties:
                  base_memory:
                    type: integer
                    nullable: true
                    title: Base memory
                    description: The base memory for the container
                  memory_ratio:
                    type: integer
                    nullable: true
                    title: Memory ratio
                    description: The amount of memory to allocate per units of CPU
                  profile_size:
                    type: string
                    nullable: true
                    title: Profile size
                    description: Selected size from container profile
                  minimum:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: CPU
                        description: Cpu value
                      memory:
                        type: integer
                        title: Memory
                        description: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: Type
                        description: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size
                        description: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: Profile size
                        description: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: Minimum resources
                    description: The minimum resources for this service
                  default:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: CPU
                        description: Cpu value
                      memory:
                        type: integer
                        title: Memory
                        description: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: Type
                        description: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size
                        description: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: Profile size
                        description: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: Default resources
                    description: The default resources for this service
                  disk:
                    type: object
                    properties:
                      temporary:
                        type: integer
                        nullable: true
                        title: Temporary
                        description: ''
                      instance:
                        type: integer
                        nullable: true
                        title: Instance
                        description: ''
                      storage:
                        type: integer
                        nullable: true
                        title: Storage
                        description: ''
                    required:
                      - temporary
                      - instance
                      - storage
                    additionalProperties: false
                    nullable: true
                    title: Disk resources
                    description: The disks resources
                required:
                  - base_memory
                  - memory_ratio
                  - profile_size
                  - minimum
                  - default
                  - disk
                additionalProperties: false
                nullable: true
                title: Resources
                description: ''
              container_profile:
                type: string
                nullable: true
                title: Container profile
                description: Selected container profile for the service
              endpoints:
                type: object
                nullable: true
                title: Endpoints
                description: ''
              instance_count:
                type: integer
                nullable: true
                title: Instance count
                description: Instance replication count of this service
              supports_horizontal_scaling:
                type: boolean
                title: Supports horizontal scaling
                description: Whether this service type supports horizontal scaling
            required:
              - type
              - size
              - disk
              - access
              - configuration
              - relationships
              - firewall
              - resources
              - container_profile
              - endpoints
              - instance_count
              - supports_horizontal_scaling
            additionalProperties: false
          title: Services
          description: The services
        routes:
          type: object
          additionalProperties:
            oneOf:
              - $ref: '#/components/schemas/ProxyRoute'
              - $ref: '#/components/schemas/RedirectRoute'
              - $ref: '#/components/schemas/UpstreamRoute'
          title: Routes
          description: The routes
        webapps:
          type: object
          additionalProperties:
            type: object
            properties:
              resources:
                type: object
                properties:
                  base_memory:
                    type: integer
                    nullable: true
                    title: Base memory
                    description: The base memory for the container
                  memory_ratio:
                    type: integer
                    nullable: true
                    title: Memory ratio
                    description: The amount of memory to allocate per units of CPU
                  profile_size:
                    type: string
                    nullable: true
                    title: Profile size
                    description: Selected size from container profile
                  minimum:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: CPU
                        description: Cpu value
                      memory:
                        type: integer
                        title: Memory
                        description: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: Type
                        description: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size
                        description: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: Profile size
                        description: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: Minimum resources
                    description: The minimum resources for this service
                  default:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: CPU
                        description: Cpu value
                      memory:
                        type: integer
                        title: Memory
                        description: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: Type
                        description: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size
                        description: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: Profile size
                        description: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: Default resources
                    description: The default resources for this service
                  disk:
                    type: object
                    properties:
                      temporary:
                        type: integer
                        nullable: true
                        title: Temporary
                        description: ''
                      instance:
                        type: integer
                        nullable: true
                        title: Instance
                        description: ''
                      storage:
                        type: integer
                        nullable: true
                        title: Storage
                        description: ''
                    required:
                      - temporary
                      - instance
                      - storage
                    additionalProperties: false
                    nullable: true
                    title: Disk resources
                    description: The disks resources
                required:
                  - base_memory
                  - memory_ratio
                  - profile_size
                  - minimum
                  - default
                  - disk
                additionalProperties: false
                nullable: true
                title: Resources
                description: ''
              size:
                type: string
                enum:
                  - 2XL
                  - 4XL
                  - AUTO
                  - L
                  - M
                  - S
                  - XL
                  - XS
                title: Container Size
                description: >-
                  The container size for this application in production. Leave
                  blank to allow it to be set dynamically.
              disk:
                type: integer
                nullable: true
                title: Disk size
                description: The size of the disk.
              access:
                type: object
                additionalProperties:
                  type: string
                  enum:
                    - admin
                    - contributor
                    - viewer
                title: Access Information
                description: Access information, a mapping between access type and roles.
              relationships:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    service:
                      type: string
                      nullable: true
                      title: Service Name
                      description: The name of the service.
                    endpoint:
                      type: string
                      nullable: true
                      title: Endpoint Name
                      description: The name of the endpoint on the service.
                  required:
                    - service
                    - endpoint
                  additionalProperties: false
                  nullable: true
                title: Service Relationships
                description: The relationships of the application to defined services.
              additional_hosts:
                type: object
                additionalProperties:
                  type: string
                title: Additional hosts
                description: >-
                  A mapping of hostname to ip address to be added to the
                  container's hosts file
              mounts:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    source:
                      type: string
                      enum:
                        - instance
                        - local
                        - service
                        - storage
                        - temporary
                        - tmp
                      title: Mount type
                      description: The type of mount that will provide the data.
                    source_path:
                      type: string
                      title: Source Path
                      description: >-
                        The path to be mounted, relative to the root directory
                        of the volume that's being mounted from.
                    service:
                      type: string
                      nullable: true
                      title: Service Name
                      description: >-
                        The name of the service that the volume will be mounted
                        from. Must be a service in `services.yaml` of type
                        `network-storage`.
                  required:
                    - source
                    - source_path
                  additionalProperties: false
                title: Mounts
                description: >-
                  Filesystem mounts of this application.  If not specified the
                  application will have no writeable disk space.
              timezone:
                type: string
                nullable: true
                title: Timezone
                description: >-
                  The timezone of the application.  This primarily affects the
                  timezone in which cron tasks will run.  It will not affect the
                  application itself. Defaults to UTC if not specified.
              variables:
                type: object
                additionalProperties:
                  type: object
                  additionalProperties: {}
                title: Environment Variables
                description: >-
                  Variables provide environment-sensitive information to control
                  how your application behaves.  To set a Unix environment
                  variable, specify a key of `env:`, and then each sub-item of
                  that is a key/value pair that will be injected into the
                  environment.
              firewall:
                type: object
                properties:
                  outbound:
                    type: array
                    items:
                      type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - tcp
                          title: IP Protocol
                          description: The IP protocol to apply the restriction on.
                        ips:
                          type: array
                          items:
                            type: string
                          title: IP Ranges
                          description: >-
                            The IP range in CIDR notation to apply the
                            restriction on.
                        domains:
                          type: array
                          items:
                            type: string
                          title: Domains
                          description: Domains of the restriction.
                        ports:
                          type: array
                          items:
                            type: integer
                          title: Ports
                          description: The port to apply the restriction on.
                      required:
                        - protocol
                        - ips
                        - domains
                        - ports
                      additionalProperties: false
                    nullable: true
                    title: Outbound Firewall Restrictions
                    description: Outbound firewall restrictions
                required:
                  - outbound
                additionalProperties: false
                nullable: true
                title: Firewall
                description: ''
              container_profile:
                type: string
                nullable: true
                title: Container Profile
                description: Selected container profile for the application
              operations:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    commands:
                      type: object
                      properties:
                        start:
                          type: string
                          title: Start Command
                          description: The command used to start the operation.
                        stop:
                          type: string
                          nullable: true
                          title: Stop Command
                          description: The command used to stop the operation.
                      required:
                        - start
                      additionalProperties: false
                      title: Commands
                      description: The commands definition.
                    timeout:
                      type: integer
                      nullable: true
                      title: Timeout
                      description: >-
                        The maximum timeout in seconds after which the operation
                        will be forcefully killed.
                    role:
                      type: string
                      enum:
                        - admin
                        - contributor
                        - viewer
                      title: Role
                      description: The minimum role necessary to trigger this operation.
                  required:
                    - commands
                    - timeout
                    - role
                  additionalProperties: false
                title: Operations
                description: Operations that can be triggered on this application
              name:
                type: string
                title: Application Name
                description: The name of the application. Must be unique within a project.
              type:
                type: string
                title: Type
                description: The base runtime and version to use for this worker.
              preflight:
                type: object
                properties:
                  enabled:
                    type: boolean
                    title: Enable Preflight Security Blocks
                    description: Whether the preflight security blocks are enabled.
                  ignored_rules:
                    type: array
                    items:
                      type: string
                    title: Ignored Rules
                    description: >-
                      Specific rules to ignore during preflight security checks.
                      See the documentation for options.
                required:
                  - enabled
                  - ignored_rules
                additionalProperties: false
                title: Preflight Checks
                description: Configuration for pre-flight checks.
              tree_id:
                type: string
                title: Source Tree ID
                description: The identifier of the source tree of the application
              app_dir:
                type: string
                title: Application Directory
                description: The path of the application in the container
              endpoints:
                type: object
                nullable: true
                title: Endpoints
                description: ''
              runtime:
                type: object
                title: Runtime Configuration
                description: Runtime-specific configuration.
              web:
                type: object
                properties:
                  locations:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        root:
                          type: string
                          nullable: true
                          title: Document Root
                          description: >-
                            The folder from which to serve static assets for
                            this location relative to the application root.
                        expires:
                          type: string
                          title: Expires
                          description: Amount of time to cache static assets.
                        passthru:
                          type: string
                          title: Passthru
                          description: >-
                            Whether to forward disallowed and missing resources
                            from this location to the application. On PHP, set
                            to the PHP front controller script, as a URL
                            fragment. Otherwise set to `true`/`false`.
                        scripts:
                          type: boolean
                          title: Scripts
                          description: >-
                            Whether to execute scripts in this location (for
                            script based runtimes). The default value depends on
                            the project setting `locations_script_default`
                        index:
                          type: array
                          items:
                            type: string
                          nullable: true
                          title: Index Files
                          description: Files to look for to serve directories.
                        allow:
                          type: boolean
                          title: Allow access
                          description: Whether to allow access to this location by default.
                        headers:
                          type: object
                          additionalProperties:
                            type: string
                          title: Headers
                          description: >-
                            A set of header fields set to the HTTP response.
                            Applies only to static files, not responses from the
                            application.
                        rules:
                          type: object
                          additionalProperties:
                            type: object
                            properties:
                              expires:
                                type: string
                                nullable: true
                                title: Expires
                                description: Amount of time to cache static assets.
                              passthru:
                                type: string
                                title: Passthru
                                description: >-
                                  Whether to forward disallowed and missing
                                  resources from this location to the
                                  application. On PHP, set to the PHP front
                                  controller script, as a URL fragment.
                                  Otherwise set to `true`/`false`.
                              scripts:
                                type: boolean
                                title: Scripts
                                description: >-
                                  Whether to execute scripts in this location
                                  (for script based runtimes).
                              allow:
                                type: boolean
                                title: Allow access
                                description: >-
                                  Whether to allow access to this location by
                                  default.
                              headers:
                                type: object
                                additionalProperties:
                                  type: string
                                title: Headers
                                description: >-
                                  A set of header fields set to the HTTP
                                  response. Replaces headers set on the location
                                  block.
                            additionalProperties: false
                          title: Specific overrides
                          description: Specific overrides.
                        request_buffering:
                          type: object
                          properties:
                            enabled:
                              type: boolean
                              title: Enable Request Buffering
                              description: Enable request buffering.
                            max_request_size:
                              type: string
                              nullable: true
                              title: Maximum request size
                              description: >-
                                The maximum size request that can be buffered.
                                Supports K, M, and G suffixes.
                          required:
                            - enabled
                            - max_request_size
                          additionalProperties: false
                          title: Request Buffering
                          description: Configuration for supporting request buffering.
                      required:
                        - root
                        - expires
                        - passthru
                        - scripts
                        - allow
                        - headers
                        - rules
                      additionalProperties: false
                    title: Web Locations
                    description: >-
                      The specification of the web locations served by this
                      application.
                  commands:
                    type: object
                    properties:
                      pre_start:
                        type: string
                        nullable: true
                        title: Pre-start Command
                        description: A command executed before the application is started
                      start:
                        type: string
                        nullable: true
                        title: Start Command
                        description: >-
                          The command used to start the application.  It will be
                          restarted if it terminates. Do not use on PHP unless
                          using a custom persistent process like React PHP.
                      post_start:
                        type: string
                        nullable: true
                        title: Post-start Command
                        description: A command executed after the application is started
                    additionalProperties: false
                    title: Commands
                    description: Commands to manage the application's lifecycle.
                  upstream:
                    type: object
                    properties:
                      socket_family:
                        type: string
                        enum:
                          - tcp
                          - unix
                        title: Socket Family
                        description: >-
                          If `tcp`, check the PORT environment variable on
                          application startup. If `unix`, check SOCKET.
                      protocol:
                        type: string
                        enum:
                          - fastcgi
                          - http
                        nullable: true
                        title: Protocol
                        description: ''
                    required:
                      - socket_family
                      - protocol
                    additionalProperties: false
                    title: Upstream Configuration
                    description: >-
                      Configuration on how the web server communicates with the
                      application.
                  document_root:
                    type: string
                    nullable: true
                    title: Document Root
                    description: >-
                      The document root of this application, relative to its
                      root.
                  passthru:
                    type: string
                    nullable: true
                    title: Passthru
                    description: >-
                      The URL to use as a passthru if a file doesn't match the
                      whitelist.
                  index_files:
                    type: array
                    items:
                      type: string
                    nullable: true
                    title: Index Files
                    description: Files to look for to serve directories.
                  whitelist:
                    type: array
                    items:
                      type: string
                    nullable: true
                    title: Whitelisted entries
                    description: Whitelisted entries.
                  blacklist:
                    type: array
                    items:
                      type: string
                    nullable: true
                    title: Blacklisted entries
                    description: Blacklisted entries.
                  expires:
                    type: string
                    nullable: true
                    title: Expires
                    description: Amount of time to cache static assets.
                  move_to_root:
                    type: boolean
                    title: Move to root
                    description: >-
                      Whether to move the whole root of the app to the document
                      root.
                required:
                  - locations
                  - move_to_root
                additionalProperties: false
                title: Web Configuration
                description: Configuration for accessing this application via HTTP.
              hooks:
                type: object
                properties:
                  build:
                    type: string
                    nullable: true
                    title: Build Hook
                    description: Hook executed after the build process.
                  deploy:
                    type: string
                    nullable: true
                    title: Deploy Hook
                    description: Hook executed after the deployment of new code.
                  post_deploy:
                    type: string
                    nullable: true
                    title: Post-deploy Hook
                    description: Hook executed after an environment is fully deployed.
                required:
                  - build
                  - deploy
                  - post_deploy
                additionalProperties: false
                title: Hooks
                description: >-
                  Hooks executed at various point in the lifecycle of the
                  application.
              crons:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    spec:
                      type: string
                      title: Specification
                      description: The cron schedule specification.
                    commands:
                      type: object
                      properties:
                        start:
                          type: string
                          title: Start Command
                          description: The command used to start the operation.
                        stop:
                          type: string
                          nullable: true
                          title: Stop Command
                          description: The command used to stop the operation.
                      required:
                        - start
                      additionalProperties: false
                      title: Commands
                      description: The commands definition.
                    shutdown_timeout:
                      type: integer
                      nullable: true
                      title: Shutdown Timeout
                      description: >-
                        The timeout in seconds after which the cron job will be
                        forcefully killed.
                    timeout:
                      type: integer
                      title: Timeout
                      description: >-
                        The maximum timeout in seconds after which the cron job
                        will be forcefully killed.
                    cmd:
                      type: string
                      title: Command
                      description: The command to execute.
                  required:
                    - spec
                    - commands
                    - timeout
                  additionalProperties: false
                title: Crons
                description: Scheduled cron tasks executed by this application.
              source:
                type: object
                properties:
                  root:
                    type: string
                    nullable: true
                    title: Application Source Root
                    description: >-
                      The root of the application relative to the repository
                      root.
                  operations:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        command:
                          type: string
                          nullable: true
                          title: Update Command
                          description: The command to use to update this application.
                      required:
                        - command
                      additionalProperties: false
                    title: Source Operations
                    description: Operations that can be applied to the source code.
                required:
                  - root
                  - operations
                additionalProperties: false
                title: Source Code Configuration
                description: Configuration related to the source code of the application.
              build:
                type: object
                properties:
                  flavor:
                    type: string
                    nullable: true
                    title: Build Flavor
                    description: The pre-set build tasks to use for this application.
                  caches:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        directory:
                          type: string
                          nullable: true
                          title: Cache Directory
                          description: >-
                            The directory, relative to the application root,
                            that should be cached.
                        watch:
                          type: array
                          items:
                            type: string
                          title: Watch Files
                          description: >-
                            The file or files whose hashed contents should be
                            considered part of the cache key.
                        allow_stale:
                          type: boolean
                          title: Allow Stale Cache
                          description: >-
                            If true, on a cache miss the last cache version will
                            be used and can be updated in place.
                        share_between_apps:
                          type: boolean
                          title: Share Between Applications
                          description: >-
                            Whether multiple applications in the project should
                            share cached directories.
                      required:
                        - directory
                        - watch
                        - allow_stale
                        - share_between_apps
                      additionalProperties: false
                    title: Build Caches
                    description: The configuration of paths managed by the build cache.
                required:
                  - flavor
                  - caches
                additionalProperties: false
                title: Build Configuration
                description: The build configuration of the application.
              dependencies:
                type: object
                additionalProperties:
                  type: object
                title: Dependencies
                description: >-
                  External global dependencies of this application. They will be
                  downloaded by the language's package manager.
              stack:
                type: object
                properties:
                  runtimes:
                    type: array
                    items:
                      type: object
                    title: Runtime packages
                    description: ''
                  packages:
                    type: array
                    items:
                      oneOf:
                        - type: string
                        - type: object
                    title: Community packages
                    description: ''
                required:
                  - runtimes
                  - packages
                additionalProperties: false
                title: Composable images
                description: ''
              image:
                type: object
                properties:
                  name:
                    type: string
                    nullable: true
                    title: Image name
                    description: Image name with version to be deployed
                  buildfile:
                    type: string
                    nullable: true
                    title: Dockerfile
                    description: Path to the dockerfile to use to build the container from
                additionalProperties: false
                nullable: true
                title: OCI image
                description: OCI image configuration
              is_across_submodule:
                type: boolean
                title: Is Across Submodule
                description: Is this application coming from a submodule
              instance_count:
                type: integer
                nullable: true
                title: Instance replication count
                description: Instance replication count of this application
              config_id:
                type: string
                title: Config Id
                description: ''
              slug_id:
                type: string
                title: Artifact Identifier
                description: The identifier of the built artifact of the application
              supports_horizontal_scaling:
                type: boolean
                title: Supports horizontal scaling
                description: Whether this service type supports horizontal scaling
            required:
              - resources
              - size
              - disk
              - access
              - relationships
              - additional_hosts
              - mounts
              - timezone
              - variables
              - firewall
              - container_profile
              - operations
              - name
              - type
              - preflight
              - tree_id
              - app_dir
              - endpoints
              - runtime
              - web
              - hooks
              - crons
              - source
              - build
              - dependencies
              - stack
              - image
              - is_across_submodule
              - instance_count
              - config_id
              - slug_id
              - supports_horizontal_scaling
            additionalProperties: false
          title: Web applications
          description: The Web applications
        workers:
          type: object
          additionalProperties:
            type: object
            properties:
              resources:
                type: object
                properties:
                  base_memory:
                    type: integer
                    nullable: true
                    title: Base memory
                    description: The base memory for the container
                  memory_ratio:
                    type: integer
                    nullable: true
                    title: Memory ratio
                    description: The amount of memory to allocate per units of CPU
                  profile_size:
                    type: string
                    nullable: true
                    title: Profile size
                    description: Selected size from container profile
                  minimum:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: CPU
                        description: Cpu value
                      memory:
                        type: integer
                        title: Memory
                        description: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: Type
                        description: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size
                        description: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: Profile size
                        description: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: Minimum resources
                    description: The minimum resources for this service
                  default:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: CPU
                        description: Cpu value
                      memory:
                        type: integer
                        title: Memory
                        description: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: Type
                        description: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size
                        description: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: Profile size
                        description: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: Default resources
                    description: The default resources for this service
                  disk:
                    type: object
                    properties:
                      temporary:
                        type: integer
                        nullable: true
                        title: Temporary
                        description: ''
                      instance:
                        type: integer
                        nullable: true
                        title: Instance
                        description: ''
                      storage:
                        type: integer
                        nullable: true
                        title: Storage
                        description: ''
                    required:
                      - temporary
                      - instance
                      - storage
                    additionalProperties: false
                    nullable: true
                    title: Disk resources
                    description: The disks resources
                required:
                  - base_memory
                  - memory_ratio
                  - profile_size
                  - minimum
                  - default
                  - disk
                additionalProperties: false
                nullable: true
                title: Resources
                description: ''
              size:
                type: string
                enum:
                  - 2XL
                  - 4XL
                  - AUTO
                  - L
                  - M
                  - S
                  - XL
                  - XS
                title: Container Size
                description: >-
                  The container size for this application in production. Leave
                  blank to allow it to be set dynamically.
              disk:
                type: integer
                nullable: true
                title: Disk size
                description: >-
                  The writeable disk size to reserve on this application
                  container.
              access:
                type: object
                additionalProperties:
                  type: string
                  enum:
                    - admin
                    - contributor
                    - viewer
                title: Access Information
                description: Access information, a mapping between access type and roles.
              relationships:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    service:
                      type: string
                      nullable: true
                      title: Service Name
                      description: The name of the service.
                    endpoint:
                      type: string
                      nullable: true
                      title: Endpoint Name
                      description: The name of the endpoint on the service.
                  required:
                    - service
                    - endpoint
                  additionalProperties: false
                  nullable: true
                title: Service Relationships
                description: The relationships of the application to defined services.
              additional_hosts:
                type: object
                additionalProperties:
                  type: string
                title: Additional hosts
                description: >-
                  A mapping of hostname to ip address to be added to the
                  container's hosts file
              mounts:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    source:
                      type: string
                      enum:
                        - instance
                        - local
                        - service
                        - storage
                        - temporary
                        - tmp
                      title: Mount type
                      description: The type of mount that will provide the data.
                    source_path:
                      type: string
                      title: Source Path
                      description: >-
                        The path to be mounted, relative to the root directory
                        of the volume that's being mounted from.
                    service:
                      type: string
                      nullable: true
                      title: Service Name
                      description: >-
                        The name of the service that the volume will be mounted
                        from. Must be a service in `services.yaml` of type
                        `network-storage`.
                  required:
                    - source
                    - source_path
                  additionalProperties: false
                title: Mounts
                description: >-
                  Filesystem mounts of this application.  If not specified the
                  application will have no writeable disk space.
              timezone:
                type: string
                nullable: true
                title: Timezone
                description: >-
                  The timezone of the application.  This primarily affects the
                  timezone in which cron tasks will run.  It will not affect the
                  application itself. Defaults to UTC if not specified.
              variables:
                type: object
                additionalProperties:
                  type: object
                  additionalProperties: {}
                title: Environment Variables
                description: >-
                  Variables provide environment-sensitive information to control
                  how your application behaves.  To set a Unix environment
                  variable, specify a key of `env:`, and then each sub-item of
                  that is a key/value pair that will be injected into the
                  environment.
              firewall:
                type: object
                properties:
                  outbound:
                    type: array
                    items:
                      type: object
                      properties:
                        protocol:
                          type: string
                          enum:
                            - tcp
                          title: IP Protocol
                          description: The IP protocol to apply the restriction on.
                        ips:
                          type: array
                          items:
                            type: string
                          title: IP Ranges
                          description: >-
                            The IP range in CIDR notation to apply the
                            restriction on.
                        domains:
                          type: array
                          items:
                            type: string
                          title: Domains
                          description: Domains of the restriction.
                        ports:
                          type: array
                          items:
                            type: integer
                          title: Ports
                          description: The port to apply the restriction on.
                      required:
                        - protocol
                        - ips
                        - domains
                        - ports
                      additionalProperties: false
                    nullable: true
                    title: Outbound Firewall Restrictions
                    description: Outbound firewall restrictions
                required:
                  - outbound
                additionalProperties: false
                nullable: true
                title: Firewall
                description: ''
              container_profile:
                type: string
                nullable: true
                title: Container Profile
                description: Selected container profile for the application
              operations:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    commands:
                      type: object
                      properties:
                        start:
                          type: string
                          title: Start Command
                          description: The command used to start the operation.
                        stop:
                          type: string
                          nullable: true
                          title: Stop Command
                          description: The command used to stop the operation.
                      required:
                        - start
                      additionalProperties: false
                      title: Commands
                      description: The commands definition.
                    timeout:
                      type: integer
                      nullable: true
                      title: Timeout
                      description: >-
                        The maximum timeout in seconds after which the operation
                        will be forcefully killed.
                    role:
                      type: string
                      enum:
                        - admin
                        - contributor
                        - viewer
                      title: Role
                      description: The minimum role necessary to trigger this operation.
                  required:
                    - commands
                    - timeout
                    - role
                  additionalProperties: false
                title: Operations
                description: Operations that can be triggered on this application
              name:
                type: string
                title: Worker Name
                description: The name of the worker.
              type:
                type: string
                title: Type
                description: The base runtime and version to use for this worker.
              preflight:
                type: object
                properties:
                  enabled:
                    type: boolean
                    title: Enable Preflight Security Blocks
                    description: Whether the preflight security blocks are enabled.
                  ignored_rules:
                    type: array
                    items:
                      type: string
                    title: Ignored Rules
                    description: >-
                      Specific rules to ignore during preflight security checks.
                      See the documentation for options.
                required:
                  - enabled
                  - ignored_rules
                additionalProperties: false
                title: Preflight Checks
                description: Configuration for pre-flight checks.
              tree_id:
                type: string
                title: Source Tree ID
                description: The identifier of the source tree of the application
              app_dir:
                type: string
                title: Application Directory
                description: The path of the application in the container
              endpoints:
                type: object
                nullable: true
                title: Endpoints
                description: ''
              runtime:
                type: object
                title: Runtime Configuration
                description: Runtime-specific configuration.
              worker:
                type: object
                properties:
                  commands:
                    type: object
                    properties:
                      pre_start:
                        type: string
                        nullable: true
                        title: Pre-start Command
                        description: A command executed before the worker is started
                      start:
                        type: string
                        title: Start Command
                        description: The command used to start the worker.
                      post_start:
                        type: string
                        nullable: true
                        title: Post-start Command
                        description: A command executed after the worker is started
                    required:
                      - start
                    additionalProperties: false
                    title: Commands
                    description: The commands to manage the worker.
                  disk:
                    type: integer
                    nullable: true
                    title: Disk Size
                    description: >-
                      The writeable disk size to reserve on this application
                      container.
                required:
                  - commands
                additionalProperties: false
                title: Worker Configuration
                description: Configuration of a worker container instance.
              app:
                type: string
                title: App
                description: ''
              stack:
                type: object
                properties:
                  runtimes:
                    type: array
                    items:
                      type: object
                    title: Runtime packages
                    description: ''
                  packages:
                    type: array
                    items:
                      oneOf:
                        - type: string
                        - type: object
                    title: Community packages
                    description: ''
                required:
                  - runtimes
                  - packages
                additionalProperties: false
                title: Composable images
                description: ''
              image:
                type: object
                properties:
                  name:
                    type: string
                    nullable: true
                    title: Image name
                    description: Image name with version to be deployed
                  buildfile:
                    type: string
                    nullable: true
                    title: Dockerfile
                    description: Path to the dockerfile to use to build the container from
                additionalProperties: false
                nullable: true
                title: OCI image
                description: OCI image configuration
              instance_count:
                type: integer
                nullable: true
                title: Instance replication count
                description: Instance replication count of this worker
              slug_id:
                type: string
                title: Artifact Identifier
                description: The identifier of the built artifact of the application
              supports_horizontal_scaling:
                type: boolean
                title: Supports horizontal scaling
                description: Whether this service type supports horizontal scaling
            required:
              - resources
              - size
              - disk
              - access
              - relationships
              - additional_hosts
              - mounts
              - timezone
              - variables
              - firewall
              - container_profile
              - operations
              - name
              - type
              - preflight
              - tree_id
              - app_dir
              - endpoints
              - runtime
              - worker
              - app
              - stack
              - image
              - instance_count
              - slug_id
              - supports_horizontal_scaling
            additionalProperties: false
          title: Workers
          description: The workers
        container_profiles:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: object
              properties:
                cpu:
                  type: number
                  format: float
                  title: CPU
                  description: Cpu value
                memory:
                  type: integer
                  title: Memory
                  description: Memory in MB
                cpu_type:
                  type: string
                  enum:
                    - guaranteed
                    - shared
                  title: Type
                  description: resource type
              required:
                - cpu
                - memory
                - cpu_type
              additionalProperties: false
          title: Container profiles
          description: The profiles of the containers
      required:
        - id
        - cluster_name
        - project_info
        - environment_info
        - deployment_target
        - vpn
        - http_access
        - enable_smtp
        - restrict_robots
        - variables
        - access
        - subscription
        - services
        - routes
        - webapps
        - workers
        - container_profiles
      additionalProperties: false
    ProxyRoute:
      type: object
      properties:
        id:
          type: string
          title: ProxyRoute Identifier
          description: The identifier of ProxyRoute
        primary:
          type: boolean
          nullable: true
          title: Is primary
          description: This route is the primary route of the environment
        production_url:
          type: string
          nullable: true
          title: Production URL
          description: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes
          description: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type
          description: Route type
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Is enabled
                  description: Whether strict transport security is enabled or not
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Is subdomains included
                  description: >-
                    Whether the strict transport security policy should include
                    all subdomains
                preload:
                  type: boolean
                  nullable: true
                  title: Is strict transport security preloaded
                  description: >-
                    Whether the strict transport security policy should be
                    preloaded in browsers
              required:
                - enabled
                - include_subdomains
                - preload
              additionalProperties: false
              title: Strict-Transport-Security options.
              description: ''
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: Minimum TLS version
              description: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: Client authentication
              description: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: Client certificate authorities
              description: >-
                Certificate authorities to validate the client certificate
                against. If not specified, a default set of trusted CAs will be
                used.
          required:
            - strict_transport_security
            - min_version
            - client_authentication
            - client_certificate_authorities
          additionalProperties: false
          title: TLS settings
          description: TLS settings for the route
        to:
          type: string
          title: Proxy destination
          description: The destination of the proxy
      required:
        - primary
        - id
        - production_url
        - attributes
        - type
        - tls
        - to
      additionalProperties: false
    RedirectRoute:
      type: object
      properties:
        id:
          type: string
          title: RedirectRoute Identifier
          description: The identifier of RedirectRoute
        primary:
          type: boolean
          nullable: true
          title: Is primary
          description: This route is the primary route of the environment
        production_url:
          type: string
          nullable: true
          title: Production URL
          description: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes
          description: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type
          description: Route type
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Is enabled
                  description: Whether strict transport security is enabled or not
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Is subdomains included
                  description: >-
                    Whether the strict transport security policy should include
                    all subdomains
                preload:
                  type: boolean
                  nullable: true
                  title: Is strict transport security preloaded
                  description: >-
                    Whether the strict transport security policy should be
                    preloaded in browsers
              required:
                - enabled
                - include_subdomains
                - preload
              additionalProperties: false
              title: Strict-Transport-Security options.
              description: ''
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: Minimum TLS version
              description: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: Client authentication
              description: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: Client certificate authorities
              description: >-
                Certificate authorities to validate the client certificate
                against. If not specified, a default set of trusted CAs will be
                used.
          required:
            - strict_transport_security
            - min_version
            - client_authentication
            - client_certificate_authorities
          additionalProperties: false
          title: TLS settings
          description: TLS settings for the route
        to:
          type: string
          title: Redirect destination
          description: The destination of the proxy
        redirects:
          type: object
          properties:
            expires:
              type: string
              title: Expires
              description: The amount of time, in seconds, to cache the redirects
            paths:
              type: object
              additionalProperties:
                type: object
                properties:
                  regexp:
                    type: boolean
                    title: Is regexp
                    description: Whether the path is a regular expression.
                  to:
                    type: string
                    title: Redirect URL
                    description: The URL to redirect to.
                  prefix:
                    type: boolean
                    nullable: true
                    title: Is prefix
                    description: >-
                      Whether to redirect all the paths that start with the
                      path.
                  append_suffix:
                    type: boolean
                    nullable: true
                    title: Append suffix
                    description: >-
                      Whether to append the incoming suffix to the redirected
                      URL.
                  code:
                    type: integer
                    enum:
                      - 301
                      - 302
                      - 307
                      - 308
                    title: Redirect code
                    description: The redirect code to use.
                  expires:
                    type: string
                    nullable: true
                    title: Expires
                    description: The amount of time, in seconds, to cache the redirects.
                required:
                  - regexp
                  - to
                  - prefix
                  - append_suffix
                  - code
                  - expires
                additionalProperties: false
              title: Path
              description: The paths to redirect
          required:
            - expires
            - paths
          additionalProperties: false
          title: Redirect configuration
          description: The configuration of the redirects
      required:
        - primary
        - id
        - production_url
        - attributes
        - type
        - tls
        - to
        - redirects
      additionalProperties: false
    UpstreamRoute:
      type: object
      properties:
        id:
          type: string
          title: UpstreamRoute Identifier
          description: The identifier of UpstreamRoute
        primary:
          type: boolean
          nullable: true
          title: Is primary
          description: This route is the primary route of the environment
        production_url:
          type: string
          nullable: true
          title: Production URL
          description: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes
          description: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type
          description: Route type
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Is enabled
                  description: Whether strict transport security is enabled or not
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Is subdomains included
                  description: >-
                    Whether the strict transport security policy should include
                    all subdomains
                preload:
                  type: boolean
                  nullable: true
                  title: Is strict transport security preloaded
                  description: >-
                    Whether the strict transport security policy should be
                    preloaded in browsers
              required:
                - enabled
                - include_subdomains
                - preload
              additionalProperties: false
              title: Strict-Transport-Security options.
              description: ''
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: Minimum TLS version
              description: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: Client authentication
              description: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: Client certificate authorities
              description: >-
                Certificate authorities to validate the client certificate
                against. If not specified, a default set of trusted CAs will be
                used.
          required:
            - strict_transport_security
            - min_version
            - client_authentication
            - client_certificate_authorities
          additionalProperties: false
          title: TLS settings
          description: TLS settings for the route
        cache:
          type: object
          properties:
            enabled:
              type: boolean
              title: Is enabled
              description: Whether the cache is enabled.
            default_ttl:
              type: integer
              title: Default TTL
              description: >-
                The TTL to apply when the response doesn't specify one. Only
                applies to static files.
            cookies:
              type: array
              items:
                type: string
              title: Cookies
              description: The cookies to take into account for the cache key.
            headers:
              type: array
              items:
                type: string
              title: Headers
              description: The headers to take into account for the cache key.
          required:
            - enabled
            - default_ttl
            - cookies
            - headers
          additionalProperties: false
          title: Cache configuration
          description: Cache configuration
        ssi:
          type: object
          properties:
            enabled:
              type: boolean
              title: Is enabled
              description: Whether SSI include is enabled.
          required:
            - enabled
          additionalProperties: false
          title: SSI configuration
          description: Server-Side Include configuration
        upstream:
          type: string
          title: Upstream
          description: The upstream to use for this route
        redirects:
          type: object
          properties:
            expires:
              type: string
              title: Expires
              description: The amount of time, in seconds, to cache the redirects
            paths:
              type: object
              additionalProperties:
                type: object
                properties:
                  regexp:
                    type: boolean
                    title: Is regexp
                    description: Whether the path is a regular expression.
                  to:
                    type: string
                    title: Redirect URL
                    description: The URL to redirect to.
                  prefix:
                    type: boolean
                    nullable: true
                    title: Is prefix
                    description: >-
                      Whether to redirect all the paths that start with the
                      path.
                  append_suffix:
                    type: boolean
                    nullable: true
                    title: Append suffix
                    description: >-
                      Whether to append the incoming suffix to the redirected
                      URL.
                  code:
                    type: integer
                    enum:
                      - 301
                      - 302
                      - 307
                      - 308
                    title: Redirect code
                    description: The redirect code to use.
                  expires:
                    type: string
                    nullable: true
                    title: Expires
                    description: The amount of time, in seconds, to cache the redirects.
                required:
                  - regexp
                  - to
                  - prefix
                  - append_suffix
                  - code
                  - expires
                additionalProperties: false
              title: Path
              description: The paths to redirect
          required:
            - expires
            - paths
          additionalProperties: false
          title: Redirect configuration
          description: The configuration of the redirects
        sticky:
          type: object
          properties:
            enabled:
              type: boolean
              title: Is enabled
              description: Whether sticky routing is enabled.
          required:
            - enabled
          additionalProperties: false
          title: Sticky configuration
          description: Sticky routing configuration
      required:
        - primary
        - id
        - production_url
        - attributes
        - type
        - tls
        - cache
        - ssi
        - upstream
        - redirects
        - sticky
      additionalProperties: false
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````