openapi: 3.0.1
info:
  title: Platform.sh Rest API
  version: '1.0'
  contact:
    name: Support
    url: https://platform.sh/contact
  termsOfService: https://platform.sh/tos
  description: |
    # Introduction

    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 Platform.sh 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-platformsh.yaml) and in [JSON](openapispec-platformsh.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/platformsh/platformsh-client-php)
    and our [JavaScript API client](https://github.com/platformsh/platformsh-client-js).

    In order to use the API you will first need to have a Platform.sh
    account (we have a [free trial](https://accounts.platform.sh/platform/trial/general/setup)
    available) and create an 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.platform.sh).

    To exchange this API token for an access token, a `POST` request
    must be made to `https://auth.api.platform.sh/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.api.platform.sh/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.platform.sh/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.platform.sh`.
    * `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.platform.sh/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://platform.sh/logos/redesign/Platformsh_logo_black.svg
    href: https://platform.sh/
    altText: Platform.sh logo
servers:
  - url: '{schemes}://api.platform.sh'
    description: The Platform.sh API gateway
    variables:
      schemes:
        default: https
security:
  - OAuth2: []
tags:
  - name: Cert Management
    description: |
      User-supplied SSL/TLS certificates can be managed using these
      endpoints. For more information, see our
      [Third-party TLS certificate](https://docs.platform.sh/golive/steps/tls.html#optional-configure-a-third-party-tls-certificate)
      documentation. These endpoints are not for managing certificates
      that are automatically supplied by Platform.sh via Let's Encrypt.
  - name: Environment
    description: |
      On Platform.sh, 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 Platform.sh, the `master` branch is your production environment—thus,
      merging changes to master will put those changes to production.
  - name: Environment Type
    description: |
      Environment Types is the way Platform.sh 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 snapshots,
      get information about existing snapshots, delete existing snapshots or
      restore a snapshot.
      More information about snapshots can be found in our
      [Snapshot and Restore](https://docs.platform.sh/administration/snapshot-and-restore.html)
      documentation.
  - 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.platform.sh/development/variables.html#platformsh-environment-variables)
      section of the documentation.
  - name: Project
    description: |
      ## Project Overview

      On Platform.sh, 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.platform.sh/development/variables.html#project-variables)
      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 Platform.sh 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
      Platform.sh, see the [Domains](https://docs.platform.sh/administration/web/configure-project.html#domains)
      section of our documentation.
  - name: Routing
    description: |
      These endpoints modify an environment's `.platform/routes.yaml` file.
      For routes to propagate to child environments, the child environments
      must be synchronized with their parent.

      > **Warning**: These endpoints create a new commit in the project repository.
      > This may lead to merge conflicts if you are using an external Git provider
      > through our integrations.
      >
      > **We strongly recommend that you specify your routes in your `.platform/routes.yaml`
      > file if you use an external Git integration such as GitHub or GitLab.**

      More information about routing can be found in the [Routes](https://docs.platform.sh/configuration/routes.html)
      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 `.platform.app.yaml` configuration. More information
      on source code operations is
      [available in our user documentation](https://docs.platform.sh/configuration/app/source-operations.html).
  - name: Deployment Target
    description: |
      Platform.sh 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: |
      Platform.sh 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.platform.sh/administration/integrations.html)
      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 Platform.sh Support Team.
  - name: System Information
    description: |
      These endpoints can be used to retrieve low-level information and interact with the
      core component of Platform.sh infrastructure.

      This is an internal API that can only be used by privileged users.
paths:
  /alerts/subscriptions/{subscriptionId}/usage:
    get:
      tags:
        - Alerts
      summary: Get usage alerts for a subscription
      operationId: get-usage-alerts
      parameters:
        - $ref: '#/components/parameters/subscription_id'
      responses:
        '200':
          description: The list of current and available alerts for the subscription.
          content:
            application/json:
              schema:
                properties:
                  available:
                    description: The list of available usage alerts.
                    type: array
                    items:
                      $ref: '#/components/schemas/Alert'
                  current:
                    description: The list of the current usage alerts.
                    type: array
                    items:
                      $ref: '#/components/schemas/Alert'
                type: object
    patch:
      tags:
        - Alerts
      summary: Update usage alerts.
      operationId: update-usage-alerts
      parameters:
        - $ref: '#/components/parameters/subscription_id'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                alerts:
                  description: The list of usage alerts to create or update.
                  type: array
                  items:
                    $ref: '#/components/schemas/Alert'
              type: object
      responses:
        '200':
          description: The list of current and available alerts for the subscription.
          content:
            application/json:
              schema:
                properties:
                  available:
                    description: The list of available usage alerts.
                    type: array
                    items:
                      $ref: '#/components/schemas/Alert'
                  current:
                    description: The list of the current usage alerts.
                    type: array
                    items:
                      $ref: '#/components/schemas/Alert'
                type: object
  /orders/download:
    get:
      tags:
        - Orders
      summary: Download an invoice.
      operationId: download-invoice
      parameters:
        - name: token
          in: query
          description: JWT for invoice.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: An invoice PDF.
          content:
            application/pdf: {}
  /discounts/{id}:
    get:
      tags:
        - Discounts
      summary: Get an organization discount
      operationId: get-discount
      parameters:
        - $ref: '#/components/parameters/discountId'
      responses:
        '200':
          description: A discount object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Discount'
      x-vendor: upsun
  /discounts/types/allowance:
    get:
      tags:
        - Discounts
      summary: Get the value of the First Project Incentive discount
      operationId: get-type-allowance
      responses:
        '200':
          description: A discount object
          content:
            application/json:
              schema:
                properties:
                  currencies:
                    description: Discount values per currency.
                    properties:
                      EUR:
                        description: Discount value in EUR.
                        properties:
                          formatted:
                            description: The discount amount formatted.
                            type: string
                          amount:
                            description: The discount amount.
                            type: number
                            format: float
                          currency:
                            description: The currency.
                            type: string
                          currency_symbol:
                            description: Currency symbol.
                            type: string
                        type: object
                      USD:
                        description: Discount value in USD.
                        properties:
                          formatted:
                            description: The discount amount formatted.
                            type: string
                          amount:
                            description: The discount amount.
                            type: number
                            format: float
                          currency:
                            description: The currency.
                            type: string
                          currency_symbol:
                            description: Currency symbol.
                            type: string
                        type: object
                      GBP:
                        description: Discount value in GBP.
                        properties:
                          formatted:
                            description: The discount amount formatted.
                            type: string
                          amount:
                            description: The discount amount.
                            type: number
                            format: float
                          currency:
                            description: The currency.
                            type: string
                          currency_symbol:
                            description: Currency symbol.
                            type: string
                        type: object
                      AUD:
                        description: Discount value in AUD.
                        properties:
                          formatted:
                            description: The discount amount formatted.
                            type: string
                          amount:
                            description: The discount amount.
                            type: number
                            format: float
                          currency:
                            description: The currency.
                            type: string
                          currency_symbol:
                            description: Currency symbol.
                            type: string
                        type: object
                      CAD:
                        description: Discount value in CAD.
                        properties:
                          formatted:
                            description: The discount amount formatted.
                            type: string
                          amount:
                            description: The discount amount.
                            type: number
                            format: float
                          currency:
                            description: The currency.
                            type: string
                          currency_symbol:
                            description: Currency symbol.
                            type: string
                        type: object
                    type: object
                type: object
      x-vendor: upsun
  /me:
    get:
      tags:
        - Users
      summary: Get current logged-in user info
      description: Retrieve information about the currently logged-in user (the user associated with the access token).
      operationId: get-current-user-deprecated
      responses:
        '200':
          description: The user object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentUser'
      deprecated: true
  /ssh_keys/{key_id}:
    get:
      tags:
        - SSH Keys
      summary: Get an SSH key
      operationId: get-ssh-key
      parameters:
        - name: key_id
          in: path
          description: The ID of the ssh key.
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: A single SSH public key record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SSHKey'
    delete:
      tags:
        - SSH Keys
      summary: Delete an SSH key
      operationId: delete-ssh-key
      parameters:
        - name: key_id
          in: path
          description: The ID of the ssh key.
          required: true
          schema:
            type: integer
      responses:
        '204':
          description: Success.
  /ssh_keys:
    post:
      tags:
        - SSH Keys
      summary: Add a new public SSH key to a user
      operationId: create-ssh-key
      requestBody:
        content:
          application/json:
            schema:
              required:
                - value
              properties:
                value:
                  description: The value of the ssh key.
                  type: string
                title:
                  description: The title of the ssh key.
                  type: string
                uuid:
                  description: The uuid of the user.
                  type: string
              type: object
      responses:
        '201':
          description: The newly created ssh key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SSHKey'
  /me/phone:
    post:
      tags:
        - Users
      summary: Check if phone verification is required
      description: Find out if the current logged in user requires phone verification to create projects.
      operationId: get-current-user-verification-status
      responses:
        '200':
          description: The information pertinent to determine if the account requires phone verification before project creation.
          content:
            application/json:
              schema:
                properties:
                  verify_phone:
                    description: Does this user need to verify their phone number for project creation.
                    type: boolean
                type: object
  /me/verification:
    post:
      tags:
        - Users
      summary: Check if verification is required
      description: Find out if the current logged in user requires verification (phone or staff) to create projects.
      operationId: get-current-user-verification-status-full
      responses:
        '200':
          description: The information pertinent to determine if the account requires any type of verification before project creation.
          content:
            application/json:
              schema:
                properties:
                  state:
                    description: Does this user need verification for project creation.
                    type: boolean
                  type:
                    description: What type of verification is needed (phone or ticket)
                    type: string
                type: object
  /plans:
    get:
      tags:
        - Plans
      summary: List available plans
      description: Retrieve information about plans and pricing on Platform.sh.
      operationId: list-plans
      responses:
        '200':
          description: The list of plans.
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: Total number of plans.
                    type: integer
                  plans:
                    description: Array of plans.
                    type: array
                    items:
                      $ref: '#/components/schemas/Plan'
                  _links:
                    $ref: '#/components/schemas/HalLinks'
                type: object
  /subscriptions/{subscriptionId}/can-update:
    get:
      tags:
        - Subscriptions
      summary: Checks if the user is able to update a project.
      operationId: can-update-subscription
      parameters:
        - $ref: '#/components/parameters/subscription_id'
        - $ref: '#/components/parameters/subscription_plan'
        - $ref: '#/components/parameters/subscription_environments'
        - $ref: '#/components/parameters/subscription_storage'
        - $ref: '#/components/parameters/subscription_user_licenses'
      responses:
        '200':
          description: Check result with error message if presented
          content:
            application/json:
              schema:
                properties:
                  can_update:
                    description: Boolean result of the check.
                    type: boolean
                  message:
                    description: Details in case of negative check result.
                    type: string
                  required_action:
                    description: Required action impeding project update.
                    type: object
                type: object
  /profiles:
    get:
      tags:
        - User Profiles
      summary: List user profiles
      operationId: list-profiles
      responses:
        '200':
          description: The list of user profiles.
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: Total number of results.
                    type: integer
                  profiles:
                    description: Array of user profiles.
                    type: array
                    items:
                      $ref: '#/components/schemas/Profile'
                  _links:
                    $ref: '#/components/schemas/HalLinks'
                type: object
  /profiles/{userId}:
    get:
      tags:
        - User Profiles
      summary: Get a single user profile
      operationId: get-profile
      parameters:
        - $ref: '#/components/parameters/user_id'
      responses:
        '200':
          description: A User profile object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
    patch:
      tags:
        - User Profiles
      summary: Update a user profile
      description: Update a user profile, supplying one or more key/value pairs to to change.
      operationId: update-profile
      parameters:
        - $ref: '#/components/parameters/user_id'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                display_name:
                  description: The user's display name.
                  type: string
                username:
                  description: The user's username.
                  type: string
                current_password:
                  description: The user's current password.
                  type: string
                password:
                  description: The user's new password.
                  type: string
                company_type:
                  description: The company type.
                  type: string
                company_name:
                  description: The name of the company.
                  type: string
                vat_number:
                  description: The vat number of the user.
                  type: string
                company_role:
                  description: The role of the user in the company.
                  type: string
                marketing:
                  description: Flag if the user agreed to receive marketing communication.
                  type: boolean
                ui_colorscheme:
                  description: The user's chosen color scheme for user interfaces. Available values are 'light' and 'dark'.
                  type: string
                default_catalog:
                  description: The URL of a catalog file which overrides the default.
                  type: string
                project_options_url:
                  description: The URL of an account-wide project options file.
                  type: string
                picture:
                  description: Url of the user's picture.
                  type: string
              type: object
      responses:
        '200':
          description: A User profile object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
  /profiles/{userId}/address:
    get:
      tags:
        - User Profiles
      summary: Get a user address
      operationId: get-address
      parameters:
        - $ref: '#/components/parameters/user_id'
      responses:
        '200':
          description: A user Address object extended with field metadata
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Address'
                  - $ref: '#/components/schemas/AddressMetadata'
    patch:
      tags:
        - User Profiles
      summary: Update a user address
      description: Update a user address, supplying one or more key/value pairs to to change.
      operationId: update-address
      parameters:
        - $ref: '#/components/parameters/user_id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Address'
      responses:
        '200':
          description: A user Address object extended with field metadata.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Address'
                  - $ref: '#/components/schemas/AddressMetadata'
  /profile/{uuid}/picture:
    post:
      tags:
        - User Profiles
      summary: Create a user profile picture
      operationId: create-profile-picture
      parameters:
        - name: uuid
          in: path
          description: The uuid of the user
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: The image file to upload.
                  type: string
                  format: binary
              type: object
      responses:
        '200':
          description: The new picture url.
          content:
            application/json:
              schema:
                properties:
                  url:
                    description: The relative url of the picture.
                    type: string
                type: object
    delete:
      tags:
        - User Profiles
      summary: Delete a user profile picture
      operationId: delete-profile-picture
      parameters:
        - name: uuid
          in: path
          description: The uuid of the user
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '204':
          description: No Content success.
  /tickets:
    get:
      summary: List support tickets
      operationId: list-tickets
      parameters:
        - $ref: '#/components/parameters/filter_ticket_id'
        - $ref: '#/components/parameters/filter_created'
        - $ref: '#/components/parameters/filter_updated'
        - $ref: '#/components/parameters/filter_type'
        - $ref: '#/components/parameters/filter_priority'
        - $ref: '#/components/parameters/filter_ticket_status'
        - $ref: '#/components/parameters/filter_requester_id'
        - $ref: '#/components/parameters/filter_submitter_id'
        - $ref: '#/components/parameters/filter_assignee_id'
        - $ref: '#/components/parameters/filter_has_incidents'
        - $ref: '#/components/parameters/filter_due'
        - name: search
          in: query
          description: Search string for the ticket subject and description.
          schema:
            type: string
        - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: The list of tickets.
          content:
            application/json:
              schema:
                properties:
                  count:
                    description: Total number of results.
                    type: integer
                  tickets:
                    description: Array of support tickets.
                    type: array
                    items:
                      $ref: '#/components/schemas/Ticket'
                  _links:
                    $ref: '#/components/schemas/HalLinks'
                type: object
    post:
      tags:
        - Support
      summary: Create a new support ticket
      operationId: create-ticket
      requestBody:
        content:
          application/json:
            schema:
              required:
                - subject
                - description
              properties:
                subject:
                  description: A title of the ticket.
                  type: string
                description:
                  description: The description body of the support ticket.
                  type: string
                requester_id:
                  description: UUID of the ticket requester. Converted from the ZID value.
                  type: string
                  format: uuid
                priority:
                  description: A priority of the ticket.
                  type: string
                  enum:
                    - low
                    - normal
                    - high
                    - urgent
                subscription_id:
                  description: see create()
                  type: string
                organization_id:
                  description: see create()
                  type: string
                affected_url:
                  description: see create().
                  type: string
                  format: url
                followup_tid:
                  description: The unique ID of the ticket which this ticket is a follow-up to.
                  type: string
                category:
                  description: The category of the support ticket.
                  type: string
                  enum:
                    - access
                    - billing_question
                    - complaint
                    - compliance_question
                    - configuration_change
                    - general_question
                    - incident_outage
                    - bug_report
                    - report_a_gui_bug
                    - onboarding
                    - close_my_account
                attachments:
                  description: A list of attachments for the ticket.
                  type: array
                  items:
                    properties:
                      filename:
                        description: The filename to be used in storage.
                        type: string
                      data:
                        description: the base64 encoded file.
                        type: string
                    type: object
                collaborator_ids:
                  description: A list of collaborators uuids for the ticket.
                  type: array
                  items:
                    type: string
              type: object
      responses:
        '200':
          description: A Support Ticket object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
  /tickets/{ticket_id}:
    patch:
      tags:
        - Support
      summary: Update a ticket
      operationId: update-ticket
      parameters:
        - name: ticket_id
          in: path
          description: The ID of the ticket
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                status:
                  description: The status of the support ticket.
                  type: string
                  enum:
                    - open
                    - solved
                collaborator_ids:
                  description: A list of collaborators uuids for the ticket.
                  type: array
                  items:
                    type: string
                collaborators_replace:
                  description: Whether or not should replace ticket collaborators with the provided values. If false, the collaborators will be appended.
                  type: boolean
                  default: null
              type: object
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
        '204':
          description: The ticket was not updated.
  /tickets/priority:
    get:
      tags:
        - Support
      summary: List support ticket priorities
      operationId: list-ticket-priorities
      parameters:
        - name: subscription_id
          in: query
          description: The ID of the subscription the ticket should be related to
          required: false
          schema:
            type: string
        - name: category
          in: query
          description: The category of the support ticket.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: An array of available priorities for that license.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    id:
                      description: Machine name of the priority.
                      type: string
                    label:
                      description: The human-readable label of the priority.
                      type: string
                    short_description:
                      description: The short description of the priority.
                      type: string
                    description:
                      description: The long description of the priority.
                      type: string
                  type: object
  /tickets/category:
    get:
      tags:
        - Support
      summary: List support ticket categories
      operationId: list-ticket-categories
      parameters:
        - name: subscription_id
          in: query
          description: The ID of the subscription the ticket should be related to
          required: false
          schema:
            type: string
        - name: organization_id
          in: query
          description: The ID of the organization the ticket should be related to
          required: false
          schema:
            type: string
      responses:
        '200':
          description: An array of available categories for a ticket.
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    id:
                      description: Machine name of the category as is listed in zendesk.
                      type: string
                    label:
                      description: The human-readable label of the category.
                      type: string
                  type: object
  /organizations/{organization_id}/invitations:
    parameters:
      - $ref: '#/components/parameters/OrganizationID'
    post:
      summary: Invite user to an organization by email
      description: Creates an invitation to an organization for a user with the specified email address.
      operationId: create-org-invite
      tags:
        - Organization Invitations
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationInvitation'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict when there already is a pending invitation for the invitee
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
                  description: The email address of the invitee.
                permissions:
                  $ref: '#/components/schemas/OrganizationPermissions'
                force:
                  type: boolean
                  description: Whether to cancel any pending invitation for the specified invitee, and create a new invitation.
              required:
                - email
                - permissions
    get:
      summary: List invitations to an organization
      description: Returns a list of invitations to an organization.
      operationId: list-org-invites
      tags:
        - Organization Invitations
      parameters:
        - in: query
          name: filter[state]
          description: 'Allows filtering by `state` of the invtations: "pending" (default), "error".'
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.
          schema:
            type: string
            enum:
              - updated_at
              - '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrganizationInvitation'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/invitations/{invitation_id}:
    parameters:
      - $ref: '#/components/parameters/OrganizationID'
      - $ref: '#/components/parameters/InvitationID'
    delete:
      summary: Cancel a pending invitation to an organization
      description: Cancels the specified invitation.
      operationId: cancel-org-invite
      tags:
        - Organization Invitations
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
  /projects/{project_id}/invitations:
    parameters:
      - $ref: '#/components/parameters/ProjectID'
    post:
      summary: Invite user to a project by email
      description: Creates an invitation to a project for a user with the specified email address.
      operationId: create-project-invite
      tags:
        - Project Invitations
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectInvitation'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Payment Required when the number of users exceeds the subscription limit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict when there already is a pending invitation for the invitee
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                role:
                  type: string
                  enum:
                    - admin
                    - viewer
                  description: The role the invitee should be given on the project.
                  default: null
                email:
                  type: string
                  format: email
                  description: The email address of the invitee.
                permissions:
                  type: array
                  description: Specifying the role on each environment type.
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - production
                          - staging
                          - development
                        description: The environment type.
                      role:
                        type: string
                        enum:
                          - admin
                          - viewer
                          - contributor
                        description: The role the invitee should be given on the environment type.
                environments:
                  deprecated: true
                  type: array
                  description: (Deprecated, use permissions instead) Specifying the role on each environment.
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: The ID of the environment.
                      role:
                        type: string
                        enum:
                          - admin
                          - viewer
                          - contributor
                        description: The role the invitee should be given on the environment.
                force:
                  type: boolean
                  description: Whether to cancel any pending invitation for the specified invitee, and create a new invitation.
              required:
                - email
    get:
      summary: List invitations to a project
      description: Returns a list of invitations to a project.
      operationId: list-project-invites
      tags:
        - Project Invitations
      parameters:
        - in: query
          name: filter[state]
          description: 'Allows filtering by `state` of the invtations: "pending" (default), "error".'
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.
          schema:
            type: string
            enum:
              - updated_at
              - '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectInvitation'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /projects/{project_id}/invitations/{invitation_id}:
    parameters:
      - $ref: '#/components/parameters/ProjectID'
      - $ref: '#/components/parameters/InvitationID'
    delete:
      summary: Cancel a pending invitation to a project
      description: Cancels the specified invitation.
      operationId: cancel-project-invite
      tags:
        - Project Invitations
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
  /ref/users:
    get:
      summary: List referenced users
      description: Retrieves a list of users referenced by a trusted service. Clients cannot construct the URL themselves. The correct URL will be provided in the HAL links of another API response, in the <code>_links</code> object with a key like <code>ref:users:0</code>.
      operationId: list-referenced-users
      tags:
        - References
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: A map of referenced users indexed by the user ID.
                additionalProperties:
                  $ref: '#/components/schemas/UserReference'
              examples:
                example-1:
                  value:
                    497f6eca-6276-4993-bfeb-53cbbbba6f08:
                      email: user@example.com
                      first_name: string
                      id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
                      last_name: string
                      picture: https://accounts.platform.sh/profiles/blimp_profile/themes/platformsh_theme/images/mail/logo.png
                      username: string
                      mfa_enabled: false
                      sso_enabled: false
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      parameters:
        - schema:
            type: string
          in: query
          name: in
          description: The list of comma-separated user IDs generated by a trusted service.
          required: true
        - schema:
            type: string
          in: query
          name: sig
          description: The signature of this request generated by a trusted service.
          required: true
  /ref/teams:
    get:
      summary: List referenced teams
      description: Retrieves a list of teams referenced by a trusted service. Clients cannot construct the URL themselves. The correct URL will be provided in the HAL links of another API response, in the <code>_links</code> object with a key like <code>ref:teams:0</code>.
      operationId: list-referenced-teams
      tags:
        - References
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: A map of referenced teams indexed by the team ID.
                additionalProperties:
                  $ref: '#/components/schemas/TeamReference'
              examples:
                example-1:
                  value:
                    01FVMKN9KHVWWVY488AVKDWHR3:
                      id: 01FVMKN9KHVWWVY488AVKDWHR3
                      label: Contractors
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      parameters:
        - schema:
            type: string
          in: query
          name: in
          description: The list of comma-separated team IDs generated by a trusted service.
          required: true
        - schema:
            type: string
          in: query
          name: sig
          description: The signature of this request generated by a trusted service.
          required: true
  /teams:
    get:
      summary: List teams
      description: Retrieves a list of teams.
      operationId: list-teams
      tags:
        - Teams
      parameters:
        - in: query
          name: filter[organization_id]
          description: Allows filtering by `organization_id` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[id]
          description: Allows filtering by `id` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[updated_at]
          description: Allows filtering by `updated_at` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/DateTimeFilter'
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.
          schema:
            type: string
            enum:
              - label
              - '-label'
              - created_at
              - '-created_at'
              - updated_at
              - '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Team'
                  count:
                    type: integer
                    description: Total count of all the teams.
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Create team
      description: Creates a new team.
      operationId: create-team
      tags:
        - Teams
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - organization_id
                - label
              properties:
                organization_id:
                  type: string
                  format: ulid
                  description: The ID of the parent organization.
                label:
                  type: string
                  description: The human-readable label of the team.
                project_permissions:
                  type: array
                  description: Project permissions that are granted to the team.
                  items:
                    type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /teams/{team_id}:
    parameters:
      - $ref: '#/components/parameters/TeamID'
    get:
      summary: Get team
      description: Retrieves the specified team.
      operationId: get-team
      tags:
        - Teams
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      summary: Update team
      description: Updates the specified team.
      operationId: update-team
      tags:
        - Teams
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                label:
                  type: string
                  description: The human-readable label of the team.
                project_permissions:
                  type: array
                  description: Project permissions that are granted to the team.
                  items:
                    type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Delete team
      description: Deletes the specified team.
      operationId: delete-team
      tags:
        - Teams
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /teams/{team_id}/members:
    parameters:
      - $ref: '#/components/parameters/TeamID'
    get:
      summary: List team members
      description: Retrieves a list of users associated with a single team.
      operationId: list-team-members
      tags:
        - Teams
      parameters:
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.
          schema:
            type: string
            enum:
              - created_at
              - '-created_at'
              - updated_at
              - '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TeamMember'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Create team member
      description: Creates a new team member.
      operationId: create-team-member
      tags:
        - Teams
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - user_id
              properties:
                user_id:
                  type: string
                  format: uuid
                  description: ID of the user.
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamMember'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /teams/{team_id}/members/{user_id}:
    parameters:
      - $ref: '#/components/parameters/TeamID'
      - $ref: '#/components/parameters/UserID'
    get:
      summary: Get team member
      description: Retrieves the specified team member.
      operationId: get-team-member
      tags:
        - Teams
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamMember'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Delete team member
      description: Deletes the specified team member.
      operationId: delete-team-member
      tags:
        - Teams
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /users/{user_id}/extended-access:
    get:
      summary: List extended access of a user
      description: List extended access of the given user, which includes both individual and team access to project and organization.
      operationId: list-user-extended-access
      tags:
        - Grants
      parameters:
        - $ref: '#/components/parameters/UserID'
        - in: query
          name: filter[resource_type]
          description: Allows filtering by `resource_type` (project or organization) using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[organization_id]
          description: Allows filtering by `organization_id` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[permissions]
          description: Allows filtering by `permissions` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      x-examples:
                        example-1:
                          user_id: ff9c8376-0227-4928-9b52-b08bc5426689
                          resource_id: an3sjsfwfbgkm
                          resource_type: project
                          organization_id: 01H2X80DMRDZWR6CX753YQHTND
                          granted_at: '2022-04-01T10:11:30.783289Z'
                          updated_at: '2022-04-03T22:12:59.937864Z'
                          permissions:
                            - viewer
                            - staging:contributor
                      properties:
                        user_id:
                          type: string
                          format: uuid
                          description: The ID of the user.
                        resource_id:
                          type: string
                          description: The ID of the resource.
                        resource_type:
                          type: string
                          description: The type of the resource access to which is granted.
                          enum:
                            - project
                            - organization
                        organization_id:
                          type: string
                          description: The ID of the organization owning the resource.
                        permissions:
                          type: array
                          description: List of project permissions.
                          items:
                            type: string
                        granted_at:
                          type: string
                          format: date-time
                          description: The date and time when the access was granted.
                        updated_at:
                          type: string
                          format: date-time
                          description: The date and time when the access was updated.
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /users/me:
    get:
      summary: Get the current user
      description: Retrieves the current user, determined from the used access token.
      operationId: get-current-user
      tags:
        - Users
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
  /users/email={email}:
    parameters:
      - schema:
          type: string
          format: email
          example: hello@example.com
        name: email
        in: path
        required: true
        description: The user's email address.
    get:
      summary: Get a user by email
      description: Retrieves a user matching the specified email address.
      operationId: get-user-by-email-address
      tags:
        - Users
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
  /users/username={username}:
    parameters:
      - schema:
          type: string
          example: platform-sh
        name: username
        in: path
        required: true
        description: The user's username.
    get:
      summary: Get a user by username
      description: Retrieves a user matching the specified username.
      operationId: get-user-by-username
      tags:
        - Users
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
              examples: {}
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
  /users/{user_id}:
    parameters:
      - $ref: '#/components/parameters/UserID'
    get:
      summary: Get a user
      description: Retrieves the specified user.
      operationId: get-user
      tags:
        - Users
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
    patch:
      summary: Update a user
      description: Updates the specified user.
      operationId: update-user
      tags:
        - Users
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              properties:
                username:
                  type: string
                  description: The user's username.
                first_name:
                  type: string
                  description: The user's first name.
                last_name:
                  type: string
                  description: The user's last name.
                picture:
                  type: string
                  format: uri
                  description: The user's picture.
                company:
                  type: string
                  description: The user's company.
                website:
                  type: string
                  format: uri
                  description: The user's website.
                country:
                  type: string
                  maxLength: 2
                  minLength: 2
                  description: The user's country (2-letter country code).
              x-examples:
                example-1:
                  company: Platform.sh SAS
                  country: EU
                  first_name: Hello
                  last_name: World
                  picture: https://accounts.platform.sh/profiles/blimp_profile/themes/platformsh_theme/images/mail/logo.png
                  username: username
                  website: https://platform.sh
  /users/{user_id}/emailaddress:
    parameters:
      - $ref: '#/components/parameters/UserID'
    post:
      summary: Reset email address
      description: Requests a reset of the user's email address. A confirmation email will be sent to the new address when the request is accepted.
      operationId: reset-email-address
      tags:
        - Users
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email_address:
                  type: string
                  format: email
              required:
                - email_address
        description: ''
  /users/{user_id}/resetpassword:
    parameters:
      - $ref: '#/components/parameters/UserID'
    post:
      summary: Reset user password
      description: Requests a reset of the user's password. A password reset email will be sent to the user when the request is accepted.
      operationId: reset-password
      tags:
        - Users
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /users/{user_id}/api-tokens:
    parameters:
      - $ref: '#/components/parameters/UserID'
    get:
      summary: List a user's API tokens
      description: Retrieves a list of API tokens associated with a single user.
      operationId: list-api-tokens
      tags:
        - API Tokens
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/APIToken'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Create an API token
      description: Creates an API token
      operationId: create-api-token
      tags:
        - API Tokens
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIToken'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The token name.
              required:
                - name
  /users/{user_id}/api-tokens/{token_id}:
    parameters:
      - $ref: '#/components/parameters/UserID'
      - schema:
          type: string
          format: uuid
        name: token_id
        in: path
        required: true
        description: The ID of the token.
    get:
      summary: Get an API token
      description: Retrieves the specified API token.
      operationId: get-api-token
      tags:
        - API Tokens
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIToken'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
    delete:
      summary: Delete an API token
      description: Deletes an API token
      operationId: delete-api-token
      tags:
        - API Tokens
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
  /users/{user_id}/connections:
    parameters:
      - $ref: '#/components/parameters/UserID'
    get:
      summary: List federated login connections
      description: Retrieves a list of connections associated with a single user.
      operationId: list-login-connections
      tags:
        - Connections
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Connection'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /users/{user_id}/connections/{provider}:
    parameters:
      - schema:
          type: string
        name: provider
        in: path
        required: true
        description: The name of the federation provider.
      - $ref: '#/components/parameters/UserID'
    get:
      summary: Get a federated login connection
      description: Retrieves the specified connection.
      operationId: get-login-connection
      tags:
        - Connections
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Connection'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
    delete:
      summary: Delete a federated login connection
      description: Deletes the specified connection.
      operationId: delete-login-connection
      tags:
        - Connections
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
  /users/{user_id}/totp:
    parameters:
      - $ref: '#/components/parameters/UserID'
    get:
      summary: Get information about TOTP enrollment
      description: Retrieves TOTP enrollment information.
      operationId: get-totp-enrollment
      tags:
        - MFA
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  issuer:
                    type: string
                    format: uri
                    description: ''
                  account_name:
                    type: string
                    description: Account name for the enrollment.
                  secret:
                    type: string
                    description: The secret seed for the enrollment
                  qr_code:
                    type: string
                    format: byte
                    description: Data URI of a PNG QR code image for the enrollment.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
    post:
      summary: Confirm TOTP enrollment
      description: Confirms the given TOTP enrollment.
      operationId: confirm-totp-enrollment
      tags:
        - MFA
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  recovery_codes:
                    type: array
                    description: A list of recovery codes for the MFA enrollment.
                    items:
                      type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                secret:
                  type: string
                  description: The secret seed for the enrollment
                passcode:
                  type: string
                  description: TOTP passcode for the enrollment
              required:
                - secret
                - passcode
        description: ''
    delete:
      summary: Withdraw TOTP enrollment
      description: Withdraws from the TOTP enrollment.
      operationId: withdraw-totp-enrollment
      tags:
        - MFA
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
  /users/{user_id}/codes:
    parameters:
      - $ref: '#/components/parameters/UserID'
    post:
      summary: Re-create recovery codes
      description: Re-creates recovery codes for the MFA enrollment.
      operationId: recreate-recovery-codes
      tags:
        - MFA
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  recovery_codes:
                    type: array
                    description: A list of recovery codes for the MFA enrollment.
                    items:
                      type: string
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
  /users/{user_id}/phonenumber:
    parameters:
      - $ref: '#/components/parameters/UserID'
    post:
      summary: Verify phone number
      description: Starts a phone number verification session.
      operationId: verify-phone-number
      tags:
        - PhoneNumber
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  sid:
                    type: string
                    description: Session ID of the verification.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                channel:
                  type: string
                  description: The channel used to receive the verification code.
                  enum:
                    - sms
                    - whatsapp
                    - call
                phone_number:
                  type: string
                  description: The phone number used to receive the verification code.
              required:
                - channel
                - phone_number
  /users/{user_id}/phonenumber/{sid}:
    parameters:
      - schema:
          type: string
        name: sid
        in: path
        required: true
        description: The session ID obtained from `POST /users/{user_id}/phonenumber`.
      - $ref: '#/components/parameters/UserID'
    post:
      summary: Confirm phone number
      description: Confirms phone number using a verification code.
      operationId: confirm-phone-number
      tags:
        - PhoneNumber
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: The verification code received on your phone.
              required:
                - code
  /users/{user_id}/teams:
    parameters:
      - $ref: '#/components/parameters/UserID'
    get:
      summary: User teams
      description: Retrieves teams that the specified user is a member of.
      operationId: list-user-teams
      tags:
        - Teams
      parameters:
        - in: query
          name: filter[organization_id]
          description: Allows filtering by `organization_id` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[updated_at]
          description: Allows filtering by `updated_at` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/DateTimeFilter'
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.
          schema:
            type: string
            enum:
              - created_at
              - '-created_at'
              - updated_at
              - '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Team'
                  count:
                    type: integer
                    description: Total count of all the teams.
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /projects/{projectId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: get-projects
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
      tags:
        - Project
      summary: Get a project
      description: Retrieve the details of a single project.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectPatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: update-projects
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Project
      summary: Update a project
      description: Update the details of an existing project.
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: delete-projects
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Project
      summary: Delete a project
      description: Delete the entire project.
  /projects/{projectId}/activities:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: list-projects-activities
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityCollection'
      tags:
        - Project Activity
      summary: Get project activity log
      description: |
        Retrieve a project's activity log including logging actions in all
        environments within a project. This returns a list of objects
        with records of actions such as:

        - Commits being pushed to the repository
        - A new environment being branched out from the specified environment
        - A snapshot being created of the specified environment

        The object includes a timestamp of when the action occurred
        (`created_at`), when the action concluded (`updated_at`),
        the current `state` of the action, the action's completion
        percentage (`completion_percent`), the `environments` it
        applies to and other related information in
        the `payload`.

        The contents of the `payload` varies based on the `type` of the
        activity. For example:

        - An `environment.branch` action's `payload` can contain objects
        representing the environment's `parent` environment and the
        branching action's `outcome`.

        - An `environment.push` action's `payload` can contain objects
        representing the `environment`, the specific `commits` included in
        the push, and the `user` who pushed.
  /projects/{projectId}/activities/{activityId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: activityId
      operationId: get-projects-activities
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
      tags:
        - Project Activity
      summary: Get a project activity log entry
      description: |
        Retrieve a single activity log entry as specified by an
        `id` returned by the
        [Get project activity log](#tag/Project-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1activities%2Fget)
        endpoint. See the documentation on that endpoint for details about
        the information this endpoint can return.
  /projects/{projectId}/activities/{activityId}/cancel:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: activityId
      operationId: action-projects-activities-cancel
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Project Activity
      summary: Cancel a project activity
      description: |
        Cancel a single activity as specified by an `id` returned by the
        [Get project activity log](#tag/Project-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1activities%2Fget)
        endpoint.

        Please note that not all activities are cancelable.
  /projects/{projectId}/capabilities:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: get-projects-capabilities
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCapabilities'
      tags:
        - Project
      summary: Get a project's capabilities
      description: |
        Get a list of capabilities on a project, as defined by the billing system.
        For instance, one special capability that could be defined on a project is
        large development environments.
  /projects/{projectId}/certificates:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: list-projects-certificates
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateCollection'
      tags:
        - Cert Management
      summary: Get list of SSL certificates
      description: |
        Retrieve a list of objects representing the SSL certificates
        associated with a project.
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: create-projects-certificates
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CertificateCreateInput'
      tags:
        - Cert Management
      summary: Add an SSL certificate
      description: |
        Add a single SSL certificate to a project.
  /projects/{projectId}/certificates/{certificateId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: certificateId
      operationId: get-projects-certificates
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Certificate'
      tags:
        - Cert Management
      summary: Get an SSL certificate
      description: |
        Retrieve information about a single SSL certificate
        associated with a project.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CertificatePatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: certificateId
      operationId: update-projects-certificates
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Cert Management
      summary: Update an SSL certificate
      description: |
        Update a single SSL certificate associated with a project.
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: certificateId
      operationId: delete-projects-certificates
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Cert Management
      summary: Delete an SSL certificate
      description: |
        Delete a single SSL certificate associated with a project.
  /projects/{projectId}/clear_build_cache:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: action-projects-clear-build-cache
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Project
      summary: Clear project build cache
      description: |
        On rare occasions, a project's build cache can become corrupted. This
        endpoint will entirely flush the project's build cache. More information
        on [clearing the build cache can be found in our user documentation.](https://docs.platform.sh/development/troubleshoot.html#clear-the-build-cache)
  /projects/{projectId}/deployments:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: list-projects-deployments
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeploymentTargetCollection'
      tags:
        - Deployment Target
      summary: Get project deployment target info
      description: |
        The deployment target information for the project.
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: create-projects-deployments
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeploymentTargetCreateInput'
      tags:
        - Deployment Target
      summary: Create a project deployment target
      description: |
        Set the deployment target information for a project.
  /projects/{projectId}/deployments/{deploymentTargetConfigurationId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: deploymentTargetConfigurationId
      operationId: get-projects-deployments
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeploymentTarget'
      tags:
        - Deployment Target
      summary: Get a single project deployment target
      description: |
        Get a single deployment target configuration of a project.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeploymentTargetPatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: deploymentTargetConfigurationId
      operationId: update-projects-deployments
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Deployment Target
      summary: Update a project deployment
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: deploymentTargetConfigurationId
      operationId: delete-projects-deployments
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Deployment Target
      summary: Delete a single project deployment target
      description: |
        Delete a single deployment target configuration associated with a specific project.
  /projects/{projectId}/domains:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: list-projects-domains
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainCollection'
      tags:
        - Domain Management
      summary: Get list of project domains
      description: |
        Retrieve a list of objects representing the user-specified domains
        associated with a project. Note that this does *not* return the
        domains automatically assigned to a project that appear under
        "Access site" on the user interface.
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: create-projects-domains
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DomainCreateInput'
      tags:
        - Domain Management
      summary: Add a project domain
      description: |
        Add a single domain to a project.
        If the `ssl` field is left blank without an object containing
        a PEM-encoded SSL certificate, a certificate will
        [be provisioned for you via Let's Encrypt.](https://docs.platform.sh/configuration/routes/https.html#lets-encrypt)
  /projects/{projectId}/domains/{domainId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: domainId
      operationId: get-projects-domains
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Domain'
      tags:
        - Domain Management
      summary: Get a project domain
      description: |
        Retrieve information about a single user-specified domain
        associated with a project.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DomainPatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: domainId
      operationId: update-projects-domains
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Domain Management
      summary: Update a project domain
      description: |
        Update the information associated with a single user-specified
        domain associated with a project.
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: domainId
      operationId: delete-projects-domains
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Domain Management
      summary: Delete a project domain
      description: |
        Delete a single user-specified domain associated with a project.
  /projects/{projectId}/environment-types:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: list-projects-environment-types
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentTypeCollection'
      tags:
        - Environment Type
      summary: Get environment types
      description: List all available environment types
  /projects/{projectId}/environment-types/{environmentTypeId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentTypeId
      operationId: get-environment-type
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentType'
      tags:
        - Environment Type
      summary: Get environment type links
      description: Lists the endpoints used to retrieve info about the environment type.
  /projects/{projectId}/environments:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: list-projects-environments
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentCollection'
      tags:
        - Environment
      summary: Get list of project environments
      description: |
        Retrieve a list of a project's existing environments and the
        information associated with each environment.
  /projects/{projectId}/environments/{environmentId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: get-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Environment'
      tags:
        - Environment
      summary: Get an environment
      description: Retrieve the details of a single existing environment.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentPatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: update-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment
      summary: Update an environment
      description: Update the details of a single existing environment.
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: delete-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment
      summary: Delete an environment
      description: Delete a specified environment.
  /projects/{projectId}/environments/{environmentId}/activate:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: activate-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentActivateInput'
      tags:
        - Environment
      summary: Activate an environment
      description: Set the specified environment's status to active
  /projects/{projectId}/environments/{environmentId}/activities:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: list-projects-environments-activities
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityCollection'
      tags:
        - Environment Activity
      summary: Get environment activity log
      description: |
        Retrieve an environment's activity log. This returns a list of object
        with records of actions such as:

        - Commits being pushed to the repository
        - A new environment being branched out from the specified environment
        - A snapshot being created of the specified environment

        The object includes a timestamp of when the action occurred
        (`created_at`), when the action concluded (`updated_at`),
        the current `state` of the action, the action's completion
        percentage (`completion_percent`), and other related information in
        the `payload`.

        The contents of the `payload` varies based on the `type` of the
        activity. For example:

        - An `environment.branch` action's `payload` can contain objects
        representing the `parent` environment and the branching action's
        `outcome`.

        - An `environment.push` action's `payload` can contain objects
        representing the `environment`, the specific `commits` included in
        the push, and the `user` who pushed.
  /projects/{projectId}/environments/{environmentId}/activities/{activityId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: activityId
      operationId: get-projects-environments-activities
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
      tags:
        - Environment Activity
      summary: Get an environment activity log entry
      description: |
        Retrieve a single environment activity entry as specified by an
        `id` returned by the
        [Get environment activities list](#tag/Environment-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1activities%2Fget)
        endpoint. See the documentation on that endpoint for details about
        the information this endpoint can return.
  /projects/{projectId}/environments/{environmentId}/activities/{activityId}/cancel:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: activityId
      operationId: action-projects-environments-activities-cancel
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment Activity
      summary: Cancel an environment activity
      description: |
        Cancel a single activity as specified by an `id` returned by the
        [Get environment activities list](#tag/Environment-Activity%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1activities%2Fget)
        endpoint.

        Please note that not all activities are cancelable.
  /projects/{projectId}/environments/{environmentId}/backup:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: backup-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentBackupInput'
      tags:
        - Environment Backups
      summary: Create snapshot of environment
      description: |
        Trigger a new snapshot of an environment to be created. See the
        [Snapshot and Restore](https://docs.platform.sh/administration/snapshot-and-restore.html)
        section of the documentation for more information.
  /projects/{projectId}/environments/{environmentId}/backups:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: list-projects-environments-backups
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackupCollection'
      tags:
        - Environment Backups
      summary: Get an environment's snapshot list
      description: |
        Retrieve a list of objects representing backups of this environment.
      x-stability: EXPERIMENTAL
  /projects/{projectId}/environments/{environmentId}/backups/{backupId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: backupId
      operationId: get-projects-environments-backups
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Backup'
      tags:
        - Environment Backups
      summary: Get an environment snapshot's info
      description: |
        Get the details of a specific backup from an environment using the `id`
        of the entry retrieved by the
        [Get backups list](#tag/Environment-Backups%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1backups%2Fget)
        endpoint.
      x-stability: EXPERIMENTAL
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: backupId
      operationId: delete-projects-environments-backups
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment Backups
      summary: Delete an environment snapshot
      description: |
        Delete a specific backup from an environment using the `id`
        of the entry retrieved by the
        [Get backups list](#tag/Environment-Backups%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1backups%2Fget)
        endpoint.
      x-stability: EXPERIMENTAL
  /projects/{projectId}/environments/{environmentId}/backups/{backupId}/restore:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: backupId
      operationId: restore-backup
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentRestoreInput'
      tags:
        - Environment Backups
      summary: Restore an environment snapshot
      description: |
        Restore a specific backup from an environment using the `id`
        of the entry retrieved by the
        [Get backups list](#tag/Environment-Backups%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1backups%2Fget)
        endpoint.
      x-stability: EXPERIMENTAL
  /projects/{projectId}/environments/{environmentId}/branch:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: branch-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentBranchInput'
      tags:
        - Environment
      summary: Branch an environment
      description: |
        Create a new environment as a branch of the current environment.
  /projects/{projectId}/environments/{environmentId}/deactivate:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: deactivate-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment
      summary: Deactivate an environment
      description: |
        Destroy all services and data running on this environment so that
        only the Git branch remains. The environment can be reactivated
        later at any time; reactivating an environment will sync data
        from the parent environment and redeploy.

        **NOTE: ALL DATA IN THIS ENVIRONMENT WILL BE IRREVOCABLY LOST**
  /projects/{projectId}/environments/{environmentId}/deploy:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: deploy-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment
  /projects/{projectId}/environments/{environmentId}/deployments:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: list-projects-environments-deployments
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeploymentCollection'
      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 files: `.platform.app.yaml`,
        `.platform/services.yaml`, and `.platform/routes.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.
  /projects/{projectId}/environments/{environmentId}/deployments/{deploymentId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: deploymentId
      operationId: get-projects-environments-deployments
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deployment'
      tags:
        - Deployment
      summary: Get a single environment deployment
      description: |
        Retrieve a single deployment configuration with an id of `current`. This may be subject to change in the future.
        Only `current` can be queried.
  /projects/{projectId}/environments/{environmentId}/deployments/{deploymentId}/operations:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: deploymentId
      operationId: run-operation
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentOperationInput'
      tags:
        - Runtime Operations
      summary: Execute a runtime operation
      description: Execute a runtime operation on a currently deployed environment. This allows you to run one-off commands, such as rebuilding static assets on demand, by defining an `operations` key in a project's `.platform.app.yaml` configuration. More information on runtime operations is [available in our user documentation](https://docs.platform.sh/create-apps/runtime-operations.html).
  /projects/{projectId}/environments/{environmentId}/domains:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: list-projects-environments-domains
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainCollection'
      tags:
        - Domain Management
      summary: Get a list of environment domains
      description: |
        Retrieve a list of objects representing the user-specified domains
        associated with an environment. Note that this does *not* return the
        `.platformsh.site` subdomains, which are automatically assigned to
        the environment.
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: create-projects-environments-domains
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DomainCreateInput'
      tags:
        - Domain Management
      summary: Add an environment domain
      description: |
        Add a single domain to an environment.
        If the environment is not production, the `replacement_for` field
        is required, which binds a new domain to an existing one from a
        production environment.
        If the `ssl` field is left blank without an object containing
        a PEM-encoded SSL certificate, a certificate will
        [be provisioned for you via Let's Encrypt](https://docs.platform.sh/configuration/routes/https.html#lets-encrypt).
  /projects/{projectId}/environments/{environmentId}/domains/{domainId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: domainId
      operationId: get-projects-environments-domains
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Domain'
      tags:
        - Domain Management
      summary: Get an environment domain
      description: |
        Retrieve information about a single user-specified domain
        associated with an environment.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DomainPatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: domainId
      operationId: update-projects-environments-domains
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Domain Management
      summary: Update an environment domain
      description: |
        Update the information associated with a single user-specified
        domain associated with an environment.
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: domainId
      operationId: delete-projects-environments-domains
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Domain Management
      summary: Delete an environment domain
      description: |
        Delete a single user-specified domain associated with an environment.
  /projects/{projectId}/environments/{environmentId}/initialize:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: initialize-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentInitializeInput'
      tags:
        - Environment
      summary: Initialize a new environment
      description: |
        Initialize and configure a new environment with an existing repository.
        The payload is the url of a git repository with a profile name:

        ```
        {
            "repository": "git@github.com:platformsh/a-project-template.git@master",
            "profile": "Example Project",
            "files": [
              {
                "mode": 0600,
                "path": "config.json",
                "contents": "XXXXXXXX"
              }
            ]
        }
        ```
        It can optionally carry additional files that will be committed to the
        repository, the POSIX file mode to set on each file, and the base64-encoded
        contents of each file.

        This endpoint can also add a second repository
        URL in the `config` parameter that will be added to the contents of the first.
        This allows you to put your application in one repository and the Platform.sh
        YAML configuration files in another.
  /projects/{projectId}/environments/{environmentId}/merge:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: merge-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentMergeInput'
      tags:
        - Environment
      summary: Merge an environment
      description: |
        Merge an environment into its parent. This means that code changes
        from the branch environment will be merged into the parent branch, and
        the parent branch will be rebuilt and deployed with the new code changes,
        retaining the existing data in the parent environment.
  /projects/{projectId}/environments/{environmentId}/pause:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: pause-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment
      summary: Pause an environment
      description: |
        Pause an environment, stopping all services and applications (except the router).

        Development environments are often used for a limited time and then abandoned.
        To prevent unnecessary consumption of resources, development environments that
        haven't been redeployed in 14 days are automatically paused.

        You can pause an environment manually at any time using this endpoint. Further
        information is available in our [public documentation](https://docs.platform.sh/environments.html#paused-environments).
  /projects/{projectId}/environments/{environmentId}/redeploy:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: redeploy-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment
      summary: Redeploy an environment
      description: Trigger the redeployment sequence of an environment.
  /projects/{projectId}/environments/{environmentId}/resume:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: resume-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment
      summary: Resume a paused environment
      description: |
        Resume a paused environment, restarting all services and applications.

        Development environments that haven't been used for 14 days will be paused
        automatically. They can be resumed via a redeployment or manually using this
        endpoint or the CLI as described in the [public documentation](https://docs.platform.sh/environments.html#paused-environments).
  /projects/{projectId}/environments/{environmentId}/routes:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: list-projects-environments-routes
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RouteCollection'
      tags:
        - Routing
      summary: Get list of routes
      description: |
        Retrieve a list of objects containing route definitions for
        a specific environment. The definitions returned by this endpoint
        are those present in an environment's `.platform/routes.yaml` file.
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: create-projects-environments-routes
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RouteCreateInput'
      tags:
        - Routing
      summary: Create a new route
      description: |
        Add a new route to the specified environment. More information about
        how routes are defined can be found in the [Routes](https://docs.platform.sh/configuration/routes.html)
        section of the documentation.

        This endpoint modifies an environment's `.platform/routes.yaml` file.
        For routes to propagate to child environments, the child environments
        must be synchronized with their parent.
  /projects/{projectId}/environments/{environmentId}/routes/{routeId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: routeId
      operationId: get-projects-environments-routes
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Route'
      tags:
        - Routing
      summary: Get a route's info
      description: |
        Get details of a route from an environment using the `id` of the entry
        retrieved by the [Get environment routes list](#tag/Environment-Routes%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1routes%2Fget)
        endpoint.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoutePatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: routeId
      operationId: update-projects-environments-routes
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Routing
      summary: Update a route
      description: |
        Update a route in an environment using the `id` of the entry
        retrieved by the [Get environment routes list](#tag/Environment-Routes%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1routes%2Fget)
        endpoint.

        This endpoint modifies an environment's `.platform/routes.yaml` file.
        For routes to propagate to child environments, the child environments
        must be synchronized with their parent.
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: routeId
      operationId: delete-projects-environments-routes
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Routing
      summary: Delete a route
      description: |
        Remove a route from an environment using the `id` of the entry
        retrieved by the [Get environment routes list](#tag/Environment-Routes%2Fpaths%2F~1projects~1%7BprojectId%7D~1environments~1%7BenvironmentId%7D~1routes%2Fget)
        endpoint.

        This endpoint modifies an environment's `.platform/routes.yaml` file.
        For routes to propagate to child environments, the child environments
        must be synchronized with their parent.
  /projects/{projectId}/environments/{environmentId}/source-operation:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: run-source-operation
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentSourceOperationInput'
      tags:
        - Source Operations
      summary: Trigger a source operation
      description: |
        This endpoint triggers a source code operation as defined in the `source.operations`
        key in a project's `.platform.app.yaml` configuration. More information
        on source code operations is
        [available in our user documentation](https://docs.platform.sh/configuration/app/source-operations.html).
  /projects/{projectId}/environments/{environmentId}/source-operations:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: list-projects-environments-source-operations
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentSourceOperationCollection'
      tags:
        - Source Operations
      summary: List source operations
      description: |
        Lists all the source operations, defined in `.platform.app.yaml`, that are available in an environment.
        More information on source code operations is
        [available in our user documentation](https://docs.platform.sh/configuration/app/source-operations.html).
  /projects/{projectId}/environments/{environmentId}/synchronize:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: synchronize-environment
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentSynchronizeInput'
      tags:
        - Environment
      summary: Synchronize a child environment with its parent
      description: |
        This synchronizes the code and/or data of an environment with that of
        its parent, then redeploys the environment. Synchronization is only
        possible if a branch has no unmerged commits and it can be fast-forwarded.

        If data synchronization is specified, the data in the environment will
        be overwritten with that of its parent.
  /projects/{projectId}/environments/{environmentId}/variables:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: list-projects-environments-variables
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentVariableCollection'
      tags:
        - Environment Variables
      summary: Get list of environment variables
      description: |
        Retrieve a list of objects representing the user-defined variables
        within an environment.
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: create-projects-environments-variables
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentVariableCreateInput'
      tags:
        - Environment Variables
      summary: Add an environment variable
      description: |
        Add a variable to an environment. The `value` can be either a string or a JSON
        object (default: string), as specified by the `is_json` boolean flag.
        Additionally, the inheritability of an environment variable can be
        determined through the `is_inheritable` flag (default: true).
        See the [Variables](https://docs.platform.sh/development/variables.html#platformsh-environment-variables)
        section in our documentation for more information.
  /projects/{projectId}/environments/{environmentId}/variables/{variableId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: variableId
      operationId: get-projects-environments-variables
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentVariable'
      tags:
        - Environment Variables
      summary: Get an environment variable
      description: Retrieve a single user-defined environment variable.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentVariablePatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: variableId
      operationId: update-projects-environments-variables
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment Variables
      summary: Update an environment variable
      description: |
        Update a single user-defined environment variable.
        The `value` can be either a string or a JSON
        object (default: string), as specified by the `is_json` boolean flag.
        Additionally, the inheritability of an environment variable can be
        determined through the `is_inheritable` flag (default: true).
        See the [Variables](https://docs.platform.sh/development/variables.html#platformsh-environment-variables)
        section in our documentation for more information.
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: variableId
      operationId: delete-projects-environments-variables
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment Variables
      summary: Delete an environment variable
      description: Delete a single user-defined environment variable.
  /projects/{projectId}/environments/{environmentId}/versions:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: list-projects-environments-versions
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionCollection'
      tags:
        - Environment
      summary: List versions associated with the environment
      description: |
        List versions associated with the `{environmentId}` environment.
        At least one version always exists.
        When multiple versions exist, it means that multiple versions of an app are deployed.
        The deployment target type denotes whether staged deployment is supported.
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
      operationId: create-projects-environments-versions
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VersionCreateInput'
      tags:
        - Environment
      summary: Create versions associated with the environment
      description: |
        Create versions associated with the `{environmentId}` environment.
        At least one version always exists.
        When multiple versions exist, it means that multiple versions of an app are deployed.
        The deployment target type denotes whether staged deployment is supported.
  /projects/{projectId}/environments/{environmentId}/versions/{versionId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: versionId
      operationId: get-projects-environments-versions
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Version'
      tags:
        - Environment
      summary: List the version
      description: |
        List the `{versionId}` version.
        A routing percentage for this version may be specified for staged rollouts
        (if the deployment target supports it).
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VersionPatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: versionId
      operationId: update-projects-environments-versions
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment
      summary: Update the version
      description: |
        Update the `{versionId}` version.
        A routing percentage for this version may be specified for staged rollouts
        (if the deployment target supports it).
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: environmentId
        - in: path
          required: true
          schema:
            type: string
          name: versionId
      operationId: delete-projects-environments-versions
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Environment
      summary: Delete the version
      description: |
        Delete the `{versionId}` version.
        A routing percentage for this version may be specified for staged rollouts
        (if the deployment target supports it).
  /projects/{projectId}/git/blobs/{repositoryBlobId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: repositoryBlobId
      operationId: get-projects-git-blobs
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Blob'
      tags:
        - Repository
      summary: Get a blob object
      description: |
        Retrieve, by hash, an object representing a blob in the repository
        backing a project. This endpoint allows direct read-only access
        to the contents of files in a repo. It returns the file in the
        `content` field of the response object, encoded according to the
        format in the `encoding` field, e.g. `base64`.
  /projects/{projectId}/git/commits/{repositoryCommitId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: repositoryCommitId
      operationId: get-projects-git-commits
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Commit'
      tags:
        - Repository
      summary: Get a commit object
      description: |
        Retrieve, by hash, an object representing a commit in the repository backing
        a project. This endpoint functions similarly to `git cat-file -p <commit-id>`.
        The returned object contains the hash of the Git tree that it
        belongs to, as well as the ID of parent commits.

        The commit represented by a parent ID can be retrieved using this
        endpoint, while the tree state represented by this commit can
        be retrieved using the
        [Get a tree object](#tag/Git-Repo%2Fpaths%2F~1projects~1%7BprojectId%7D~1git~1trees~1%7BrepositoryTreeId%7D%2Fget)
        endpoint.
  /projects/{projectId}/git/refs:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: list-projects-git-refs
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefCollection'
      tags:
        - Repository
      summary: Get list of repository refs
      description: |
        Retrieve a list of `refs/*` in the repository backing a project.
        This endpoint functions similarly to `git show-ref`, with each
        returned object containing a `ref` field with the ref's name,
        and an object containing the associated commit ID.

        The returned commit ID can be used with the
        [Get a commit object](#tag/Git-Repo%2Fpaths%2F~1projects~1%7BprojectId%7D~1git~1commits~1%7BrepositoryCommitId%7D%2Fget)
        endpoint to retrieve information about that specific commit.
  /projects/{projectId}/git/refs/{repositoryRefId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: repositoryRefId
      operationId: get-projects-git-refs
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ref'
      tags:
        - Repository
      summary: Get a ref object
      description: |
        Retrieve the details of a single `refs` object in the repository
        backing a project. This endpoint functions similarly to
        `git show-ref <pattern>`, although the pattern must be a full ref `id`,
        rather than a matching pattern.

        *NOTE: The `{repositoryRefId}` must be properly escaped.*
        That is, the ref `refs/heads/master` is accessible via
        `/projects/{projectId}/git/refs/heads%2Fmaster`.
  /projects/{projectId}/git/trees/{repositoryTreeId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: repositoryTreeId
      operationId: get-projects-git-trees
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tree'
      tags:
        - Repository
      summary: Get a tree object
      description: |
        Retrieve, by hash, the tree state represented by a commit.
        The returned object's `tree` field contains a list of files and
        directories present in the tree.

        Directories in the tree can be recursively retrieved by this endpoint
        through their hashes. Files in the tree can be retrieved by the
        [Get a blob object](#tag/Git-Repo%2Fpaths%2F~1projects~1%7BprojectId%7D~1git~1blobs~1%7BrepositoryBlobId%7D%2Fget)
        endpoint.
  /projects/{projectId}/integrations:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: list-projects-integrations
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationCollection'
      tags:
        - Third-Party Integrations
      summary: Get list of existing integrations for a project
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: create-projects-integrations
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegrationCreateInput'
      tags:
        - Third-Party Integrations
      summary: Integrate project with a third-party service
  /projects/{projectId}/integrations/{integrationId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: integrationId
      operationId: get-projects-integrations
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integration'
      tags:
        - Third-Party Integrations
      summary: Get information about an existing third-party integration
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegrationPatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: integrationId
      operationId: update-projects-integrations
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Third-Party Integrations
      summary: Update an existing third-party integration
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: integrationId
      operationId: delete-projects-integrations
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Third-Party Integrations
      summary: Delete an existing third-party integration
  /projects/{projectId}/settings:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: get-projects-settings
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectSettings'
      tags:
        - Project Settings
      summary: Get list of project settings
      description: Retrieve the global settings for a project.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectSettingsPatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: update-projects-settings
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Project Settings
      summary: Update a project setting
      description: Update one or more project-level settings.
  /projects/{projectId}/system:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: get-projects-system
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemInformation'
      tags:
        - System Information
      summary: Get information about the Git server.
      description: Output information for the project.
  /projects/{projectId}/system/restart:
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: action-projects-system-restart
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - System Information
      summary: Restart the Git server
      description: Force the Git server to restart.
  /projects/{projectId}/variables:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: list-projects-variables
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectVariableCollection'
      tags:
        - Project Variables
      summary: Get list of project variables
      description: |
        Retrieve a list of objects representing the user-defined variables
        within a project.
    post:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
      operationId: create-projects-variables
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectVariableCreateInput'
      tags:
        - Project Variables
      summary: Add a project variable
      description: |
        Add a variable to a project. The `value` can be either a string or a JSON
        object (default: string), as specified by the `is_json` boolean flag.
        See the [Variables](https://docs.platform.sh/development/variables.html#project-variables)
        section in our documentation for more information.
  /projects/{projectId}/variables/{projectVariableId}:
    get:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: projectVariableId
      operationId: get-projects-variables
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectVariable'
      tags:
        - Project Variables
      summary: Get a project variable
      description: Retrieve a single user-defined project variable.
    patch:
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectVariablePatch'
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: projectVariableId
      operationId: update-projects-variables
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Project Variables
      summary: Update a project variable
      description: |
        Update a single user-defined project variable.
        The `value` can be either a string or a JSON
        object (default: string), as specified by the `is_json` boolean flag.
        See the [Variables](https://docs.platform.sh/development/variables.html#project-variables)
        section in our documentation for more information.
    delete:
      parameters:
        - in: path
          required: true
          schema:
            type: string
          name: projectId
        - in: path
          required: true
          schema:
            type: string
          name: projectVariableId
      operationId: delete-projects-variables
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
      tags:
        - Project Variables
      summary: Delete a project variable
      description: Delete a single user-defined project variable.
  /projects/{projectId}/environments/{environmentId}/autoscaling/settings:
    get:
      tags:
        - Autoscaling
      description: Retrieves Autoscaler settings
      operationId: get-autoscaler-settings
      parameters:
        - name: projectId
          in: path
          description: A string that uniquely identifies the project
          required: true
          schema:
            type: string
        - name: environmentId
          in: path
          description: A string that uniquely identifies the project environment
          required: true
          schema:
            type: string
      responses:
        default:
          description: Autoscaler settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutoscalerSettings'
    post:
      tags:
        - Autoscaling
      description: Updates Autoscaler settings
      operationId: post-autoscaler-settings
      parameters:
        - name: projectId
          in: path
          description: A string that uniquely identifies the project
          required: true
          schema:
            type: string
        - name: environmentId
          in: path
          description: A string that uniquely identifies the project environment
          required: true
          schema:
            type: string
      requestBody:
        description: Settings to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AutoscalerSettings'
      responses:
        '200':
          description: Updated Autoscaler settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutoscalerSettings'
    patch:
      tags:
        - Autoscaling
      description: Modifies Autoscaler settings
      operationId: patch-autoscaler-settings
      parameters:
        - name: projectId
          in: path
          description: A string that uniquely identifies the project
          required: true
          schema:
            type: string
        - name: environmentId
          in: path
          description: A string that uniquely identifies the project environment
          required: true
          schema:
            type: string
      requestBody:
        description: Settings to modify
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AutoscalerSettingsPartial'
      responses:
        '200':
          description: Updated Autoscaler settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutoscalerSettings'
  /projects/{projectId}/environments/{environmentId}/autoscaling/alerts:
    post:
      tags:
        - Autoscaling
      description: Sends an Autoscaler alert for processing
      operationId: post-autoscaler-alert
      parameters:
        - name: projectId
          in: path
          description: A string that uniquely identifies the project
          required: true
          schema:
            type: string
        - name: environmentId
          in: path
          description: A string that uniquely identifies the project environment
          required: true
          schema:
            type: string
      requestBody:
        description: Alert to process
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AutoscalerAlertPartial'
      responses:
        '202':
          description: Alert is accepted for processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutoscalerEmptyBody'
  /ref/organizations:
    get:
      summary: List referenced organizations
      description: Retrieves a list of organizations referenced by a trusted service. Clients cannot construct the URL themselves. The correct URL will be provided in the HAL links of another API response, in the <code>_links</code> object with a key like <code>ref:organizations:0</code>.
      operationId: list-referenced-orgs
      tags:
        - References
      parameters:
        - schema:
            type: string
          in: query
          name: in
          description: The list of comma-separated organization IDs generated by a trusted service.
          required: true
        - schema:
            type: string
          in: query
          name: sig
          description: The signature of this request generated by a trusted service.
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: A map of referenced organizations indexed by the organization ID.
                additionalProperties:
                  $ref: '#/components/schemas/OrganizationReference'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /users/{user_id}/organizations:
    get:
      summary: User organizations
      description: Retrieves organizations that the specified user is a member of.
      operationId: list-user-orgs
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/UserID'
        - in: query
          name: filter[id]
          description: Allows filtering by `id` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[vendor]
          description: |
            Allows filtering by `vendor` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[status]
          description: |
            Allows filtering by `status` using one or more operators.<br>
            Defaults to `filter[status][in]=active,restricted,suspended`.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[updated_at]
          description: Allows filtering by `updated_at` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/DateTimeFilter'
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.<br>
            Supported fields: `name`, `label`, `created_at`, `updated_at`.
          schema:
            type: string
            example: '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Organization'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations:
    get:
      summary: List organizations
      description: Non-admin users will only see organizations they are members of.
      operationId: list-orgs
      tags:
        - Organizations
      parameters:
        - in: query
          name: filter[id]
          description: Allows filtering by `id` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[type]
          description: |
            Allows filtering by `type` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[owner_id]
          description: Allows filtering by `owner_id` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[name]
          description: Allows filtering by `name` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[label]
          description: Allows filtering by `label` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[vendor]
          description: |
            Allows filtering by `vendor` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[capabilities]
          description: Allows filtering by `capabilites` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/ArrayFilter'
        - in: query
          name: filter[status]
          description: |
            Allows filtering by `status` using one or more operators.<br>
            Defaults to `filter[status][in]=active,restricted,suspended`.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[updated_at]
          description: Allows filtering by `updated_at` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/DateTimeFilter'
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.<br>
            Supported fields: `name`, `label`, `created_at`, `updated_at`.
          schema:
            type: string
            example: '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Total number of items across pages.
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Organization'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Create organization
      description: Creates a new organization.
      operationId: create-org
      tags:
        - Organizations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - label
              properties:
                type:
                  type: string
                  description: The type of the organization.
                  enum:
                    - fixed
                    - flexible
                owner_id:
                  type: string
                  format: uuid
                  description: ID of the owner.
                name:
                  type: string
                  description: A unique machine name representing the organization.
                label:
                  type: string
                  description: The human-readable label of the organization.
                country:
                  type: string
                  description: The organization country (2-letter country code).
                  maxLength: 2
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}:
    get:
      summary: Get organization
      description: Retrieves the specified organization.
      operationId: get-org
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      summary: Update organization
      description: Updates the specified organization.
      operationId: update-org
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: A unique machine name representing the organization.
                label:
                  type: string
                  description: The human-readable label of the organization.
                country:
                  type: string
                  description: The organization country (2-letter country code).
                  maxLength: 2
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Delete organization
      description: Deletes the specified organization.
      operationId: delete-org
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/mfa-enforcement:
    get:
      summary: Get organization MFA settings
      description: Retrieves MFA settings for the specified organization.
      operationId: get-org-mfa-enforcement
      tags:
        - MFA
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMFAEnforcement'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/mfa-enforcement/enable:
    post:
      summary: Enable organization MFA enforcement
      description: Enables MFA enforcement for the specified organization.
      operationId: enable-org-mfa-enforcement
      tags:
        - MFA
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/mfa-enforcement/disable:
    post:
      summary: Disable organization MFA enforcement
      description: Disables MFA enforcement for the specified organization.
      operationId: disable-org-mfa-enforcement
      tags:
        - MFA
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/mfa/remind:
    post:
      summary: Send MFA reminders to organization members
      description: Sends a reminder about setting up MFA to the specified organization members.
      operationId: send-org-mfa-reminders
      tags:
        - MFA
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                user_ids:
                  type: array
                  description: The organization members.
                  items:
                    type: string
                    format: uuid
                    description: The ID of the user.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    code:
                      type: integer
                      description: An HTTP-like status code referring to the result of the operation for the specific user.
                    message:
                      type: string
                      description: A human-readable message describing the result of the operation for the specific user
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/members:
    get:
      summary: List organization members
      description: Accessible to organization owners and members with the "manage members" permission.
      operationId: list-org-members
      tags:
        - Organization Members
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
        - in: query
          name: filter[permissions]
          description: Allows filtering by `permissions` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/ArrayFilter'
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.<br>
            Supported fields: `created_at`, `updated_at`.
          schema:
            type: string
            example: '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Total number of items across pages.
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/OrganizationMember'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Create organization member
      description: Creates a new organization member.
      operationId: create-org-member
      tags:
        - Organization Members
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - user_id
              properties:
                user_id:
                  type: string
                  format: uuid
                  description: ID of the user.
                permissions:
                  $ref: '#/components/schemas/Permissions'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMember'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/members/{user_id}:
    get:
      summary: Get organization member
      description: Retrieves the specified organization member.
      operationId: get-org-member
      tags:
        - Organization Members
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
        - $ref: '#/components/parameters/UserID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMember'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      summary: Update organization member
      description: Updates the specified organization member.
      operationId: update-org-member
      tags:
        - Organization Members
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/UserID'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                permissions:
                  $ref: '#/components/schemas/Permissions'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationMember'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Delete organization member
      description: Deletes the specified organization member.
      operationId: delete-org-member
      tags:
        - Organization Members
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/UserID'
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/address:
    get:
      summary: Get address
      description: Retrieves the address for the specified organization.
      operationId: get-org-address
      tags:
        - Profiles
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Address'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      summary: Update address
      description: Updates the address for the specified organization.
      operationId: update-org-address
      tags:
        - Profiles
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Address'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Address'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/invoices:
    get:
      summary: List invoices
      description: Retrieves a list of invoices for the specified organization.
      operationId: list-org-invoices
      tags:
        - Invoices
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
        - $ref: '#/components/parameters/filter_invoice_status'
        - $ref: '#/components/parameters/filter_invoice_type'
        - $ref: '#/components/parameters/filter_order_id'
        - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Invoice'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/invoices/{invoice_id}:
    get:
      summary: Get invoice
      description: Retrieves an invoice for the specified organization.
      operationId: get-org-invoice
      tags:
        - Invoices
      parameters:
        - $ref: '#/components/parameters/InvoiceID'
        - $ref: '#/components/parameters/OrganizationIDName'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/profile:
    get:
      summary: Get profile
      description: Retrieves the profile for the specified organization.
      operationId: get-org-profile
      tags:
        - Profiles
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      summary: Update profile
      description: Updates the profile for the specified organization.
      operationId: update-org-profile
      tags:
        - Profiles
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                default_catalog:
                  type: string
                  description: The URL of a catalog file which overrides the default.
                project_options_url:
                  type: string
                  format: uri
                  description: The URL of an organization-wide project options file.
                security_contact:
                  type: string
                  format: email
                  description: The e-mail address of a contact to whom security notices will be sent.
                company_name:
                  type: string
                  description: The company name.
                vat_number:
                  type: string
                  description: The VAT number of the company.
                billing_contact:
                  type: string
                  format: email
                  description: The e-mail address of a contact to whom billing notices will be sent.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/orders:
    get:
      summary: List orders
      description: Retrieves orders for the specified organization.
      operationId: list-org-orders
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
        - $ref: '#/components/parameters/filter_order_status'
        - $ref: '#/components/parameters/filter_order_total'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/mode'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Order'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/orders/{order_id}:
    get:
      summary: Get order
      description: Retrieves an order for the specified organization.
      operationId: get-org-order
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
        - $ref: '#/components/parameters/OrderID'
        - $ref: '#/components/parameters/mode'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/orders/{order_id}/authorize:
    post:
      summary: Create confirmation credentials for for 3D-Secure
      description: Creates confirmation credentials for payments that require online authorization
      operationId: create-authorization-credentials
      tags:
        - Orders
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
        - $ref: '#/components/parameters/OrderID'
      responses:
        '200':
          description: Payment authorization credentials, if the payment is pending
          content:
            application/json:
              schema:
                type: object
                properties:
                  redirect_to_url:
                    type: object
                    description: URL information to complete the payment.
                    properties:
                      return_url:
                        type: string
                        description: Return URL after payment completion.
                      url:
                        type: string
                        description: URL for payment finalization.
                  type:
                    type: string
                    description: Required payment action type.
        '400':
          description: Bad Request when no authorization is required.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/records/plan:
    get:
      summary: List plan records
      description: Retrieves plan records for the specified organization.
      operationId: list-org-plan-records
      tags:
        - Records
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
        - $ref: '#/components/parameters/filter_subscription_id'
        - $ref: '#/components/parameters/filter_subscription_plan'
        - $ref: '#/components/parameters/record_status'
        - $ref: '#/components/parameters/record_start'
        - $ref: '#/components/parameters/record_end'
        - $ref: '#/components/parameters/record_started_at'
        - $ref: '#/components/parameters/record_ended_at'
        - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlanRecords'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/records/usage:
    get:
      summary: List usage records
      description: Retrieves usage records for the specified organization.
      operationId: list-org-usage-records
      tags:
        - Records
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
        - $ref: '#/components/parameters/filter_subscription_id'
        - $ref: '#/components/parameters/record_usage_group'
        - $ref: '#/components/parameters/record_start'
        - $ref: '#/components/parameters/record_started_at'
        - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Usage'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/subscriptions/estimate:
    get:
      summary: Estimate the price of a new subscription
      operationId: estimate-new-org-subscription
      tags:
        - Subscriptions
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - in: query
          name: plan
          description: The plan type of the subscription.
          required: true
          schema:
            type: string
        - in: query
          name: environments
          description: The maximum number of environments which can be provisioned on the project.
          required: true
          schema:
            type: integer
        - in: query
          name: storage
          description: The total storage available to each environment, in MiB.
          required: true
          schema:
            type: integer
        - in: query
          name: user_licenses
          description: The number of user licenses.
          required: true
          schema:
            type: integer
        - in: query
          name: format
          description: The format of the estimation output.
          required: false
          schema:
            type: string
            enum:
              - formatted
              - complex
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimationObject'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/subscriptions/can-create:
    get:
      summary: Checks if the user is able to create a new project.
      operationId: can-create-new-org-subscription
      tags:
        - Subscriptions
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  can_create:
                    description: Boolean result of the check.
                    type: boolean
                  message:
                    description: Details in case of negative check result.
                    type: string
                  required_action:
                    description: Required action impending project creation.
                    type: object
                    nullable: true
                    properties:
                      action:
                        description: Machine readable definition of requirement.
                        type: string
                      type:
                        description: Specification of the type of action.
                        type: string
                type: object
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/subscriptions/{subscription_id}/estimate:
    get:
      summary: Estimate the price of a subscription
      operationId: estimate-org-subscription
      tags:
        - Subscriptions
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/SubscriptionID'
        - in: query
          name: plan
          description: The plan type of the subscription.
          required: true
          schema:
            type: string
        - in: query
          name: environments
          description: The maximum number of environments which can be provisioned on the project.
          schema:
            type: integer
        - in: query
          name: storage
          description: The total storage available to each environment, in MiB.
          schema:
            type: integer
        - in: query
          name: user_licenses
          description: The number of user licenses.
          schema:
            type: integer
        - in: query
          name: format
          description: The format of the estimation output.
          schema:
            type: string
            enum:
              - formatted
              - complex
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimationObject'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/subscriptions/{subscription_id}/current_usage:
    get:
      summary: Get current usage for a subscription
      operationId: get-org-subscription-current-usage
      tags:
        - Subscriptions
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/SubscriptionID'
        - in: query
          name: usage_groups
          description: A list of usage groups to retrieve current usage for.
          schema:
            type: string
        - in: query
          name: include_not_charged
          description: Whether to include not charged usage groups.
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionCurrentUsageObject'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/subscriptions/{subscription_id}/addons:
    get:
      summary: List addons for a subscription
      operationId: list-subscription-addons
      tags:
        - Subscriptions
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/SubscriptionID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionAddonsObject'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      x-vendor: upsun
  /organizations/{organization_id}/vouchers:
    get:
      summary: List vouchers
      description: Retrieves vouchers for the specified organization.
      operationId: list-org-vouchers
      tags:
        - Vouchers
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vouchers'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/vouchers/apply:
    post:
      summary: Apply voucher
      description: Applies a voucher for the specified organization, and refreshes the currently open order.
      operationId: apply-org-voucher
      tags:
        - Vouchers
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - code
              properties:
                code:
                  type: string
                  description: The voucher code.
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/estimate:
    get:
      summary: Estimate total spend
      description: Estimates the total spend for the specified organization.
      operationId: estimate-org
      tags:
        - Organization Management
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationEstimationObject'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      x-vendor: upsun
  /organizations/{organization_id}/addons:
    get:
      summary: Get add-ons
      description: Retrieves information about the add-ons for an organization.
      operationId: get-org-addons
      tags:
        - Add-ons
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationAddonsObject'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      x-vendor: upsun
  /organizations/{organization_id}/alerts/billing:
    get:
      summary: Get billing alert configuration
      description: Retrieves billing alert configuration for the specified organization.
      operationId: get-org-billing-alert-config
      tags:
        - Organization Management
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationAlertConfig'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      x-vendor: upsun
    patch:
      summary: Update billing alert configuration
      description: Updates billing alert configuration for the specified organization.
      operationId: update-org-billing-alert-config
      tags:
        - Organization Management
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                active:
                  type: boolean
                  description: Whether the billing alert should be active or not.
                config:
                  type: object
                  description: The configuration for billing alerts.
                  properties:
                    threshold:
                      type: integer
                      description: The amount after which a billing alert should be triggered.
                    mode:
                      type: string
                      description: The mode in which the alert is triggered.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationAlertConfig'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      x-vendor: upsun
  /organizations/{organization_id}/discounts:
    get:
      summary: List organization discounts
      description: Retrieves all applicable discounts granted to the specified organization.
      operationId: list-org-discounts
      tags:
        - Discounts
      parameters:
        - $ref: '#/components/parameters/OrganizationIDName'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Discount'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      x-vendor: upsun
  /organizations/{organization_id}/prepayment:
    get:
      summary: Get organization prepayment information
      description: Retrieves prepayment information for the specified organization, if applicable.
      operationId: get-org-prepayment-info
      tags:
        - Organization Management
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  prepayment:
                    type: object
                    $ref: '#/components/schemas/PrepaymentObject'
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        description: Link to the current resource.
                        properties:
                          href:
                            type: string
                            description: URL of the link.
                      transactions:
                        type: object
                        description: Link to the prepayment transactions resource.
                        properties:
                          href:
                            type: string
                            description: URL of the link.
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      x-vendor: upsun
  /organizations/{organization_id}/prepayment/transactions:
    get:
      summary: List organization prepayment transactions
      description: Retrieves a list of prepayment transactions for the specified organization, if applicable.
      operationId: list-org-prepayment-transactions
      tags:
        - Organization Management
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Total number of items across pages.
                  transactions:
                    type: array
                    items:
                      $ref: '#/components/schemas/PrepaymentTransactionObject'
                  _links:
                    type: object
                    $ref: '#/components/schemas/ListLinks'
                    properties:
                      prepayment:
                        type: object
                        description: Link to the prepayment resource.
                        properties:
                          href:
                            type: string
                            description: URL of the link.
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      x-vendor: upsun
  /organizations/{organization_id}/projects:
    get:
      summary: List projects
      description: Retrieves a list of projects for the specified organization.
      operationId: list-org-projects
      tags:
        - Organization Projects
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - in: query
          name: filter[id]
          description: Allows filtering by `id` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[title]
          description: Allows filtering by `title` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[status]
          description: Allows filtering by `status` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[updated_at]
          description: Allows filtering by `updated_at` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/DateTimeFilter'
        - in: query
          name: filter[created_at]
          description: Allows filtering by `created_at` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/DateTimeFilter'
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.<br>
            Supported fields: `id`, `created_at`, `updated_at`.
          schema:
            type: string
            example: '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/OrganizationProject'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/projects/{project_id}:
    get:
      summary: Get project
      description: Retrieves the specified project.
      operationId: get-org-project
      tags:
        - Organization Projects
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/ProjectID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationProject'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/projects/{project_id}/cdn:
    get:
      summary: List project CDNs
      description: Retrieves the specified project's CDNs.
      operationId: list-org-project-cdns
      tags:
        - Edge
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/ProjectID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CDN'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Create project CDN
      description: Creates a new project CDN.
      operationId: create-org-project-cdn
      tags:
        - Edge
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/ProjectID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - environment
                - domains
              properties:
                environment:
                  $ref: '#/components/schemas/CdnEnvironment'
                service_name:
                  $ref: '#/components/schemas/CdnServiceName'
                backend_hostname:
                  $ref: '#/components/schemas/CdnBackendHostname'
                sni_hostname:
                  $ref: '#/components/schemas/CdnSNIHostname'
                domains:
                  $ref: '#/components/schemas/CdnDomains'
                comment:
                  $ref: '#/components/schemas/CdnComment'
                skip_token_setup:
                  $ref: '#/components/schemas/CdnSkipTokenSetup'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CDN'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/projects/{project_id}/cdn/{cdn_id}:
    get:
      summary: Get project CDN
      description: Retrieves the specified project's CDN.
      operationId: get-org-project-cdn
      tags:
        - Edge
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/ProjectID'
        - $ref: '#/components/parameters/CdnID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CDN'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      summary: Update project CDN
      description: Updates the specified project's CDN.
      operationId: update-org-project-cdn
      tags:
        - Edge
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/ProjectID'
        - $ref: '#/components/parameters/CdnID'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                backend_hostname:
                  $ref: '#/components/schemas/CdnBackendHostname'
                sni_hostname:
                  $ref: '#/components/schemas/CdnSNIHostname'
                domains:
                  $ref: '#/components/schemas/CdnDomains'
                comment:
                  $ref: '#/components/schemas/CdnComment'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CDN'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Delete project CDN
      description: Deletes the specified project's CDN.
      operationId: delete-org-project-cdn
      tags:
        - Edge
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/ProjectID'
        - $ref: '#/components/parameters/CdnID'
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/metrics/carbon:
    get:
      summary: Query project carbon emissions metrics for an entire organization
      description: Queries the carbon emission data for all projects owned by the specified organiation.
      operationId: query-organiation-carbon
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/to'
        - $ref: '#/components/parameters/interval'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationCarbon'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/projects/{project_id}/metrics/carbon:
    get:
      summary: Query project carbon emissions metrics
      description: Queries the carbon emission data for the specified project using the supplied parameters.
      operationId: query-project-carbon
      tags:
        - Organization Projects
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/ProjectID'
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/to'
        - $ref: '#/components/parameters/interval'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCarbon'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/subscriptions:
    get:
      summary: List subscriptions
      description: Retrieves subscriptions for the specified organization.
      operationId: list-org-subscriptions
      tags:
        - Subscriptions
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/subscription_status'
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/project_id'
        - $ref: '#/components/parameters/project_title'
        - $ref: '#/components/parameters/region'
        - $ref: '#/components/parameters/updated_at'
        - $ref: '#/components/parameters/page_size'
        - $ref: '#/components/parameters/page_before'
        - $ref: '#/components/parameters/page_after'
        - $ref: '#/components/parameters/subscription_sort'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Subscription'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Create subscription
      description: Creates a subscription for the specified organization.
      operationId: create-org-subscription
      tags:
        - Subscriptions
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - project_region
              properties:
                plan:
                  $ref: '#/components/schemas/ProjectPlan'
                  default: null
                project_region:
                  type: string
                  description: The machine name of the region where the project is located. Cannot be changed after project creation.
                project_title:
                  type: string
                  description: The name given to the project. Appears as the title in the UI.
                options_url:
                  type: string
                  description: The URL of the project options file.
                default_branch:
                  type: string
                  description: The default Git branch name for the project.
                environments:
                  type: integer
                  description: The maximum number of active environments on the project.
                storage:
                  type: integer
                  description: The total storage available to each environment, in MiB. Only multiples of 1024 are accepted as legal values.
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /organizations/{organization_id}/subscriptions/{subscription_id}:
    get:
      summary: Get subscription
      description: Retrieves a subscription for the specified organization.
      operationId: get-org-subscription
      tags:
        - Subscriptions
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/SubscriptionID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      summary: Update subscription
      description: Updates a subscription for the specified organization.
      operationId: update-org-subscription
      tags:
        - Subscriptions
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/SubscriptionID'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                project_title:
                  $ref: '#/components/schemas/ProjectTitle'
                plan:
                  $ref: '#/components/schemas/ProjectPlan'
                timezone:
                  $ref: '#/components/schemas/ProjectTimeZone'
                environments:
                  type: integer
                  description: The maximum number of environments which can be provisioned on the project.
                storage:
                  type: integer
                  description: The total storage available to each environment, in MiB.
                big_dev:
                  type: string
                  description: The development environment plan.
                big_dev_service:
                  type: string
                  description: The development service plan.
                backups:
                  type: string
                  description: The backups plan.
                observability_suite:
                  type: string
                  description: The observability suite option.
                blackfire:
                  type: string
                  description: The Blackfire integration option.
                continuous_profiling:
                  type: string
                  description: The Blackfire continuous profiling option.
                project_support_level:
                  type: string
                  description: The project uptime option.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Delete subscription
      description: Deletes a subscription for the specified organization.
      operationId: delete-org-subscription
      tags:
        - Subscriptions
      parameters:
        - $ref: '#/components/parameters/OrganizationID'
        - $ref: '#/components/parameters/SubscriptionID'
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /regions:
    get:
      summary: List regions
      description: Retrieves a list of available regions.
      operationId: list-regions
      tags:
        - Regions
      parameters:
        - in: query
          name: filter[available]
          description: Allows filtering by `available` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[private]
          description: Allows filtering by `private` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: filter[zone]
          description: Allows filtering by `zone` using one or more operators.
          style: deepObject
          explode: true
          schema:
            $ref: '#/components/schemas/StringFilter'
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.<br>
            Supported fields: `id`, `created_at`, `updated_at`.
          schema:
            type: string
            example: '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  regions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Region'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /regions/{region_id}:
    get:
      summary: Get region
      description: Retrieves the specified region.
      operationId: get-region
      tags:
        - Regions
      parameters:
        - $ref: '#/components/parameters/RegionID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Region'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /ref/projects:
    get:
      summary: List referenced projects
      description: Retrieves a list of projects referenced by a trusted service. Clients cannot construct the URL themselves. The correct URL will be provided in the HAL links of another API response, in the <code>_links</code> object with a key like <code>ref:projects:0</code>.
      operationId: list-referenced-projects
      tags:
        - References
      parameters:
        - schema:
            type: string
          in: query
          name: in
          description: The list of comma-separated project IDs generated by a trusted service.
          required: true
        - schema:
            type: string
          in: query
          name: sig
          description: The signature of this request generated by a trusted service.
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: A map of referenced projects indexed by the organization ID.
                additionalProperties:
                  $ref: '#/components/schemas/ProjectReference'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /ref/regions:
    get:
      summary: List referenced regions
      description: Retrieves a list of regions referenced by a trusted service. Clients cannot construct the URL themselves. The correct URL will be provided in the HAL links of another API response, in the <code>_links</code> object with a key like <code>ref:regions:0</code>.
      operationId: list-referenced-regions
      tags:
        - References
      parameters:
        - schema:
            type: string
          in: query
          name: in
          description: The list of comma-separated region IDs generated by a trusted service.
          required: true
        - schema:
            type: string
          in: query
          name: sig
          description: The signature of this request generated by a trusted service.
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: A map of referenced projects indexed by the organization ID.
                additionalProperties:
                  $ref: '#/components/schemas/RegionReference'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /projects/{project_id}/team-access:
    parameters:
      - $ref: '#/components/parameters/ProjectID'
    get:
      summary: List team access for a project
      description: Returns a list of items representing the project access.
      operationId: list-project-team-access
      tags:
        - Team Access
      parameters:
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.<br>
            Supported fields: `granted_at`, `updated_at`.
          schema:
            type: string
            example: '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TeamProjectAccess'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Grant team access to a project
      description: Grants one or more team access to a specific project.
      operationId: grant-project-team-access
      tags:
        - Team Access
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  team_id:
                    type: string
                    description: ID of the team.
                required:
                  - team_id
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /projects/{project_id}/team-access/{team_id}:
    parameters:
      - $ref: '#/components/parameters/ProjectID'
      - $ref: '#/components/parameters/TeamID'
    get:
      summary: Get team access for a project
      description: Retrieves the team's permissions for the current project.
      operationId: get-project-team-access
      tags:
        - Team Access
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamProjectAccess'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Remove team access for a project
      description: Removes the team from the current project.
      operationId: remove-project-team-access
      tags:
        - Team Access
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /projects/{project_id}/user-access:
    parameters:
      - $ref: '#/components/parameters/ProjectID'
    get:
      summary: List user access for a project
      description: Returns a list of items representing the project access.
      operationId: list-project-user-access
      tags:
        - User Access
      parameters:
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.<br>
            Supported fields: `granted_at`, `updated_at`.
          schema:
            type: string
            example: '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/UserProjectAccess'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Grant user access to a project
      description: Grants one or more users access to a specific project.
      operationId: grant-project-user-access
      tags:
        - User Access
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  user_id:
                    type: string
                    description: ID of the user.
                  permissions:
                    $ref: '#/components/schemas/ProjectPermissions'
                  auto_add_member:
                    type: boolean
                    description: If the specified user is not a member of the project's organization, add it automatically.
                required:
                  - user_id
                  - permissions
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /projects/{project_id}/user-access/{user_id}:
    parameters:
      - $ref: '#/components/parameters/ProjectID'
      - $ref: '#/components/parameters/UserID'
    get:
      summary: Get user access for a project
      description: Retrieves the user's permissions for the current project.
      operationId: get-project-user-access
      tags:
        - User Access
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProjectAccess'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      summary: Update user access for a project
      description: Updates the user's permissions for the current project.
      operationId: update-project-user-access
      tags:
        - User Access
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - permissions
              properties:
                permissions:
                  $ref: '#/components/schemas/ProjectPermissions'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Remove user access for a project
      description: Removes the user from the current project.
      operationId: remove-project-user-access
      tags:
        - User Access
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /users/{user_id}/project-access:
    parameters:
      - $ref: '#/components/parameters/UserID'
    get:
      summary: List project access for a user
      description: Returns a list of items representing the user's project access.
      operationId: list-user-project-access
      tags:
        - User Access
      parameters:
        - in: query
          name: filter[organization_id]
          description: Allows filtering by `organization_id`.
          schema:
            type: string
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.<br>
            Supported fields: `project_title`, `granted_at`, `updated_at`.
          schema:
            type: string
            example: '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/UserProjectAccess'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Grant project access to a user
      description: Adds the user to one or more specified projects.
      operationId: grant-user-project-access
      tags:
        - User Access
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  project_id:
                    type: string
                    description: ID of the project.
                  permissions:
                    $ref: '#/components/schemas/ProjectPermissions'
                required:
                  - project_id
                  - permissions
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /users/{user_id}/project-access/{project_id}:
    parameters:
      - $ref: '#/components/parameters/UserID'
      - $ref: '#/components/parameters/ProjectID'
    get:
      summary: Get project access for a user
      description: Retrieves the user's permissions for the current project.
      operationId: get-user-project-access
      tags:
        - User Access
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProjectAccess'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      summary: Update project access for a user
      description: Updates the user's permissions for the current project.
      operationId: update-user-project-access
      tags:
        - User Access
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - permissions
              properties:
                permissions:
                  $ref: '#/components/schemas/ProjectPermissions'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Remove project access for a user
      description: Removes the user from the current project.
      operationId: remove-user-project-access
      tags:
        - User Access
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /teams/{team_id}/project-access:
    parameters:
      - $ref: '#/components/parameters/TeamID'
    get:
      summary: List project access for a team
      description: Returns a list of items representing the team's project access.
      operationId: list-team-project-access
      tags:
        - Team Access
      parameters:
        - in: query
          name: page[size]
          description: Determines the number of items to show.
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: null
        - in: query
          name: page[before]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: page[after]
          description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
          schema:
            type: string
        - in: query
          name: sort
          description: |
            Allows sorting by a single field.<br>
            Use a dash ("-") to sort descending.<br>
            Supported fields: `project_title`, `granted_at`, `updated_at`.
          schema:
            type: string
            example: '-updated_at'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/TeamProjectAccess'
                  _links:
                    $ref: '#/components/schemas/ListLinks'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      summary: Grant project access to a team
      description: Adds the team to one or more specified projects.
      operationId: grant-team-project-access
      tags:
        - Team Access
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  project_id:
                    type: string
                    description: ID of the project.
                required:
                  - project_id
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
  /teams/{team_id}/project-access/{project_id}:
    parameters:
      - $ref: '#/components/parameters/TeamID'
      - $ref: '#/components/parameters/ProjectID'
    get:
      summary: Get project access for a team
      description: Retrieves the team's permissions for the current project.
      operationId: get-team-project-access
      tags:
        - Team Access
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamProjectAccess'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Remove project access for a team
      description: Removes the team from the current project.
      operationId: remove-team-project-access
      tags:
        - Team Access
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Alert:
      description: The alert object.
      properties:
        id:
          description: The identification of the alert type.
          type: string
        active:
          description: Whether the alert is currently active.
          type: boolean
        alerts_sent:
          description: The amount of alerts of this type that have been sent so far.
          type: integer
        last_alert_at:
          description: The time the last alert has been sent.
          type: string
          format: date-time
        updated_at:
          description: The time the alert has last been updated.
          type: string
          format: date-time
        config:
          description: The alert type specific configuration.
          type: object
      type: object
    LineItem:
      description: A line item in an order.
      properties:
        type:
          description: The type of line item.
          type: string
          enum:
            - project_plan
            - project_feature
            - project_subtotal
            - organization_plan
            - organization_feature
            - organization_subtotal
        license_id:
          description: The associated subscription identifier.
          type: number
          nullable: true
        project_id:
          description: The associated project identifier.
          type: string
          nullable: true
        product:
          description: Display name of the line item product.
          type: string
        sku:
          description: The line item product SKU.
          type: string
        total:
          description: Total price as a decimal.
          type: number
        total_formatted:
          description: Total price, formatted with currency.
          type: string
        components:
          description: The price components for the line item, keyed by type.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/LineItemComponent'
        exclude_from_invoice:
          description: Line item should not be considered billable.
          type: boolean
      type: object
    LineItemComponent:
      description: A price component for a line item.
      properties:
        amount:
          description: The price as a decimal.
          type: number
        amount_formatted:
          description: The price formatted with currency.
          type: string
        display_title:
          description: The display title for the component.
          type: string
        currency:
          description: The currency code for the component.
          type: string
      type: object
    Address:
      description: The address of the user.
      properties:
        country:
          description: Two-letter country codes are used to represent countries and states
          type: string
          format: ISO ALPHA-2
        name_line:
          description: The full name of the user
          type: string
        premise:
          description: Premise (i.e. Apt, Suite, Bldg.)
          type: string
        sub_premise:
          description: Sub Premise (i.e. Suite, Apartment, Floor, Unknown.
          type: string
        thoroughfare:
          description: The address of the user
          type: string
        administrative_area:
          description: The administrative area of the user address
          type: string
          format: ISO ALPHA-2
        sub_administrative_area:
          description: The sub-administrative area of the user address
          type: string
        locality:
          description: The locality of the user address
          type: string
        dependent_locality:
          description: The dependant_locality area of the user address
          type: string
        postal_code:
          description: The postal code area of the user address
          type: string
      type: object
    Components:
      description: The components of the project
      properties:
        voucher/vat/baseprice:
          description: stub
          type: object
      type: object
    Discount:
      description: The discount object.
      properties:
        id:
          description: The ID of the organization discount.
          type: integer
        organization_id:
          description: The ULID of the organization the discount applies to.
          type: string
        type:
          description: The machine name of the discount type.
          type: string
          enum:
            - allowance
            - startup
            - enterprise
        type_label:
          description: The label of the discount type.
          type: string
        status:
          description: The status of the discount.
          type: string
          enum:
            - inactive
            - active
            - expired
            - deactivated
        commitment:
          description: The minimum commitment associated with the discount (if applicable).
          properties:
            months:
              description: Commitment period length in months.
              type: integer
            amount:
              description: Commitment amounts.
              properties:
                monthly:
                  $ref: '#/components/schemas/CurrencyAmount'
                commitment_period:
                  $ref: '#/components/schemas/CurrencyAmount'
                contract_total:
                  $ref: '#/components/schemas/CurrencyAmount'
              type: object
            net:
              description: Net commitment amounts (discount deducted).
              properties:
                monthly:
                  $ref: '#/components/schemas/CurrencyAmount'
                commitment_period:
                  $ref: '#/components/schemas/CurrencyAmount'
                contract_total:
                  $ref: '#/components/schemas/CurrencyAmount'
              type: object
          type: object
          nullable: true
        total_months:
          description: The contract length in months (if applicable).
          type: integer
          nullable: true
        discount:
          description: Discount value per relevant time periods.
          properties:
            monthly:
              $ref: '#/components/schemas/CurrencyAmount'
            commitment_period:
              $ref: '#/components/schemas/CurrencyAmountNullable'
            contract_total:
              $ref: '#/components/schemas/CurrencyAmountNullable'
          type: object
        config:
          description: The discount type specific configuration.
          type: object
        start_at:
          description: The start time of the discount period.
          type: string
          format: date-time
        end_at:
          description: The end time of the discount period (if applicable).
          type: string
          format: date-time
          nullable: true
      type: object
    CurrencyAmount:
      description: Currency amount with detailed components.
      properties:
        formatted:
          description: Formatted currency value.
          type: string
        amount:
          description: Plain amount.
          type: number
          format: float
        currency_code:
          description: Currency code.
          type: string
        currency_symbol:
          description: Currency symbol.
          type: string
      type: object
    CurrencyAmountNullable:
      description: Currency amount with detailed components.
      properties:
        formatted:
          description: Formatted currency value.
          type: string
        amount:
          description: Plain amount.
          type: number
          format: float
        currency_code:
          description: Currency code.
          type: string
        currency_symbol:
          description: Currency symbol.
          type: string
      type: object
      nullable: true
    OwnerInfo:
      description: Project owner information that can be exposed to collaborators.
      properties:
        type:
          description: Type of the owner, usually 'user'.
          type: string
        username:
          description: The username of the owner.
          type: string
        display_name:
          description: The full name of the owner.
          type: string
      type: object
    SSHKey:
      description: The ssh key object.
      properties:
        key_id:
          description: The ID of the public key.
          type: integer
        uid:
          description: The internal user ID.
          type: integer
        fingerprint:
          description: The fingerprint of the public key.
          type: string
        title:
          description: The title of the public key.
          type: string
        value:
          description: The actual value of the public key.
          type: string
        changed:
          description: The time of the last key modification (ISO 8601)
          type: string
      type: object
    Plan:
      description: The hosting plan.
      properties:
        name:
          description: The machine name of the plan.
          type: string
        label:
          description: The human-readable name of the plan.
          type: string
      type: object
    Region:
      description: The hosting region.
      properties:
        id:
          description: The ID of the region.
          type: string
        label:
          description: The human-readable name of the region.
          type: string
        zone:
          description: Geographical zone of the region
          type: string
        selection_label:
          description: The label to display when choosing between regions for new projects.
          type: string
        project_label:
          description: The label to display on existing projects.
          type: string
        timezone:
          description: Default timezone of the region
          type: string
        available:
          description: Indicator whether or not this region is selectable during the checkout. Not available regions will never show up during checkout.
          type: boolean
        private:
          description: Indicator whether or not this platform is for private use only.
          type: boolean
        endpoint:
          description: Link to the region API endpoint.
          type: string
        provider:
          description: Information about the region provider.
          properties:
            name:
              type: string
            logo:
              type: string
          type: object
        datacenter:
          description: Information about the region provider data center.
          properties:
            name:
              type: string
            label:
              type: string
            location:
              type: string
          type: object
        environmental_impact:
          description: Information about the region provider's environmental impact.
          properties:
            zone:
              type: string
            carbon_intensity:
              type: string
            green:
              type: boolean
          type: object
      type: object
    Subscription:
      description: The subscription object.
      properties:
        id:
          description: The internal ID of the subscription.
          type: string
        status:
          description: The status of the subscription.
          type: string
          enum:
            - requested
            - provisioning failure
            - provisioning
            - active
            - suspended
            - deleted
        created_at:
          description: The date and time when the subscription was created.
          type: string
          format: date-time
        updated_at:
          description: The date and time when the subscription was last updated.
          type: string
          format: date-time
        owner:
          description: The UUID of the owner.
          type: string
          format: uuid
        owner_info:
          $ref: '#/components/schemas/OwnerInfo'
        vendor:
          description: The machine name of the vendor the subscription belongs to.
          type: string
        plan:
          description: The plan type of the subscription.
          type: string
        environments:
          description: The number of environments which can be provisioned on the project.
          type: integer
        storage:
          description: The total storage available to each environment, in MiB. Only multiples of 1024 are accepted as legal values.
          type: integer
        user_licenses:
          description: The number of chargeable users who currently have access to the project. Manage this value by adding and removing users through the Platform project API. Staff and billing/administrative contacts can be added to a project for no charge. Contact support for questions about user licenses.
          type: integer
        project_id:
          description: The unique ID string of the project.
          type: string
        project_endpoint:
          description: The project API endpoint for the project.
          type: string
        project_title:
          description: The name given to the project. Appears as the title in the UI.
          type: string
        project_region:
          description: The machine name of the region where the project is located. Cannot be changed after project creation.
          type: string
        project_region_label:
          description: The human-readable name of the region where the project is located.
          type: string
        project_ui:
          description: The URL for the project's user interface.
          type: string
        project_options:
          $ref: '#/components/schemas/ProjectOptions'
        agency_site:
          description: True if the project is an agency site.
          type: boolean
        invoiced:
          description: Whether the subscription is invoiced.
          type: boolean
        hipaa:
          description: Whether the project is marked as HIPAA.
          type: boolean
        is_trial_plan:
          description: Whether the project is currently on a trial plan.
          type: boolean
        services:
          description: Details of the attached services.
          type: array
          items:
            description: Details of a service
            type: object
        green:
          description: Whether the subscription is considered green (on a green region, belonging to a green vendor) for billing purposes.
          type: boolean
      type: object
    ProjectOptions:
      description: The project options object.
      properties:
        defaults:
          description: The initial values applied to the project.
          properties:
            settings:
              description: The project settings.
              type: object
            variables:
              description: The project variables.
              type: object
            access:
              description: The project access list.
              type: object
            capabilities:
              description: The project capabilities.
              type: object
          type: object
        enforced:
          description: The enforced values applied to the project.
          properties:
            settings:
              description: The project settings.
              type: object
            capabilities:
              description: The project capabilities.
              type: object
          type: object
        regions:
          description: The available regions.
          type: array
          items:
            type: string
        plans:
          description: The available plans.
          type: array
          items:
            type: string
        billing:
          description: The billing settings.
          type: object
      type: object
    SubscriptionCurrentUsageObject:
      description: A subscription's usage group current usage object.
      properties:
        cpu_app:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        storage_app_services:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        memory_app:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        cpu_services:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        memory_services:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        backup_storage:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        build_cpu:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        build_memory:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        egress_bandwidth:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        ingress_requests:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        logs_fwd_content_size:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        fastly_bandwidth:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
        fastly_requests:
          $ref: '#/components/schemas/UsageGroupCurrentUsageProperties'
      type: object
    UsageGroupCurrentUsageProperties:
      description: Current usage info for a usage group.
      properties:
        title:
          description: The title of the usage group.
          type: string
        type:
          description: The usage group type.
          type: boolean
        current_usage:
          description: The value of current usage for the group.
          type: number
        current_usage_formatted:
          description: The formatted value of current usage for the group.
          type: string
        not_charged:
          description: Whether the group is not charged for the subscription.
          type: boolean
        free_quantity:
          description: The amount of free usage for the group.
          type: number
        free_quantity_formatted:
          description: The formatted amount of free usage for the group.
          type: string
        daily_average:
          description: The daily average usage calculated for the group.
          type: number
        daily_average_formatted:
          description: The formatted daily average usage calculated for the group.
          type: string
      type: object
    HalLinks:
      description: Links to _self, and previous or next page, given that they exist.
      properties:
        self:
          description: The cardinal link to the self resource.
          properties:
            title:
              description: Title of the link
              type: string
            href:
              description: URL of the link
              type: string
          type: object
        previous:
          description: The link to the previous resource page, given that it exists.
          properties:
            title:
              description: Title of the link
              type: string
            href:
              description: URL of the link
              type: string
          type: object
        next:
          description: The link to the next resource page, given that it exists.
          properties:
            title:
              description: Title of the link
              type: string
            href:
              description: URL of the link
              type: string
          type: object
      type: object
    Profile:
      description: The user profile.
      properties:
        id:
          description: The user's unique ID.
          type: string
          format: uuid
        display_name:
          description: The user's display name.
          type: string
        email:
          description: The user's email address.
          type: string
          format: email
        username:
          description: The user's username.
          type: string
        type:
          description: The user's type (user/organization).
          type: string
          enum:
            - user
            - organization
        picture:
          description: The URL of the user's picture.
          type: string
          format: url
        company_type:
          description: The company type.
          type: string
        company_name:
          description: The name of the company.
          type: string
        currency:
          description: A 3-letter ISO 4217 currency code (assigned according to the billing address).
          type: string
        vat_number:
          description: The vat number of the user.
          type: string
        company_role:
          description: The role of the user in the company.
          type: string
        website_url:
          description: The user or company website.
          type: string
        new_ui:
          description: Whether the new UI features are enabled for this user.
          type: boolean
        ui_colorscheme:
          description: The user's chosen color scheme for user interfaces.
          type: string
        default_catalog:
          description: The URL of a catalog file which overrides the default.
          type: string
        project_options_url:
          description: The URL of an account-wide project options file.
          type: string
        marketing:
          description: Flag if the user agreed to receive marketing communication.
          type: boolean
        created_at:
          description: The timestamp representing when the user account was created.
          type: string
          format: date-time
        updated_at:
          description: The timestamp representing when the user account was last modified.
          type: string
          format: date-time
        billing_contact:
          description: The e-mail address of a contact to whom billing notices will be sent.
          type: string
          format: email
        security_contact:
          description: The e-mail address of a contact to whom security notices will be sent.
          type: string
          format: email
        current_trial:
          description: The current trial for the profile.
          properties:
            active:
              description: The trial active status.
              type: boolean
            created:
              description: The trial creation date.
              type: string
              format: date-time
            description:
              description: The trial description.
              type: string
            expiration:
              description: The trial expiration-date.
              type: string
              format: date-time
            current:
              description: The total amount spent by the trial user at this point in time.
              properties:
                formatted:
                  description: The total amount formatted.
                  type: string
                amount:
                  description: The total amount.
                  type: string
                currency:
                  description: The currency.
                  type: string
                currency_symbol:
                  description: Currency symbol.
                  type: string
              type: object
            spend:
              description: The total amount available for the trial.
              properties:
                formatted:
                  description: The total amount formatted.
                  type: string
                amount:
                  description: The total amount.
                  type: string
                currency:
                  description: The currency.
                  type: string
                currency_symbol:
                  description: Currency symbol.
                  type: string
              type: object
            spend_remaining:
              description: The remaining amount available for the trial.
              properties:
                formatted:
                  description: The total amount formatted.
                  type: string
                amount:
                  description: The total amount.
                  type: string
                currency:
                  description: The currency.
                  type: string
                currency_symbol:
                  description: Currency symbol.
                  type: string
                unlimited:
                  description: Spend limit is ignored (in favor of resource limitations).
                  type: boolean
              type: object
            projects:
              description: Projects active under trial
              properties:
                id:
                  description: Trial project ID
                  type: string
                name:
                  description: Trial project name
                  type: string
                total:
                  properties:
                    amount:
                      description: Trial project cost
                      type: integer
                    currency_code:
                      description: Currency code
                      type: string
                    currency_symbol:
                      description: Currency symbol
                      type: string
                    formatted:
                      description: Trial project cost formatted with currency sign
                      type: string
                  type: object
              type: object
            pending_verification:
              description: Required verification method (if applicable).
              type: string
              enum:
                - credit-card
              nullable: true
              deprecated: true
            model:
              description: The trial trial model.
              type: string
            days_remaining:
              description: The amount of days until the trial expires.
              type: integer
          type: object
        invoiced:
          description: The customer is invoiced.
          type: boolean
      type: object
    AddressMetadata:
      description: Information about fields required to express an address.
      properties:
        metadata:
          description: Address field metadata.
          properties:
            required_fields:
              description: Fields required to express the address.
              type: array
              items:
                type: string
            field_labels:
              description: Localized labels for address fields.
              type: object
            show_vat:
              description: Whether this country supports a VAT number.
              type: boolean
          type: object
      type: object
    Ticket:
      description: The support ticket object.
      properties:
        ticket_id:
          description: The ID of the ticket.
          type: integer
        created:
          description: The time when the support ticket was created.
          type: string
          format: date-time
        updated:
          description: The time when the support ticket was updated.
          type: string
          format: date-time
        type:
          description: A type of the ticket.
          type: string
          enum:
            - problem
            - task
            - incident
            - question
        subject:
          description: A title of the ticket.
          type: string
        description:
          description: The description body of the support ticket.
          type: string
        priority:
          description: A priority of the ticket.
          type: string
          enum:
            - low
            - normal
            - high
            - urgent
        followup_tid:
          description: Followup ticket ID. The unique ID of the ticket which this ticket is a follow-up to.
          type: string
        status:
          description: The status of the support ticket.
          type: string
          enum:
            - closed
            - deleted
            - hold
            - new
            - open
            - pending
            - solved
        recipient:
          description: Email address of the ticket recipient, defaults to support@platform.sh.
          type: string
        requester_id:
          description: UUID of the ticket requester.
          type: string
          format: uuid
        submitter_id:
          description: UUID of the ticket submitter.
          type: string
          format: uuid
        assignee_id:
          description: UUID of the ticket assignee.
          type: string
          format: uuid
        organization_id:
          description: A reference id that is usable to find the commerce license.
          type: string
        collaborator_ids:
          description: A list of the collaborators uuids for this ticket.
          type: array
          items:
            type: string
        has_incidents:
          description: Whether or not this ticket has incidents.
          type: boolean
        due:
          description: A time that the ticket is due at.
          type: string
          format: date-time
        tags:
          description: A list of tags assigned to the ticket.
          type: array
          items:
            type: string
        subscription_id:
          description: The internal ID of the subscription.
          type: string
        ticket_group:
          description: Maps to zendesk field 'Request group'.
          type: string
        support_plan:
          description: Maps to zendesk field 'The support plan associated with this ticket.
          type: string
        affected_url:
          description: The affected URL associated with the support ticket.
          type: string
          format: url
        queue:
          description: The queue the support ticket is in.
          type: string
        issue_type:
          description: The issue type of the support ticket.
          type: string
        resolution_time:
          description: Maps to zendesk field 'Resolution Time'.
          type: string
          format: date-time
        response_time:
          description: Maps to zendesk field 'Response Time (time from request to reply).
          type: string
          format: date-time
        project_url:
          description: Maps to zendesk field 'Project URL'.
          type: string
          format: url
        region:
          description: Maps to zendesk field 'Region'.
          type: string
        category:
          description: Maps to zendesk field 'Category'.
          type: string
          enum:
            - access
            - billing_question
            - complaint
            - compliance_question
            - configuration_change
            - general_question
            - incident_outage
            - bug_report
            - onboarding
            - report_a_gui_bug
            - close_my_account
        environment:
          description: Maps to zendesk field 'Environment'.
          type: string
          enum:
            - env_development
            - env_staging
            - env_production
        ticket_sharing_status:
          description: Maps to zendesk field 'Ticket Sharing Status'.
          type: string
          enum:
            - ts_sent_to_platform
            - ts_accepted_by_platform
            - ts_returned_from_platform
            - ts_solved_by_platform
            - ts_rejected_by_platform
        application_ticket_url:
          description: Maps to zendesk field 'Application Ticket URL'.
          type: string
          format: url
        infrastructure_ticket_url:
          description: Maps to zendesk field 'Infrastructure Ticket URL'.
          type: string
          format: url
        jira:
          description: A list of JIRA issues related to the support ticket.
          type: array
          items:
            properties:
              id:
                description: The id of the query.
                type: integer
              ticket_id:
                description: The id of the ticket.
                type: integer
              issue_id:
                description: The issue id number.
                type: integer
              issue_key:
                description: The issue key.
                type: string
              created_at:
                description: The created at timestamp.
                type: number
                format: float
              updated_at:
                description: The updated at timestamp.
                type: number
                format: float
            type: object
        zd_ticket_url:
          description: URL to the customer-facing ticket in Zendesk.
          type: string
          format: url
      type: object
    CurrentUser:
      description: The user object.
      properties:
        id:
          description: The UUID of the owner.
          type: string
          format: uuid
        uuid:
          description: The UUID of the owner.
          type: string
          format: uuid
        username:
          description: The username of the owner.
          type: string
        display_name:
          description: The full name of the owner.
          type: string
        status:
          description: Status of the user. 0 = blocked; 1 = active.
          type: integer
        mail:
          description: The email address of the owner.
          type: string
          format: email
        ssh_keys:
          description: The list of user's public SSH keys.
          type: array
          items:
            $ref: '#/components/schemas/SSHKey'
        has_key:
          description: The indicator whether the user has a public ssh key on file or not.
          type: boolean
        projects:
          type: array
          items:
            properties:
              id:
                description: The unique ID string of the project.
                type: string
              name:
                description: The name given to the project. Appears as the title in the user interface.
                type: string
              title:
                description: The name given to the project. Appears as the title in the user interface.
                type: string
              cluster:
                description: The machine name of the region where the project is located. Cannot be changed after project creation.
                type: string
              cluster_label:
                description: The human-readable name of the region where the project is located.
                type: string
              region:
                description: The machine name of the region where the project is located. Cannot be changed after project creation.
                type: string
              region_label:
                description: The human-readable name of the region where the project is located.
                type: string
              uri:
                description: The URL for the project's user interface.
                type: string
              endpoint:
                description: The project API endpoint for the project.
                type: string
              license_id:
                description: The ID of the subscription.
                type: integer
              owner:
                description: The UUID of the owner.
                type: string
                format: uuid
              owner_info:
                $ref: '#/components/schemas/OwnerInfo'
              plan:
                description: The plan type of the subscription.
                type: string
              subscription_id:
                description: The ID of the subscription.
                type: integer
              status:
                description: The status of the project.
                type: string
              vendor:
                description: The machine name of the vendor the subscription belongs to.
                type: string
              vendor_label:
                description: The machine name of the vendor the subscription belongs to.
                type: string
              vendor_website:
                description: The URL of the vendor the subscription belongs to.
                type: string
                format: url
              vendor_resources:
                description: The link to the resources of the vendor the subscription belongs to.
                type: string
              created_at:
                description: The creation date of the subscription.
                type: string
                format: date-time
            type: object
        sequence:
          description: The sequential ID of the user.
          type: integer
        roles:
          type: array
          items:
            description: The user role name.
            type: string
        picture:
          description: The URL of the user image.
          type: string
          format: url
        tickets:
          description: Number of support tickets by status.
          type: object
        trial:
          description: The indicator whether the user is in trial or not.
          type: boolean
        current_trial:
          type: array
          items:
            properties:
              created:
                description: The ISO timestamp of the trial creation date time.
                type: string
                format: date-time
              description:
                description: The human readable trial description
                type: string
              spend_remaining:
                description: Total spend amount of the voucher minus existing project costs for the existing billing cycle.
                type: string
              expiration:
                description: Date the trial expires.
                type: string
                format: date-time
            type: object
      type: object
    OrganizationInvitation:
      title: OrganizationInvitation
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the invitation.
        state:
          type: string
          enum:
            - pending
            - processing
            - accepted
            - cancelled
            - error
          description: The invitation state.
        organization_id:
          type: string
          description: The ID of the organization.
        email:
          type: string
          format: email
          description: The email address of the invitee.
        owner:
          type: object
          description: The inviter.
          properties:
            id:
              type: string
              format: uuid
              description: The ID of the user.
            display_name:
              type: string
              description: The user's display name.
        created_at:
          type: string
          description: The date and time when the invitation was created.
          format: date-time
        updated_at:
          type: string
          format: date-time
          description: The date and time when the invitation was last updated.
        finished_at:
          type: string
          format: date-time
          description: The date and time when the invitation was finished.
          nullable: true
        permissions:
          $ref: '#/components/schemas/OrganizationPermissions'
      x-examples:
        example-1:
          id: 97f46eca-6276-4993-bfeb-bbb53cba6f08
          state: pending
          organization_id: 01ARZ3NDEKTSV4RRFFQ69G5FAV
          email: bob@example.com
          owner:
            id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
            display_name: Alice
          created_at: '2019-08-24T14:15:22Z'
          updated_at: '2019-08-24T14:15:22Z'
          finished_at: null
          permissions:
            - members
    OrganizationPermissions:
      type: array
      description: The permissions the invitee should be given on the organization.
      items:
        type: string
        enum:
          - admin
          - billing
          - plans
          - members
          - project:create
          - projects:list
    ProjectInvitation:
      title: ''
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the invitation.
        state:
          type: string
          enum:
            - pending
            - processing
            - accepted
            - cancelled
            - error
          description: The invitation state.
        project_id:
          type: string
          description: The ID of the project.
        role:
          type: string
          enum:
            - admin
            - viewer
          description: The project role.
        email:
          type: string
          format: email
          description: The email address of the invitee.
        owner:
          type: object
          description: The inviter.
          properties:
            id:
              type: string
              format: uuid
              description: The ID of the user.
            display_name:
              type: string
              description: The user's display name.
        created_at:
          type: string
          format: date-time
          description: The date and time when the invitation was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the invitation was last updated.
        finished_at:
          type: string
          format: date-time
          nullable: true
          description: The date and time when the invitation was finished.
        environments:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: The ID of the environment.
              type:
                type: string
                description: The environment type.
              role:
                type: string
                enum:
                  - admin
                  - viewer
                  - contributor
                description: The environment role.
              title:
                type: string
                description: The environment title.
      x-examples:
        example-1:
          id: 97f46eca-6276-4993-bfeb-bbb53cba6f08
          state: pending
          project_id: 652soceglkw4u
          role: admin
          email: bob@example.com
          owner:
            id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
            display_name: Alice
          created_at: '2019-08-24T14:15:22Z'
          updated_at: '2019-08-24T14:15:22Z'
          finished_at: null
          environments: []
    User:
      description: ''
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the user.
        deactivated:
          type: boolean
          description: Whether the user has been deactivated.
        namespace:
          type: string
          description: The namespace in which the user's username is unique.
        username:
          type: string
          description: The user's username.
        email:
          type: string
          format: email
          description: The user's email address.
        email_verified:
          type: boolean
          description: Whether the user's email address has been verified.
        first_name:
          type: string
          description: The user's first name.
        last_name:
          type: string
          description: The user's last name.
        picture:
          type: string
          format: uri
          description: The user's picture.
        company:
          type: string
          description: The user's company.
        website:
          type: string
          format: uri
          description: The user's website.
        country:
          type: string
          maxLength: 2
          minLength: 2
          description: The user's ISO 3166-1 alpha-2 country code.
        created_at:
          type: string
          format: date-time
          description: The date and time when the user was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the user was last updated.
        consented_at:
          type: string
          format: date-time
          description: The date and time when the user consented to the Terms of Service.
        consent_method:
          type: string
          description: The method by which the user consented to the Terms of Service.
          enum:
            - opt-in
            - text-ref
      required:
        - id
        - deactivated
        - namespace
        - username
        - email
        - email_verified
        - first_name
        - last_name
        - picture
        - company
        - website
        - country
        - created_at
        - updated_at
      x-examples:
        example-1:
          company: Platform.sh SAS
          country: FR
          created_at: '2010-04-19T10:00:00Z'
          deactivated: false
          email: hello@platform.sh
          email_verified: true
          first_name: Hello
          id: d81c8ee2-44b3-429f-b944-a33ad7437690
          last_name: World
          namespace: platformsh
          picture: https://accounts.platform.sh/profiles/blimp_profile/themes/platformsh_theme/images/mail/logo.png
          updated_at: '2021-01-27T13:58:38.06968Z'
          username: platform-sh
          website: https://platform.sh
          consented_at: '2010-04-19T10:00:00Z'
          consent_method: opt-in
    Error:
      description: ''
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        code:
          type: number
        detail:
          type: object
        title:
          type: string
      title: ''
      x-examples:
        example-1:
          status: Invalid input
          message: This field is required.
          code: 400
          detail:
            field:
              - This field is required.
          title: Bad Request
    ListLinks:
      type: object
      properties:
        self:
          type: object
          description: Link to the current set of items.
          properties:
            href:
              type: string
              description: URL of the link.
        previous:
          type: object
          description: Link to the previous set of items.
          properties:
            href:
              type: string
              description: URL of the link.
        next:
          type: object
          description: Link to the next set of items.
          properties:
            href:
              type: string
              description: URL of the link
    APIToken:
      description: ''
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the token.
        name:
          type: string
          description: The token name.
        mfa_on_creation:
          type: boolean
          description: Whether the user had multi-factor authentication (MFA) enabled when they created the token.
        token:
          type: string
          description: The token in plain text (available only when created).
        created_at:
          type: string
          format: date-time
          description: The date and time when the token was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the token was last updated.
        last_used_at:
          type: string
          format: date-time
          nullable: true
          description: |
            The date and time when the token was last exchanged for an access token. This will be <code>null</code> for a token which has never been used, or not used since this API property was added. <strong>Note:</strong> After an API token is used, the derived access token may continue to be used until its expiry. This also applies to SSH certificate(s) derived from the access token.
      x-examples:
        example-1:
          created_at: '2019-01-29T08:17:47Z'
          id: 660aa36d-23cf-402b-8889-63af71967f2b
          name: Token for CI
          updated_at: '2019-01-29T08:17:47Z'
    Connection:
      description: ''
      type: object
      properties:
        provider:
          type: string
          description: The name of the federation provider.
        provider_type:
          type: string
          description: The type of the federation provider.
        is_mandatory:
          type: boolean
          description: Whether the federated login connection is mandatory.
        subject:
          type: string
          description: The identity on the federation provider.
        email_address:
          type: string
          description: The email address presented on the federated login connection.
        created_at:
          type: string
          format: date-time
          description: The date and time when the connection was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the connection was last updated.
      x-examples:
        example-1:
          created_at: '2021-05-24T07:20:35.683264Z'
          provider: acme-inc-oidc
          provider_type: okta
          subject: '1621840835647277693'
          email_address: name@example.com
          updated_at: '2021-05-24T07:20:35.683264Z'
    OrganizationMFAEnforcement:
      description: The MFA enforcement for the organization.
      type: object
      properties:
        enforce_mfa:
          type: boolean
          description: Whether the MFA enforcement is enabled.
      x-examples:
        example-1:
          enforce_mfa: true
    OrganizationSSOConfig:
      description: The SSO configuration for the organization.
      type: object
      allOf:
        - oneOf:
            - $ref: '#/components/schemas/GoogleSSOConfig'
        - type: object
          properties:
            organization_id:
              type: string
              description: Organization ID.
            enforced:
              type: boolean
              description: Whether the configuration is enforced for all the organization members.
            created_at:
              type: string
              description: The date and time when the SSO configuration was created.
              format: date-time
            updated_at:
              type: string
              format: date-time
              description: The date and time when the SSO configuration was last updated.
      x-examples:
        example-1:
          organization_id: 01EY8BWRSQ56EY1TDC32PARAJS
          provider_type: google
          domain: example.com
          enforced: true
          created_at: '2021-05-24T07:20:35.683264Z'
          updated_at: '2021-05-24T07:20:35.683264Z'
    GoogleSSOConfig:
      type: object
      title: GoogleSSO
      properties:
        provider_type:
          type: string
          description: SSO provider type.
          enum:
            - google
        domain:
          type: string
          description: Google hosted domain.
    Team:
      description: ''
      type: object
      properties:
        id:
          type: string
          format: ulid
          description: The ID of the team.
        organization_id:
          type: string
          format: ulid
          description: The ID of the parent organization.
        label:
          type: string
          description: The human-readable label of the team.
        project_permissions:
          type: array
          description: Project permissions that are granted to the team.
          items:
            type: string
            enum:
              - admin
              - viewer
              - development:admin
              - development:contributor
              - development:viewer
              - staging:admin
              - staging:contributor
              - staging:viewer
              - production:admin
              - production:contributor
              - production:viewer
        counts:
          type: object
          properties:
            member_count:
              type: integer
              description: Total count of members of the team.
            project_count:
              type: integer
              description: Total count of projects that the team has access to.
        created_at:
          type: string
          format: date-time
          description: The date and time when the team was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the team was last updated.
      x-examples:
        example-1:
          id: 01FVMKN9KHVWWVY488AVKDWHR3
          organization_id: 01EY8BWRSQ56EY1TDC32PARAJS
          counts:
            member_count: 12
            project_count: 5
          label: Contractors
          created_at: '2021-05-24T07:20:35.683264Z'
          updated_at: '2021-05-24T07:20:35.683264Z'
          project_permissions:
            - viewer
            - staging:contributor
            - development:admin
    TeamMember:
      type: object
      properties:
        team_id:
          type: string
          format: ulid
          description: The ID of the team.
        user_id:
          type: string
          format: uuid
          description: The ID of the user.
        created_at:
          type: string
          format: date-time
          description: The date and time when the team member was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the team member was last updated.
    UserReference:
      description: The referenced user, or null if it no longer exists.
      type: object
      nullable: true
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the user.
        username:
          type: string
          description: The user's username.
        email:
          type: string
          format: email
          description: The user's email address.
        first_name:
          type: string
          description: The user's first name.
        last_name:
          type: string
          description: The user's last name.
        picture:
          type: string
          format: uri
          description: The user's picture.
        mfa_enabled:
          type: boolean
          description: 'Whether the user has enabled MFA. Note: the built-in MFA feature may not be necessary if the user is linked to a mandatory SSO provider that itself supports MFA (see "sso_enabled\").'
        sso_enabled:
          type: boolean
          description: Whether the user is linked to a mandatory SSO provider.
      x-examples:
        example-1:
          email: hello@platform.sh
          first_name: Hello
          id: d81c8ee2-44b3-429f-b944-a33ad7437690
          last_name: World
          picture: https://accounts.platform.sh/profiles/blimp_profile/themes/platformsh_theme/images/mail/logo.png
          username: platform-sh
          mfa_enabled: true
          sso_enabled: true
    TeamReference:
      description: The referenced team, or null if it no longer exists.
      type: object
      properties:
        id:
          type: string
          format: ulid
          description: The ID of the team.
        organization_id:
          type: string
          format: ulid
          description: The ID of the parent organization.
        label:
          type: string
          description: The human-readable label of the team.
        project_permissions:
          type: array
          description: Project permissions that are granted to the team.
          items:
            type: string
            enum:
              - admin
              - viewer
              - development:admin
              - development:contributor
              - development:viewer
              - staging:admin
              - staging:contributor
              - staging:viewer
              - production:admin
              - production:contributor
              - production:viewer
        counts:
          type: object
          properties:
            member_count:
              type: integer
              description: Total count of members of the team.
            project_count:
              type: integer
              description: Total count of projects that the team has access to.
        created_at:
          type: string
          format: date-time
          description: The date and time when the team was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the team was last updated.
      x-examples:
        example-1:
          id: 01FVMKN9KHVWWVY488AVKDWHR3
          organization_id: 01EY8BWRSQ56EY1TDC32PARAJS
          counts:
            member_count: 12
            project_count: 5
          label: Contractors
          project_permissions:
            - viewer
            - staging:contributor
            - development:admin
          created_at: '2021-05-24T07:20:35.683264Z'
          updated_at: '2021-05-24T07:20:35.683264Z'
    DateTimeFilter:
      type: object
      properties:
        eq:
          type: string
          description: Equal
        ne:
          type: string
          description: Not equal
        between:
          type: string
          description: Between (comma-separated list)
        gt:
          type: string
          description: Greater than
        gte:
          type: string
          description: Greater than or equal
        lt:
          type: string
          description: Less than
        lte:
          type: string
          description: Less than or equal
    StringFilter:
      type: object
      properties:
        eq:
          type: string
          description: Equal
        ne:
          type: string
          description: Not equal
        in:
          type: string
          description: In (comma-separated list)
        nin:
          type: string
          description: Not in (comma-separated list)
        between:
          type: string
          description: Between (comma-separated list)
        contains:
          type: string
          description: Contains
        starts:
          type: string
          description: Starts with
        ends:
          type: string
          description: Ends with
    AcceptedResponse:
      type: object
      properties:
        status:
          type: string
          title: The status text of the response
        code:
          type: integer
          title: The status code of the response
      required:
        - status
        - code
      additionalProperties: false
    Activity:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Type
        parameters:
          type: object
          title: Parameters
        project:
          type: string
          title: Project
        integration:
          type: string
          title: Integration
        environments:
          type: array
          items:
            type: string
          title: Environments
        state:
          type: string
          enum:
            - cancelled
            - complete
            - in_progress
            - pending
            - scheduled
            - staged
          title: State
        result:
          type: string
          enum:
            - failure
            - success
          nullable: true
          title: Result
        started_at:
          type: string
          format: date-time
          nullable: true
          title: Start date
        completed_at:
          type: string
          format: date-time
          nullable: true
          title: Completion date
        completion_percent:
          type: integer
          title: Completion percentage
        cancelled_at:
          type: string
          format: date-time
          nullable: true
          title: Cancellation date
        timings:
          type: object
          additionalProperties:
            type: number
            format: float
          title: Timings related to different phases of the activity
        log:
          type: string
          title: Log
          deprecated: true
          x-stability: DEPRECATED
        payload:
          type: object
          title: Payload
        description:
          type: string
          nullable: true
          title: The description of the activity, formatted with HTML
        text:
          type: string
          nullable: true
          title: The description of the activity, formatted as plain text
        expires_at:
          type: string
          format: date-time
          nullable: true
          title: The date at which the activity will expire.
      required:
        - created_at
        - updated_at
        - type
        - parameters
        - project
        - state
        - result
        - started_at
        - completed_at
        - completion_percent
        - cancelled_at
        - timings
        - log
        - payload
        - description
        - text
        - expires_at
      additionalProperties: false
    ActivityCollection:
      type: array
      items:
        $ref: '#/components/schemas/Activity'
    Backup:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        id:
          type: string
          title: The backup name/id (used for purging)
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        status:
          type: string
          enum:
            - CREATED
            - DELETING
          title: The status of the backup
        expires_at:
          type: string
          format: date-time
          nullable: true
          title: Expiration date of the backup
        index:
          type: integer
          nullable: true
          title: The index of this automated backup
        commit_id:
          type: string
          title: The ID of the code commit attached to the backup
        environment:
          type: string
          title: The environment the backup belongs to
        safe:
          type: boolean
          title: Whether this backup was taken in a safe way
        size_of_volumes:
          type: integer
          nullable: true
          title: Total size of volumes backed up
        size_used:
          type: integer
          nullable: true
          title: Total size of space used on volumes backed up
        deployment:
          type: string
          nullable: true
          title: The current deployment at the time of backup.
        restorable:
          type: boolean
          title: Whether the backup is restorable
        automated:
          type: boolean
          title: Whether the backup is automated
      required:
        - created_at
        - updated_at
        - id
        - attributes
        - status
        - expires_at
        - index
        - commit_id
        - environment
        - safe
        - size_of_volumes
        - size_used
        - deployment
        - restorable
        - automated
      additionalProperties: false
    BackupCollection:
      type: array
      items:
        $ref: '#/components/schemas/Backup'
    BitbucketIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        app_credentials:
          type: object
          properties:
            key:
              type: string
              title: The OAuth consumer key.
          required:
            - key
          additionalProperties: false
          nullable: true
          title: The OAuth2 consumer information (optional).
        addon_credentials:
          type: object
          properties:
            addon_key:
              type: string
              title: The addon key (public identifier).
            client_key:
              type: string
              title: The client key (public identifier).
          required:
            - addon_key
            - client_key
          additionalProperties: false
          nullable: true
          title: The addon credential information (optional).
        repository:
          type: string
          title: The Bitbucket repository (in the form `user/repo`).
        build_pull_requests:
          type: boolean
          title: Whether or not to build pull requests.
        pull_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building merge requests.
        resync_pull_requests:
          type: boolean
          title: Whether or not pull request environment data should be re-synced on every build.
      required:
        - created_at
        - updated_at
        - type
        - fetch_branches
        - prune_branches
        - environment_init_resources
        - repository
        - build_pull_requests
        - pull_requests_clone_parent_data
        - resync_pull_requests
      additionalProperties: false
    BitbucketIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        app_credentials:
          type: object
          properties:
            key:
              type: string
              title: The OAuth consumer key.
            secret:
              type: string
              title: The OAuth consumer secret.
          required:
            - key
            - secret
          additionalProperties: false
          nullable: true
          title: The OAuth2 consumer information (optional).
        addon_credentials:
          type: object
          properties:
            addon_key:
              type: string
              title: The addon key (public identifier).
            client_key:
              type: string
              title: The client key (public identifier).
            shared_secret:
              type: string
              title: The secret of the client.
          required:
            - addon_key
            - client_key
            - shared_secret
          additionalProperties: false
          nullable: true
          title: The addon credential information (optional).
        repository:
          type: string
          title: The Bitbucket repository (in the form `user/repo`).
        build_pull_requests:
          type: boolean
          title: Whether or not to build pull requests.
        pull_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building merge requests.
        resync_pull_requests:
          type: boolean
          title: Whether or not pull request environment data should be re-synced on every build.
      required:
        - type
        - repository
      additionalProperties: false
    BitbucketIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        app_credentials:
          type: object
          properties:
            key:
              type: string
              title: The OAuth consumer key.
            secret:
              type: string
              title: The OAuth consumer secret.
          required:
            - key
            - secret
          additionalProperties: false
          nullable: true
          title: The OAuth2 consumer information (optional).
        addon_credentials:
          type: object
          properties:
            addon_key:
              type: string
              title: The addon key (public identifier).
            client_key:
              type: string
              title: The client key (public identifier).
            shared_secret:
              type: string
              title: The secret of the client.
          required:
            - addon_key
            - client_key
            - shared_secret
          additionalProperties: false
          nullable: true
          title: The addon credential information (optional).
        repository:
          type: string
          title: The Bitbucket repository (in the form `user/repo`).
        build_pull_requests:
          type: boolean
          title: Whether or not to build pull requests.
        pull_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building merge requests.
        resync_pull_requests:
          type: boolean
          title: Whether or not pull request environment data should be re-synced on every build.
      required:
        - type
        - repository
      additionalProperties: false
    BitbucketServerIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        url:
          type: string
          title: The base URL of the Bitbucket Server installation.
        username:
          type: string
          title: The Bitbucket Server user.
        project:
          type: string
          title: The Bitbucket Server project
        repository:
          type: string
          title: The Bitbucket Server repository
        build_pull_requests:
          type: boolean
          title: Whether or not to build pull requests.
        pull_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building merge requests.
      required:
        - created_at
        - updated_at
        - type
        - fetch_branches
        - prune_branches
        - environment_init_resources
        - url
        - username
        - project
        - repository
        - build_pull_requests
        - pull_requests_clone_parent_data
      additionalProperties: false
    BitbucketServerIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        url:
          type: string
          title: The base URL of the Bitbucket Server installation.
        username:
          type: string
          title: The Bitbucket Server user.
        token:
          type: string
          title: The Bitbucket Server personal access token.
        project:
          type: string
          title: The Bitbucket Server project
        repository:
          type: string
          title: The Bitbucket Server repository
        build_pull_requests:
          type: boolean
          title: Whether or not to build pull requests.
        pull_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building merge requests.
      required:
        - type
        - url
        - username
        - token
        - project
        - repository
      additionalProperties: false
    BitbucketServerIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        url:
          type: string
          title: The base URL of the Bitbucket Server installation.
        username:
          type: string
          title: The Bitbucket Server user.
        token:
          type: string
          title: The Bitbucket Server personal access token.
        project:
          type: string
          title: The Bitbucket Server project
        repository:
          type: string
          title: The Bitbucket Server repository
        build_pull_requests:
          type: boolean
          title: Whether or not to build pull requests.
        pull_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building merge requests.
      required:
        - type
        - url
        - username
        - token
        - project
        - repository
      additionalProperties: false
    BlackfireIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        environments_credentials:
          type: object
          additionalProperties:
            type: object
            properties:
              server_uuid:
                type: string
                title: Environment server UUID
              server_token:
                type: string
                title: Environment server token
            required:
              - server_uuid
              - server_token
            additionalProperties: false
          title: Blackfire environments credentials
        continuous_profiling:
          type: boolean
          title: Whether continuous profiling is enabled for the project
      required:
        - created_at
        - updated_at
        - type
        - environments_credentials
        - continuous_profiling
      additionalProperties: false
    BlackfireIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
      required:
        - type
      additionalProperties: false
    BlackfireIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
      required:
        - type
      additionalProperties: false
    Blob:
      type: object
      properties:
        sha:
          type: string
          title: The identifier of the tag
        size:
          type: integer
          title: The size of the blob
        encoding:
          type: string
          enum:
            - base64
            - utf-8
          title: The encoding of the contents
        content:
          type: string
          title: The contents
      required:
        - sha
        - size
        - encoding
        - content
      additionalProperties: false
    Certificate:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        certificate:
          type: string
          title: The PEM-encoded certificate
        chain:
          type: array
          items:
            type: string
          title: Certificate chain
        is_provisioned:
          type: boolean
          title: Whether this certificate is automatically provisioned
        is_invalid:
          type: boolean
          title: Whether this certificate should be skipped during provisioning
        is_root:
          type: boolean
          title: Whether this certificate is root type
        domains:
          type: array
          items:
            type: string
          title: The domains covered by this certificate
        auth_type:
          type: array
          items:
            type: string
          title: The type of authentication the certificate supports
        issuer:
          type: array
          items:
            type: object
            properties:
              oid:
                type: string
                title: The OID of the attribute
              alias:
                type: string
                nullable: true
                title: The alias of the attribute, if known
              value:
                type: string
                title: The value
            required:
              - oid
              - alias
              - value
            additionalProperties: false
          title: The issuer of the certificate
        expires_at:
          type: string
          format: date-time
          title: Expiration date
      required:
        - created_at
        - updated_at
        - certificate
        - chain
        - is_provisioned
        - is_invalid
        - is_root
        - domains
        - auth_type
        - issuer
        - expires_at
      additionalProperties: false
    CertificateCollection:
      type: array
      items:
        $ref: '#/components/schemas/Certificate'
    CertificateCreateInput:
      type: object
      properties:
        certificate:
          type: string
          title: The PEM-encoded certificate
        key:
          type: string
          title: The PEM-encoded private key
        chain:
          type: array
          items:
            type: string
          title: Certificate chain
        is_invalid:
          type: boolean
          title: Whether this certificate should be skipped during provisioning
      required:
        - certificate
        - key
      additionalProperties: false
    CertificatePatch:
      type: object
      properties:
        chain:
          type: array
          items:
            type: string
          title: Certificate chain
        is_invalid:
          type: boolean
          title: Whether this certificate should be skipped during provisioning
      additionalProperties: false
    Commit:
      type: object
      properties:
        sha:
          type: string
          title: The identifier of the commit
        author:
          type: object
          properties:
            date:
              type: string
              format: date-time
              title: The time of the author or committer
            name:
              type: string
              title: The name of the author or committer
            email:
              type: string
              title: The email of the author or committer
          required:
            - date
            - name
            - email
          additionalProperties: false
          title: The information about the author
        committer:
          type: object
          properties:
            date:
              type: string
              format: date-time
              title: The time of the author or committer
            name:
              type: string
              title: The name of the author or committer
            email:
              type: string
              title: The email of the author or committer
          required:
            - date
            - name
            - email
          additionalProperties: false
          title: The information about the committer
        message:
          type: string
          title: The commit message
        tree:
          type: string
          title: The identifier of the tree
        parents:
          type: array
          items:
            type: string
          title: The identifiers of the parents of the commit
      required:
        - sha
        - author
        - committer
        - message
        - tree
        - parents
      additionalProperties: false
    DedicatedDeploymentTarget:
      type: object
      properties:
        type:
          type: string
          enum:
            - dedicated
            - enterprise
            - local
          title: The type of the deployment target.
        name:
          type: string
          title: The name of the deployment target.
        deploy_host:
          type: string
          nullable: true
          title: The host to deploy to.
        deploy_port:
          type: integer
          nullable: true
          title: The port to deploy to.
        ssh_host:
          type: string
          nullable: true
          title: The host to use to SSH to app containers.
        hosts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                nullable: true
                title: The identifier of the host.
              type:
                type: string
                enum:
                  - core
                  - satellite
                title: The type of the deployment to this host.
              services:
                type: array
                items:
                  type: string
                nullable: true
                title: The services assigned to this host
            required:
              - id
              - type
              - services
            additionalProperties: false
          nullable: true
          title: The hosts of the deployment target.
        auto_mounts:
          type: boolean
          title: Whether to take application mounts from the pushed data or the deployment target.
        excluded_mounts:
          type: array
          items:
            type: string
          title: Directories that should not be mounted
        enforced_mounts:
          type: object
          title: Mounts which are always injected into pushed (e.g. enforce /var/log to be a local mount).
        auto_crons:
          type: boolean
          title: Whether to take application crons from the pushed data or the deployment target.
        auto_nginx:
          type: boolean
          title: Whether to take application crons from the pushed data or the deployment target.
        maintenance_mode:
          type: boolean
          title: Whether to perform deployments or not
        guardrails_phase:
          type: integer
          title: which phase of guardrails are we in
      required:
        - type
        - name
        - deploy_host
        - deploy_port
        - ssh_host
        - hosts
        - auto_mounts
        - excluded_mounts
        - enforced_mounts
        - auto_crons
        - auto_nginx
        - maintenance_mode
        - guardrails_phase
      additionalProperties: false
    DedicatedDeploymentTargetCreateInput:
      type: object
      properties:
        type:
          type: string
          enum:
            - dedicated
            - enterprise
            - local
          title: The type of the deployment target.
        name:
          type: string
          title: The name of the deployment target.
        enforced_mounts:
          type: object
          title: Mounts which are always injected into pushed (e.g. enforce /var/log to be a local mount).
      required:
        - type
        - name
      additionalProperties: false
    DedicatedDeploymentTargetPatch:
      type: object
      properties:
        type:
          type: string
          enum:
            - dedicated
            - enterprise
            - local
          title: The type of the deployment target.
        name:
          type: string
          title: The name of the deployment target.
        enforced_mounts:
          type: object
          title: Mounts which are always injected into pushed (e.g. enforce /var/log to be a local mount).
      required:
        - type
        - name
      additionalProperties: false
    Deployment:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        fingerprint:
          type: string
          title: The fingerprint of the deployment
        cluster_name:
          type: string
          title: The name of the cluster.
        project_info:
          type: object
          properties:
            title:
              type: string
              title: Title
            name:
              type: string
              title: Name
            namespace:
              type: string
              nullable: true
              title: Namespace
            organization:
              type: string
              nullable: true
              title: Organization
            capabilities:
              type: object
              title: Capabilities
            settings:
              type: object
              title: Settings
          required:
            - title
            - name
            - namespace
            - organization
            - capabilities
            - settings
          additionalProperties: false
          title: Project Info
        environment_info:
          type: object
          properties:
            name:
              type: string
              title: The machine name of the environment
            status:
              type: string
              title: The enviroment status
            is_main:
              type: boolean
              title: Is this environment the main environment
            is_production:
              type: boolean
              title: Is this environment a production environment
            constraints:
              type: object
              title: Constraints of the environment's deployment
            reference:
              type: string
              title: The reference in Git for this environment
            machine_name:
              type: string
              title: The machine name of the environment
            environment_type:
              type: string
              title: The type of environment (Production, Staging or Development)
            links:
              type: object
              title: Links
          required:
            - name
            - status
            - is_main
            - is_production
            - constraints
            - reference
            - machine_name
            - environment_type
            - links
          additionalProperties: false
          title: Environment Info
        deployment_target:
          type: string
          title: The deployment target.
        vpn:
          type: object
          properties:
            version:
              type: integer
              enum:
                - 1
                - 2
              title: The IKE version to use (1 or 2)
            aggressive:
              type: string
              enum:
                - 'no'
                - 'yes'
              title: Whether to use IKEv1 Aggressive or Main Mode
            modeconfig:
              type: string
              enum:
                - pull
                - push
              title: Defines which mode is used to assign a virtual IP (must be the same on both sides)
            authentication:
              type: string
              title: The authentication scheme
            gateway_ip:
              type: string
              title: Remote gateway IP
            identity:
              type: string
              nullable: true
              title: The identity of the ipsec participant
            second_identity:
              type: string
              nullable: true
              title: The second identity of the ipsec participant
            remote_identity:
              type: string
              nullable: true
              title: The identity of the remote ipsec participant
            remote_subnets:
              type: array
              items:
                type: string
              title: Remote subnets (CIDR notation)
            ike:
              type: string
              title: The IKE algorithms to negotiate for this VPN connection.
            esp:
              type: string
              title: The ESP algorithms to negotiate for this VPN connection.
            ikelifetime:
              type: string
              title: The lifetime of the IKE exchange.
            lifetime:
              type: string
              title: The lifetime of the ESP exchange.
            margintime:
              type: string
              title: 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
        http_access:
          type: object
          properties:
            is_enabled:
              type: boolean
              title: Whether http_access control is enabled
            addresses:
              type: array
              items:
                type: object
                properties:
                  permission:
                    type: string
                    enum:
                      - allow
                      - deny
                    title: Permission
                  address:
                    type: string
                    title: IP address or CIDR
                required:
                  - permission
                  - address
                additionalProperties: false
              title: Address grants
            basic_auth:
              type: object
              additionalProperties:
                type: string
              title: Basic auth grants
          required:
            - is_enabled
            - addresses
            - basic_auth
          additionalProperties: false
          title: HTTP access permissions
        enable_smtp:
          type: boolean
          title: Whether to configure SMTP for this environment.
        restrict_robots:
          type: boolean
          title: Whether to restrict robots for this environment.
        variables:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                title: Name of the variable
              value:
                type: string
                title: Value of the variable
              is_sensitive:
                type: boolean
                title: The variable is sensitive
              is_json:
                type: boolean
                title: The variable is a JSON string
              visible_build:
                type: boolean
                title: The variable is visible during build
              visible_runtime:
                type: boolean
                title: The variable is visible at runtime
            required:
              - name
              - is_sensitive
              - is_json
              - visible_build
              - visible_runtime
            additionalProperties: false
          title: The variables applying to this environment
        access:
          type: array
          items:
            type: object
            properties:
              entity_id:
                type: string
                title: Entity ID
              role:
                type: string
                enum:
                  - admin
                  - contributor
                  - viewer
                title: Role
            required:
              - entity_id
              - role
            additionalProperties: false
          title: Access control definition for this enviroment
        subscription:
          type: object
          properties:
            license_uri:
              type: string
              title: 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
            environments:
              type: integer
              title: Number of environments
            storage:
              type: integer
              title: Size of storage (in MB)
            included_users:
              type: integer
              title: Number of users
            subscription_management_uri:
              type: string
              title: URI for managing the subscription
            restricted:
              type: boolean
              title: True if subscription attributes, like number of users, are frozen
            suspended:
              type: boolean
              title: Whether or not the subscription is suspended
            user_licenses:
              type: integer
              title: Current number of users
            resources:
              type: object
              properties:
                container_profiles:
                  type: boolean
                  title: Enable support for customizable container profiles.
                production:
                  type: object
                  properties:
                    legacy_development:
                      type: boolean
                      title: Enable legacy development sizing for this environment type.
                    max_cpu:
                      type: number
                      format: float
                      nullable: true
                      title: Maximum number of allocated CPU units.
                    max_memory:
                      type: integer
                      nullable: true
                      title: Maximum amount of allocated RAM.
                    max_environments:
                      type: integer
                      nullable: true
                      title: Maximum number of environments
                  required:
                    - legacy_development
                    - max_cpu
                    - max_memory
                    - max_environments
                  additionalProperties: false
                  title: Resources for production environments
                development:
                  type: object
                  properties:
                    legacy_development:
                      type: boolean
                      title: Enable legacy development sizing for this environment type.
                    max_cpu:
                      type: number
                      format: float
                      nullable: true
                      title: Maximum number of allocated CPU units.
                    max_memory:
                      type: integer
                      nullable: true
                      title: Maximum amount of allocated RAM.
                    max_environments:
                      type: integer
                      nullable: true
                      title: Maximum number of environments
                  required:
                    - legacy_development
                    - max_cpu
                    - max_memory
                    - max_environments
                  additionalProperties: false
                  title: Resources for development environments
              required:
                - container_profiles
                - production
                - development
              additionalProperties: false
              title: Resources limits
            resource_validation_url:
              type: string
              title: URL for resources validation
            image_types:
              type: object
              properties:
                only:
                  type: array
                  items:
                    type: string
                  title: Image types to be allowed use.
                exclude:
                  type: array
                  items:
                    type: string
                  title: Image types to be denied use.
              additionalProperties: false
              title: Restricted and denied image types
          required:
            - license_uri
            - storage
            - included_users
            - subscription_management_uri
            - restricted
            - suspended
            - user_licenses
          additionalProperties: false
          title: Subscription
        services:
          type: object
          additionalProperties:
            type: object
            properties:
              type:
                type: string
                title: The service type.
              size:
                type: string
                enum:
                  - 2XL
                  - 4XL
                  - AUTO
                  - L
                  - M
                  - S
                  - XL
                title: The service size.
              disk:
                type: integer
                nullable: true
                title: The size of the disk.
              access:
                type: object
                title: The configuration of the service.
              configuration:
                type: object
                title: The configuration of the service.
              relationships:
                type: object
                additionalProperties:
                  type: string
                title: 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: The IP protocol to apply the restriction on.
                        ips:
                          type: array
                          items:
                            type: string
                          title: The IP range in CIDR notation to apply the restriction on.
                        domains:
                          type: array
                          items:
                            type: string
                          title: Domains of the restriction.
                        ports:
                          type: array
                          items:
                            type: integer
                          title: The port to apply the restriction on.
                      required:
                        - protocol
                        - ips
                        - domains
                        - ports
                      additionalProperties: false
                    title: Outbound firewall restrictions
                required:
                  - outbound
                additionalProperties: false
                nullable: true
                title: Firewall
              resources:
                type: object
                properties:
                  base_memory:
                    type: integer
                    nullable: true
                    title: The base memory for the container
                  memory_ratio:
                    type: integer
                    nullable: true
                    title: The amount of memory to allocate per units of CPU
                  profile_size:
                    type: string
                    nullable: true
                    title: Selected size from container profile
                  minimum:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: Cpu value
                      memory:
                        type: integer
                        title: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: The minimum resources for this service
                  default:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: Cpu value
                      memory:
                        type: integer
                        title: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: The default resources for this service
                  disk:
                    type: object
                    properties:
                      temporary:
                        type: integer
                        nullable: true
                        title: Temporary
                      instance:
                        type: integer
                        nullable: true
                        title: Instance
                      storage:
                        type: integer
                        nullable: true
                        title: Storage
                    required:
                      - temporary
                      - instance
                      - storage
                    additionalProperties: false
                    nullable: true
                    title: The disks resources
                required:
                  - base_memory
                  - memory_ratio
                  - profile_size
                  - minimum
                  - default
                  - disk
                additionalProperties: false
                nullable: true
                title: Resources
              container_profile:
                type: string
                nullable: true
                title: Selected container profile for the service
              endpoints:
                type: object
                nullable: true
                title: Endpoints
            required:
              - type
              - size
              - disk
              - access
              - configuration
              - relationships
              - firewall
              - resources
              - container_profile
              - endpoints
            additionalProperties: false
          title: Services
        routes:
          type: object
          additionalProperties:
            oneOf:
              - $ref: '#/components/schemas/ProxyRoute'
              - $ref: '#/components/schemas/RedirectRoute'
              - $ref: '#/components/schemas/UpstreamRoute'
          title: Routes
        webapps:
          type: object
          additionalProperties:
            type: object
            properties:
              resources:
                type: object
                properties:
                  base_memory:
                    type: integer
                    nullable: true
                    title: The base memory for the container
                  memory_ratio:
                    type: integer
                    nullable: true
                    title: The amount of memory to allocate per units of CPU
                  profile_size:
                    type: string
                    nullable: true
                    title: Selected size from container profile
                  minimum:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: Cpu value
                      memory:
                        type: integer
                        title: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: The minimum resources for this service
                  default:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: Cpu value
                      memory:
                        type: integer
                        title: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: The default resources for this service
                  disk:
                    type: object
                    properties:
                      temporary:
                        type: integer
                        nullable: true
                        title: Temporary
                      instance:
                        type: integer
                        nullable: true
                        title: Instance
                      storage:
                        type: integer
                        nullable: true
                        title: Storage
                    required:
                      - temporary
                      - instance
                      - storage
                    additionalProperties: false
                    nullable: true
                    title: The disks resources
                required:
                  - base_memory
                  - memory_ratio
                  - profile_size
                  - minimum
                  - default
                  - disk
                additionalProperties: false
                nullable: true
                title: Resources
              size:
                type: string
                enum:
                  - 2XL
                  - 4XL
                  - AUTO
                  - L
                  - M
                  - S
                  - XL
                  - XS
                title: The container size for this application in production. Leave blank to allow it to be set dynamically.
              disk:
                type: integer
                nullable: true
                title: The size of the disk.
              access:
                type: object
                additionalProperties:
                  type: string
                  enum:
                    - admin
                    - contributor
                    - viewer
                title: Access information, a mapping between access type and roles.
              relationships:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    service:
                      type: string
                      nullable: true
                      title: The name of the service.
                    endpoint:
                      type: string
                      nullable: true
                      title: The name of the endpoint on the service.
                  required:
                    - service
                    - endpoint
                  additionalProperties: false
                  nullable: true
                title: The relationships of the application to defined services.
              additional_hosts:
                type: object
                additionalProperties:
                  type: string
                title: 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: The type of mount that will provide the data.
                    source_path:
                      type: string
                      title: The path to be mounted, relative to the root directory of the volume that's being mounted from.
                    service:
                      type: string
                      nullable: true
                      title: 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: Filesystem mounts of this application.  If not specified the application will have no writeable disk space.
              timezone:
                type: string
                nullable: true
                title: 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: 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: The IP protocol to apply the restriction on.
                        ips:
                          type: array
                          items:
                            type: string
                          title: The IP range in CIDR notation to apply the restriction on.
                        domains:
                          type: array
                          items:
                            type: string
                          title: Domains of the restriction.
                        ports:
                          type: array
                          items:
                            type: integer
                          title: The port to apply the restriction on.
                      required:
                        - protocol
                        - ips
                        - domains
                        - ports
                      additionalProperties: false
                    title: Outbound firewall restrictions
                required:
                  - outbound
                additionalProperties: false
                nullable: true
                title: Firewall
              container_profile:
                type: string
                nullable: true
                title: Selected container profile for the application
              operations:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    commands:
                      type: object
                      properties:
                        start:
                          type: string
                          title: The command used to start the operation.
                        stop:
                          type: string
                          nullable: true
                          title: The command used to stop the operation.
                      required:
                        - start
                      additionalProperties: false
                      title: The commands definition.
                    timeout:
                      type: integer
                      nullable: true
                      title: The maximum timeout in seconds after which the operation will be forcefully killed.
                    role:
                      type: string
                      enum:
                        - admin
                        - contributor
                        - viewer
                      title: The minimum role necessary to trigger this operation.
                  required:
                    - commands
                    - timeout
                    - role
                  additionalProperties: false
                title: Operations that can be triggered on this application
              name:
                type: string
                title: The name of the application. Must be unique within a project.
              type:
                type: string
                title: The base runtime and version to use for this worker.
              preflight:
                type: object
                properties:
                  enabled:
                    type: boolean
                    title: Whether the preflight security blocks are enabled.
                  ignored_rules:
                    type: array
                    items:
                      type: string
                    title: Specific rules to ignore during preflight security checks. See the documentation for options.
                required:
                  - enabled
                  - ignored_rules
                additionalProperties: false
                title: Configuration for pre-flight checks.
              tree_id:
                type: string
                title: The identifier of the source tree of the application
              app_dir:
                type: string
                title: The path of the application in the container
              endpoints:
                type: object
                nullable: true
                title: Endpoints
              runtime:
                type: object
                title: Runtime-specific configuration.
              web:
                type: object
                properties:
                  locations:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        root:
                          type: string
                          nullable: true
                          title: The folder from which to serve static assets for this location relative to the application root.
                        expires:
                          type: string
                          title: Amount of time to cache static assets.
                        passthru:
                          type: string
                          title: 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: Whether to execute scripts in this location (for script based runtimes).
                        index:
                          type: array
                          items:
                            type: string
                          nullable: true
                          title: Files to look for to serve directories.
                        allow:
                          type: boolean
                          title: Whether to allow access to this location by default.
                        headers:
                          type: object
                          additionalProperties:
                            type: string
                          title: 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: Amount of time to cache static assets.
                              passthru:
                                type: string
                                title: 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: Whether to execute scripts in this location (for script based runtimes).
                              allow:
                                type: boolean
                                title: Whether to allow access to this location by default.
                              headers:
                                type: object
                                additionalProperties:
                                  type: string
                                title: A set of header fields set to the HTTP response. Replaces headers set on the location block.
                            additionalProperties: false
                          title: Specific overrides.
                        request_buffering:
                          type: object
                          properties:
                            enabled:
                              type: boolean
                              title: Enable request buffering.
                            max_request_size:
                              type: string
                              nullable: true
                              title: The maximum size request that can be buffered. Supports K, M, and G suffixes.
                          required:
                            - enabled
                            - max_request_size
                          additionalProperties: false
                          title: Configuration for supporting request buffering.
                      required:
                        - root
                        - expires
                        - passthru
                        - scripts
                        - allow
                        - headers
                        - rules
                      additionalProperties: false
                    title: The specification of the web locations served by this application.
                  commands:
                    type: object
                    properties:
                      pre_start:
                        type: string
                        nullable: true
                        title: A command executed before the application is started
                      start:
                        type: string
                        nullable: true
                        title: 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: A command executed after the application is started
                    additionalProperties: false
                    title: Commands to manage the application's lifecycle.
                  upstream:
                    type: object
                    properties:
                      socket_family:
                        type: string
                        enum:
                          - tcp
                          - unix
                        title: If `tcp`, check the PORT environment variable on application startup. If `unix`, check SOCKET.
                      protocol:
                        type: string
                        enum:
                          - fastcgi
                          - http
                        nullable: true
                        title: Protocol
                    required:
                      - socket_family
                      - protocol
                    additionalProperties: false
                    title: Configuration on how the web server communicates with the application.
                  document_root:
                    type: string
                    nullable: true
                    title: The document root of this application, relative to its root.
                  passthru:
                    type: string
                    nullable: true
                    title: 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: Files to look for to serve directories.
                  whitelist:
                    type: array
                    items:
                      type: string
                    nullable: true
                    title: Whitelisted entries.
                  blacklist:
                    type: array
                    items:
                      type: string
                    nullable: true
                    title: Blacklisted entries.
                  expires:
                    type: string
                    nullable: true
                    title: Amount of time to cache static assets.
                  move_to_root:
                    type: boolean
                    title: Whether to move the whole root of the app to the document root.
                required:
                  - locations
                  - move_to_root
                additionalProperties: false
                title: Configuration for accessing this application via HTTP.
              hooks:
                type: object
                properties:
                  build:
                    type: string
                    nullable: true
                    title: Hook executed after the build process.
                  deploy:
                    type: string
                    nullable: true
                    title: Hook executed after the deployment of new code.
                  post_deploy:
                    type: string
                    nullable: true
                    title: Hook executed after an environment is fully deployed.
                required:
                  - build
                  - deploy
                  - post_deploy
                additionalProperties: false
                title: Hooks executed at various point in the lifecycle of the application.
              crons:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    spec:
                      type: string
                      title: The cron schedule specification.
                    commands:
                      type: object
                      properties:
                        start:
                          type: string
                          title: The command used to start the operation.
                        stop:
                          type: string
                          nullable: true
                          title: The command used to stop the operation.
                      required:
                        - start
                      additionalProperties: false
                      title: The commands definition.
                    shutdown_timeout:
                      type: integer
                      nullable: true
                      title: The timeout in seconds after which the cron job will be forcefully killed.
                    timeout:
                      type: integer
                      title: The maximum timeout in seconds after which the cron job will be forcefully killed.
                    cmd:
                      type: string
                      title: The command to execute.
                  required:
                    - spec
                    - commands
                    - timeout
                  additionalProperties: false
                title: Scheduled cron tasks executed by this application.
              source:
                type: object
                properties:
                  root:
                    type: string
                    nullable: true
                    title: The root of the application relative to the repository root.
                  operations:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        command:
                          type: string
                          nullable: true
                          title: The command to use to update this application.
                      required:
                        - command
                      additionalProperties: false
                    title: Operations that can be applied to the source code.
                required:
                  - root
                  - operations
                additionalProperties: false
                title: Configuration related to the source code of the application.
              build:
                type: object
                properties:
                  flavor:
                    type: string
                    nullable: true
                    title: The pre-set build tasks to use for this application.
                  caches:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        directory:
                          type: string
                          nullable: true
                          title: The directory, relative to the application root, that should be cached.
                        watch:
                          type: array
                          items:
                            type: string
                          title: The file or files whose hashed contents should be considered part of the cache key.
                        allow_stale:
                          type: boolean
                          title: 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: Whether multiple applications in the project should share cached directories.
                      required:
                        - directory
                        - watch
                        - allow_stale
                        - share_between_apps
                      additionalProperties: false
                    title: The configuration of paths managed by the build cache.
                required:
                  - flavor
                  - caches
                additionalProperties: false
                title: The build configuration of the application.
              dependencies:
                type: object
                additionalProperties:
                  type: object
                title: External global dependencies of this application. They will be downloaded by the language's package manager.
              stack:
                type: array
                items:
                  type: object
                nullable: true
                title: Composable images
              is_across_submodule:
                type: boolean
                title: Is this application coming from a submodule
              instance_count:
                type: integer
                nullable: true
                title: Instance replication count of this application
              config_id:
                type: string
                title: Config Id
              slug_id:
                type: string
                title: The identifier of the built artifact of the application
            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
              - is_across_submodule
              - instance_count
              - config_id
              - slug_id
            additionalProperties: false
          title: Web applications
        workers:
          type: object
          additionalProperties:
            type: object
            properties:
              resources:
                type: object
                properties:
                  base_memory:
                    type: integer
                    nullable: true
                    title: The base memory for the container
                  memory_ratio:
                    type: integer
                    nullable: true
                    title: The amount of memory to allocate per units of CPU
                  profile_size:
                    type: string
                    nullable: true
                    title: Selected size from container profile
                  minimum:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: Cpu value
                      memory:
                        type: integer
                        title: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: The minimum resources for this service
                  default:
                    type: object
                    properties:
                      cpu:
                        type: number
                        format: float
                        title: Cpu value
                      memory:
                        type: integer
                        title: Memory in MB
                      cpu_type:
                        type: string
                        enum:
                          - guaranteed
                          - shared
                        title: resource type
                      disk:
                        type: integer
                        nullable: true
                        title: Disk size in MB
                      profile_size:
                        type: string
                        nullable: true
                        title: The closest profile size that matches the resources
                    required:
                      - cpu
                      - memory
                      - cpu_type
                      - disk
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: The default resources for this service
                  disk:
                    type: object
                    properties:
                      temporary:
                        type: integer
                        nullable: true
                        title: Temporary
                      instance:
                        type: integer
                        nullable: true
                        title: Instance
                      storage:
                        type: integer
                        nullable: true
                        title: Storage
                    required:
                      - temporary
                      - instance
                      - storage
                    additionalProperties: false
                    nullable: true
                    title: The disks resources
                required:
                  - base_memory
                  - memory_ratio
                  - profile_size
                  - minimum
                  - default
                  - disk
                additionalProperties: false
                nullable: true
                title: Resources
              size:
                type: string
                enum:
                  - 2XL
                  - 4XL
                  - AUTO
                  - L
                  - M
                  - S
                  - XL
                  - XS
                title: The container size for this application in production. Leave blank to allow it to be set dynamically.
              disk:
                type: integer
                nullable: true
                title: The writeable disk size to reserve on this application container.
              access:
                type: object
                additionalProperties:
                  type: string
                  enum:
                    - admin
                    - contributor
                    - viewer
                title: Access information, a mapping between access type and roles.
              relationships:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    service:
                      type: string
                      nullable: true
                      title: The name of the service.
                    endpoint:
                      type: string
                      nullable: true
                      title: The name of the endpoint on the service.
                  required:
                    - service
                    - endpoint
                  additionalProperties: false
                  nullable: true
                title: The relationships of the application to defined services.
              additional_hosts:
                type: object
                additionalProperties:
                  type: string
                title: 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: The type of mount that will provide the data.
                    source_path:
                      type: string
                      title: The path to be mounted, relative to the root directory of the volume that's being mounted from.
                    service:
                      type: string
                      nullable: true
                      title: 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: Filesystem mounts of this application.  If not specified the application will have no writeable disk space.
              timezone:
                type: string
                nullable: true
                title: 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: 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: The IP protocol to apply the restriction on.
                        ips:
                          type: array
                          items:
                            type: string
                          title: The IP range in CIDR notation to apply the restriction on.
                        domains:
                          type: array
                          items:
                            type: string
                          title: Domains of the restriction.
                        ports:
                          type: array
                          items:
                            type: integer
                          title: The port to apply the restriction on.
                      required:
                        - protocol
                        - ips
                        - domains
                        - ports
                      additionalProperties: false
                    title: Outbound firewall restrictions
                required:
                  - outbound
                additionalProperties: false
                nullable: true
                title: Firewall
              container_profile:
                type: string
                nullable: true
                title: Selected container profile for the application
              operations:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    commands:
                      type: object
                      properties:
                        start:
                          type: string
                          title: The command used to start the operation.
                        stop:
                          type: string
                          nullable: true
                          title: The command used to stop the operation.
                      required:
                        - start
                      additionalProperties: false
                      title: The commands definition.
                    timeout:
                      type: integer
                      nullable: true
                      title: The maximum timeout in seconds after which the operation will be forcefully killed.
                    role:
                      type: string
                      enum:
                        - admin
                        - contributor
                        - viewer
                      title: The minimum role necessary to trigger this operation.
                  required:
                    - commands
                    - timeout
                    - role
                  additionalProperties: false
                title: Operations that can be triggered on this application
              name:
                type: string
                title: The name of the worker.
              type:
                type: string
                title: The base runtime and version to use for this worker.
              preflight:
                type: object
                properties:
                  enabled:
                    type: boolean
                    title: Whether the preflight security blocks are enabled.
                  ignored_rules:
                    type: array
                    items:
                      type: string
                    title: Specific rules to ignore during preflight security checks. See the documentation for options.
                required:
                  - enabled
                  - ignored_rules
                additionalProperties: false
                title: Configuration for pre-flight checks.
              tree_id:
                type: string
                title: The identifier of the source tree of the application
              app_dir:
                type: string
                title: The path of the application in the container
              endpoints:
                type: object
                nullable: true
                title: Endpoints
              runtime:
                type: object
                title: Runtime-specific configuration.
              worker:
                type: object
                properties:
                  commands:
                    type: object
                    properties:
                      pre_start:
                        type: string
                        nullable: true
                        title: A command executed before the worker is started
                      start:
                        type: string
                        title: The command used to start the worker.
                      post_start:
                        type: string
                        nullable: true
                        title: A command executed after the worker is started
                    required:
                      - start
                    additionalProperties: false
                    title: The commands to manage the worker.
                  disk:
                    type: integer
                    nullable: true
                    title: The writeable disk size to reserve on this application container.
                required:
                  - commands
                additionalProperties: false
                title: Configuration of a worker container instance.
              app:
                type: string
                title: App
              stack:
                type: array
                items:
                  type: object
                nullable: true
                title: Composable images
              instance_count:
                type: integer
                nullable: true
                title: Instance replication count of this worker
              slug_id:
                type: string
                title: The identifier of the built artifact of the application
            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
              - instance_count
              - slug_id
            additionalProperties: false
          title: Workers
        container_profiles:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: object
              properties:
                cpu:
                  type: number
                  format: float
                  title: Cpu value
                memory:
                  type: integer
                  title: Memory in MB
                cpu_type:
                  type: string
                  enum:
                    - guaranteed
                    - shared
                  title: resource type
              required:
                - cpu
                - memory
                - cpu_type
              additionalProperties: false
          title: Container profiles
      required:
        - 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
    DeploymentCollection:
      type: array
      items:
        $ref: '#/components/schemas/Deployment'
    DeploymentTarget:
      oneOf:
        - $ref: '#/components/schemas/DedicatedDeploymentTarget'
        - $ref: '#/components/schemas/EnterpriseDeploymentTarget'
        - $ref: '#/components/schemas/FoundationDeploymentTarget'
    DeploymentTargetCollection:
      type: array
      items:
        $ref: '#/components/schemas/DeploymentTarget'
    DeploymentTargetCreateInput:
      oneOf:
        - $ref: '#/components/schemas/DedicatedDeploymentTargetCreateInput'
        - $ref: '#/components/schemas/EnterpriseDeploymentTargetCreateInput'
        - $ref: '#/components/schemas/FoundationDeploymentTargetCreateInput'
    DeploymentTargetPatch:
      oneOf:
        - $ref: '#/components/schemas/DedicatedDeploymentTargetPatch'
        - $ref: '#/components/schemas/EnterpriseDeploymentTargetPatch'
        - $ref: '#/components/schemas/FoundationDeploymentTargetPatch'
    Domain:
      oneOf:
        - $ref: '#/components/schemas/ProdDomainStorage'
        - $ref: '#/components/schemas/ReplacementDomainStorage'
    DomainCollection:
      type: array
      items:
        $ref: '#/components/schemas/Domain'
    DomainCreateInput:
      oneOf:
        - $ref: '#/components/schemas/ProdDomainStorageCreateInput'
        - $ref: '#/components/schemas/ReplacementDomainStorageCreateInput'
    DomainPatch:
      oneOf:
        - $ref: '#/components/schemas/ProdDomainStoragePatch'
        - $ref: '#/components/schemas/ReplacementDomainStoragePatch'
    EmailIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        from_address:
          type: string
          nullable: true
          title: The email address to use
        recipients:
          type: array
          items:
            type: string
          title: Recipients of the email
      required:
        - created_at
        - updated_at
        - type
        - from_address
        - recipients
      additionalProperties: false
    EmailIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        from_address:
          type: string
          nullable: true
          title: The email address to use
        recipients:
          type: array
          items:
            type: string
          title: Recipients of the email
      required:
        - type
        - recipients
      additionalProperties: false
    EmailIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        from_address:
          type: string
          nullable: true
          title: The email address to use
        recipients:
          type: array
          items:
            type: string
          title: Recipients of the email
      required:
        - type
        - recipients
      additionalProperties: false
    EnterpriseDeploymentTarget:
      type: object
      properties:
        type:
          type: string
          enum:
            - dedicated
            - enterprise
            - local
          title: The type of the deployment target.
        name:
          type: string
          title: The name of the deployment target.
        deploy_host:
          type: string
          nullable: true
          title: The host to deploy to.
        docroots:
          type: object
          additionalProperties:
            type: object
            properties:
              active_docroot:
                type: string
                nullable: true
                title: The enterprise docroot, that is associated with this application/cluster.
              docroot_versions:
                type: array
                items:
                  type: string
                nullable: true
                title: Versions of the enterprise docroot. When a new environment version is created the active_docroot is updated from these values.
            required:
              - active_docroot
              - docroot_versions
            additionalProperties: false
          title: Mapping of clusters to Enterprise applications
        site_urls:
          type: object
          title: Site URLs
        ssh_hosts:
          type: array
          items:
            type: string
          title: List of SSH Hosts.
        maintenance_mode:
          type: boolean
          title: Whether to perform deployments or not
        enterprise_environments_mapping:
          type: object
          title: Mapping of clusters to Enterprise applications
          deprecated: true
          x-stability: DEPRECATED
      required:
        - type
        - name
        - deploy_host
        - docroots
        - site_urls
        - ssh_hosts
        - maintenance_mode
      additionalProperties: false
    EnterpriseDeploymentTargetCreateInput:
      type: object
      properties:
        type:
          type: string
          enum:
            - dedicated
            - enterprise
            - local
          title: The type of the deployment target.
        name:
          type: string
          title: The name of the deployment target.
        site_urls:
          type: object
          title: Site URLs
        ssh_hosts:
          type: array
          items:
            type: string
          title: List of SSH Hosts.
        enterprise_environments_mapping:
          type: object
          title: Mapping of clusters to Enterprise applications
          deprecated: true
          x-stability: DEPRECATED
      required:
        - type
        - name
      additionalProperties: false
    EnterpriseDeploymentTargetPatch:
      type: object
      properties:
        type:
          type: string
          enum:
            - dedicated
            - enterprise
            - local
          title: The type of the deployment target.
        name:
          type: string
          title: The name of the deployment target.
        site_urls:
          type: object
          title: Site URLs
        ssh_hosts:
          type: array
          items:
            type: string
          title: List of SSH Hosts.
        enterprise_environments_mapping:
          type: object
          title: Mapping of clusters to Enterprise applications
          deprecated: true
          x-stability: DEPRECATED
      required:
        - type
        - name
      additionalProperties: false
    Environment:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        name:
          type: string
          title: Name
        machine_name:
          type: string
          title: Machine name
        title:
          type: string
          title: Title
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - development
            - production
            - staging
          title: The type of environment (`production`, `staging` or `development`). If not provided, a default will be calculated.
        parent:
          type: string
          nullable: true
          title: Parent environment
        default_domain:
          type: string
          nullable: true
          title: Default domain
        has_domains:
          type: boolean
          title: Whether the environment has domains
        clone_parent_on_create:
          type: boolean
          title: Clone data when creating that environment
        deployment_target:
          type: string
          nullable: true
          title: Deployment target of the environment
        is_pr:
          type: boolean
          title: Is this environment a pull request / merge request
        has_remote:
          type: boolean
          title: Does this environment have a remote repository
        status:
          type: string
          enum:
            - active
            - deleting
            - dirty
            - inactive
            - paused
          title: Status
        http_access:
          type: object
          properties:
            is_enabled:
              type: boolean
              title: Whether http_access control is enabled
            addresses:
              type: array
              items:
                type: object
                properties:
                  permission:
                    type: string
                    enum:
                      - allow
                      - deny
                    title: Permission
                  address:
                    type: string
                    title: IP address or CIDR
                required:
                  - permission
                  - address
                additionalProperties: false
              title: Address grants
            basic_auth:
              type: object
              additionalProperties:
                type: string
              title: Basic auth grants
          required:
            - is_enabled
            - addresses
            - basic_auth
          additionalProperties: false
          title: Http access permissions
        enable_smtp:
          type: boolean
          title: Whether to configure SMTP for this environment.
        restrict_robots:
          type: boolean
          title: Whether to restrict robots for this environment.
        edge_hostname:
          type: string
          title: The hostname to use as the CNAME.
        deployment_state:
          type: object
          properties:
            last_deployment_successful:
              type: boolean
              title: Whether the last deployment was successful
            last_deployment_at:
              type: string
              format: date-time
              nullable: true
              title: Datetime of the last deployment
            last_autoscale_up_at:
              type: string
              format: date-time
              nullable: true
              title: Datetime of the last autoscale up deployment
            last_autoscale_down_at:
              type: string
              format: date-time
              nullable: true
              title: Datetime of the last autoscale down deployment
            crons:
              type: object
              properties:
                enabled:
                  type: boolean
                  title: Enabled or disabled
                status:
                  type: string
                  enum:
                    - paused
                    - running
                    - sleeping
                  title: The status of the crons
              required:
                - enabled
                - status
              additionalProperties: false
              title: The crons deployment state
          required:
            - last_deployment_successful
            - last_deployment_at
            - last_autoscale_up_at
            - last_autoscale_down_at
            - crons
          additionalProperties: false
          nullable: true
          title: The environment deployment state
        sizing:
          type: object
          properties:
            services:
              type: object
              additionalProperties:
                type: object
                properties:
                  resources:
                    type: object
                    properties:
                      profile_size:
                        type: string
                        nullable: true
                        title: Profile size of the service.
                    required:
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: Resources
                  instance_count:
                    type: integer
                    nullable: true
                    title: Instance replication count of this application
                  disk:
                    type: integer
                    nullable: true
                    title: The size of the disk.
                required:
                  - resources
                  - instance_count
                  - disk
                additionalProperties: false
              title: Services
            webapps:
              type: object
              additionalProperties:
                type: object
                properties:
                  resources:
                    type: object
                    properties:
                      profile_size:
                        type: string
                        nullable: true
                        title: Profile size of the service.
                    required:
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: Resources
                  instance_count:
                    type: integer
                    nullable: true
                    title: Instance replication count of this application
                  disk:
                    type: integer
                    nullable: true
                    title: The size of the disk.
                required:
                  - resources
                  - instance_count
                  - disk
                additionalProperties: false
              title: Web applications
            workers:
              type: object
              additionalProperties:
                type: object
                properties:
                  resources:
                    type: object
                    properties:
                      profile_size:
                        type: string
                        nullable: true
                        title: Profile size of the service.
                    required:
                      - profile_size
                    additionalProperties: false
                    nullable: true
                    title: Resources
                  instance_count:
                    type: integer
                    nullable: true
                    title: Instance replication count of this application
                  disk:
                    type: integer
                    nullable: true
                    title: The size of the disk.
                required:
                  - resources
                  - instance_count
                  - disk
                additionalProperties: false
              title: Workers
          required:
            - services
            - webapps
            - workers
          additionalProperties: false
          nullable: true
          title: The environment sizing configuration
        resources_overrides:
          type: object
          additionalProperties:
            type: object
            properties:
              services:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    cpu:
                      type: number
                      format: float
                      nullable: true
                      title: CPU
                    memory:
                      type: integer
                      nullable: true
                      title: Memory
                    disk:
                      type: integer
                      nullable: true
                      title: Disk
                  required:
                    - cpu
                    - memory
                    - disk
                  additionalProperties: false
                title: Per-service resources overrides.
              starts_at:
                type: string
                format: date-time
                nullable: true
                title: Date when the override will apply. When null, don't do an auto redeployment but still be effective to redeploys initiated otherwise.
              ends_at:
                type: string
                format: date-time
                nullable: true
                title: Date when the override will be reverted. When null, the overrides will never go out of effect.
              redeployed_start:
                type: boolean
                title: Whether the starting redeploy activity has been fired for this override.
              redeployed_end:
                type: boolean
                title: Whether the ending redeploy activity has been fired for this override.
            required:
              - services
              - starts_at
              - ends_at
              - redeployed_start
              - redeployed_end
            additionalProperties: false
          title: Resources overrides
        max_instance_count:
          type: integer
          nullable: true
          title: Max number of instances for this environment.
        last_active_at:
          type: string
          format: date-time
          nullable: true
          title: Last activity date
        last_backup_at:
          type: string
          format: date-time
          nullable: true
          title: Last backup date
        project:
          type: string
          title: Project
        is_main:
          type: boolean
          title: Is this environment the main environment
        is_dirty:
          type: boolean
          title: Is there any pending activity on this environment
        has_staged_activities:
          type: boolean
          title: Is there any staged activity on this environment
        has_code:
          type: boolean
          title: Does this environment have code
        head_commit:
          type: string
          nullable: true
          title: The SHA of the head commit for this environment
        merge_info:
          type: object
          properties:
            commits_ahead:
              type: integer
              nullable: true
              title: The amount of commits that are in the environment but not in the parent
            commits_behind:
              type: integer
              nullable: true
              title: The amount of commits that are in the parent but not in the environment
            parent_ref:
              type: string
              nullable: true
              title: The reference in Git for the parent environment
          required:
            - commits_ahead
            - commits_behind
            - parent_ref
          additionalProperties: false
          title: The commit distance info between parent and child environments
        has_deployment:
          type: boolean
          title: Whether this environment had a successful deployment.
        supports_restrict_robots:
          type: boolean
          title: Does this environment support configuring restrict_robots
      required:
        - created_at
        - updated_at
        - name
        - machine_name
        - title
        - attributes
        - type
        - parent
        - default_domain
        - has_domains
        - clone_parent_on_create
        - deployment_target
        - is_pr
        - has_remote
        - status
        - http_access
        - enable_smtp
        - restrict_robots
        - edge_hostname
        - deployment_state
        - sizing
        - resources_overrides
        - max_instance_count
        - last_active_at
        - last_backup_at
        - project
        - is_main
        - is_dirty
        - has_staged_activities
        - has_code
        - head_commit
        - merge_info
        - has_deployment
        - supports_restrict_robots
      additionalProperties: false
    EnvironmentActivateInput:
      type: object
      properties:
        resources:
          type: object
          properties:
            init:
              type: string
              enum:
                - default
                - minimum
                - parent
              nullable: true
              title: The resources used when activating an environment
          required:
            - init
          additionalProperties: false
          nullable: true
          title: Resources
      required:
        - resources
      additionalProperties: false
    EnvironmentBackupInput:
      type: object
      properties:
        safe:
          type: boolean
          title: Take a safe or a live backup
      required:
        - safe
      additionalProperties: false
    EnvironmentBranchInput:
      type: object
      properties:
        title:
          type: string
          title: Title
        name:
          type: string
          title: Name
        clone_parent:
          type: boolean
          title: Clone data from the parent environment
        type:
          type: string
          enum:
            - development
            - staging
          title: The type of environment (`staging` or `development`)
        resources:
          type: object
          properties:
            init:
              type: string
              enum:
                - default
                - minimum
                - parent
              nullable: true
              title: The resources used when initializing services of the new environment
          required:
            - init
          additionalProperties: false
          nullable: true
          title: Resources
      required:
        - title
        - name
        - clone_parent
        - type
        - resources
      additionalProperties: false
    EnvironmentCollection:
      type: array
      items:
        $ref: '#/components/schemas/Environment'
    EnvironmentInitializeInput:
      type: object
      properties:
        profile:
          type: string
          title: Name of the profile to show in the UI
        repository:
          type: string
          title: Repository to clone from
        config:
          type: string
          nullable: true
          title: Repository to clone the configuration files from
        files:
          type: array
          items:
            type: object
            properties:
              path:
                type: string
                title: The path to the file.
              mode:
                type: integer
                title: The octal value of the file protection mode.
              contents:
                type: string
                title: The contents of the file (base64 encoded).
            required:
              - path
              - mode
              - contents
            additionalProperties: false
          title: A list of files to add to the repository during initialization
        resources:
          type: object
          properties:
            init:
              type: string
              enum:
                - default
                - minimum
              nullable: true
              title: The resources used when initializing the environment
          required:
            - init
          additionalProperties: false
          nullable: true
          title: Resources
      required:
        - profile
        - repository
        - config
        - files
        - resources
      additionalProperties: false
    EnvironmentMergeInput:
      type: object
      properties:
        resources:
          type: object
          properties:
            init:
              type: string
              enum:
                - child
                - default
                - manual
                - minimum
              nullable: true
              title: The resources used when merging an environment
          required:
            - init
          additionalProperties: false
          nullable: true
          title: Resources
      required:
        - resources
      additionalProperties: false
    EnvironmentOperationInput:
      type: object
      properties:
        service:
          type: string
          title: The name of the application or worker to run the operation on
        operation:
          type: string
          title: The name of the operation
        parameters:
          type: array
          items:
            type: string
          title: The parameters to run the operation with
      required:
        - service
        - operation
        - parameters
      additionalProperties: false
    EnvironmentPatch:
      type: object
      properties:
        name:
          type: string
          title: Name
        title:
          type: string
          title: Title
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - development
            - production
            - staging
          title: The type of environment (`production`, `staging` or `development`). If not provided, a default will be calculated.
        parent:
          type: string
          nullable: true
          title: Parent environment
        clone_parent_on_create:
          type: boolean
          title: Clone data when creating that environment
        http_access:
          type: object
          properties:
            is_enabled:
              type: boolean
              title: Whether http_access control is enabled
            addresses:
              type: array
              items:
                type: object
                properties:
                  permission:
                    type: string
                    enum:
                      - allow
                      - deny
                    title: Permission
                  address:
                    type: string
                    title: IP address or CIDR
                required:
                  - permission
                  - address
                additionalProperties: false
              title: Address grants
            basic_auth:
              type: object
              additionalProperties:
                type: string
              title: Basic auth grants
          additionalProperties: false
          title: Http access permissions
        enable_smtp:
          type: boolean
          title: Whether to configure SMTP for this environment.
        restrict_robots:
          type: boolean
          title: Whether to restrict robots for this environment.
      additionalProperties: false
    EnvironmentRestoreInput:
      type: object
      properties:
        environment_name:
          type: string
          nullable: true
          title: Environment name
        branch_from:
          type: string
          nullable: true
          title: Branch from
        restore_code:
          type: boolean
          title: Whether we should restore the code or only the data
        restore_resources:
          type: boolean
          title: Whether we should restore resources configuration from the backup
        resources:
          type: object
          properties:
            init:
              type: string
              enum:
                - backup
                - default
                - minimum
                - parent
              nullable: true
              title: The resources used when initializing services of the environment
          required:
            - init
          additionalProperties: false
          nullable: true
          title: Resources
      required:
        - environment_name
        - branch_from
        - restore_code
        - restore_resources
        - resources
      additionalProperties: false
    EnvironmentSourceOperation:
      type: object
      properties:
        app:
          type: string
          title: The name of the application
        operation:
          type: string
          title: The name of the source operation
        command:
          type: string
          title: The command that will be triggered
      required:
        - app
        - operation
        - command
      additionalProperties: false
    EnvironmentSourceOperationCollection:
      type: array
      items:
        $ref: '#/components/schemas/EnvironmentSourceOperation'
    EnvironmentSourceOperationInput:
      type: object
      properties:
        operation:
          type: string
          title: The name of the operation to execute
        variables:
          type: object
          additionalProperties:
            type: object
            additionalProperties: {}
          title: The variables of the application.
      required:
        - operation
        - variables
      additionalProperties: false
    EnvironmentSynchronizeInput:
      type: object
      properties:
        synchronize_code:
          type: boolean
          title: Synchronize code?
        rebase:
          type: boolean
          title: Synchronize code by rebasing instead of merging
        synchronize_data:
          type: boolean
          title: Synchronize data?
        synchronize_resources:
          type: boolean
          title: Synchronize resources?
      required:
        - synchronize_code
        - rebase
        - synchronize_data
        - synchronize_resources
      additionalProperties: false
    EnvironmentType:
      type: object
      properties:
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
      required:
        - attributes
      additionalProperties: false
    EnvironmentTypeCollection:
      type: array
      items:
        $ref: '#/components/schemas/EnvironmentType'
    EnvironmentVariable:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        name:
          type: string
          title: Name
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        value:
          type: string
          title: Value
        is_json:
          type: boolean
          title: The variable is a JSON string
        is_sensitive:
          type: boolean
          title: The variable is sensitive
        visible_build:
          type: boolean
          title: The variable is visible during build
        visible_runtime:
          type: boolean
          title: The variable is visible at runtime
        project:
          type: string
          title: Project name
        environment:
          type: string
          title: Environment name
        inherited:
          type: boolean
          title: The variable is inherited from a parent environment
        is_enabled:
          type: boolean
          title: The variable is enabled on this environment
        is_inheritable:
          type: boolean
          title: The variable is inheritable to child environments
      required:
        - created_at
        - updated_at
        - name
        - attributes
        - is_json
        - is_sensitive
        - visible_build
        - visible_runtime
        - project
        - environment
        - inherited
        - is_enabled
        - is_inheritable
      additionalProperties: false
    EnvironmentVariableCollection:
      type: array
      items:
        $ref: '#/components/schemas/EnvironmentVariable'
    EnvironmentVariableCreateInput:
      type: object
      properties:
        name:
          type: string
          title: Name
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        value:
          type: string
          title: Value
        is_json:
          type: boolean
          title: The variable is a JSON string
        is_sensitive:
          type: boolean
          title: The variable is sensitive
        visible_build:
          type: boolean
          title: The variable is visible during build
        visible_runtime:
          type: boolean
          title: The variable is visible at runtime
        is_enabled:
          type: boolean
          title: The variable is enabled on this environment
        is_inheritable:
          type: boolean
          title: The variable is inheritable to child environments
      required:
        - name
        - value
      additionalProperties: false
    EnvironmentVariablePatch:
      type: object
      properties:
        name:
          type: string
          title: Name
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        value:
          type: string
          title: Value
        is_json:
          type: boolean
          title: The variable is a JSON string
        is_sensitive:
          type: boolean
          title: The variable is sensitive
        visible_build:
          type: boolean
          title: The variable is visible during build
        visible_runtime:
          type: boolean
          title: The variable is visible at runtime
        is_enabled:
          type: boolean
          title: The variable is enabled on this environment
        is_inheritable:
          type: boolean
          title: The variable is inheritable to child environments
      additionalProperties: false
    FastlyIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        events:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        environments:
          type: array
          items:
            type: string
          title: The environments to execute the hook on
        excluded_environments:
          type: array
          items:
            type: string
          title: The environments to not execute the hook on
        states:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        result:
          type: string
          enum:
            - '*'
            - failure
            - success
          title: Result to execute the hook on
        service_id:
          type: string
          title: Fastly Service ID
      required:
        - created_at
        - updated_at
        - type
        - events
        - environments
        - excluded_environments
        - states
        - result
        - service_id
      additionalProperties: false
    FastlyIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        events:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        environments:
          type: array
          items:
            type: string
          title: The environments to execute the hook on
        excluded_environments:
          type: array
          items:
            type: string
          title: The environments to not execute the hook on
        states:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        result:
          type: string
          enum:
            - '*'
            - failure
            - success
          title: Result to execute the hook on
        token:
          type: string
          title: Fastly API Token
        service_id:
          type: string
          title: Fastly Service ID
      required:
        - type
        - token
        - service_id
      additionalProperties: false
    FastlyIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        events:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        environments:
          type: array
          items:
            type: string
          title: The environments to execute the hook on
        excluded_environments:
          type: array
          items:
            type: string
          title: The environments to not execute the hook on
        states:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        result:
          type: string
          enum:
            - '*'
            - failure
            - success
          title: Result to execute the hook on
        token:
          type: string
          title: Fastly API Token
        service_id:
          type: string
          title: Fastly Service ID
      required:
        - type
        - token
        - service_id
      additionalProperties: false
    FoundationDeploymentTarget:
      type: object
      properties:
        type:
          type: string
          enum:
            - dedicated
            - enterprise
            - local
          title: The type of the deployment target.
        name:
          type: string
          title: The name of the deployment target.
        hosts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                nullable: true
                title: The identifier of the host.
              type:
                type: string
                enum:
                  - core
                  - satellite
                title: The type of the deployment to this host.
              services:
                type: array
                items:
                  type: string
                nullable: true
                title: The services assigned to this host
            required:
              - id
              - type
              - services
            additionalProperties: false
          nullable: true
          title: The hosts of the deployment target.
        use_dedicated_grid:
          type: boolean
          title: Whether the deployment should target dedicated Grid hosts.
        storage_type:
          type: string
          nullable: true
          title: The storage type.
      required:
        - type
        - name
        - hosts
        - use_dedicated_grid
        - storage_type
      additionalProperties: false
    FoundationDeploymentTargetCreateInput:
      type: object
      properties:
        type:
          type: string
          enum:
            - dedicated
            - enterprise
            - local
          title: The type of the deployment target.
        name:
          type: string
          title: The name of the deployment target.
        hosts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                nullable: true
                title: The identifier of the host.
              type:
                type: string
                enum:
                  - core
                  - satellite
                title: The type of the deployment to this host.
              services:
                type: array
                items:
                  type: string
                nullable: true
                title: The services assigned to this host
            required:
              - id
              - type
            additionalProperties: false
          nullable: true
          title: The hosts of the deployment target.
        use_dedicated_grid:
          type: boolean
          title: Whether the deployment should target dedicated Grid hosts.
      required:
        - type
        - name
      additionalProperties: false
    FoundationDeploymentTargetPatch:
      type: object
      properties:
        type:
          type: string
          enum:
            - dedicated
            - enterprise
            - local
          title: The type of the deployment target.
        name:
          type: string
          title: The name of the deployment target.
        hosts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                nullable: true
                title: The identifier of the host.
              type:
                type: string
                enum:
                  - core
                  - satellite
                title: The type of the deployment to this host.
              services:
                type: array
                items:
                  type: string
                nullable: true
                title: The services assigned to this host
            required:
              - id
              - type
            additionalProperties: false
          nullable: true
          title: The hosts of the deployment target.
        use_dedicated_grid:
          type: boolean
          title: Whether the deployment should target dedicated Grid hosts.
      required:
        - type
        - name
      additionalProperties: false
    GitLabIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        base_url:
          type: string
          title: The base URL of the GitLab installation.
        project:
          type: string
          title: The GitLab project (in the form `namespace/repo`).
        build_merge_requests:
          type: boolean
          title: Whether or not to build merge requests.
        build_wip_merge_requests:
          type: boolean
          title: Whether or not to build work in progress merge requests (requires `build_merge_requests`).
        merge_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building merge requests.
      required:
        - created_at
        - updated_at
        - type
        - fetch_branches
        - prune_branches
        - environment_init_resources
        - base_url
        - project
        - build_merge_requests
        - build_wip_merge_requests
        - merge_requests_clone_parent_data
      additionalProperties: false
    GitLabIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        token:
          type: string
          title: The GitLab private token.
        base_url:
          type: string
          title: The base URL of the GitLab installation.
        project:
          type: string
          title: The GitLab project (in the form `namespace/repo`).
        build_merge_requests:
          type: boolean
          title: Whether or not to build merge requests.
        build_wip_merge_requests:
          type: boolean
          title: Whether or not to build work in progress merge requests (requires `build_merge_requests`).
        merge_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building merge requests.
      required:
        - type
        - token
        - project
      additionalProperties: false
    GitLabIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        token:
          type: string
          title: The GitLab private token.
        base_url:
          type: string
          title: The base URL of the GitLab installation.
        project:
          type: string
          title: The GitLab project (in the form `namespace/repo`).
        build_merge_requests:
          type: boolean
          title: Whether or not to build merge requests.
        build_wip_merge_requests:
          type: boolean
          title: Whether or not to build work in progress merge requests (requires `build_merge_requests`).
        merge_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building merge requests.
      required:
        - type
        - token
        - project
      additionalProperties: false
    GithubIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        base_url:
          type: string
          nullable: true
          title: The base URL of the Github API endpoint.
        repository:
          type: string
          title: The GitHub repository (in the form `user/repo`).
        build_pull_requests:
          type: boolean
          title: Whether or not to build pull requests.
        build_draft_pull_requests:
          type: boolean
          title: Whether or not to build draft pull requests (requires `build_pull_requests`).
        build_pull_requests_post_merge:
          type: boolean
          title: Whether to build pull requests post-merge (if true) or pre-merge (if false).
        pull_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building pull requests.
        token_type:
          type: string
          enum:
            - classic_personal_token
            - github_app
          title: The type of the token of this GitHub integration
      required:
        - created_at
        - updated_at
        - type
        - fetch_branches
        - prune_branches
        - environment_init_resources
        - base_url
        - repository
        - build_pull_requests
        - build_draft_pull_requests
        - build_pull_requests_post_merge
        - pull_requests_clone_parent_data
        - token_type
      additionalProperties: false
    GithubIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        token:
          type: string
          title: The GitHub token.
        base_url:
          type: string
          nullable: true
          title: The base URL of the Github API endpoint.
        repository:
          type: string
          title: The GitHub repository (in the form `user/repo`).
        build_pull_requests:
          type: boolean
          title: Whether or not to build pull requests.
        build_draft_pull_requests:
          type: boolean
          title: Whether or not to build draft pull requests (requires `build_pull_requests`).
        build_pull_requests_post_merge:
          type: boolean
          title: Whether to build pull requests post-merge (if true) or pre-merge (if false).
        pull_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building pull requests.
      required:
        - type
        - token
        - repository
      additionalProperties: false
    GithubIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        fetch_branches:
          type: boolean
          title: Whether or not to fetch branches.
        prune_branches:
          type: boolean
          title: Whether or not to remove branches that disappeared remotely (requires `fetch_branches`).
        environment_init_resources:
          type: string
          enum:
            - default
            - manual
            - minimum
            - parent
          title: The resources used when initializing a new service
        token:
          type: string
          title: The GitHub token.
        base_url:
          type: string
          nullable: true
          title: The base URL of the Github API endpoint.
        repository:
          type: string
          title: The GitHub repository (in the form `user/repo`).
        build_pull_requests:
          type: boolean
          title: Whether or not to build pull requests.
        build_draft_pull_requests:
          type: boolean
          title: Whether or not to build draft pull requests (requires `build_pull_requests`).
        build_pull_requests_post_merge:
          type: boolean
          title: Whether to build pull requests post-merge (if true) or pre-merge (if false).
        pull_requests_clone_parent_data:
          type: boolean
          title: Whether or not to clone parent data when building pull requests.
      required:
        - type
        - token
        - repository
      additionalProperties: false
    HealthWebHookIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        url:
          type: string
          title: The URL of the webhook
      required:
        - created_at
        - updated_at
        - type
        - url
      additionalProperties: false
    HealthWebHookIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        shared_key:
          type: string
          nullable: true
          title: The JWS shared secret key
        url:
          type: string
          title: The URL of the webhook
      required:
        - type
        - url
      additionalProperties: false
    HealthWebHookIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        shared_key:
          type: string
          nullable: true
          title: The JWS shared secret key
        url:
          type: string
          title: The URL of the webhook
      required:
        - type
        - url
      additionalProperties: false
    HttpLogIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: HTTP endpoint
        headers:
          type: object
          additionalProperties:
            type: string
          title: HTTP headers to use in POST requests
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - created_at
        - updated_at
        - type
        - extra
        - url
        - headers
        - tls_verify
      additionalProperties: false
    HttpLogIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: HTTP endpoint
        headers:
          type: object
          additionalProperties:
            type: string
          title: HTTP headers to use in POST requests
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - type
        - url
      additionalProperties: false
    HttpLogIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: HTTP endpoint
        headers:
          type: object
          additionalProperties:
            type: string
          title: HTTP headers to use in POST requests
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - type
        - url
      additionalProperties: false
    Integration:
      oneOf:
        - $ref: '#/components/schemas/BitbucketIntegration'
        - $ref: '#/components/schemas/BitbucketServerIntegration'
        - $ref: '#/components/schemas/BlackfireIntegration'
        - $ref: '#/components/schemas/FastlyIntegration'
        - $ref: '#/components/schemas/GithubIntegration'
        - $ref: '#/components/schemas/GitLabIntegration'
        - $ref: '#/components/schemas/EmailIntegration'
        - $ref: '#/components/schemas/PagerDutyIntegration'
        - $ref: '#/components/schemas/SlackIntegration'
        - $ref: '#/components/schemas/HealthWebHookIntegration'
        - $ref: '#/components/schemas/HttpLogIntegration'
        - $ref: '#/components/schemas/NewRelicIntegration'
        - $ref: '#/components/schemas/ScriptIntegration'
        - $ref: '#/components/schemas/SplunkIntegration'
        - $ref: '#/components/schemas/SumologicIntegration'
        - $ref: '#/components/schemas/SyslogIntegration'
        - $ref: '#/components/schemas/WebHookIntegration'
    IntegrationCollection:
      type: array
      items:
        $ref: '#/components/schemas/Integration'
    IntegrationCreateInput:
      oneOf:
        - $ref: '#/components/schemas/BitbucketIntegrationCreateInput'
        - $ref: '#/components/schemas/BitbucketServerIntegrationCreateInput'
        - $ref: '#/components/schemas/BlackfireIntegrationCreateInput'
        - $ref: '#/components/schemas/FastlyIntegrationCreateInput'
        - $ref: '#/components/schemas/GithubIntegrationCreateInput'
        - $ref: '#/components/schemas/GitLabIntegrationCreateInput'
        - $ref: '#/components/schemas/EmailIntegrationCreateInput'
        - $ref: '#/components/schemas/PagerDutyIntegrationCreateInput'
        - $ref: '#/components/schemas/SlackIntegrationCreateInput'
        - $ref: '#/components/schemas/HealthWebHookIntegrationCreateInput'
        - $ref: '#/components/schemas/HttpLogIntegrationCreateInput'
        - $ref: '#/components/schemas/NewRelicIntegrationCreateInput'
        - $ref: '#/components/schemas/ScriptIntegrationCreateInput'
        - $ref: '#/components/schemas/SplunkIntegrationCreateInput'
        - $ref: '#/components/schemas/SumologicIntegrationCreateInput'
        - $ref: '#/components/schemas/SyslogIntegrationCreateInput'
        - $ref: '#/components/schemas/WebHookIntegrationCreateInput'
    IntegrationPatch:
      oneOf:
        - $ref: '#/components/schemas/BitbucketIntegrationPatch'
        - $ref: '#/components/schemas/BitbucketServerIntegrationPatch'
        - $ref: '#/components/schemas/BlackfireIntegrationPatch'
        - $ref: '#/components/schemas/FastlyIntegrationPatch'
        - $ref: '#/components/schemas/GithubIntegrationPatch'
        - $ref: '#/components/schemas/GitLabIntegrationPatch'
        - $ref: '#/components/schemas/EmailIntegrationPatch'
        - $ref: '#/components/schemas/PagerDutyIntegrationPatch'
        - $ref: '#/components/schemas/SlackIntegrationPatch'
        - $ref: '#/components/schemas/HealthWebHookIntegrationPatch'
        - $ref: '#/components/schemas/HttpLogIntegrationPatch'
        - $ref: '#/components/schemas/NewRelicIntegrationPatch'
        - $ref: '#/components/schemas/ScriptIntegrationPatch'
        - $ref: '#/components/schemas/SplunkIntegrationPatch'
        - $ref: '#/components/schemas/SumologicIntegrationPatch'
        - $ref: '#/components/schemas/SyslogIntegrationPatch'
        - $ref: '#/components/schemas/WebHookIntegrationPatch'
    NewRelicIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: The NewRelic Logs endpoint
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - created_at
        - updated_at
        - type
        - extra
        - url
        - tls_verify
      additionalProperties: false
    NewRelicIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: The NewRelic Logs endpoint
        license_key:
          type: string
          title: The NewRelic Logs License Key
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - type
        - url
        - license_key
      additionalProperties: false
    NewRelicIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: The NewRelic Logs endpoint
        license_key:
          type: string
          title: The NewRelic Logs License Key
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - type
        - url
        - license_key
      additionalProperties: false
    PagerDutyIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        routing_key:
          type: string
          title: The PagerDuty routing key
      required:
        - created_at
        - updated_at
        - type
        - routing_key
      additionalProperties: false
    PagerDutyIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        routing_key:
          type: string
          title: The PagerDuty routing key
      required:
        - type
        - routing_key
      additionalProperties: false
    PagerDutyIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        routing_key:
          type: string
          title: The PagerDuty routing key
      required:
        - type
        - routing_key
      additionalProperties: false
    ProdDomainStorage:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Domain type
        project:
          type: string
          title: Project name
        name:
          type: string
          title: Domain name
        registered_name:
          type: string
          title: Claimed domain name
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        is_default:
          type: boolean
          title: Is this domain default
      required:
        - created_at
        - updated_at
        - type
        - name
        - attributes
      additionalProperties: false
    ProdDomainStorageCreateInput:
      type: object
      properties:
        name:
          type: string
          title: Domain name
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        is_default:
          type: boolean
          title: Is this domain default
      required:
        - name
      additionalProperties: false
    ProdDomainStoragePatch:
      type: object
      properties:
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        is_default:
          type: boolean
          title: Is this domain default
      additionalProperties: false
    Project:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        title:
          type: string
          title: Title
        description:
          type: string
          title: Description
        owner:
          type: string
          title: Owner
          deprecated: true
          x-stability: DEPRECATED
        namespace:
          type: string
          nullable: true
          title: The namespace the project belongs in
          x-stability: EXPERIMENTAL
        organization:
          type: string
          nullable: true
          title: The organization the project belongs in
          x-stability: EXPERIMENTAL
        default_branch:
          type: string
          nullable: true
          title: Default branch
        status:
          type: object
          properties:
            code:
              type: string
              title: Status code
            message:
              type: string
              title: Status text
          required:
            - code
            - message
          additionalProperties: false
          title: Status
        timezone:
          type: string
          title: Timezone of the project
        region:
          type: string
          title: Region
        repository:
          type: object
          properties:
            url:
              type: string
              title: Git URL
            client_ssh_key:
              type: string
              nullable: true
              title: SSH Key used to access external private repositories.
          required:
            - url
            - client_ssh_key
          additionalProperties: false
          title: Repository information
        default_domain:
          type: string
          nullable: true
          title: Default domain
        subscription:
          type: object
          properties:
            license_uri:
              type: string
              title: 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
            environments:
              type: integer
              title: Number of environments
            storage:
              type: integer
              title: Size of storage (in MB)
            included_users:
              type: integer
              title: Number of users
            subscription_management_uri:
              type: string
              title: URI for managing the subscription
            restricted:
              type: boolean
              title: True if subscription attributes, like number of users, are frozen
            suspended:
              type: boolean
              title: Whether or not the subscription is suspended
            user_licenses:
              type: integer
              title: Current number of users
            resources:
              type: object
              properties:
                container_profiles:
                  type: boolean
                  title: Enable support for customizable container profiles.
                production:
                  type: object
                  properties:
                    legacy_development:
                      type: boolean
                      title: Enable legacy development sizing for this environment type.
                    max_cpu:
                      type: number
                      format: float
                      nullable: true
                      title: Maximum number of allocated CPU units.
                    max_memory:
                      type: integer
                      nullable: true
                      title: Maximum amount of allocated RAM.
                    max_environments:
                      type: integer
                      nullable: true
                      title: Maximum number of environments
                  required:
                    - legacy_development
                    - max_cpu
                    - max_memory
                    - max_environments
                  additionalProperties: false
                  title: Resources for production environments
                development:
                  type: object
                  properties:
                    legacy_development:
                      type: boolean
                      title: Enable legacy development sizing for this environment type.
                    max_cpu:
                      type: number
                      format: float
                      nullable: true
                      title: Maximum number of allocated CPU units.
                    max_memory:
                      type: integer
                      nullable: true
                      title: Maximum amount of allocated RAM.
                    max_environments:
                      type: integer
                      nullable: true
                      title: Maximum number of environments
                  required:
                    - legacy_development
                    - max_cpu
                    - max_memory
                    - max_environments
                  additionalProperties: false
                  title: Resources for development environments
              required:
                - container_profiles
                - production
                - development
              additionalProperties: false
              title: Resources limits
            resource_validation_url:
              type: string
              title: URL for resources validation
            image_types:
              type: object
              properties:
                only:
                  type: array
                  items:
                    type: string
                  title: Image types to be allowed use.
                exclude:
                  type: array
                  items:
                    type: string
                  title: Image types to be denied use.
              additionalProperties: false
              title: Restricted and denied image types
          required:
            - license_uri
            - storage
            - included_users
            - subscription_management_uri
            - restricted
            - suspended
            - user_licenses
          additionalProperties: false
          title: Subscription information
      required:
        - created_at
        - updated_at
        - attributes
        - title
        - description
        - owner
        - namespace
        - organization
        - default_branch
        - status
        - timezone
        - region
        - repository
        - default_domain
        - subscription
      additionalProperties: false
    ProjectCapabilities:
      type: object
      properties:
        custom_domains:
          type: object
          properties:
            enabled:
              type: boolean
              title: If true, custom domains can be added to the project.
            environments_with_domains_limit:
              type: integer
              title: Limit on the amount of non-production environments that can have domains set
          required:
            - enabled
            - environments_with_domains_limit
          additionalProperties: false
          title: Custom Domains
        source_operations:
          type: object
          properties:
            enabled:
              type: boolean
              title: If true, source operations can be triggered.
          required:
            - enabled
          additionalProperties: false
          title: Source Operations
        runtime_operations:
          type: object
          properties:
            enabled:
              type: boolean
              title: If true, runtime operations can be triggered.
          required:
            - enabled
          additionalProperties: false
          title: Runtime Operations
        outbound_firewall:
          type: object
          properties:
            enabled:
              type: boolean
              title: If true, outbound firewall can be used.
          required:
            - enabled
          additionalProperties: false
          title: Outbound Firewall
        metrics:
          type: object
          properties:
            max_range:
              type: string
              title: Limit on the maximum time range allowed in metrics retrieval
          required:
            - max_range
          additionalProperties: false
          title: Metrics
        logs_forwarding:
          type: object
          properties:
            max_extra_payload_size:
              type: integer
              title: Limit on the maximum size for the custom extra attributes added to the forwarded logs payload
          required:
            - max_extra_payload_size
          additionalProperties: false
          title: Logs Forwarding
        guaranteed_resources:
          type: object
          properties:
            enabled:
              type: boolean
              title: If true, guaranteed resources can be used
          required:
            - enabled
          additionalProperties: false
          title: Guaranteed Resources
        images:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: object
              properties:
                available:
                  type: boolean
                  title: The image is available for deployment
              required:
                - available
              additionalProperties: false
          title: Images
        instance_limit:
          type: integer
          title: Maximum number of instance per service
        build_resources:
          type: object
          properties:
            enabled:
              type: boolean
              title: If true, build resources can be modified.
            max_cpu:
              type: number
              format: float
              title: CPU
            max_memory:
              type: integer
              title: Memory
          required:
            - enabled
            - max_cpu
            - max_memory
          additionalProperties: false
          title: Build Resources
        data_retention:
          type: object
          properties:
            enabled:
              type: boolean
              title: If true, data retention configuration can be modified.
          required:
            - enabled
          additionalProperties: false
          title: Data Retention
        autoscaling:
          type: object
          properties:
            enabled:
              type: boolean
              title: If true, autoscaling can be configured.
          required:
            - enabled
          additionalProperties: false
          title: Autoscaling
        integrations:
          type: object
          properties:
            enabled:
              type: boolean
              title: If true, integrations can be used
            config:
              type: object
              properties:
                newrelic:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: New Relic log-forwarding integration configurations
                sumologic:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Sumo Logic log-forwarding integration configurations
                splunk:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Splunk log-forwarding integration configurations
                httplog:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: HTTP log-forwarding integration configurations
                syslog:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Syslog log-forwarding integration configurations
                webhook:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Webhook integration configurations
                script:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Script integration configurations
                github:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: GitHub integration configurations
                gitlab:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: GitLab integration configurations
                bitbucket:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Bitbucket integration configurations
                bitbucket_server:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Bitbucket server integration configurations
                health.email:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Health Email notification integration configurations
                health.webhook:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Health Webhook notification integration configurations
                health.pagerduty:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Health PagerDuty notification integration configurations
                health.slack:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Health Slack notification integration configurations
                cdn.fastly:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Fastly CDN integration configurations
                blackfire:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      title: The integration is enabled.
                    role:
                      type: string
                      title: Minimum required role for creating the integration.
                  additionalProperties: false
                  title: Blackfire integration configurations
              additionalProperties: false
              title: Config
            allowed_integrations:
              type: array
              items:
                type: string
              title: List of integrations allowed to be created
          required:
            - enabled
          additionalProperties: false
          title: Integrations
      required:
        - metrics
        - logs_forwarding
        - guaranteed_resources
        - images
        - instance_limit
        - build_resources
        - data_retention
        - autoscaling
      additionalProperties: false
    ProjectPatch:
      type: object
      properties:
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        title:
          type: string
          title: Title
        description:
          type: string
          title: Description
        default_branch:
          type: string
          nullable: true
          title: Default branch
        timezone:
          type: string
          title: Timezone of the project
        region:
          type: string
          title: Region
        default_domain:
          type: string
          nullable: true
          title: Default domain
      additionalProperties: false
    ProjectSettings:
      type: object
      properties:
        initialize:
          type: object
          title: Initialization key
        product_name:
          type: string
          title: The name of the product.
        product_code:
          type: string
          title: The lowercase ASCII code of the product.
        ui_uri_template:
          type: string
          title: The template of the project UI uri
        variables_prefix:
          type: string
          title: The prefix of the generated environment variables.
        bot_email:
          type: string
          title: The email of the bot.
        application_config_file:
          type: string
          title: The name of the application-specific configuration file.
        project_config_dir:
          type: string
          title: The name of the project configuration directory.
        use_drupal_defaults:
          type: boolean
          title: Whether to use the default Drupal-centric configuration files when missing from the repository.
        use_legacy_subdomains:
          type: boolean
          title: Whether to use legacy subdomain scheme, that replaces `.` by `---` in development subdomains.
        development_service_size:
          type: string
          enum:
            - 2XL
            - 4XL
            - L
            - M
            - S
            - XL
          title: The size of development services.
        development_application_size:
          type: string
          enum:
            - 2XL
            - 4XL
            - L
            - M
            - S
            - XL
          title: The size of development applications.
        enable_certificate_provisioning:
          type: boolean
          title: Enable automatic certificate provisioning.
        certificate_style:
          type: string
          enum:
            - ecdsa
            - rsa
          title: Certificate Style
        certificate_renewal_activity:
          type: boolean
          title: Create an activity for certificate renewal
        development_domain_template:
          type: string
          nullable: true
          title: The template of the development domain, can include {project} and {environment} placeholders.
        enable_state_api_deployments:
          type: boolean
          title: Enable the State API-driven deployments on regions that support them.
        temporary_disk_size:
          type: integer
          nullable: true
          title: Set the size of the temporary disk (/tmp, in MB).
        local_disk_size:
          type: integer
          nullable: true
          title: Set the size of the instance disk (in MB).
        cron_minimum_interval:
          type: integer
          title: Minimum interval between cron runs (in minutes)
        cron_maximum_jitter:
          type: integer
          title: Maximum jitter inserted in cron runs (in minutes)
        cron_production_expiry_interval:
          type: integer
          title: The interval (in days) for which cron activity and logs are kept around
        cron_non_production_expiry_interval:
          type: integer
          title: The interval (in days) for which cron activity and logs are kept around
        concurrency_limits:
          type: object
          additionalProperties:
            type: integer
            nullable: true
          title: The concurrency limits applied to different kind of activities
        flexible_build_cache:
          type: boolean
          title: Enable the flexible build cache implementation
        strict_configuration:
          type: boolean
          title: Strict configuration validation.
        has_sleepy_crons:
          type: boolean
          title: Enable sleepy crons.
        crons_in_git:
          type: boolean
          title: Enable crons from git.
        custom_error_template:
          type: string
          nullable: true
          title: Custom error template for the router.
        app_error_page_template:
          type: string
          nullable: true
          title: Custom error template for the application.
        environment_name_strategy:
          type: string
          enum:
            - hash
            - name-and-hash
          title: The strategy used to generate environment machine names
        data_retention:
          type: object
          additionalProperties:
            type: object
            properties:
              max_backups:
                type: integer
                title: The maximum number of backups per environment
              default_config:
                type: object
                properties:
                  manual_count:
                    type: integer
                    title: The number of manual backups to keep.
                  schedule:
                    type: array
                    items:
                      type: object
                      properties:
                        interval:
                          type: string
                          title: The policy interval specification.
                        count:
                          type: integer
                          title: The number of backups to keep under this interval.
                      required:
                        - interval
                        - count
                      additionalProperties: false
                    title: The backup schedule specification.
                required:
                  - manual_count
                  - schedule
                additionalProperties: false
                title: Default Config
                x-stability: EXPERIMENTAL
            required:
              - max_backups
              - default_config
            additionalProperties: false
          nullable: true
          title: Data retention configuration
        enable_codesource_integration_push:
          type: boolean
          title: Enable pushing commits to codesource integration.
        enforce_mfa:
          type: boolean
          title: Enforce multi-factor authentication.
        systemd:
          type: boolean
          title: Use systemd images.
        router_gen2:
          type: boolean
          title: Use the router v2 image.
        build_resources:
          type: object
          properties:
            cpu:
              type: number
              format: float
              title: CPU
            memory:
              type: integer
              title: Memory
          required:
            - cpu
            - memory
          additionalProperties: false
          title: Build Resources
        outbound_restrictions_default_policy:
          type: string
          enum:
            - allow
            - deny
          title: The default policy for firewall outbound restrictions
        self_upgrade:
          type: boolean
          title: Whether self-upgrades are enabled
        additional_hosts:
          type: object
          additionalProperties:
            type: string
          title: A mapping of hostname to ip address to be added to the container's hosts file
        max_allowed_routes:
          type: integer
          title: Maximum number of routes allowed
        max_allowed_redirects_paths:
          type: integer
          title: Maximum number of redirect paths allowed
        enable_incremental_backups:
          type: boolean
          title: Enable incremental backups on regions that support them.
        sizing_api_enabled:
          type: boolean
          title: Enable sizing api.
        enable_cache_grace_period:
          type: boolean
          title: Enable cache grace period.
        enable_zero_downtime_deployments:
          type: boolean
          title: Enable zero-downtime deployments for resource-only changes.
        enable_admin_agent:
          type: boolean
          title: Enable admin agent
        certifier_url:
          type: string
          title: The certifier url
        centralized_permissions:
          type: boolean
          title: Whether centralized permissions are enabled
        glue_server_max_request_size:
          type: integer
          title: Maximum size of request to glue-server (in MB)
        persistent_endpoints_ssh:
          type: boolean
          title: Enable SSH access update with persistent endpoint
        persistent_endpoints_ssl_certificates:
          type: boolean
          title: Enable SSL certificate update with persistent endpoint
        enable_disk_health_monitoring:
          type: boolean
          title: Enable disk health monitoring
        enable_paused_environments:
          type: boolean
          title: Enable paused environments
        enable_unified_configuration:
          type: boolean
          title: Enable unified configuration files
        enable_routes_tracing:
          type: boolean
          title: Enable tracing support in routes
        image_deployment_validation:
          type: boolean
          title: Enable extended deployment validation by images
        support_generic_images:
          type: boolean
          title: Support composable images
        enable_github_app_token_exchange:
          type: boolean
          title: Enable fetching the GitHub App token from SIA.
        continuous_profiling:
          type: object
          properties:
            supported_runtimes:
              type: array
              items:
                type: string
              title: List of images supported for continuous profiling
          required:
            - supported_runtimes
          additionalProperties: false
          title: The continuous profiling configuration
        disable_agent_error_reporter:
          type: boolean
          title: Disable agent error reporter
        requires_domain_ownership:
          type: boolean
          title: Require ownership proof before domains are added to environments.
        enable_guaranteed_resources:
          type: boolean
          title: Enable guaranteed resources feature
        git_server:
          type: object
          properties:
            push_size_hard_limit:
              type: integer
              title: Push Size Reject Limit
          required:
            - push_size_hard_limit
          additionalProperties: false
          title: Git Server configuration
        activity_logs_max_size:
          type: integer
          title: The maximum size of activity logs in bytes. This limit is applied on the pre-compressed log size.
        allow_manual_deployments:
          type: boolean
          title: If deployments can be manual, i.e. explicitly triggered by user.
        allow_burst:
          type: boolean
          title: Allow burst
      required:
        - initialize
        - product_name
        - product_code
        - ui_uri_template
        - variables_prefix
        - bot_email
        - application_config_file
        - project_config_dir
        - use_drupal_defaults
        - use_legacy_subdomains
        - development_service_size
        - development_application_size
        - enable_certificate_provisioning
        - certificate_style
        - certificate_renewal_activity
        - development_domain_template
        - enable_state_api_deployments
        - temporary_disk_size
        - local_disk_size
        - cron_minimum_interval
        - cron_maximum_jitter
        - cron_production_expiry_interval
        - cron_non_production_expiry_interval
        - concurrency_limits
        - flexible_build_cache
        - strict_configuration
        - has_sleepy_crons
        - crons_in_git
        - custom_error_template
        - app_error_page_template
        - environment_name_strategy
        - data_retention
        - enable_codesource_integration_push
        - enforce_mfa
        - systemd
        - router_gen2
        - build_resources
        - outbound_restrictions_default_policy
        - self_upgrade
        - additional_hosts
        - max_allowed_routes
        - max_allowed_redirects_paths
        - enable_incremental_backups
        - sizing_api_enabled
        - enable_cache_grace_period
        - enable_zero_downtime_deployments
        - enable_admin_agent
        - certifier_url
        - centralized_permissions
        - glue_server_max_request_size
        - persistent_endpoints_ssh
        - persistent_endpoints_ssl_certificates
        - enable_disk_health_monitoring
        - enable_paused_environments
        - enable_unified_configuration
        - enable_routes_tracing
        - image_deployment_validation
        - support_generic_images
        - enable_github_app_token_exchange
        - continuous_profiling
        - disable_agent_error_reporter
        - requires_domain_ownership
        - enable_guaranteed_resources
        - git_server
        - activity_logs_max_size
        - allow_manual_deployments
        - allow_burst
      additionalProperties: false
    ProjectSettingsPatch:
      type: object
      properties:
        initialize:
          type: object
          title: Initialization key
        data_retention:
          type: object
          additionalProperties:
            type: object
            properties:
              max_backups:
                type: integer
                title: The maximum number of backups per environment
              default_config:
                type: object
                properties:
                  manual_count:
                    type: integer
                    title: The number of manual backups to keep.
                  schedule:
                    type: array
                    items:
                      type: object
                      properties:
                        interval:
                          type: string
                          title: The policy interval specification.
                        count:
                          type: integer
                          title: The number of backups to keep under this interval.
                      required:
                        - interval
                        - count
                      additionalProperties: false
                    title: The backup schedule specification.
                additionalProperties: false
                title: Default Config
                x-stability: EXPERIMENTAL
            required:
              - default_config
            additionalProperties: false
          nullable: true
          title: Data retention configuration
        build_resources:
          type: object
          properties:
            cpu:
              type: number
              format: float
              title: CPU
            memory:
              type: integer
              title: Memory
          additionalProperties: false
          title: Build Resources
      additionalProperties: false
    ProjectVariable:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        name:
          type: string
          title: Name
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        value:
          type: string
          title: Value
        is_json:
          type: boolean
          title: The variable is a JSON string
        is_sensitive:
          type: boolean
          title: The variable is sensitive
        visible_build:
          type: boolean
          title: The variable is visible during build
        visible_runtime:
          type: boolean
          title: The variable is visible at runtime
      required:
        - created_at
        - updated_at
        - name
        - attributes
        - is_json
        - is_sensitive
        - visible_build
        - visible_runtime
      additionalProperties: false
    ProjectVariableCollection:
      type: array
      items:
        $ref: '#/components/schemas/ProjectVariable'
    ProjectVariableCreateInput:
      type: object
      properties:
        name:
          type: string
          title: Name
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        value:
          type: string
          title: Value
        is_json:
          type: boolean
          title: The variable is a JSON string
        is_sensitive:
          type: boolean
          title: The variable is sensitive
        visible_build:
          type: boolean
          title: The variable is visible during build
        visible_runtime:
          type: boolean
          title: The variable is visible at runtime
      required:
        - name
        - value
      additionalProperties: false
    ProjectVariablePatch:
      type: object
      properties:
        name:
          type: string
          title: Name
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        value:
          type: string
          title: Value
        is_json:
          type: boolean
          title: The variable is a JSON string
        is_sensitive:
          type: boolean
          title: The variable is sensitive
        visible_build:
          type: boolean
          title: The variable is visible during build
        visible_runtime:
          type: boolean
          title: The variable is visible at runtime
      additionalProperties: false
    ProxyRoute:
      type: object
      properties:
        primary:
          type: boolean
          nullable: true
          title: This route is the primary route of the environment
        id:
          type: string
          nullable: true
          title: Route Identifier
        production_url:
          type: string
          nullable: true
          title: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type.
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Whether strict transport security is enabled or not.
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should include all subdomains.
                preload:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should be preloaded in browsers.
              required:
                - enabled
                - include_subdomains
                - preload
              additionalProperties: false
              title: Strict-Transport-Security options.
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: 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 for the route.
        to:
          type: string
          title: Proxy destination
      required:
        - primary
        - id
        - production_url
        - attributes
        - type
        - tls
        - to
      additionalProperties: false
    ProxyRouteCreateInput:
      type: object
      properties:
        primary:
          type: boolean
          nullable: true
          title: This route is the primary route of the environment
        id:
          type: string
          nullable: true
          title: Route Identifier
        production_url:
          type: string
          nullable: true
          title: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type.
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Whether strict transport security is enabled or not.
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should include all subdomains.
                preload:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should be preloaded in browsers.
              additionalProperties: false
              title: Strict-Transport-Security options.
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used.
          additionalProperties: false
          title: TLS settings for the route.
        to:
          type: string
          title: Proxy destination
      required:
        - type
        - to
      additionalProperties: false
    ProxyRoutePatch:
      type: object
      properties:
        primary:
          type: boolean
          nullable: true
          title: This route is the primary route of the environment
        id:
          type: string
          nullable: true
          title: Route Identifier
        production_url:
          type: string
          nullable: true
          title: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type.
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Whether strict transport security is enabled or not.
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should include all subdomains.
                preload:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should be preloaded in browsers.
              additionalProperties: false
              title: Strict-Transport-Security options.
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used.
          additionalProperties: false
          title: TLS settings for the route.
        to:
          type: string
          title: Proxy destination
      required:
        - type
        - to
      additionalProperties: false
    RedirectRoute:
      type: object
      properties:
        primary:
          type: boolean
          nullable: true
          title: This route is the primary route of the environment
        id:
          type: string
          nullable: true
          title: Route Identifier
        production_url:
          type: string
          nullable: true
          title: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type.
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Whether strict transport security is enabled or not.
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should include all subdomains.
                preload:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should be preloaded in browsers.
              required:
                - enabled
                - include_subdomains
                - preload
              additionalProperties: false
              title: Strict-Transport-Security options.
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: 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 for the route.
        to:
          type: string
          title: Redirect destination
        redirects:
          type: object
          properties:
            expires:
              type: string
              title: The amount of time, in seconds, to cache the redirects.
            paths:
              type: object
              additionalProperties:
                type: object
                properties:
                  regexp:
                    type: boolean
                    title: Whether the path is a regular expression.
                  to:
                    type: string
                    title: The URL to redirect to.
                  prefix:
                    type: boolean
                    nullable: true
                    title: Whether to redirect all the paths that start with the path.
                  append_suffix:
                    type: boolean
                    nullable: true
                    title: Whether to append the incoming suffix to the redirected URL.
                  code:
                    type: integer
                    enum:
                      - 301
                      - 302
                      - 307
                      - 308
                    title: The redirect code to use.
                  expires:
                    type: string
                    nullable: true
                    title: The amount of time, in seconds, to cache the redirects.
                required:
                  - regexp
                  - to
                  - prefix
                  - append_suffix
                  - code
                  - expires
                additionalProperties: false
              title: The paths to redirect
          required:
            - expires
            - paths
          additionalProperties: false
          title: The configuration of the redirects.
      required:
        - primary
        - id
        - production_url
        - attributes
        - type
        - tls
        - to
        - redirects
      additionalProperties: false
    RedirectRouteCreateInput:
      type: object
      properties:
        primary:
          type: boolean
          nullable: true
          title: This route is the primary route of the environment
        id:
          type: string
          nullable: true
          title: Route Identifier
        production_url:
          type: string
          nullable: true
          title: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type.
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Whether strict transport security is enabled or not.
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should include all subdomains.
                preload:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should be preloaded in browsers.
              additionalProperties: false
              title: Strict-Transport-Security options.
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used.
          additionalProperties: false
          title: TLS settings for the route.
        to:
          type: string
          title: Redirect destination
        redirects:
          type: object
          properties:
            expires:
              type: string
              title: The amount of time, in seconds, to cache the redirects.
            paths:
              type: object
              additionalProperties:
                type: object
                properties:
                  regexp:
                    type: boolean
                    title: Whether the path is a regular expression.
                  to:
                    type: string
                    title: The URL to redirect to.
                  prefix:
                    type: boolean
                    nullable: true
                    title: Whether to redirect all the paths that start with the path.
                  append_suffix:
                    type: boolean
                    nullable: true
                    title: Whether to append the incoming suffix to the redirected URL.
                  code:
                    type: integer
                    enum:
                      - 301
                      - 302
                      - 307
                      - 308
                    title: The redirect code to use.
                  expires:
                    type: string
                    nullable: true
                    title: The amount of time, in seconds, to cache the redirects.
                required:
                  - to
                additionalProperties: false
              title: The paths to redirect
          required:
            - paths
          additionalProperties: false
          title: The configuration of the redirects.
      required:
        - type
        - to
      additionalProperties: false
    RedirectRoutePatch:
      type: object
      properties:
        primary:
          type: boolean
          nullable: true
          title: This route is the primary route of the environment
        id:
          type: string
          nullable: true
          title: Route Identifier
        production_url:
          type: string
          nullable: true
          title: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type.
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Whether strict transport security is enabled or not.
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should include all subdomains.
                preload:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should be preloaded in browsers.
              additionalProperties: false
              title: Strict-Transport-Security options.
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used.
          additionalProperties: false
          title: TLS settings for the route.
        to:
          type: string
          title: Redirect destination
        redirects:
          type: object
          properties:
            expires:
              type: string
              title: The amount of time, in seconds, to cache the redirects.
            paths:
              type: object
              additionalProperties:
                type: object
                properties:
                  regexp:
                    type: boolean
                    title: Whether the path is a regular expression.
                  to:
                    type: string
                    title: The URL to redirect to.
                  prefix:
                    type: boolean
                    nullable: true
                    title: Whether to redirect all the paths that start with the path.
                  append_suffix:
                    type: boolean
                    nullable: true
                    title: Whether to append the incoming suffix to the redirected URL.
                  code:
                    type: integer
                    enum:
                      - 301
                      - 302
                      - 307
                      - 308
                    title: The redirect code to use.
                  expires:
                    type: string
                    nullable: true
                    title: The amount of time, in seconds, to cache the redirects.
                required:
                  - to
                additionalProperties: false
              title: The paths to redirect
          required:
            - paths
          additionalProperties: false
          title: The configuration of the redirects.
      required:
        - type
        - to
      additionalProperties: false
    Ref:
      type: object
      properties:
        ref:
          type: string
          title: The name of the reference
        object:
          type: object
          properties:
            type:
              type: string
              title: The type of object pointed to
            sha:
              type: string
              title: The SHA of the object pointed to
          required:
            - type
            - sha
          additionalProperties: false
          title: The object the reference points to
        sha:
          type: string
          title: The commit sha of the ref
      required:
        - ref
        - object
        - sha
      additionalProperties: false
    RefCollection:
      type: array
      items:
        $ref: '#/components/schemas/Ref'
    ReplacementDomainStorage:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Domain type
        project:
          type: string
          title: Project name
        name:
          type: string
          title: Domain name
        registered_name:
          type: string
          title: Claimed domain name
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        replacement_for:
          type: string
          title: Prod domain which will be replaced by this domain.
      required:
        - created_at
        - updated_at
        - type
        - name
        - attributes
      additionalProperties: false
    ReplacementDomainStorageCreateInput:
      type: object
      properties:
        name:
          type: string
          title: Domain name
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        replacement_for:
          type: string
          title: Prod domain which will be replaced by this domain.
      required:
        - name
      additionalProperties: false
    ReplacementDomainStoragePatch:
      type: object
      properties:
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
      additionalProperties: false
    Route:
      oneOf:
        - $ref: '#/components/schemas/ProxyRoute'
        - $ref: '#/components/schemas/RedirectRoute'
        - $ref: '#/components/schemas/UpstreamRoute'
    RouteCollection:
      type: array
      items:
        $ref: '#/components/schemas/Route'
    RouteCreateInput:
      oneOf:
        - $ref: '#/components/schemas/ProxyRouteCreateInput'
        - $ref: '#/components/schemas/RedirectRouteCreateInput'
        - $ref: '#/components/schemas/UpstreamRouteCreateInput'
    RoutePatch:
      oneOf:
        - $ref: '#/components/schemas/ProxyRoutePatch'
        - $ref: '#/components/schemas/RedirectRoutePatch'
        - $ref: '#/components/schemas/UpstreamRoutePatch'
    ScriptIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        events:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        environments:
          type: array
          items:
            type: string
          title: The environments to execute the hook on
        excluded_environments:
          type: array
          items:
            type: string
          title: The environments to not execute the hook on
        states:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        result:
          type: string
          enum:
            - '*'
            - failure
            - success
          title: Result to execute the hook on
        script:
          type: string
          title: The script to run
      required:
        - created_at
        - updated_at
        - type
        - events
        - environments
        - excluded_environments
        - states
        - result
        - script
      additionalProperties: false
    ScriptIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        events:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        environments:
          type: array
          items:
            type: string
          title: The environments to execute the hook on
        excluded_environments:
          type: array
          items:
            type: string
          title: The environments to not execute the hook on
        states:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        result:
          type: string
          enum:
            - '*'
            - failure
            - success
          title: Result to execute the hook on
        script:
          type: string
          title: The script to run
      required:
        - type
        - script
      additionalProperties: false
    ScriptIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        events:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        environments:
          type: array
          items:
            type: string
          title: The environments to execute the hook on
        excluded_environments:
          type: array
          items:
            type: string
          title: The environments to not execute the hook on
        states:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        result:
          type: string
          enum:
            - '*'
            - failure
            - success
          title: Result to execute the hook on
        script:
          type: string
          title: The script to run
      required:
        - type
        - script
      additionalProperties: false
    SlackIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        channel:
          type: string
          title: The Slack channel to post messages to
      required:
        - created_at
        - updated_at
        - type
        - channel
      additionalProperties: false
    SlackIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        token:
          type: string
          title: The Slack token to use
        channel:
          type: string
          title: The Slack channel to post messages to
      required:
        - type
        - token
        - channel
      additionalProperties: false
    SlackIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        token:
          type: string
          title: The Slack token to use
        channel:
          type: string
          title: The Slack channel to post messages to
      required:
        - type
        - token
        - channel
      additionalProperties: false
    SplunkIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: The Splunk HTTP Event Connector REST API endpoint
        index:
          type: string
          title: The Splunk Index
        sourcetype:
          type: string
          title: The event 'sourcetype'
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - created_at
        - updated_at
        - type
        - extra
        - url
        - index
        - sourcetype
        - tls_verify
      additionalProperties: false
    SplunkIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: The Splunk HTTP Event Connector REST API endpoint
        index:
          type: string
          title: The Splunk Index
        token:
          type: string
          title: The Splunk Authorization Token
        sourcetype:
          type: string
          title: The event 'sourcetype'
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - type
        - url
        - index
        - token
      additionalProperties: false
    SplunkIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: The Splunk HTTP Event Connector REST API endpoint
        index:
          type: string
          title: The Splunk Index
        token:
          type: string
          title: The Splunk Authorization Token
        sourcetype:
          type: string
          title: The event 'sourcetype'
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - type
        - url
        - index
        - token
      additionalProperties: false
    SumologicIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: The Sumologic HTTPS endpoint
        category:
          type: string
          title: The Category used to easy filtering (sent as X-Sumo-Category header)
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - created_at
        - updated_at
        - type
        - extra
        - url
        - category
        - tls_verify
      additionalProperties: false
    SumologicIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: The Sumologic HTTPS endpoint
        category:
          type: string
          title: The Category used to easy filtering (sent as X-Sumo-Category header)
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - type
        - url
      additionalProperties: false
    SumologicIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        url:
          type: string
          title: The Sumologic HTTPS endpoint
        category:
          type: string
          title: The Category used to easy filtering (sent as X-Sumo-Category header)
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - type
        - url
      additionalProperties: false
    SyslogIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        host:
          type: string
          title: Syslog relay/collector host
        port:
          type: integer
          title: Syslog relay/collector port
        protocol:
          type: string
          enum:
            - tcp
            - tls
            - udp
          title: Transport protocol
        facility:
          type: integer
          title: Syslog facility
        message_format:
          type: string
          enum:
            - rfc3164
            - rfc5424
          title: Syslog message format
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - created_at
        - updated_at
        - type
        - extra
        - host
        - port
        - protocol
        - facility
        - message_format
        - tls_verify
      additionalProperties: false
    SyslogIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        host:
          type: string
          title: Syslog relay/collector host
        port:
          type: integer
          title: Syslog relay/collector port
        protocol:
          type: string
          enum:
            - tcp
            - tls
            - udp
          title: Transport protocol
        facility:
          type: integer
          title: Syslog facility
        message_format:
          type: string
          enum:
            - rfc3164
            - rfc5424
          title: Syslog message format
        auth_token:
          type: string
          title: Authentication token
        auth_mode:
          type: string
          enum:
            - prefix
            - structured_data
          title: Authentication mode
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - type
      additionalProperties: false
    SyslogIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        extra:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary key/value pairs to include with forwarded logs
        host:
          type: string
          title: Syslog relay/collector host
        port:
          type: integer
          title: Syslog relay/collector port
        protocol:
          type: string
          enum:
            - tcp
            - tls
            - udp
          title: Transport protocol
        facility:
          type: integer
          title: Syslog facility
        message_format:
          type: string
          enum:
            - rfc3164
            - rfc5424
          title: Syslog message format
        auth_token:
          type: string
          title: Authentication token
        auth_mode:
          type: string
          enum:
            - prefix
            - structured_data
          title: Authentication mode
        tls_verify:
          type: boolean
          title: Enable/Disable HTTPS certificate verification
      required:
        - type
      additionalProperties: false
    SystemInformation:
      type: object
      properties:
        version:
          type: string
          title: The version of this project server
        image:
          type: string
          title: The image version of the project server
        started_at:
          type: string
          format: date-time
          title: Started At
      required:
        - version
        - image
        - started_at
      additionalProperties: false
    Tree:
      type: object
      properties:
        sha:
          type: string
          title: The identifier of the tree
        tree:
          type: array
          items:
            type: object
            properties:
              path:
                type: string
                title: The path of the item
              mode:
                type: string
                enum:
                  - '040000'
                  - '100644'
                  - '100755'
                  - '120000'
                  - '160000'
                title: The mode of the item
              type:
                type: string
                title: The type of the item (blob or tree)
              sha:
                type: string
                nullable: true
                title: The sha of the item
            required:
              - path
              - mode
              - type
              - sha
            additionalProperties: false
          title: The tree items
      required:
        - sha
        - tree
      additionalProperties: false
    UpstreamRoute:
      type: object
      properties:
        primary:
          type: boolean
          nullable: true
          title: This route is the primary route of the environment
        id:
          type: string
          nullable: true
          title: Route Identifier
        production_url:
          type: string
          nullable: true
          title: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type.
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Whether strict transport security is enabled or not.
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should include all subdomains.
                preload:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should be preloaded in browsers.
              required:
                - enabled
                - include_subdomains
                - preload
              additionalProperties: false
              title: Strict-Transport-Security options.
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: 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 for the route.
        cache:
          type: object
          properties:
            enabled:
              type: boolean
              title: Whether the cache is enabled.
            default_ttl:
              type: integer
              title: The TTL to apply when the response doesn't specify one. Only applies to static files.
            cookies:
              type: array
              items:
                type: string
              title: The cookies to take into account for the cache key.
            headers:
              type: array
              items:
                type: string
              title: The headers to take into account for the cache key.
          required:
            - enabled
            - default_ttl
            - cookies
            - headers
          additionalProperties: false
          title: Cache configuration.
        ssi:
          type: object
          properties:
            enabled:
              type: boolean
              title: Whether SSI include is enabled.
          required:
            - enabled
          additionalProperties: false
          title: Server-Side Include configuration.
        upstream:
          type: string
          title: The upstream to use for this route.
        redirects:
          type: object
          properties:
            expires:
              type: string
              title: The amount of time, in seconds, to cache the redirects.
            paths:
              type: object
              additionalProperties:
                type: object
                properties:
                  regexp:
                    type: boolean
                    title: Whether the path is a regular expression.
                  to:
                    type: string
                    title: The URL to redirect to.
                  prefix:
                    type: boolean
                    nullable: true
                    title: Whether to redirect all the paths that start with the path.
                  append_suffix:
                    type: boolean
                    nullable: true
                    title: Whether to append the incoming suffix to the redirected URL.
                  code:
                    type: integer
                    enum:
                      - 301
                      - 302
                      - 307
                      - 308
                    title: The redirect code to use.
                  expires:
                    type: string
                    nullable: true
                    title: The amount of time, in seconds, to cache the redirects.
                required:
                  - regexp
                  - to
                  - prefix
                  - append_suffix
                  - code
                  - expires
                additionalProperties: false
              title: The paths to redirect
          required:
            - expires
            - paths
          additionalProperties: false
          title: The configuration of the redirects.
      required:
        - primary
        - id
        - production_url
        - attributes
        - type
        - tls
        - cache
        - ssi
        - upstream
        - redirects
      additionalProperties: false
    UpstreamRouteCreateInput:
      type: object
      properties:
        primary:
          type: boolean
          nullable: true
          title: This route is the primary route of the environment
        id:
          type: string
          nullable: true
          title: Route Identifier
        production_url:
          type: string
          nullable: true
          title: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type.
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Whether strict transport security is enabled or not.
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should include all subdomains.
                preload:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should be preloaded in browsers.
              additionalProperties: false
              title: Strict-Transport-Security options.
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used.
          additionalProperties: false
          title: TLS settings for the route.
        cache:
          type: object
          properties:
            enabled:
              type: boolean
              title: Whether the cache is enabled.
            default_ttl:
              type: integer
              title: The TTL to apply when the response doesn't specify one. Only applies to static files.
            cookies:
              type: array
              items:
                type: string
              title: The cookies to take into account for the cache key.
            headers:
              type: array
              items:
                type: string
              title: The headers to take into account for the cache key.
          required:
            - enabled
          additionalProperties: false
          title: Cache configuration.
        ssi:
          type: object
          properties:
            enabled:
              type: boolean
              title: Whether SSI include is enabled.
          required:
            - enabled
          additionalProperties: false
          title: Server-Side Include configuration.
        upstream:
          type: string
          title: The upstream to use for this route.
        redirects:
          type: object
          properties:
            expires:
              type: string
              title: The amount of time, in seconds, to cache the redirects.
            paths:
              type: object
              additionalProperties:
                type: object
                properties:
                  regexp:
                    type: boolean
                    title: Whether the path is a regular expression.
                  to:
                    type: string
                    title: The URL to redirect to.
                  prefix:
                    type: boolean
                    nullable: true
                    title: Whether to redirect all the paths that start with the path.
                  append_suffix:
                    type: boolean
                    nullable: true
                    title: Whether to append the incoming suffix to the redirected URL.
                  code:
                    type: integer
                    enum:
                      - 301
                      - 302
                      - 307
                      - 308
                    title: The redirect code to use.
                  expires:
                    type: string
                    nullable: true
                    title: The amount of time, in seconds, to cache the redirects.
                required:
                  - to
                additionalProperties: false
              title: The paths to redirect
          required:
            - paths
          additionalProperties: false
          title: The configuration of the redirects.
      required:
        - type
        - upstream
      additionalProperties: false
    UpstreamRoutePatch:
      type: object
      properties:
        primary:
          type: boolean
          nullable: true
          title: This route is the primary route of the environment
        id:
          type: string
          nullable: true
          title: Route Identifier
        production_url:
          type: string
          nullable: true
          title: How this URL route would look on production environment
        attributes:
          type: object
          additionalProperties:
            type: string
          title: Arbitrary attributes attached to this resource
        type:
          type: string
          enum:
            - proxy
            - redirect
            - upstream
          title: Route type.
        tls:
          type: object
          properties:
            strict_transport_security:
              type: object
              properties:
                enabled:
                  type: boolean
                  nullable: true
                  title: Whether strict transport security is enabled or not.
                include_subdomains:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should include all subdomains.
                preload:
                  type: boolean
                  nullable: true
                  title: Whether the strict transport security policy should be preloaded in browsers.
              additionalProperties: false
              title: Strict-Transport-Security options.
            min_version:
              type: string
              enum:
                - TLSv1.0
                - TLSv1.1
                - TLSv1.2
                - TLSv1.3
              nullable: true
              title: The minimum TLS version to support.
            client_authentication:
              type: string
              enum:
                - request
                - require
              nullable: true
              title: The type of client authentication to request.
            client_certificate_authorities:
              type: array
              items:
                type: string
              title: Certificate authorities to validate the client certificate against. If not specified, a default set of trusted CAs will be used.
          additionalProperties: false
          title: TLS settings for the route.
        cache:
          type: object
          properties:
            enabled:
              type: boolean
              title: Whether the cache is enabled.
            default_ttl:
              type: integer
              title: The TTL to apply when the response doesn't specify one. Only applies to static files.
            cookies:
              type: array
              items:
                type: string
              title: The cookies to take into account for the cache key.
            headers:
              type: array
              items:
                type: string
              title: The headers to take into account for the cache key.
          required:
            - enabled
          additionalProperties: false
          title: Cache configuration.
        ssi:
          type: object
          properties:
            enabled:
              type: boolean
              title: Whether SSI include is enabled.
          required:
            - enabled
          additionalProperties: false
          title: Server-Side Include configuration.
        upstream:
          type: string
          title: The upstream to use for this route.
        redirects:
          type: object
          properties:
            expires:
              type: string
              title: The amount of time, in seconds, to cache the redirects.
            paths:
              type: object
              additionalProperties:
                type: object
                properties:
                  regexp:
                    type: boolean
                    title: Whether the path is a regular expression.
                  to:
                    type: string
                    title: The URL to redirect to.
                  prefix:
                    type: boolean
                    nullable: true
                    title: Whether to redirect all the paths that start with the path.
                  append_suffix:
                    type: boolean
                    nullable: true
                    title: Whether to append the incoming suffix to the redirected URL.
                  code:
                    type: integer
                    enum:
                      - 301
                      - 302
                      - 307
                      - 308
                    title: The redirect code to use.
                  expires:
                    type: string
                    nullable: true
                    title: The amount of time, in seconds, to cache the redirects.
                required:
                  - to
                additionalProperties: false
              title: The paths to redirect
          required:
            - paths
          additionalProperties: false
          title: The configuration of the redirects.
      required:
        - type
        - upstream
      additionalProperties: false
    Version:
      type: object
      properties:
        commit:
          type: string
          nullable: true
          title: The SHA of the commit of this version
        locked:
          type: boolean
          title: Whether this version is locked and cannot be modified
        routing:
          type: object
          properties:
            percentage:
              type: integer
              title: The percentage of traffic routed to this version
          required:
            - percentage
          additionalProperties: false
          title: Configuration about the traffic routed to this version
      required:
        - commit
        - locked
        - routing
      additionalProperties: false
    VersionCollection:
      type: array
      items:
        $ref: '#/components/schemas/Version'
    VersionCreateInput:
      type: object
      properties:
        routing:
          type: object
          properties:
            percentage:
              type: integer
              title: The percentage of traffic routed to this version
          additionalProperties: false
          title: Configuration about the traffic routed to this version
      additionalProperties: false
    VersionPatch:
      type: object
      properties:
        routing:
          type: object
          properties:
            percentage:
              type: integer
              title: The percentage of traffic routed to this version
          additionalProperties: false
          title: Configuration about the traffic routed to this version
      additionalProperties: false
    WebHookIntegration:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
          nullable: true
          title: Creation date
        updated_at:
          type: string
          format: date-time
          nullable: true
          title: Update date
        type:
          type: string
          title: Integration type
        events:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        environments:
          type: array
          items:
            type: string
          title: The environments to execute the hook on
        excluded_environments:
          type: array
          items:
            type: string
          title: The environments to not execute the hook on
        states:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        result:
          type: string
          enum:
            - '*'
            - failure
            - success
          title: Result to execute the hook on
        shared_key:
          type: string
          nullable: true
          title: The JWS shared secret key
        url:
          type: string
          title: The URL of the webhook
      required:
        - created_at
        - updated_at
        - type
        - events
        - environments
        - excluded_environments
        - states
        - result
        - shared_key
        - url
      additionalProperties: false
    WebHookIntegrationCreateInput:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        events:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        environments:
          type: array
          items:
            type: string
          title: The environments to execute the hook on
        excluded_environments:
          type: array
          items:
            type: string
          title: The environments to not execute the hook on
        states:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        result:
          type: string
          enum:
            - '*'
            - failure
            - success
          title: Result to execute the hook on
        shared_key:
          type: string
          nullable: true
          title: The JWS shared secret key
        url:
          type: string
          title: The URL of the webhook
      required:
        - type
        - url
      additionalProperties: false
    WebHookIntegrationPatch:
      type: object
      properties:
        type:
          type: string
          title: Integration type
        events:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        environments:
          type: array
          items:
            type: string
          title: The environments to execute the hook on
        excluded_environments:
          type: array
          items:
            type: string
          title: The environments to not execute the hook on
        states:
          type: array
          items:
            type: string
          title: Events to execute the hook on
        result:
          type: string
          enum:
            - '*'
            - failure
            - success
          title: Result to execute the hook on
        shared_key:
          type: string
          nullable: true
          title: The JWS shared secret key
        url:
          type: string
          title: The URL of the webhook
      required:
        - type
        - url
      additionalProperties: false
    AutoscalerAlertPartial:
      properties:
        name:
          description: User friendly name for the alert
          title: Name
          type: string
        environment:
          type: string
          nullable: true
          title: Environment
          description: Environment for which the alert was received
        service:
          description: Service for which the alert was received
          title: Service
          type: string
        resource:
          type: string
          nullable: true
          title: Resource
          description: Name of resource that triggered the alert
        condition:
          description: Comparison condition to use when evaluating the alert
          title: Condition
          type: string
        threshold:
          description: Value that has to be crossed for the alert to be considered triggered
          title: Threshold
          type: number
        duration:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AutoscalerDuration'
          nullable: true
          description: Number of seconds during which the condition was satisfied
        value:
          description: Current value for the received alert
          title: Value
          type: number
      required:
        - name
        - service
        - condition
        - threshold
        - value
      title: AutoscalerAlertPartial
      type: object
    AutoscalerCPUResources:
      description: CPU scaling settings
      properties:
        min:
          description: Minimum CPUs when scaling down vertically
          minimum: 0
          title: Min
          type: number
        max:
          description: Maximum CPUs when scaling up vertically
          minimum: 0
          title: Max
          type: number
      title: AutoscalerCPUResources
      type: object
    AutoscalerCPUTrigger:
      description: |-
        CPU resource trigger settings.

        When CPU usage goes below lower bound, service will be scaled down.
        When CPU usage goes above upper bound, service will be scaled up.
      properties:
        enabled:
          type: boolean
          nullable: true
          title: Enabled
          description: Whether the trigger is enabled
        down:
          $ref: '#/components/schemas/AutoscalerCondition'
          description: Lower bound on resource usage
        up:
          $ref: '#/components/schemas/AutoscalerCondition'
          description: Upper bound on resource usage
      title: AutoscalerCPUTrigger
      type: object
    AutoscalerCondition:
      description: Trigger condition settings
      properties:
        threshold:
          description: Value at which the condition is satisfied
          maximum: 100
          minimum: 0
          title: Threshold
          type: number
        duration:
          $ref: '#/components/schemas/AutoscalerDuration'
          description: Number of seconds during which the condition must be satisfied
        enabled:
          type: boolean
          nullable: true
          title: Enabled
          description: Whether the condition should be used for generating alerts
      required:
        - threshold
      title: AutoscalerCondition
      type: object
    AutoscalerDuration:
      enum:
        - 60
        - 120
        - 300
        - 600
        - 1800
        - 3600
      title: AutoscalerDuration
      type: integer
    AutoscalerEmptyBody:
      description: Empty body
      properties: {}
      title: AutoscalerEmptyBody
      type: object
    AutoscalerInstances:
      description: Horizontal scaling settings
      properties:
        min:
          description: Minimum number of instances when scaling down horizontally
          title: Min
          type: integer
        max:
          description: Maximum number of instances when scaling up horizontally
          title: Max
          type: integer
      title: AutoscalerInstances
      type: object
    AutoscalerMemoryResources:
      description: Memory scaling settings
      properties:
        min:
          description: Minimum memory (bytes) when scaling down vertically
          minimum: 0
          title: Min
          type: integer
        max:
          description: Maximum memory (bytes) when scaling up vertically
          minimum: 0
          title: Max
          type: integer
      title: AutoscalerMemoryResources
      type: object
    AutoscalerMemoryTrigger:
      description: |-
        Memory resource trigger settings.

        When memory usage goes below lower bound, service will be scaled down.
        When memory usage goes above upper bound, service will be scaled up.
      properties:
        enabled:
          type: boolean
          nullable: true
          title: Enabled
          description: Whether the trigger is enabled
        down:
          $ref: '#/components/schemas/AutoscalerCondition'
          description: Lower bound on resource usage
        up:
          $ref: '#/components/schemas/AutoscalerCondition'
          description: Upper bound on resource usage
      title: AutoscalerMemoryTrigger
      type: object
    AutoscalerResources:
      description: Vertical scaling settings
      properties:
        cpu:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AutoscalerCPUResources'
          nullable: true
          description: Lower/Upper bounds on CPU allocation when scaling
        memory:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AutoscalerMemoryResources'
          nullable: true
          description: Lower/Upper bounds on Memory allocation when scaling
      title: AutoscalerResources
      type: object
    AutoscalerScalingCooldown:
      description: Scaling cooldown settings
      properties:
        up:
          description: Number of seconds to wait until scaling up can be done again (since last attempt)
          minimum: 0
          title: Up
          type: integer
        down:
          description: Number of seconds to wait until scaling down can be done again (since last attempt)
          minimum: 0
          title: Down
          type: integer
      title: AutoscalerScalingCooldown
      type: object
    AutoscalerScalingFactor:
      description: Scaling factor settings
      properties:
        up:
          description: Number of instances to add when scaling up horizontally
          minimum: 0
          title: Up
          type: integer
        down:
          description: Number of instances to remove when scaling down horizontally
          minimum: 0
          title: Down
          type: integer
      title: AutoscalerScalingFactor
      type: object
    AutoscalerServiceSettings:
      description: Autoscaling settings for a specific service
      properties:
        triggers:
          $ref: '#/components/schemas/AutoscalerTriggers'
          description: Metrics should be evaluated as triggers for autoscaling
        instances:
          $ref: '#/components/schemas/AutoscalerInstances'
          description: Lower/Upper bounds on number of instances for horizontal scaling
        resources:
          $ref: '#/components/schemas/AutoscalerResources'
          description: Lower/Upper bounds on cpu/memory for vertical scaling
        scale_factor:
          $ref: '#/components/schemas/AutoscalerScalingFactor'
          description: How many instances to add/remove on each scaling attempt
        scale_cooldown:
          $ref: '#/components/schemas/AutoscalerScalingCooldown'
          description: How long to wait before the next scaling attempt can be performed
      title: AutoscalerServiceSettings
      type: object
    AutoscalerSettings:
      description: Autoscaling settings for an environment.
      properties:
        services:
          additionalProperties:
            $ref: '#/components/schemas/AutoscalerServiceSettings'
          description: Each service for which autoscaling is configured is listed in the key
          title: Services
          type: object
      required:
        - services
      title: AutoscalerSettings
      type: object
    AutoscalerSettingsPartial:
      description: |-
        Update model for autoscaling settings.

        This model is mainly used for partial updates (PATCH), therefore all its
        attributes are optional.
      properties:
        services:
          additionalProperties:
            $ref: '#/components/schemas/AutoscalerServiceSettings'
          type: object
          nullable: true
          title: Services
          description: Each service for which autoscaling is configured is listed in the key
      title: AutoscalerSettingsPartial
      type: object
    AutoscalerTriggers:
      additionalProperties: false
      description: Scaling triggers settings
      properties:
        cpu:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AutoscalerCPUTrigger'
          nullable: true
          description: Settings for scaling based on CPU usage
        memory:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AutoscalerMemoryTrigger'
          nullable: true
          description: Settings for scaling based on Memory usage
      title: AutoscalerTriggers
      type: object
    Invoice:
      type: object
      description: The invoice object.
      properties:
        id:
          type: string
          description: The invoice id.
        invoice_number:
          description: The invoice number.
          type: string
        type:
          description: Invoice type.
          type: string
          enum:
            - invoice
            - credit_memo
        order_id:
          description: The id of the related order.
          type: string
        related_invoice_id:
          description: If the invoice is a credit memo (type=credit_memo), this field stores the id of the related/original invoice.
          type: string
          nullable: true
        status:
          description: The invoice status.
          type: string
          enum:
            - paid
            - charged_off
            - pending
            - refunded
            - canceled
            - refund_pending
        owner:
          description: The ULID of the owner.
          type: string
          format: ulid
        invoice_date:
          description: The invoice date.
          type: string
          format: date-time
          nullable: true
        invoice_due:
          description: The invoice due date.
          type: string
          format: date-time
          nullable: true
        created:
          description: The time when the invoice was created.
          type: string
          format: date-time
          nullable: true
        changed:
          description: The time when the invoice was changed.
          type: string
          format: date-time
          nullable: true
        company:
          description: Company name (if any).
          type: string
        total:
          description: The invoice total.
          type: number
          format: double
        address:
          $ref: '#/components/schemas/Address'
        notes:
          description: The invoice note.
          type: string
        invoice_pdf:
          $ref: '#/components/schemas/InvoicePDF'
    Organization:
      type: object
      properties:
        id:
          type: string
          format: ulid
          description: The ID of the organization.
        type:
          type: string
          description: The type of the organization.
          enum:
            - fixed
            - flexible
        owner_id:
          type: string
          format: uuid
          description: The ID of the owner.
        namespace:
          type: string
          description: The namespace in which the organization name is unique.
        name:
          type: string
          description: A unique machine name representing the organization.
        label:
          type: string
          description: The human-readable label of the organization.
        country:
          type: string
          description: The organization country (2-letter country code).
          maxLength: 2
        capabilities:
          type: array
          description: The organization capabilities.
          items:
            type: string
          uniqueItems: true
        vendor:
          type: string
          description: The vendor.
        status:
          type: string
          description: The status of the organization.
          enum:
            - active
            - restricted
            - suspended
            - deleted
        created_at:
          type: string
          format: date-time
          description: The date and time when the organization was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the organization was last updated.
        _links:
          type: object
          properties:
            self:
              type: object
              description: Link to the current organization.
              properties:
                href:
                  type: string
                  description: URL of the link.
            update:
              type: object
              description: Link for updating the current organization.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            delete:
              type: object
              description: Link for deleting the current organization.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            members:
              type: object
              description: Link to the current organization's members.
              properties:
                href:
                  type: string
                  description: URL of the link.
            create-member:
              type: object
              description: Link for creating a new organization member.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            address:
              type: object
              description: Link to the current organization's address.
              properties:
                href:
                  type: string
                  description: URL of the link.
            profile:
              type: object
              description: Link to the current organization's profile.
              properties:
                href:
                  type: string
                  description: URL of the link.
            payment-source:
              type: object
              description: Link to the current organization's payment source.
              properties:
                href:
                  type: string
                  description: URL of the link.
            orders:
              type: object
              description: Link to the current organization's orders.
              properties:
                href:
                  type: string
                  description: URL of the link.
            vouchers:
              type: object
              description: Link to the current organization's vouchers.
              properties:
                href:
                  type: string
                  description: URL of the link.
            apply-voucher:
              type: object
              description: Link for applying a voucher for the current organization.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            subscriptions:
              type: object
              description: Link to the current organization's subscriptions.
              properties:
                href:
                  type: string
                  description: URL of the link.
            create-subscription:
              type: object
              description: Link for creating a new organization subscription.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            estimate-subscription:
              type: object
              description: Link for estimating the price of a new subscription.
              properties:
                href:
                  type: string
                  description: URL of the link.
            mfa-enforcement:
              type: object
              description: Link to the current organization's MFA enforcement settings.
              properties:
                href:
                  type: string
                  description: URL of the link.
    OrganizationReference:
      description: The referenced organization, or null if it no longer exists.
      type: object
      nullable: true
      properties:
        id:
          type: string
          format: ulid
          description: The ID of the organization.
        owner_id:
          type: string
          format: uuid
          description: The ID of the owner.
        name:
          type: string
          description: A unique machine name representing the organization.
        label:
          type: string
          description: The human-readable label of the organization.
        vendor:
          type: string
          description: The vendor.
        created_at:
          type: string
          format: date-time
          description: The date and time when the organization was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the organization was last updated.
    OrganizationMember:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the user.
          deprecated: true
        organization_id:
          type: string
          format: ulid
          description: The ID of the organization.
        user_id:
          type: string
          format: uuid
          description: The ID of the user.
        permissions:
          $ref: '#/components/schemas/Permissions'
        level:
          type: string
          description: Access level of the member.
          enum:
            - admin
            - viewer
        owner:
          type: boolean
          description: Whether the member is the organization owner.
        created_at:
          type: string
          format: date-time
          description: The date and time when the member was created.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the member was last updated.
        _links:
          type: object
          properties:
            self:
              type: object
              description: Link to the current member.
              properties:
                href:
                  type: string
                  description: URL of the link.
            update:
              type: object
              description: Link for updating the current member.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            delete:
              type: object
              description: Link for deleting the current member.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
    Vouchers:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: The uuid of the user.
        vouchers_total:
          type: string
          description: The total voucher credit given to the user.
        vouchers_applied:
          type: string
          description: The part of total voucher credit applied to orders.
        vouchers_remaining_balance:
          type: string
          description: The remaining voucher credit, available for future orders.
        currency:
          type: string
          description: The currency of the vouchers.
        vouchers:
          description: Array of vouchers.
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: The voucher code.
              amount:
                type: string
                description: The total voucher credit.
              currency:
                type: string
                description: The currency of the voucher.
              orders:
                type: array
                description: Array of orders to which a voucher applied.
                items:
                  type: object
                  properties:
                    order_id:
                      type: string
                      description: The id of the order.
                    status:
                      type: string
                      description: The status of the order.
                    billing_period_start:
                      type: string
                      description: The billing period start timestamp of the order (ISO 8601).
                    billing_period_end:
                      type: string
                      description: The billing period end timestamp of the order (ISO 8601).
                    order_total:
                      type: string
                      description: The total of the order.
                    order_discount:
                      type: string
                      description: The total voucher credit applied to the order.
                    currency:
                      type: string
                      description: The currency of the order.
        _links:
          type: object
          properties:
            self:
              type: object
              description: Link to the current resource.
              properties:
                href:
                  type: string
                  description: URL of the link.
    Permissions:
      type: array
      description: The organization member permissions.
      items:
        type: string
        enum:
          - admin
          - billing
          - members
          - plans
          - projects:create
          - projects:list
    EstimationObject:
      type: object
      description: A price estimate object.
      properties:
        plan:
          type: string
          description: The monthly price of the plan.
        user_licenses:
          type: string
          description: The monthly price of the user licenses.
        environments:
          type: string
          description: The monthly price of the environments.
        storage:
          type: string
          description: The monthly price of the storage.
        total:
          type: string
          description: The total monthly price.
        options:
          type: object
          description: The unit prices of the options.
    OrganizationEstimationObject:
      type: object
      description: An estimation of all organization spend.
      properties:
        total:
          type: string
          description: The total estimated price for the organization.
        sub_total:
          type: string
          description: The sub total for all projects and sellables.
        vouchers:
          type: string
          description: The total amount of vouchers.
        user_licenses:
          type: object
          description: An estimation of user licenses cost.
          properties:
            base:
              type: object
              properties:
                count:
                  type: integer
                  description: The number of base user licenses.
                total:
                  type: string
                  description: The total price for base user licenses.
                list:
                  type: object
                  properties:
                    admin_user:
                      type: object
                      description: An estimation of admin users cost.
                      properties:
                        count:
                          type: integer
                          description: The number of admin user licenses.
                        total:
                          type: string
                          description: The total price for admin user licenses.
                    viewer_user:
                      type: object
                      description: An estimation of viewer users cost.
                      properties:
                        count:
                          type: integer
                          description: The number of viewer user licenses.
                        total:
                          type: string
                          description: The total price for viewer user licenses.
            user_management:
              type: object
              properties:
                count:
                  type: integer
                  description: The number of user_management licenses.
                total:
                  type: string
                  description: The total price for user_management licenses.
                list:
                  type: object
                  properties:
                    standard_management_user:
                      type: object
                      description: An estimation of standard_management_user cost.
                      properties:
                        count:
                          type: integer
                          description: The number of standard_management_user licenses.
                        total:
                          type: string
                          description: The total price for standard_management_user licenses.
                    advanced_management_user:
                      type: object
                      description: An estimation of advanced_management_user cost.
                      properties:
                        count:
                          type: integer
                          description: The number of advanced_management_user licenses.
                        total:
                          type: string
                          description: The total price for advanced_management_user licenses.
        user_management:
          type: string
          description: An estimation of the advanced user management sellable cost.
        support_level:
          type: string
          description: The total monthly price for premium support.
        subscriptions:
          type: object
          description: An estimation of subscriptions cost.
          properties:
            total:
              type: string
              description: The total price for subscriptions.
            list:
              type: array
              description: The list of active subscriptions.
              items:
                description: Details of a subscription
                type: object
                properties:
                  license_id:
                    type: string
                    description: The id of the subscription.
                  project_title:
                    type: string
                    description: The name of the project.
                  total:
                    type: string
                    description: The total price for the subscription.
                  usage:
                    type: object
                    description: The detail of the usage for the subscription.
                    properties:
                      cpu:
                        type: number
                        description: The total cpu for this subsciption.
                      memory:
                        type: number
                        description: The total memory for this subsciption.
                      storage:
                        type: number
                        description: The total storage for this subsciption.
                      environments:
                        type: integer
                        description: The total environments for this subsciption.
    OrganizationAddonsObject:
      type: object
      description: The list of available and current add-ons of an organization.
      properties:
        available:
          type: object
          description: The list of available add-ons and their possible values.
          properties:
            user_management:
              type: object
              description: Information about the levels of user management that are available.
              additionalProperties:
                type: number
                description: The number of commitment days required for the addon.
            support_level:
              type: object
              description: Information about the levels of support available.
              additionalProperties:
                type: number
                description: The number of commitment days required for the addon.
        current:
          type: object
          description: The list of existing add-ons and their current values.
          properties:
            user_management:
              type: object
              description: Information about the type of user management currently selected.
              additionalProperties:
                type: number
                description: The number of commitment days that remain for the addon.
            support_level:
              type: object
              description: Information about the level of support currently selected.
              additionalProperties:
                type: number
                description: The number of commitment days that remain for the addon.
        upgrades_available:
          type: object
          description: The upgrades available for current add-ons.
          properties:
            user_management:
              type: array
              description: Available upgrade options for user management.
              items:
                type: string
            support_level:
              type: array
              description: Available upgrade options for support.
              items:
                type: string
    SubscriptionAddonsObject:
      type: object
      description: The list of available and current addons for the license.
      properties:
        available:
          type: object
          description: The list of available addons.
          properties:
            continuous_profiling:
              type: object
              description: Information about the continuous profiling options available.
              additionalProperties:
                type: number
                description: The number of commitment days for the addon.
            project_support_level:
              type: object
              description: Information about the project uptime options available.
              additionalProperties:
                type: number
                description: The number of commitment days for the addon.
        current:
          type: object
          description: The list of existing addons and their current values.
          properties:
            continuous_profiling:
              type: object
              description: The current continuous profiling level of the license.
              additionalProperties:
                type: number
                description: The number of remaining commitment days for the addon.
            project_support_level:
              type: object
              description: The current project uptime level of the license.
              additionalProperties:
                type: number
                description: The number of remaining commitment days for the addon.
        upgrades_available:
          type: object
          description: The upgrades available for current addons.
          properties:
            continuous_profiling:
              type: array
              description: Available upgrade options for continuous profiling.
              items:
                type: string
            project_support_level:
              type: array
              description: Available upgrade options for project uptime.
              items:
                type: string
    OrganizationAlertConfig:
      type: object
      description: The alert configuration for an organization.
      properties:
        id:
          type: string
          description: Type of alert (e.g. "billing")
        active:
          type: boolean
          description: Whether the billing alert should be active or not.
        alerts_sent:
          type: number
          description: Number of alerts sent.
        last_alert_at:
          type: string
          description: The datetime the alert was last sent.
          nullable: true
        updated_at:
          type: string
          description: The datetime the alert was last updated.
          nullable: true
        config:
          type: object
          nullable: true
          description: Configuration for threshold and mode.
          properties:
            threshold:
              type: object
              description: Data regarding threshold spend.
              properties:
                formatted:
                  type: string
                  description: Formatted threshold value.
                amount:
                  type: number
                  description: Threshold value.
                currency_code:
                  type: string
                  description: Threshold currency code.
                currency_symbol:
                  type: string
                  description: Threshold currency symbol.
            mode:
              type: string
              description: The mode of alert.
    PrepaymentObject:
      type: object
      description: Prepayment information for an organization.
      properties:
        prepayment:
          type: object
          description: Prepayment information for an organization.
          properties:
            organization_id:
              type: string
              description: Organization ID
            balance:
              type: object
              description: The prepayment balance in complex format.
              properties:
                formatted:
                  type: string
                  description: Formatted balance.
                amount:
                  type: number
                  description: The balance amount.
                currency_code:
                  type: string
                  description: The balance currency code.
                currency_symbol:
                  type: string
                  description: The balance currency symbol.
            last_updated_at:
              type: string
              nullable: true
              description: The date the prepayment balance was last updated.
            sufficient:
              type: boolean
              description: Whether the prepayment balance is enough to cover the upcoming order.
            fallback:
              type: string
              nullable: true
              description: The fallback payment method, if any, to be used in case prepayment balance is not enough to cover an order.
    PrepaymentTransactionObject:
      type: object
      description: Prepayment transaction for an organization.
      properties:
        order_id:
          type: string
          description: Order ID
        message:
          type: string
          description: The message associated with transaction.
        status:
          type: string
          description: Whether the transactions was successful or a failure.
        amount:
          type: object
          description: The prepayment balance in complex format.
          properties:
            formatted:
              type: string
              description: Formatted balance.
            amount:
              type: number
              description: The balance amount.
            currency_code:
              type: string
              description: The balance currency code.
            currency_symbol:
              type: string
              description: The balance currency symbol.
        created:
          type: string
          description: Time the transaction was created.
        updated:
          type: string
          description: Time the transaction was last updated.
          nullable: true
        expire_date:
          type: string
          description: The expiration date of the transaction (deposits only).
          nullable: true
    ArrayFilter:
      type: object
      properties:
        eq:
          type: string
          description: Equal
        ne:
          type: string
          description: Not equal
        in:
          type: string
          description: In (comma-separated list)
        nin:
          type: string
          description: Not in (comma-separated list)
    OrganizationProject:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ProjectID'
        organization_id:
          $ref: '#/components/schemas/OrganizationID'
        subscription_id:
          $ref: '#/components/schemas/SubscriptionID'
        vendor:
          type: string
          description: Vendor of the project.
        region:
          $ref: '#/components/schemas/RegionID'
        title:
          $ref: '#/components/schemas/ProjectTitle'
        type:
          $ref: '#/components/schemas/ProjectType'
        plan:
          $ref: '#/components/schemas/ProjectPlan'
        timezone:
          $ref: '#/components/schemas/ProjectTimeZone'
        default_branch:
          $ref: '#/components/schemas/ProjectDefaultBranch'
        status:
          $ref: '#/components/schemas/ProjectStatus'
        trial_plan:
          $ref: '#/components/schemas/ProjectTrialPlan'
        project_ui:
          $ref: '#/components/schemas/ProjectUI'
        locked:
          $ref: '#/components/schemas/ProjectLocked'
        cse_notes:
          $ref: '#/components/schemas/ProjectCSENotes'
        dedicated_tag:
          $ref: '#/components/schemas/ProjectDedicatedTag'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        _links:
          type: object
          properties:
            self:
              type: object
              description: Link to the current project.
              properties:
                href:
                  type: string
                  description: URL of the link.
            update:
              type: object
              description: Link for updating the current project.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            delete:
              type: object
              description: Link for deleting the current project.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            activities:
              type: object
              description: Link to the project's activities.
              properties:
                href:
                  type: string
                  description: URL of the link.
            addons:
              type: object
              description: Link to the project's add-ons.
              properties:
                href:
                  type: string
                  description: URL of the link.
    OrganizationCarbon:
      type: object
      properties:
        organization_id:
          $ref: '#/components/schemas/OrganizationID'
        meta:
          $ref: '#/components/schemas/MetricsMetadata'
        projects:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationProjectCarbon'
        total:
          $ref: '#/components/schemas/CarbonTotal'
    CDN:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ProjectAddonID'
        project_id:
          $ref: '#/components/schemas/ProjectID'
        type:
          $ref: '#/components/schemas/AddonType'
        value:
          $ref: '#/components/schemas/ProjectAddonValue'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        _links:
          type: object
          properties:
            self:
              type: object
              description: Link to the current add-on.
              properties:
                href:
                  type: string
                  description: URL of the link.
            update:
              type: object
              description: Link for updating the current add-on.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            delete:
              type: object
              description: Link for deleting the current add-on.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
    ProjectCarbon:
      type: object
      properties:
        project_id:
          $ref: '#/components/schemas/ProjectID'
        project_title:
          $ref: '#/components/schemas/ProjectTitle'
        meta:
          $ref: '#/components/schemas/MetricsMetadata'
        values:
          $ref: '#/components/schemas/MetricsValues'
        total:
          $ref: '#/components/schemas/CarbonTotal'
    OrganizationProjectCarbon:
      type: object
      properties:
        project_id:
          $ref: '#/components/schemas/ProjectID'
        project_title:
          $ref: '#/components/schemas/ProjectTitle'
        values:
          $ref: '#/components/schemas/MetricsValues'
        total:
          $ref: '#/components/schemas/CarbonTotal'
    ProjectPlan:
      type: string
      description: The project plan.
    ProjectReference:
      description: The referenced project, or null if it no longer exists.
      type: object
      nullable: true
      required:
        - id
        - organization_id
        - subscription_id
        - region
        - title
        - type
        - plan
        - status
        - agency_site
        - support_tier
        - created_at
        - updated_at
      properties:
        id:
          $ref: '#/components/schemas/ProjectID'
        organization_id:
          $ref: '#/components/schemas/OrganizationID'
        subscription_id:
          $ref: '#/components/schemas/SubscriptionID'
        region:
          $ref: '#/components/schemas/RegionID'
        title:
          $ref: '#/components/schemas/ProjectTitle'
        type:
          $ref: '#/components/schemas/ProjectType'
        plan:
          $ref: '#/components/schemas/ProjectPlan'
        status:
          $ref: '#/components/schemas/ProjectStatus'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
    RegionReference:
      description: The referenced region, or null if it no longer exists.
      type: object
      nullable: true
      required:
        - id
        - label
        - zone
        - selection_label
        - project_label
        - timezone
        - available
        - endpoint
        - provider
        - datacenter
        - compliance
        - created_at
        - updated_at
      properties:
        id:
          $ref: '#/components/schemas/RegionID'
        label:
          $ref: '#/components/schemas/RegionLabel'
        zone:
          $ref: '#/components/schemas/RegionZone'
        selection_label:
          $ref: '#/components/schemas/RegionSelectionLabel'
        project_label:
          $ref: '#/components/schemas/RegionProjectLabel'
        timezone:
          $ref: '#/components/schemas/RegionTimezone'
        available:
          $ref: '#/components/schemas/RegionAvailable'
        private:
          $ref: '#/components/schemas/RegionPrivate'
        endpoint:
          $ref: '#/components/schemas/RegionEndpoint'
        code:
          $ref: '#/components/schemas/RegionCode'
        provider:
          $ref: '#/components/schemas/RegionProvider'
        datacenter:
          $ref: '#/components/schemas/RegionDataCenter'
        envimpact:
          $ref: '#/components/schemas/RegionEnvImpact'
        compliance:
          $ref: '#/components/schemas/RegionCompliance'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
    AddonType:
      type: string
      description: The type of the add-on.
    ProjectAddonID:
      type: string
      description: The ID of the add-on.
    ProjectAddonValue:
      oneOf:
        - type: string
        - type: integer
      description: The value of the add-on.
    CdnEnvironment:
      type: string
      description: The environment of the CDN.
    CdnServiceName:
      type: string
      description: The name of the CDN service.
    CdnBackendHostname:
      type: string
      description: The hostname of the CDN backend.
    CdnSNIHostname:
      type: string
      description: The SNI hostname of the CDN.
    CdnDomains:
      type: array
      items:
        type: string
        format: hostname
      description: The domains associated with the CDN.
    CdnComment:
      type: string
      description: The comment for the CDN.
    CdnSkipTokenSetup:
      type: boolean
      description: Whether to skip the token setup for the CDN.
    ProjectID:
      type: string
      description: The ID of the project.
    OrganizationID:
      type: string
      description: The ID of the organization.
    SubscriptionID:
      type: string
      description: The ID of the subscription.
    RegionID:
      type: string
      description: The machine name of the region where the project is located.
    ProjectTitle:
      type: string
      description: The title of the project.
    ProjectType:
      type: string
      description: The type of projects.
      enum:
        - grid
        - dedicated
    ProjectTimeZone:
      type: string
      description: Timezone of the project.
    ProjectDefaultBranch:
      type: string
      description: Default branch.
    ProjectLocked:
      type: boolean
      description: Locked
    ProjectCSENotes:
      type: string
      description: CSE notes.
    ProjectStatus:
      type: string
      description: The status of the project.
      enum:
        - requested
        - active
        - failed
        - suspended
        - deleted
    ProjectDedicatedTag:
      type: string
      description: Dedicated tag.
    ProjectUI:
      description: The URL for the project's user interface.
      type: string
    ProjectTrialPlan:
      description: Whether the project is currently on a trial plan.
      type: boolean
    RegionLabel:
      type: string
      description: The human-readable name of the region.
    RegionZone:
      type: string
      description: The geographical zone of the region.
    RegionSelectionLabel:
      type: string
      description: The label to display when choosing between regions for new projects.
    RegionProjectLabel:
      type: string
      description: The label to display on existing projects.
    RegionTimezone:
      type: string
      description: Default timezone of the region.
    RegionAvailable:
      type: boolean
      description: Indicator whether or not this region is selectable during the checkout. Not available regions will never show up during checkout.
    RegionPrivate:
      type: boolean
      description: Indicator whether or not this platform is for private use only.
    RegionEndpoint:
      type: string
      description: Link to the region API endpoint.
    RegionCode:
      type: string
      description: The code of the region
    RegionProvider:
      type: object
      description: Information about the region provider.
    RegionDataCenter:
      type: object
      description: Information about the region provider data center.
    RegionEnvImpact:
      type: object
      description: Information about the region provider's environmental impact.
    RegionCompliance:
      type: object
      description: Information about the region's compliance.
    MetricsMetadata:
      type: object
      properties:
        from:
          description: The value used to calculate the lower bound of the temporal query. Inclusive.
        to:
          description: The truncated value used to calculate the upper bound of the temporal query. Exclusive.
        interval:
          description: The interval used to group the metric values.
        units:
          description: The units associated with the provided values.
    MetricsValues:
      type: array
      items:
        $ref: '#/components/schemas/MetricsValue'
    MetricsValue:
      type: object
      properties:
        value:
          description: The measured value of the metric for the given time interval.
        start_time:
          description: The timestamp at which the time interval began.
    CarbonTotal:
      type: number
      description: The calculated total of the metric for the given interval.
    CreatedAt:
      type: string
      format: date-time
      description: The date and time when the resource was created.
    UpdatedAt:
      type: string
      format: date-time
      description: The date and time when the resource was last updated.
    TeamProjectAccess:
      type: object
      properties:
        team_id:
          type: string
          format: ulid
          description: The ID of the team.
        organization_id:
          type: string
          format: ulid
          description: The ID of the organization.
        project_id:
          type: string
          description: The ID of the project.
        project_title:
          type: string
          description: The title of the project.
        granted_at:
          type: string
          format: date-time
          description: The date and time when the access was granted.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the access was last updated.
        _links:
          type: object
          properties:
            self:
              type: object
              description: Link to the current access item.
              properties:
                href:
                  type: string
                  description: URL of the link.
            update:
              type: object
              description: Link for updating the current access item.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            delete:
              type: object
              description: Link for deleting the current access item.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
    UserProjectAccess:
      type: object
      properties:
        user_id:
          type: string
          format: uuid
          description: The ID of the user.
        organization_id:
          type: string
          format: ulid
          description: The ID of the organization.
        project_id:
          type: string
          description: The ID of the project.
        project_title:
          type: string
          description: The title of the project.
        permissions:
          $ref: '#/components/schemas/ProjectPermissions'
        granted_at:
          type: string
          format: date-time
          description: The date and time when the access was granted.
        updated_at:
          type: string
          format: date-time
          description: The date and time when the access was last updated.
        _links:
          type: object
          properties:
            self:
              type: object
              description: Link to the current access item.
              properties:
                href:
                  type: string
                  description: URL of the link.
            update:
              type: object
              description: Link for updating the current access item.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
            delete:
              type: object
              description: Link for deleting the current access item.
              properties:
                href:
                  type: string
                  description: URL of the link.
                method:
                  type: string
                  description: The HTTP method to use.
    ProjectPermissions:
      type: array
      description: An array of project permissions.
      items:
        type: string
        enum:
          - admin
          - viewer
          - development:admin
          - development:contributor
          - development:viewer
          - staging:admin
          - staging:contributor
          - staging:viewer
          - production:admin
          - production:contributor
          - production:viewer
    InvoicePDF:
      description: Invoice PDF document details.
      properties:
        url:
          description: A link to the PDF invoice.
          type: string
        status:
          description: The status of the PDF document. We generate invoice PDF asyncronously in batches. An invoice PDF document may not be immediately available to download. If status is 'ready', the PDF is ready to download. 'pending' means the PDF is not created but queued up. If you get this status, try again later.
          type: string
          enum:
            - ready
            - pending
      type: object
    Order:
      description: The order object.
      properties:
        id:
          description: The ID of the order.
          type: string
        status:
          description: The status of the subscription.
          type: string
          enum:
            - completed
            - past_due
            - pending
            - canceled
            - payment_failed_soft_decline
            - payment_failed_hard_decline
        owner:
          description: The UUID of the owner.
          type: string
          format: uuid
        address:
          $ref: '#/components/schemas/Address'
        company:
          description: The company name.
          type: string
        vat_number:
          description: An identifier used in many countries for value added tax purposes.
          type: string
        billing_period_start:
          description: The time when the billing period of the order started.
          type: string
          format: date-time
        billing_period_end:
          description: The time when the billing period of the order ended.
          type: string
          format: date-time
        billing_period_label:
          description: Descriptive information about the billing cycle.
          properties:
            formatted:
              description: The renderable label for the billing cycle.
              type: string
            month:
              description: The month of the billing cycle.
              type: string
            year:
              description: The year of the billing cycle.
              type: string
            next_month:
              description: The name of the next month following this billing cycle.
              type: string
          type: object
        billing_period_duration:
          description: The duration of the billing period of the order in seconds.
          type: integer
        paid_on:
          description: The time when the order was successfully charged.
          type: string
          format: date-time
          nullable: true
        total:
          description: The total of the order.
          type: integer
        total_formatted:
          description: The total of the order, formatted with currency.
          type: integer
        components:
          $ref: '#/components/schemas/Components'
        currency:
          description: The order currency code.
          type: string
        invoice_url:
          description: A link to the PDF invoice.
          type: string
        last_refreshed:
          description: The time when the order was last refreshed.
          type: string
          format: date-time
        invoiced:
          description: The customer is invoiced.
          type: boolean
        line_items:
          description: The line items that comprise the order.
          type: array
          items:
            $ref: '#/components/schemas/LineItem'
        _links:
          description: Links to related API endpoints.
          properties:
            invoices:
              description: Link to related Invoices API. Use this to retrieve invoices related to this order.
              properties:
                href:
                  description: URL of the link
                  type: string
              type: object
          type: object
      type: object
    PlanRecords:
      description: The plan record object.
      properties:
        id:
          description: The unique ID of the plan record.
          type: string
        owner:
          description: The UUID of the owner.
          type: string
          format: uuid
        subscription_id:
          description: The ID of the subscription this record pertains to.
          type: string
        sku:
          description: The product SKU of the plan that this record represents.
          type: string
        plan:
          description: The machine name of the plan that this record represents.
          type: string
        options:
          type: array
          items:
            description: The SKU of an option.
            type: string
        start:
          description: The start timestamp of this plan record (ISO 8601).
          type: string
          format: date-time
        end:
          description: The end timestamp of this plan record (ISO 8601).
          type: string
          format: date-time
          nullable: true
        status:
          description: 'The status of the subscription during this record: active or suspended.'
          type: string
      type: object
    Usage:
      description: The usage object.
      properties:
        id:
          description: The unique ID of the usage record.
          type: string
        subscription_id:
          description: The ID of the subscription.
          type: string
        usage_group:
          description: The type of usage that this record represents.
          type: string
        quantity:
          description: The quantity used.
          type: number
        start:
          description: The start timestamp of this usage record (ISO 8601).
          type: string
          format: date-time
      type: object
  parameters:
    filter_invoice_type:
      name: filter[type]
      in: query
      description: The invoice type. Use invoice for standard invoices, credit_memo for refund/credit invoices.
      schema:
        type: string
        enum:
          - credit_memo
          - invoice
    filter_order_id:
      name: filter[order_id]
      in: query
      description: The order id of Invoice.
      schema:
        type: string
    filter_invoice_status:
      name: filter[status]
      in: query
      description: The status of the invoice.
      schema:
        type: string
        enum:
          - paid
          - charged_off
          - pending
          - refunded
          - canceled
          - refund_pending
    mode:
      name: mode
      in: query
      description: The output mode.
      schema:
        type: string
        enum:
          - details
    filter_order_status:
      name: filter[status]
      in: query
      description: The status of the order.
      schema:
        type: string
        enum:
          - completed
          - past_due
          - pending
          - canceled
          - payment_failed_soft_decline
          - payment_failed_hard_decline
    filter_order_total:
      name: filter[total]
      in: query
      description: The total of the order.
      schema:
        type: integer
    record_end:
      name: filter[end]
      in: query
      description: The end of the observation period for the record. E.g. filter[end]=2018-01-01 will display all records that were active on (i.e. they started before) 2018-01-01
      schema:
        type: string
        format: date-time
    record_ended_at:
      name: filter[ended_at]
      in: query
      description: The record's end timestamp. You can use this filter to list records ended after, or before a certain time. E.g. filter[ended_at][value]=2020-01-01&filter[ended_at][operator]=>
      schema:
        type: string
        format: date-time
    record_status:
      name: filter[status]
      in: query
      description: 'The status of the plan record. '
      schema:
        type: string
        enum:
          - active
          - suspended
    record_usage_group:
      name: filter[usage_group]
      in: query
      description: Filter records by the type of usage.
      schema:
        type: string
        enum:
          - storage
          - environments
          - user_licenses
    record_start:
      name: filter[start]
      in: query
      description: The start of the observation period for the record. E.g. filter[start]=2018-01-01 will display all records that were active (i.e. did not end) on 2018-01-01
      schema:
        type: string
        format: date-time
    record_started_at:
      name: filter[started_at]
      in: query
      description: The record's start timestamp. You can use this filter to list records started after, or before a certain time. E.g. filter[started_at][value]=2020-01-01&filter[started_at][operator]=>
      schema:
        type: string
        format: date-time
    discountId:
      name: id
      in: path
      description: The ID of the organization discount
      required: true
      schema:
        type: string
    id:
      name: filter[id]
      in: query
      description: Machine name of the region.
      schema:
        type: string
    subscription_id:
      name: subscriptionId
      in: path
      description: The ID of the subscription
      required: true
      schema:
        type: string
    filter_subscription_id:
      name: filter[subscription_id]
      in: query
      description: The ID of the subscription
      required: false
      schema:
        type: string
    subscription_status:
      name: filter[status]
      in: query
      description: 'The status of the subscription. '
      schema:
        type: string
        enum:
          - active
          - provisioning
          - provisioning failure
          - suspended
          - deleted
    subscription_plan:
      name: plan
      in: query
      description: The plan type of the subscription.
      schema:
        type: string
        enum:
          - development
          - standard
          - medium
          - large
          - xlarge
          - 2xlarge
    filter_subscription_plan:
      name: filter[plan]
      in: query
      description: The plan type of the subscription.
      schema:
        type: string
        enum:
          - development
          - standard
          - medium
          - large
          - xlarge
          - 2xlarge
    subscription_environments:
      name: environments
      in: query
      description: The number of environments which can be provisioned on the project.
      schema:
        type: integer
        default: null
    subscription_storage:
      name: storage
      in: query
      description: The total storage available to each environment, in MiB. Only multiples of 1024 are accepted as legal values.
      schema:
        type: integer
        default: null
    subscription_user_licenses:
      name: user_licenses
      in: query
      description: The number of user licenses.
      schema:
        type: integer
    page:
      name: page
      in: query
      description: Page to be displayed. Defaults to 1.
      required: false
      schema:
        type: integer
        format: int32
    user_id:
      name: userId
      in: path
      description: The UUID of the user
      required: true
      schema:
        type: string
    filter_ticket_id:
      name: filter[ticket_id]
      in: query
      description: The ID of the ticket.
      schema:
        type: integer
    filter_created:
      name: filter[created]
      in: query
      description: ISO dateformat expected. The time when the support ticket was created.
      schema:
        type: string
        format: date-time
    filter_updated:
      name: filter[updated]
      in: query
      description: ISO dateformat expected. The time when the support ticket was updated.
      schema:
        type: string
        format: date-time
    filter_type:
      name: filter[type]
      in: query
      description: The type of the support ticket.
      schema:
        type: string
        enum:
          - problem
          - task
          - incident
          - question
    filter_priority:
      name: filter[priority]
      in: query
      description: The priority of the support ticket.
      schema:
        type: string
        enum:
          - low
          - normal
          - high
          - urgent
    filter_ticket_status:
      name: filter[status]
      in: query
      description: The status of the support ticket.
      schema:
        type: string
        enum:
          - closed
          - deleted
          - hold
          - new
          - open
          - pending
          - solved
    filter_requester_id:
      name: filter[requester_id]
      in: query
      description: UUID of the ticket requester. Converted from the ZID value.
      schema:
        type: string
        format: uuid
    filter_submitter_id:
      name: filter[submitter_id]
      in: query
      description: UUID of the ticket submitter. Converted from the ZID value.
      schema:
        type: string
        format: uuid
    filter_assignee_id:
      name: filter[assignee_id]
      in: query
      description: UUID of the ticket assignee. Converted from the ZID value.
      schema:
        type: string
        format: uuid
    filter_has_incidents:
      name: filter[has_incidents]
      in: query
      description: Whether or not this ticket has incidents.
      schema:
        type: boolean
    filter_due:
      name: filter[due]
      in: query
      description: ISO dateformat expected. A time that the ticket is due at.
      schema:
        type: string
        format: date-time
    InvitationID:
      name: invitation_id
      in: path
      required: true
      description: The ID of the invitation.
      schema:
        type: string
    OrganizationID:
      name: organization_id
      in: path
      required: true
      description: The ID of the organization.
      schema:
        type: string
        format: ulid
    ProjectID:
      name: project_id
      in: path
      required: true
      description: The ID of the project.
      schema:
        type: string
    TeamID:
      name: team_id
      in: path
      required: true
      description: The ID of the team.
      schema:
        type: string
    UserID:
      name: user_id
      in: path
      required: true
      description: The ID of the user.
      schema:
        type: string
        example: d81c8ee2-44b3-429f-b944-a33ad7437690
        format: uuid
    OrganizationIDName:
      in: path
      name: organization_id
      description: |
        The ID of the organization.<br>
        Prefix with name= to retrieve the organization by name instead.
      required: true
      schema:
        type: string
    OrderID:
      in: path
      name: order_id
      description: The ID of the order.
      required: true
      schema:
        type: string
    SubscriptionID:
      in: path
      name: subscription_id
      description: The ID of the subscription.
      required: true
      schema:
        type: string
    InvoiceID:
      in: path
      name: invoice_id
      description: The ID of the invoice.
      required: true
      schema:
        type: string
    RegionID:
      in: path
      name: region_id
      description: The ID of the region.
      required: true
      schema:
        type: string
    CdnID:
      in: path
      name: cdn_id
      description: The ID of the CDN.
      required: true
      schema:
        type: string
    project_id:
      name: filter[project_id]
      in: query
      description: Allows filtering by `project_id` using one or more operators.
      style: deepObject
      explode: true
      schema:
        $ref: '#/components/schemas/StringFilter'
    project_title:
      in: query
      name: filter[project_title]
      description: Allows filtering by `project_title` using one or more operators.
      style: deepObject
      explode: true
      schema:
        $ref: '#/components/schemas/StringFilter'
    region:
      in: query
      name: filter[region]
      description: Allows filtering by `region` using one or more operators.
      style: deepObject
      explode: true
      schema:
        $ref: '#/components/schemas/StringFilter'
    updated_at:
      in: query
      name: filter[updated_at]
      description: Allows filtering by `updated_at` using one or more operators.
      style: deepObject
      explode: true
      schema:
        $ref: '#/components/schemas/DateTimeFilter'
    subscription_sort:
      in: query
      name: sort
      description: |
        Allows sorting by a single field.<br>
        Use a dash ("-") to sort descending.<br>
        Supported fields: `region`, `project_title`, `type`, `plan`, `status`, `created_at`, `updated_at`.
      schema:
        type: string
        example: '-updated_at'
    page_size:
      in: query
      name: page[size]
      description: Determines the number of items to show.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: null
    page_before:
      in: query
      name: page[before]
      description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
      schema:
        type: string
    page_after:
      in: query
      name: page[after]
      description: Pagination cursor. This is automatically generated as necessary and provided in HAL links (_links); it should not be constructed externally.
      schema:
        type: string
    from:
      in: query
      name: from
      description: The start of the time frame for the query. Inclusive.
      schema:
        $ref: '#/components/schemas/DateTimeFilter'
    to:
      in: query
      name: to
      description: The end of the time frame for the query. Exclusive.
      schema:
        $ref: '#/components/schemas/DateTimeFilter'
    interval:
      in: query
      name: interval
      description: The interval by which the query groups the results. of the time frame for the query. Exclusive.
      schema:
        type: string
        enum:
          - day
          - month
          - year
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          tokenUrl: https://auth.api.platform.sh/oauth2/token
          refreshUrl: https://auth.api.platform.sh/oauth2/token
          scopes: {}
          authorizationUrl: https://auth.api.platform.sh/oauth2/authorize
      description: ''
    OAuth2Admin:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.api.platform.sh/oauth2/token
          refreshUrl: ''
          scopes:
            admin: administrative operations
      description: ''
  responses: {}
  examples: {}
x-tagGroups:
  - name: Organization Administration
    tags:
      - Organizations
      - Organization Members
      - Organization Invitations
      - Organization Projects
      - Add-ons
  - name: Project Administration
    tags:
      - Project
      - Domain Management
      - Cert Management
      - Project Variables
      - Repository
      - Third-Party Integrations
      - Support
  - name: Environments
    tags:
      - Environment
      - Environment Backups
      - Environment Variables
      - Routing
      - Source Operations
      - Runtime Operations
      - Deployment
  - name: User Activity
    tags:
      - Project Activity
      - Environment Activity
  - name: Project Access
    tags:
      - Project Invitations
      - Teams
      - Team Access
      - User Access
  - name: Account Management
    tags:
      - API Tokens
      - Connections
      - MFA
      - Users
      - User Profiles
      - SSH Keys
      - Plans
  - name: Billing
    tags:
      - Organization Management
      - Subscriptions
      - Orders
      - Invoices
      - Discounts
      - Vouchers
      - Records
      - Profiles
  - name: Global Info
    tags:
      - Project Discovery
      - References
      - Regions
  - name: Internal APIs
    tags:
      - Project Settings
      - Environment Settings
      - Deployment Target
      - System Information
      - Container Profile
