openapi: 3.0.0
servers:
  - url: https://api.clever-cloud.com/v2
info:
  contact:
    x-twitter: clever_cloud
  description: Public API for managing Clever-Cloud data and products
  title: Clever-Cloud API
  version: 1.0.0
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://twitter.com/clever_cloud/profile_image?size=original
  x-origin:
    - format: openapi
      url: https://www.clever-cloud.com/doc/api/swagger.json
      version: "3.0"
  x-providerName: clever-cloud.com
paths:
  //openapi:
    get:
      responses:
        "200":
          description: The swagger documenting this API in yaml format.
      tags:
        - all
  "//openapi.{type}":
    parameters:
      - in: path
        name: type
        required: true
        schema:
          type: string
  "/application/{appId}/environment":
    get:
      parameters:
        - in: query
          name: token
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Status 200
      tags:
        - all
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      parameters:
        - in: query
          name: token
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Status 200
      tags:
        - all
  /authorize:
    post:
      description: Handled by our API.
      operationId: postAuthorize
      responses:
        "200":
          description: authorize
      tags:
        - all
  /events/event-socket:
    get:
      description: 'Retrieve events as they come through a websocket connection. To have authorization, you have to send a `{ "message_type": "oauth", "authorization": "oauth authorization string" }` message'
      responses:
        default:
          description: <No description>
      tags:
        - all
        - events
  /github:
    get:
      operationId: getGithub
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Transaction_Id"
          description: startGithub
      tags:
        - all
        - github
  /github/applications:
    get:
      operationId: getGithubApplications
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: getGithubApplications
      tags:
        - all
        - applications
        - github
  /github/callback:
    get:
      operationId: getGithubCallback
      parameters:
        - in: query
          name: code
          required: false
          schema:
            type: string
        - in: query
          name: state
          required: false
          schema:
            type: string
        - in: query
          name: error
          required: false
          schema:
            type: string
        - in: query
          name: error_description
          required: false
          schema:
            type: string
        - in: query
          name: error_uri
          required: false
          schema:
            type: string
        - in: header
          name: Cookie
          required: false
          schema:
            type: string
      responses:
        "200":
          description: githubCallback
      tags:
        - all
        - github
  /github/emails:
    get:
      operationId: getGithubEmails
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  type: string
                type: array
          description: getGithubEmails
      tags:
        - all
        - github
  /github/keys:
    get:
      operationId: getGithubKeys
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Key"
                type: array
          description: getGithubKeys
      tags:
        - all
        - github
  /github/link:
    delete:
      operationId: deleteGithubLink
      responses:
        "200":
          description: unlinkGithub
      tags:
        - all
        - github
    get:
      operationId: getGithubLink
      parameters:
        - description: From GET /github
          in: query
          name: transactionId
          required: false
          schema:
            type: string
        - in: query
          name: redirectUrl
          required: false
          schema:
            type: string
      responses:
        "200":
          description: linkGithub
      tags:
        - all
        - github
  /github/login:
    get:
      operationId: getGithubLogin
      parameters:
        - in: query
          name: redirectUrl
          required: false
          schema:
            type: string
        - in: query
          name: fromAuthorize
          required: false
          schema:
            type: string
      responses:
        "200":
          description: githubLogin
      tags:
        - all
        - github
  /github/redeploy:
    post:
      operationId: postGithubRedeploy
      parameters:
        - in: header
          name: User-Agent
          required: false
          schema:
            type: string
        - in: header
          name: X-Github-Event
          required: false
          schema:
            type: string
        - in: header
          name: X-Hub-Signature
          required: false
          schema:
            type: string
      responses:
        "200":
          description: redeployApp
      tags:
        - all
        - github
  /github/signup:
    get:
      operationId: getGithubSignup
      parameters:
        - in: query
          name: redirectUrl
          required: false
          schema:
            type: string
        - in: query
          name: fromAuthorize
          required: false
          schema:
            type: string
      responses:
        "200":
          description: githubSignup
      tags:
        - all
        - github
    post:
      operationId: postGithubSignup
      parameters:
        - in: query
          name: transactionId
          required: false
          schema:
            type: string
        - in: query
          name: name
          required: false
          schema:
            type: string
        - in: query
          name: otherId
          required: false
          schema:
            type: string
        - in: query
          name: otherEmail
          required: false
          schema:
            type: string
        - in: query
          name: password
          required: false
          schema:
            type: string
        - in: query
          name: autoLink
          required: false
          schema:
            type: string
        - in: query
          name: terms
          required: false
          schema:
            type: string
      responses:
        "200":
          description: finsihGithubSignup
      tags:
        - all
        - github
  /github/username:
    get:
      operationId: getGithubUsername
      responses:
        "200":
          content:
            "*/*":
              schema:
                type: string
          description: getGithubUsername
      tags:
        - all
        - github
  "/logs-socket/{appId}":
    get:
      description: WebSocket to get logs for :appID. Optional queryString arg bind_to_es=true to bind WS on log storage and not real time AMQP broker
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
  /logs/drains:
    get:
      description: Fetch all the logs drains (ccadmin dedicated route)
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/logs/drains/{drainId}":
    put:
      description: Fetch all the logs drains (ccadmin dedicated route)
      parameters:
        - description: Automatically added
          in: path
          name: drainId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/logs/logs-chunked/{appId}":
    get:
      description: Retrieve logs as they come through a chunked, never-ending response
      parameters:
        - description: Application Id
          in: path
          name: appId
          required: true
          schema:
            type: string
        - description: Tell the user-agent to download the body as a file
          in: query
          name: download
          required: false
          schema:
            type: boolean
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/logs/logs-socket/{appId}":
    get:
      description: 'Retrieve logs as they come through a websocket connection. To have authorization, you have to send a `{ "message_type": "oauth", "authorization": "oauth authorization string" }` message'
      parameters:
        - description: Application Id
          in: path
          name: appId
          required: true
          schema:
            type: string
        - description: Only fetch logs newer than this (ISO-8601 formatted) date
          in: query
          name: since
          required: false
          schema:
            format: date-time
            type: string
        - description: A pattern to filter with
          in: query
          name: filter
          required: false
          schema:
            type: string
        - description: Only fetch logs emitted by this deployment
          in: query
          name: deployment_id
          required: false
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/logs/{appId}":
    get:
      description: Fetch the logs for a given application
      parameters:
        - description: Application Id
          in: path
          name: appId
          required: true
          schema:
            type: string
        - description: Number of lines to return
          in: query
          name: limit
          required: false
          schema:
            format: int32
            type: integer
        - description: Logs order
          in: query
          name: order
          required: false
          schema:
            default: desc
            enum:
              - asc
              - desc
            type: string
        - description: Lowest bound for logs date, ISO 8601
          in: query
          name: after
          required: false
          schema:
            format: date-time
            type: string
        - description: Highest bounds for logs date, ISO 8601
          in: query
          name: before
          required: false
          schema:
            format: date-time
            type: string
        - description: A pattern to filter with
          in: query
          name: filter
          required: false
          schema:
            type: string
        - description: Only fetch logs emitted by this deployment
          in: query
          name: deployment_id
          required: false
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/logs/{appId}/drains":
    get:
      description: Fetch the logs drains for a given application
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
    post:
      description: Add a log drain for a given application
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/logs/{appId}/drains/:idOrUrl":
    delete:
      description: Delete the logs drain by id or url for a given application
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
    get:
      description: Fetch the logs drain by id or url for a given application
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/logs/{appId}/sse":
    get:
      description: Retrieve logs as they come through a sse connection. To have authorization, you have to add `authorization=oAuthAuthorizationString` as query param.
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  /newsfeeds/blog:
    get:
      operationId: getNewsfeedsBlog
      responses:
        "200":
          description: getBlogFeed
      tags:
        - all
  /newsfeeds/engineering:
    get:
      operationId: getNewsfeedEngineering
      responses:
        "200":
          description: getEngineeringFeed
      tags:
        - all
  "/notifications/emailhooks/{ownerId}":
    get:
      description: list created e-mail hooks
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
    post:
      description: create a hook for e-mail notifications
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
  "/notifications/emailhooks/{ownerId}/:id":
    delete:
      description: delete an e-mail hook
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
    put:
      description: edit an e-mail hook
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
  /notifications/info/events:
    get:
      description: list available events
      responses:
        default:
          description: <No description>
      tags:
        - all
        - events
  /notifications/info/webhookformats:
    get:
      description: list available webhook formats
      responses:
        default:
          description: <No description>
      tags:
        - all
  "/notifications/webhooks/{ownerId}":
    get:
      description: list created hooks
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
    post:
      description: create a hook for notifications
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
  "/notifications/webhooks/{ownerId}/:id":
    delete:
      description: delete a hook
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
    put:
      description: edit a hook
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
  /oauth/access_token:
    post:
      operationId: postOauthAccessToken
      parameters:
        - in: query
          name: oauth_consumer_key
          required: false
          schema:
            type: string
        - in: query
          name: oauth_token
          required: false
          schema:
            type: string
        - in: query
          name: oauth_signature_method
          required: false
          schema:
            type: string
        - in: query
          name: oauth_signature
          required: false
          schema:
            type: string
        - in: query
          name: oauth_timestamp
          required: false
          schema:
            type: string
        - in: query
          name: oauth_nonce
          required: false
          schema:
            type: string
        - in: query
          name: oauth_version
          required: false
          schema:
            type: string
        - in: query
          name: oauth_verifier
          required: false
          schema:
            type: string
        - in: query
          name: oauth_callback
          required: false
          schema:
            type: string
        - in: query
          name: oauth_token_secret
          required: false
          schema:
            type: string
        - in: query
          name: oauth_callback_confirmed
          required: false
          schema:
            type: string
      responses:
        "200":
          description: postAccessTokenRequest
      tags:
        - all
        - oauth
  /oauth/access_token_query:
    post:
      parameters:
        - in: query
          name: oauth_consumer_key
          required: false
          schema:
            type: string
        - in: query
          name: oauth_token
          required: false
          schema:
            type: string
        - in: query
          name: oauth_signature_method
          required: false
          schema:
            type: string
        - in: query
          name: oauth_signature
          required: false
          schema:
            type: string
        - in: query
          name: oauth_timestamp
          required: false
          schema:
            type: string
        - in: query
          name: oauth_nonce
          required: false
          schema:
            type: string
        - in: query
          name: oauth_version
          required: false
          schema:
            type: string
        - in: query
          name: oauth_verifier
          required: false
          schema:
            type: string
        - in: query
          name: oauth_callback
          required: false
          schema:
            type: string
        - in: query
          name: oauth_token_secret
          required: false
          schema:
            type: string
        - in: query
          name: oauth_callback_confirmed
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - oauth
  /oauth/authorize:
    get:
      operationId: getOauthAuthorize
      parameters:
        - in: query
          name: oauth_token
          required: false
          schema:
            type: string
        - in: header
          name: Cookie
          required: false
          schema:
            type: string
      responses:
        "200":
          description: authorizeForm
      tags:
        - all
        - oauth
    post:
      operationId: postOauthAuthorize
      parameters:
        - in: query
          name: almighty
          required: false
          schema:
            type: string
        - in: query
          name: access_organisations
          required: false
          schema:
            type: string
        - in: query
          name: manage_organisations
          required: false
          schema:
            type: string
        - in: query
          name: manage_organisations_services
          required: false
          schema:
            type: string
        - in: query
          name: manage_organisations_applications
          required: false
          schema:
            type: string
        - in: query
          name: manage_organisations_members
          required: false
          schema:
            type: string
        - in: query
          name: access_organisations_bills
          required: false
          schema:
            type: string
        - in: query
          name: access_organisations_credit_count
          required: false
          schema:
            type: string
        - in: query
          name: access_organisations_consumption_statistics
          required: false
          schema:
            type: string
        - in: query
          name: access_personal_information
          required: false
          schema:
            type: string
        - in: query
          name: manage_personal_information
          required: false
          schema:
            type: string
        - in: query
          name: manage_ssh_keys
          required: false
          schema:
            type: string
        - in: query
          name: manage_services
          required: false
          schema:
            type: string
        - in: query
          name: manage_applications
          required: false
          schema:
            type: string
        - in: query
          name: access_bills
          required: false
          schema:
            type: string
        - in: query
          name: access_credit_count
          required: false
          schema:
            type: string
        - in: query
          name: access_consumption_statistics
          required: false
          schema:
            type: string
        - in: header
          name: Cookie
          required: false
          schema:
            type: string
      responses:
        "200":
          description: authorizeToken
      tags:
        - all
        - oauth
  /oauth/request_token:
    post:
      operationId: postOauthRequestToken
      parameters:
        - in: query
          name: oauth_consumer_key
          required: false
          schema:
            type: string
        - in: query
          name: oauth_token
          required: false
          schema:
            type: string
        - in: query
          name: oauth_signature_method
          required: false
          schema:
            type: string
        - in: query
          name: oauth_signature
          required: false
          schema:
            type: string
        - in: query
          name: oauth_timestamp
          required: false
          schema:
            type: string
        - in: query
          name: oauth_nonce
          required: false
          schema:
            type: string
        - in: query
          name: oauth_version
          required: false
          schema:
            type: string
        - in: query
          name: oauth_verifier
          required: false
          schema:
            type: string
        - in: query
          name: oauth_callback
          required: false
          schema:
            type: string
        - in: query
          name: oauth_token_secret
          required: false
          schema:
            type: string
        - in: query
          name: oauth_callback_confirmed
          required: false
          schema:
            type: string
      responses:
        "200":
          description: postReqTokenRequest
      tags:
        - all
        - oauth
  /oauth/request_token_query:
    post:
      parameters:
        - in: query
          name: oauth_consumer_key
          required: false
          schema:
            type: string
        - in: query
          name: oauth_token
          required: false
          schema:
            type: string
        - in: query
          name: oauth_signature_method
          required: false
          schema:
            type: string
        - in: query
          name: oauth_signature
          required: false
          schema:
            type: string
        - in: query
          name: oauth_timestamp
          required: false
          schema:
            type: string
        - in: query
          name: oauth_nonce
          required: false
          schema:
            type: string
        - in: query
          name: oauth_version
          required: false
          schema:
            type: string
        - in: query
          name: oauth_verifier
          required: false
          schema:
            type: string
        - in: query
          name: oauth_callback
          required: false
          schema:
            type: string
        - in: query
          name: oauth_token_secret
          required: false
          schema:
            type: string
        - in: query
          name: oauth_callback_confirmed
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - oauth
  /oauth/rights:
    get:
      operationId: getOauthRights
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Rights"
          description: getAvailableRights
      tags:
        - all
        - oauth
  "/openapi.{type}":
    get:
      description: Get the swagger for this API as {type}. Type can be either "yml" or "json".
      responses:
        "200":
          description: This API swagger documentation in {type} format.
      summary: Get the swagger for this API as {type}
      tags:
        - all
    parameters:
      - in: path
        name: type
        required: true
        schema:
          type: string
  /organisations:
    get:
      operationId: getOrganisations
      parameters:
        - in: query
          name: user
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Organisation"
                type: array
          description: getUserOrganisations
      tags:
        - all
        - organisations
    post:
      operationId: postOrganisations
      requestBody:
        $ref: "#/components/requestBodies/WannabeOrganisation"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Organisation"
          description: createOrganisation
      tags:
        - all
        - organisations
  "/organisations/{id}":
    delete:
      operationId: deleteOrganisationsId
      responses:
        "200":
          description: deleteOrganisation
      tags:
        - all
        - organisations
    get:
      operationId: getOrganisationsId
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Organisation"
          description: getOrganisation
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsId
      requestBody:
        $ref: "#/components/requestBodies/WannabeOrganisation"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Organisation"
          description: editOrganisation
      tags:
        - all
        - organisations
  "/organisations/{id}/addonproviders":
    get:
      operationId: getOrganisationsIdAddonproviders
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Provider"
                type: array
          description: Get all informations about all providers.
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      operationId: postOrganisationsIdAddonproviders
      requestBody:
        $ref: "#/components/requestBodies/WannabeAddonProvider"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Provider"
          description: createProvider
      tags:
        - all
        - organisations
  "/organisations/{id}/addonproviders/{providerId}":
    delete:
      description: Remove a given add-on provider. providerId must be owned by organisation {id}.
      responses:
        "204":
          description: If the deletion was successful.
        "403":
          content:
            application/json:
              examples:
                response:
                  value: '{"type":"error","id":6200,"message":"You do not belong to this organisation so you cannot access it"}'
              schema:
                $ref: "#/components/schemas/Error"
          description: If user has no access to organisation {id} or provider or if there still are add-ons of this provider.
        "404":
          description: If no such organisation/provider exists.
      summary: Remove an add-on provider
      tags:
        - all
        - organisations
    get:
      operationId: getOrganisationsIdAddonprovidersProviderId
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Provider"
          description: Get all informations about given provider.
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: providerId
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdAddonprovidersProviderId
      requestBody:
        $ref: "#/components/requestBodies/WannabeAddonProvider"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Provider"
          description: updateProviderInfos
      tags:
        - all
        - organisations
  "/organisations/{id}/addonproviders/{providerId}/features":
    get:
      operationId: getOrganisationsIdAddonprovidersProviderIdFeatures
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Feature"
                type: array
          description: getProviderFeatures
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: providerId
        required: true
        schema:
          type: string
    post:
      operationId: postOrganisationsIdAddonprovidersProviderIdFeatures
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WannabeFeature"
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Feature"
          description: addProviderFeature
      tags:
        - all
        - organisations
  "/organisations/{id}/addonproviders/{providerId}/features/{featureId}":
    delete:
      operationId: deleteOrganisationsIdAddonprovidersProviderIdFeaturesFeatureId
      responses:
        "200":
          description: deleteProviderFeature
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: featureId
        required: true
        schema:
          type: string
      - in: path
        name: providerId
        required: true
        schema:
          type: string
  "/organisations/{id}/addonproviders/{providerId}/plans":
    get:
      operationId: getOrganisationsIdAddonprovidersProviderIdPlans
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Plan"
                type: array
          description: getProviderPlans
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: providerId
        required: true
        schema:
          type: string
    post:
      operationId: postOrganisationsIdAddonprovidersProviderIdPlans
      requestBody:
        $ref: "#/components/requestBodies/WannabePlan"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Plan"
          description: addProviderPlan
      tags:
        - all
        - organisations
  "/organisations/{id}/addonproviders/{providerId}/plans/{planId}":
    delete:
      operationId: deleteOrganisationsIdAddonprovidersProviderIdPlansPlanId
      responses:
        "200":
          description: deleteProviderPlan
      tags:
        - all
        - organisations
    get:
      operationId: getOrganisationsIdAddonprovidersProviderIdPlansPlanId
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Plan"
          description: getProviderPlan
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: providerId
        required: true
        schema:
          type: string
      - in: path
        name: planId
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdAddonprovidersProviderIdPlansPlanId
      requestBody:
        $ref: "#/components/requestBodies/WannabePlan"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Plan"
          description: editProviderPlan
      tags:
        - all
        - organisations
  "/organisations/{id}/addonproviders/{providerId}/plans/{planId}/features/{featureName}":
    delete:
      operationId: deleteOrganisationsIdAddonprovidersProviderIdPlansPlanIdFeaturesFeatureName
      responses:
        "200":
          description: deleteProviderPlanFeature
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: featureName
        required: true
        schema:
          type: string
      - in: path
        name: providerId
        required: true
        schema:
          type: string
      - in: path
        name: planId
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdAddonprovidersProviderIdPlansPlanIdFeaturesFeatureName
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WannabePlanFeature"
        required: true
      responses:
        "200":
          description: editProviderPlanFeature
      tags:
        - all
        - organisations
  "/organisations/{id}/addonproviders/{providerId}/sso":
    get:
      operationId: getOrganisationsIdAddonsAddonIdSso
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AddonProviderSso"
          description: getSSOData
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: providerId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/addonproviders/{providerId}/tags":
    get:
      operationId: getOrganisationsIdAddonprovidersProviderIdTags
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  type: string
                type: array
          description: getProviderTags
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: providerId
        required: true
        schema:
          type: string
  "/organisations/{id}/addonproviders/{providerId}/testers":
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: providerId
        required: true
        schema:
          type: string
    post:
      operationId: postOrganisationsIdAddonprovidersProviderIdTesters
      responses:
        "200":
          description: addBetaTester
      tags:
        - all
        - organisations
  "/organisations/{id}/addons":
    get:
      operationId: getOrganisationsIdAddons
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Addon"
                type: array
          description: getAddons
      tags:
        - all
        - addons
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      operationId: postOrganisationsIdAddons
      requestBody:
        $ref: "#/components/requestBodies/WannabeAddon"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Addon"
          description: provisionAddon
      tags:
        - all
        - addons
        - organisations
  "/organisations/{id}/addons/preorders":
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      requestBody:
        $ref: "#/components/requestBodies/WannabeAddon"
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - addons
        - organisations
  "/organisations/{id}/addons/{addonId}":
    delete:
      operationId: deleteOrganisationsIdAddonsAddonId
      responses:
        "200":
          description: deprovisionAddon
      tags:
        - all
        - addons
        - organisations
    get:
      operationId: getOrganisationsIdAddonsAddonId
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Addon"
          description: getAddon
      tags:
        - all
        - addons
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdAddonsAddonId
      requestBody:
        $ref: "#/components/requestBodies/WannabeAddon"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Addon"
          description: Update addon information
      tags:
        - all
        - addons
        - organisations
  "/organisations/{id}/addons/{addonId}/applications":
    get:
      operationId: getOrganisationsIdAddonsAddonIdApplications
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: getApplicationsLinkedToAddon
      tags:
        - all
        - addons
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/organisations/{id}/addons/{addonId}/env":
    get:
      operationId: getOrganisationsIdAddonsAddonIdEnv
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ListEnv"
                type: array
          description: getAddonEnv
      tags:
        - all
        - addons
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/organisations/{id}/addons/{addonId}/instances":
    get:
      parameters:
        - in: query
          name: deploymentId
          required: false
          schema:
            type: string
        - in: query
          name: withDeleted
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                description: List of instances.
                items:
                  $ref: "#/components/schemas/SupernovaInstanceView"
                type: array
          description: The instance list
      summary: List instances for this add-on.
      tags:
        - all
        - addons
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/organisations/{id}/addons/{addonId}/instances/{instanceId}":
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SupernovaInstanceView"
          description: An instance
      summary: Get a specific instance for {addonId}
      tags:
        - all
        - addons
        - organisations
    parameters:
      - in: path
        name: instanceId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/organisations/{id}/addons/{addonId}/migrations":
    get:
      responses:
        "200":
          content:
            application/json:
              examples:
                response:
                  value: |-
                    {
                       "id": "<UUID>",
                       "addon_id": "addon_<uuid>",
                       "kind": "SHARED_TO_SHARED|SHARED_TO_DEDICATED|DEDICATED_TO_DEDICATED|DEDICATED_TO_SHARED",
                       "state": "??",
                       "hostname": "db.hostname",
                       "database": "dbname",
                       "port": 5432,
                       "database_user": "username",
                       "callback_url": "https://api.clever-cloud.com/v2/…",
                       "old_cluster_id": "acddc485-79c2-4c6b-a617-c92a06c0cb0b",
                       "old_cluster_label": "par2-01",
                       "old_instance_id": "acddc485-79c2-4c6b-a617-c92a06c0cb0b",
                       "old_plan": "s",
                       "old_zone": "par2",
                       "old_recipient_hostname": "postgresql-sdc-par2-clevercloud.services.clever-cloud.com", 
                       "new_cluster_id": "acddc485-79c2-4c6b-a617-c92a06c0cb0b",
                       "new_cluster_label": "par2-02",
                       "new_instance_id": "acddc485-79c2-4c6b-a617-c92a06c0cb0b",
                       "new_plan": "m",
                       "new_zone": "par3",
                       "new_recipient_hostname": "postgresql-sdc-par3-clevercloud.services.clever-cloud.com", 
                       "request_date": "2018-10-31T10:00:23Z",
                       "last_state_update_date":  "2018-10-31T10:00:23Z",
                       "dump_restore_start_date":  "2018-10-31T10:00:23Z",
                       "dump_restore_finished_date":  "2018-10-31T10:00:23Z",
                       "end_date":  "2018-10-31T10:00:23Z",
                       "exit_message": "Success" 
                    }
              schema:
                items:
                  $ref: "#/components/schemas/AddonMigration"
                type: array
          description: List of migrations
      summary: Get past migrations from add-on.
      tags:
        - all
        - addons
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
    post:
      requestBody:
        content:
          application/json:
            schema:
              properties:
                planId:
                  description: Id of the new plan. E.g. "plan_acddc485-79c2-4c6b-a617-c92a06c0cb0b"
                  type: string
                region:
                  description: New region. E.g. "EU", "US", "Par2"
                  type: string
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                description: The output of the POST to the add-on API.
                type: object
          description: Migration has started.
      summary: Start a new add-on migration
      tags:
        - all
        - addons
        - organisations
  "/organisations/{id}/addons/{addonId}/migrations/{migrationId}":
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AddonMigration"
          description: The migration object
      summary: Get a given migration
      tags:
        - all
        - addons
        - organisations
    parameters:
      - in: path
        name: migrationId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/organisations/{id}/addons/{addonId}/sso":
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sso"
          description: getSSOData
      tags:
        - all
        - addons
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/organisations/{id}/addons/{addonId}/tags":
    get:
      operationId: getOrganisationsIdAddonsAddonIdTags
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  type: string
                type: array
          description: getAddonTags
      tags:
        - all
        - addons
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/organisations/{id}/addons/{addonId}/tags/{tag}":
    delete:
      operationId: deleteOrganisationsIdAddonsAddonIdTagsTag
      responses:
        "200":
          description: deleteAddonTag
      tags:
        - all
        - addons
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: tag
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdAddonsAddonIdTagsTag
      requestBody:
        $ref: "#/components/requestBodies/Body"
      responses:
        "200":
          description: addAddonTag
      tags:
        - all
        - addons
        - organisations
  "/organisations/{id}/applications":
    get:
      operationId: getOrganisationsIdApplications
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: getAllApplications
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      description: "Creates an application. If you want to create a Github app, you need to replace the oauthApp field with what you will find here: https://github.com/CleverCloud/doc.clever-cloud.com/issues/179"
      operationId: postOrganisationsIdApplications
      requestBody:
        $ref: "#/components/requestBodies/WannabeApplication"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Application"
          description: addApplication
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}":
    delete:
      operationId: deleteOrganisationsIdApplicationsAppId
      responses:
        "200":
          description: deleteApplication
      tags:
        - all
        - applications
        - organisations
    get:
      operationId: getOrganisationsIdApplicationsAppId
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Application"
          description: getApplication
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdApplicationsAppId
      requestBody:
        $ref: "#/components/requestBodies/WannabeApplication"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Application"
          description: editApplication
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/addons":
    get:
      operationId: getOrganisationsIdApplicationsAppIdAddons
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Addon"
                type: array
          description: getAddonsLinkedToApplication
      tags:
        - all
        - addons
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
    post:
      operationId: postOrganisationsIdApplicationsAppIdAddons
      requestBody:
        $ref: "#/components/requestBodies/Body"
      responses:
        "200":
          description: linkAddonToApplication
      tags:
        - all
        - addons
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/addons/env":
    get:
      operationId: getOrganisationsIdApplicationsAppIdAddonsEnv
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Env"
                type: array
          description: getEnvOfAddonsLinkedToApplication
      tags:
        - all
        - addons
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/addons/{addonId}":
    delete:
      operationId: deleteOrganisationsIdApplicationsAppIdAddonsAddonId
      responses:
        "200":
          description: unlinkAddonFromApplication
      tags:
        - all
        - addons
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/branch":
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/branches":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/buildflavor":
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/dependencies":
    get:
      operationId: getOrganisationsIdApplicationsAppIdDependencies
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: getApplicationDependencies
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/dependencies/env":
    get:
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  $ref: "#/components/schemas/LinkedAppEnv"
                type: array
          description: Get env variables defined by application dependencies
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/dependencies/{dependencyId}":
    delete:
      operationId: deleteOrganisationsIdApplicationsAppIdDependenciesDependencyId
      responses:
        "200":
          description: deleteApplicationDependency
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: dependencyId
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdApplicationsAppIdDependenciesDependencyId
      requestBody:
        $ref: "#/components/requestBodies/Body"
      responses:
        "200":
          description: addApplicationDependency
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/dependents":
    get:
      operationId: getOrganisationsIdApplicationsAppIdDependents
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: getApplicationDependents
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/deployments":
    get:
      operationId: getOrganisationsIdApplicationsAppIdDeployments
      parameters:
        - in: query
          name: limit
          required: false
          schema:
            type: string
        - in: query
          name: offset
          required: false
          schema:
            type: string
        - in: query
          name: action
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Deployment"
                type: array
          description: getApplicationDeploymentsForOrga
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/deployments/{deploymentId}":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: deploymentId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/deployments/{deploymentId}/instances":
    delete:
      operationId: deleteOrganisationsIdApplicationsAppIdDeploymentsDeploymentIdInstances
      responses:
        "200":
          description: getApplicationDeploymentsForOrga
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: deploymentId
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/env":
    get:
      operationId: getOrganisationsIdApplicationsAppIdEnv
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ListEnv"
                type: array
          description: getApplicationEnv
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdApplicationsAppIdEnv
      requestBody:
        $ref: "#/components/requestBodies/WannabeEnv"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/ListEnv"
          description: editApplicationEnvironment
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/env/{envName}":
    delete:
      operationId: deleteOrganisationsIdApplicationsAppIdEnvEnvName
      responses:
        "200":
          description: removeApplicationEnv
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: envName
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdApplicationsAppIdEnvEnvName
      requestBody:
        $ref: "#/components/requestBodies/WannabeEnv"
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/ListEnv"
          description: editApplicationEnv
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/exposed_env":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/instances":
    delete:
      operationId: deleteOrganisationsIdApplicationsAppIdInstances
      responses:
        "200":
          description: undeployApplication
      tags:
        - all
        - applications
        - organisations
    get:
      operationId: getOrganisationsIdApplicationsAppIdInstances
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AppInstance"
                type: array
          description: getApplicationInstances
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
    post:
      operationId: postOrganisationsIdApplicationsAppIdInstances
      parameters:
        - in: query
          name: commit
          required: false
          schema:
            type: string
      responses:
        "200":
          description: redeployApplication
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/instances/{instanceId}":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: instanceId
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/tags":
    get:
      operationId: getOrganisationsIdApplicationsAppIdTags
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  type: string
                type: array
          description: getApplicationTags
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/tags/{tag}":
    delete:
      operationId: deleteOrganisationsIdApplicationsAppIdTagsTag
      responses:
        "200":
          description: deleteApplicationTag
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: tag
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdApplicationsAppIdTagsTag
      requestBody:
        $ref: "#/components/requestBodies/Body"
      responses:
        "200":
          description: addApplicationTag
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/vhosts":
    get:
      operationId: getOrganisationsIdApplicationsAppIdVhosts
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Vhost"
                type: array
          description: getVhosts
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/organisations/{id}/applications/{appId}/vhosts/favourite":
    delete:
      operationId: deleteOrganisationsIdApplicationsAppIdVhostsFavourite
      responses:
        "200":
          description: unmarkFavouriteVhost
      tags:
        - all
        - applications
        - organisations
    get:
      operationId: getOrganisationsIdApplicationsAppIdVhostsFavourite
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Vhost"
          description: getFavouriteVhost
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdApplicationsAppIdVhostsFavourite
      requestBody:
        $ref: "#/components/requestBodies/Vhost"
      responses:
        "200":
          description: markFavouriteVhost
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/applications/{appId}/vhosts/{domain}":
    delete:
      operationId: deleteOrganisationsIdApplicationsAppIdVhostsDomain
      responses:
        "200":
          description: removeVhost
      tags:
        - all
        - applications
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: domain
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdApplicationsAppIdVhostsDomain
      requestBody:
        $ref: "#/components/requestBodies/Vhost"
      responses:
        "200":
          description: addVhost
      tags:
        - all
        - applications
        - organisations
  "/organisations/{id}/avatar":
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      description: If you want to upload an image from your computer, send the image in the body of the request without anything else.
      operationId: putOrganisationsIdAvatar
      responses:
        "200":
          description: |-
            setOrgaAvatar
            setOrgaAvatarFromSource
      tags:
        - all
        - organisations
  "/organisations/{id}/consumers":
    get:
      operationId: getOrganisationsIdConsumers
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Consumer"
                type: array
          description: getConsumers
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      operationId: postOrganisationsIdConsumers
      requestBody:
        $ref: "#/components/requestBodies/WannabeConsumer"
      responses:
        "200":
          description: createConsumer
      tags:
        - all
        - organisations
  "/organisations/{id}/consumers/{key}":
    delete:
      operationId: deleteOrganisationsIdConsumersKey
      responses:
        "200":
          description: deleteConsumer
      tags:
        - all
        - organisations
    get:
      operationId: getOrganisationsIdConsumersKey
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Consumer"
          description: getConsumer
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: key
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdConsumersKey
      requestBody:
        $ref: "#/components/requestBodies/WannabeConsumer"
      responses:
        "200":
          description: PUT the same data as in POST.
      tags:
        - all
        - organisations
  "/organisations/{id}/consumers/{key}/secret":
    get:
      operationId: getOrganisationsIdConsumersKeySecret
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Secret"
          description: getConsumerSecret
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: key
        required: true
        schema:
          type: string
  "/organisations/{id}/consumptions":
    get:
      operationId: getOrganisationsIdConsumptions
      parameters:
        - in: query
          name: appId
          required: false
          schema:
            type: string
        - in: query
          name: from
          required: false
          schema:
            type: string
        - in: query
          name: to
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Conso"
          description: getAmount
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/credits":
    get:
      operationId: getOrganisationsIdCredits
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Credits"
          description: getAmount
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/deployments":
    get:
      operationId: getOrganisationsIdDeployments
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DeploymentSummary"
          description: getDeploymentsForAllApps
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/instances":
    get:
      operationId: getOrganisationsIdInstances
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: getInstancesForAllApps
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/members":
    get:
      operationId: getOrganisationsIdMembers
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Member"
                type: array
          description: getOrganisationMembers
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      operationId: postOrganisationsIdMembers
      parameters:
        - in: query
          name: invitationKey
          required: false
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/WannabeMember"
      responses:
        "200":
          description: addOrganisationMember
      tags:
        - all
        - organisations
  "/organisations/{id}/members/{userId}":
    delete:
      operationId: deleteOrganisationsIdMembersUserId
      responses:
        "200":
          description: removeOrganisationMember
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: userId
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdMembersUserId
      requestBody:
        $ref: "#/components/requestBodies/WannabeMember"
      responses:
        "200":
          description: editOrganisationMember
      tags:
        - all
        - organisations
  "/organisations/{id}/payment-info":
    get:
      operationId: getOrganisationsIdPaymentInfo
      responses:
        "200":
          description: getPaymentInfo
      tags:
        - all
        - organisations
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/payments/billings":
    get:
      operationId: getOrganisationsIdPaymentsBillings
      responses:
        "200":
          description: getInvoices
      tags:
        - all
        - organisations
        - payments
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      operationId: postOrganisationsIdPaymentsBillings
      responses:
        "200":
          description: buyDrops
      tags:
        - all
        - organisations
        - payments
  "/organisations/{id}/payments/billings/unpaid":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - organisations
        - payments
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/payments/billings/{bid}":
    delete:
      operationId: deleteOrganisationsIdPaymentsBillingsBid
      responses:
        "200":
          description: deletePurchaseOrder
      tags:
        - all
        - organisations
        - payments
    get:
      operationId: getOrganisationsIdPaymentsBillingsBid
      responses:
        "200":
          description: getInvoice
      tags:
        - all
        - organisations
        - payments
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: bid
        required: true
        schema:
          type: string
    put:
      operationId: putOrganisationsIdPaymentsBillingsBid
      responses:
        "200":
          description: choosePaymentProvider
      tags:
        - all
        - organisations
        - payments
  "/organisations/{id}/payments/billings/{bid}.pdf":
    get:
      operationId: getOrganisationsIdPaymentsBillingsBidPdf
      parameters:
        - in: query
          name: token
          required: false
          schema:
            type: string
      responses:
        "200":
          description: getPdfInvoice
      tags:
        - all
        - organisations
        - payments
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: bid
        required: true
        schema:
          type: string
  "/organisations/{id}/payments/fullprice/{price}":
    get:
      operationId: getOrganisationsIdPaymentsFullPricePrice
      responses:
        "200":
          description: priceWithTax
      tags:
        - all
        - organisations
        - payments
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: path
        name: price
        required: true
        schema:
          type: string
  "/organisations/{id}/payments/methods":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - organisations
        - payments
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    post:
      requestBody:
        $ref: "#/components/requestBodies/Body"
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - organisations
        - payments
  "/organisations/{id}/payments/methods/default":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - organisations
        - payments
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PaymentData"
        required: true
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - organisations
        - payments
  "/organisations/{id}/payments/methods/{mId}":
    delete:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - organisations
        - payments
    parameters:
      - in: path
        name: mId
        required: true
        schema:
          type: string
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/payments/monthlyinvoice":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - organisations
        - payments
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/organisations/{id}/payments/monthlyinvoice/maxcredit":
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
    put:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - organisations
        - payments
  "/organisations/{id}/payments/recurring":
    delete:
      operationId: deleteOrganisationsIdPaymentsRecurring
      responses:
        "200":
          description: deleteRecurrentPayment
      tags:
        - all
        - organisations
        - payments
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - organisations
        - payments
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  /password_forgotten:
    get:
      operationId: getPasswordForgotten
      responses:
        "200":
          description: getPasswordForgottenForm
      tags:
        - all
        - password_forgotten
    post:
      operationId: postPasswordForgotten
      parameters:
        - in: query
          name: login
          required: false
          schema:
            type: string
        - in: query
          name: drop_tokens
          required: false
          schema:
            type: string
        - in: header
          name: TesterPass
          required: false
          schema:
            type: string
      responses:
        "200":
          description: askForPasswordResetViaForm
      tags:
        - all
        - password_forgotten
  "/password_forgotten/{key}":
    get:
      operationId: getPasswordForgottenKey
      responses:
        "200":
          description: confirmPasswordResetRequest
      tags:
        - all
        - password_forgotten
    parameters:
      - in: path
        name: key
        required: true
        schema:
          type: string
    post:
      operationId: postPasswordForgottenKey
      parameters:
        - in: query
          name: pass
          required: false
          schema:
            type: string
        - in: query
          name: pass2
          required: false
          schema:
            type: string
      responses:
        "200":
          description: resetPasswordForgotten
      tags:
        - all
        - password_forgotten
  "/payments/assets/pay_button/{token}/button.png":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - payments
    parameters:
      - in: path
        name: token
        required: true
        schema:
          type: string
  "/payments/coupons/{name}":
    get:
      operationId: getPaymentsCouponsName
      responses:
        "200":
          description: getCoupon
      tags:
        - all
        - payments
    parameters:
      - in: path
        name: name
        required: true
        schema:
          type: string
  /payments/providers:
    get:
      operationId: getPaymentsProviders
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Payment_Provider"
                type: array
          description: getAvailablePaymentProviders
      tags:
        - all
        - payments
  /payments/tokens/stripe:
    get:
      operationId: getPaymentsTokensStripe
      responses:
        "200":
          description: getStripeToken
      tags:
        - all
        - payments
  "/payments/{bid}/end/stripe":
    parameters:
      - in: path
        name: bid
        required: true
        schema:
          type: string
    post:
      responses:
        "200":
          description: endPaymentWithStripe
      tags:
        - all
        - payments
  /products/addonproviders:
    get:
      operationId: getProductsAddonProviders
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Provider"
                type: array
          description: getAddonProviders
      tags:
        - all
        - products
  "/products/addonproviders/{provider_id}":
    get:
      operationId: getProductsAddonProvidersProviderId
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Provider"
          description: getAddonProvider
      tags:
        - all
        - products
    parameters:
      - in: path
        name: provider_id
        required: true
        schema:
          type: string
  "/products/addonproviders/{provider_id}/versions":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - products
    parameters:
      - in: path
        name: provider_id
        required: true
        schema:
          type: string
  /products/countries:
    get:
      operationId: getProductsCountries
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Country"
          description: getCountries
      tags:
        - all
        - products
  /products/countrycodes:
    get:
      operationId: getProductsCountrycodes
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Country"
          description: getCountryCodes
      tags:
        - all
        - products
  /products/instances:
    get:
      operationId: getProductsInstances
      parameters:
        - in: query
          name: for
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Instance"
                type: array
          description: getAvailableInstances
      tags:
        - all
        - products
  "/products/instances/{type}-{version}":
    get:
      operationId: getProductsInstancesTypeVersion
      parameters:
        - in: query
          name: for
          required: false
          schema:
            type: string
        - in: query
          name: app
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Instance"
          description: getAvailableInstance
      tags:
        - all
        - products
    parameters:
      - in: path
        name: type
        required: true
        schema:
          type: string
      - in: path
        name: version
        required: true
        schema:
          type: string
  /products/mfa_kinds:
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - products
  /products/packages:
    get:
      operationId: getProductsPackages
      parameters:
        - in: query
          name: coupon
          required: false
          schema:
            type: string
        - in: query
          name: orgaId
          required: false
          schema:
            type: string
        - in: query
          name: currency
          required: false
          schema:
            type: string
      responses:
        "200":
          description: getAvailablePackages
      tags:
        - all
        - products
  /products/prices:
    get:
      operationId: getProductsPrices
      responses:
        "200":
          description: getExchangeRates
      tags:
        - all
        - products
  /products/zones:
    get:
      operationId: getProductsZones
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Zone"
                type: array
          description: getZones
      tags:
        - all
        - products
  /self:
    delete:
      operationId: deleteSelf
      responses:
        "200":
          description: deleteUser
      tags:
        - all
        - self
    get:
      description: Get information about yourself
      operationId: getSelf
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User"
          description: getUser
      summary: ""
      tags:
        - all
        - self
    put:
      operationId: putSelf
      requestBody:
        $ref: "#/components/requestBodies/WannabeUser"
      responses:
        "200":
          description: editUser
      tags:
        - all
        - self
  /self/addons:
    get:
      description: Get all the addons
      operationId: getSelfAddons
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Addon"
                type: array
          description: getAddons
      summary: Addon
      tags:
        - all
        - addons
        - self
    post:
      operationId: postSelfAddons
      requestBody:
        $ref: "#/components/requestBodies/WannabeAddon"
      responses:
        "200":
          description: provisionAddon
      tags:
        - all
        - addons
        - self
  /self/addons/preorders:
    post:
      requestBody:
        $ref: "#/components/requestBodies/WannabeAddon"
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - addons
        - self
  "/self/addons/{addonId}":
    delete:
      operationId: deleteSelfAddonsAddonId
      responses:
        "200":
          description: deprovisionAddon
      tags:
        - all
        - addons
        - self
    get:
      description: Get a specific addon
      operationId: getSelfAddonsAddonId
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Addon"
          description: getAddon
      summary: Specific addon
      tags:
        - all
        - addons
        - self
    parameters:
      - in: path
        name: addonId
        required: true
        schema:
          type: string
    put:
      operationId: putSelfAddonsAddonId
      requestBody:
        $ref: "#/components/requestBodies/WannabeAddon"
      responses:
        "200":
          description: Update addon informations
      tags:
        - all
        - addons
        - self
  "/self/addons/{addonId}/applications":
    get:
      operationId: getSelfAddonsAddonIdApplications
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: getApplicationsLinkedToAddon
      tags:
        - all
        - addons
        - applications
        - self
    parameters:
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/self/addons/{addonId}/env":
    get:
      operationId: getSelfAddonsAddonIdEnv
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ListEnv"
                type: array
          description: getAddonEnv
      tags:
        - all
        - addons
        - self
    parameters:
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/self/addons/{addonId}/plan":
    parameters:
      - in: path
        name: addonId
        required: true
        schema:
          type: string
    put:
      operationId: putSelfAddonsAddonIdPlan
      requestBody:
        $ref: "#/components/requestBodies/WannabePlan"
      responses:
        "200":
          description: Update plan of an add-on.
      tags:
        - all
        - addons
        - self
  "/self/addons/{addonId}/sso":
    get:
      operationId: getSelfAddonsAddonIdSso
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sso"
          description: getSSOData
      tags:
        - all
        - addons
        - self
    parameters:
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/self/addons/{addonId}/tags":
    get:
      operationId: getSelfAddonsAddonIdTags
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  type: string
                type: array
          description: getAddonTags
      tags:
        - all
        - addons
        - self
    parameters:
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/self/addons/{addonId}/tags/{tag}":
    delete:
      operationId: deleteSelfAddonsAddonIdTagsTag
      responses:
        "200":
          description: deleteAddonTag
      tags:
        - all
        - addons
        - self
    parameters:
      - in: path
        name: tag
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
    put:
      operationId: putSelfAddonsAddonIdTagsTag
      requestBody:
        $ref: "#/components/requestBodies/Body"
      responses:
        "200":
          description: addAddonTag
      tags:
        - all
        - addons
        - self
  /self/applications:
    get:
      operationId: getSelfApplications
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: getApplications
      tags:
        - all
        - applications
        - self
    post:
      description: "Creates an application. If you want to create a Github app, you need to replace the oauthApp field with what you will find here: https://github.com/CleverCloud/doc.clever-cloud.com/issues/179"
      operationId: postSelfApplications
      requestBody:
        $ref: "#/components/requestBodies/WannabeApplication"
      responses:
        "200":
          description: addApplication
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}":
    delete:
      operationId: deleteSelfApplicationsAppId
      responses:
        "200":
          description: deleteApplication
      tags:
        - all
        - applications
        - self
    get:
      operationId: getSelfApplicationsAppId
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Application"
          description: getApplication
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      operationId: putSelfApplicationsAppId
      requestBody:
        $ref: "#/components/requestBodies/WannabeApplication"
      responses:
        "200":
          description: editApplication
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}/addons":
    get:
      operationId: getSelfApplicationsAppIdAddons
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Addon"
                type: array
          description: getAddonsLinkedToApplication
      tags:
        - all
        - addons
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
    post:
      operationId: postSelfApplicationsAppIdAddons
      requestBody:
        $ref: "#/components/requestBodies/Body"
      responses:
        "200":
          description: linkAddonToApplication
      tags:
        - all
        - addons
        - applications
        - self
  "/self/applications/{appId}/addons/env":
    get:
      operationId: getSelfApplicationsAppIdAddonsEnv
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Env"
                type: array
          description: getEnvOfAddonsLinkedToApplication
      tags:
        - all
        - addons
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/addons/{addonId}":
    delete:
      operationId: deleteSelfApplicationsAppIdAddonsAddonId
      responses:
        "200":
          description: unlinkAddonFromApplication
      tags:
        - all
        - addons
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/branch":
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}/branches":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/buildflavor":
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}/dependencies":
    get:
      operationId: getSelfApplicationsAppIdDependencies
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: getApplicationDependencies
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/dependencies/env":
    get:
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  $ref: "#/components/schemas/LinkedAppEnv"
                type: array
          description: Get env variables defined by application dependencies
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/dependencies/{dependencyId}":
    delete:
      operationId: deleteSelfApplicationsAppIdDependenciesDependencyId
      responses:
        "200":
          description: deleteApplicationDependency
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: dependencyId
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      operationId: getSelfApplicationsAppIdDependenciesDependencyId
      requestBody:
        $ref: "#/components/requestBodies/WannabeApplication"
      responses:
        "200":
          description: addApplicationDependency
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}/dependents":
    get:
      operationId: getSelfApplicationsAppIdDependents
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: getApplicationDependents
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/deployments":
    get:
      operationId: getSelfApplicationsAppIdDeployments
      parameters:
        - in: query
          name: limit
          required: false
          schema:
            type: string
        - in: query
          name: offset
          required: false
          schema:
            type: string
        - in: query
          name: action
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Deployment"
                type: array
          description: getApplicationDeployments
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/deployments/{deploymentId}":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: deploymentId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/deployments/{deploymentId}/instances":
    delete:
      operationId: deleteSelfApplicationsAppIdDeploymentsDeploymentIdInstances
      responses:
        "200":
          description: cancelDeploy
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: deploymentId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/env":
    get:
      operationId: getSelfApplicationsAppIdEnv
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ListEnv"
                type: array
          description: editApplicationEnv
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      operationId: putSelfApplicationsAppIdEnv
      requestBody:
        $ref: "#/components/requestBodies/WannabeEnv"
      responses:
        "200":
          description: editApplicationEnvironment
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}/env/{envName}":
    delete:
      operationId: deleteSelfApplicationsAppIdEnvEnvName
      responses:
        "200":
          description: removeApplicationEnv
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: envName
        required: true
        schema:
          type: string
    put:
      operationId: putSelfApplicationsAppIdEnvEnvName
      requestBody:
        $ref: "#/components/requestBodies/WannabeEnv"
      responses:
        "200":
          description: editApplicationEnv
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}/exposed_env":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}/instances":
    delete:
      operationId: deleteSelfApplicationsAppIdInstances
      responses:
        "200":
          description: undeployApplication
      tags:
        - all
        - applications
        - self
    get:
      operationId: getSelfApplicationsAppIdInstances
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Instance"
                type: array
          description: getApplicationInstances
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
    post:
      operationId: postSelfApplicationsAppIdInstances
      parameters:
        - in: query
          name: commit
          required: false
          schema:
            type: string
      responses:
        "200":
          description: redeployApplication
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}/instances/{instanceId}":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: instanceId
        required: true
        schema:
          type: string
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/tags":
    get:
      operationId: getSelfApplicationsAppIdTags
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  type: string
                type: array
          description: getApplicationTags
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/tags/{tag}":
    delete:
      operationId: deleteSelfApplicationsAppIdTagsTag
      responses:
        "200":
          description: deleteApplicationTag
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: tag
        required: true
        schema:
          type: string
    put:
      operationId: putSelfApplicationsAppIdTagsTag
      requestBody:
        $ref: "#/components/requestBodies/Body"
      responses:
        "200":
          description: addApplicationTag
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}/vhosts":
    get:
      operationId: getSelfApplicationsAppIdVhosts
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Vhost"
                type: array
          description: getVhosts
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
  "/self/applications/{appId}/vhosts/favourite":
    delete:
      operationId: deleteSelfApplicationsAppIdVhostsFavourite
      responses:
        "200":
          description: unmarkFavouriteVhost
      tags:
        - all
        - applications
        - self
    get:
      operationId: getSelfApplicationsAppIdVhostsFavourite
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Vhost"
          description: getFavouriteVhost
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
    put:
      operationId: putSelfApplicationsAppIdVhostsFavourite
      requestBody:
        $ref: "#/components/requestBodies/Vhost"
      responses:
        "200":
          description: markFavouriteVhost
      tags:
        - all
        - applications
        - self
  "/self/applications/{appId}/vhosts/{domain}":
    delete:
      operationId: deleteSelfApplicationsAppIdVhostsDomain
      responses:
        "200":
          description: removeVhost
      tags:
        - all
        - applications
        - self
    parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: domain
        required: true
        schema:
          type: string
    put:
      operationId: putSelfApplicationsAppIdVhostsDomain
      requestBody:
        $ref: "#/components/requestBodies/Vhost"
      responses:
        "200":
          description: addVhost
      tags:
        - all
        - applications
        - self
  /self/avatar:
    put:
      operationId: putSelfAvatar
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Avatar"
        required: true
      responses:
        "200":
          description: |-
            setUserAvatar
            setUserAvatarFromSource
      tags:
        - all
        - self
  /self/change_password:
    put:
      operationId: putSelfChangePassword
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Change_Password"
          description: changeUserPassword
      tags:
        - all
        - self
  /self/cli_tokens:
    get:
      parameters:
        - in: query
          name: cli_token
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - self
  /self/confirmation_email:
    get:
      operationId: getSelfConfirmationEmail
      responses:
        "200":
          description: getConfirmationEmail
      tags:
        - all
        - self
  /self/consumers:
    get:
      operationId: getSelfConsumers
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Consumer"
                type: array
          description: getConsumers
      tags:
        - all
        - self
    post:
      operationId: postSelfConsumers
      requestBody:
        $ref: "#/components/requestBodies/WannabeConsumer"
      responses:
        "200":
          description: createConsumer
      tags:
        - all
        - self
  "/self/consumers/{key}":
    delete:
      operationId: deleteSelfConsumersKey
      responses:
        "200":
          description: deleteConsumer
      tags:
        - all
        - self
    get:
      operationId: getSelfConsumersKey
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Consumer"
          description: getConsumer
      tags:
        - all
        - self
    parameters:
      - in: path
        name: key
        required: true
        schema:
          type: string
    put:
      operationId: putSelfConsumersKey
      requestBody:
        $ref: "#/components/requestBodies/WannabeConsumer"
      responses:
        "200":
          description: PUT same consumer data as in POST.
      tags:
        - all
        - self
  "/self/consumers/{key}/secret":
    get:
      operationId: getSelfConsumersKeySecret
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Secret"
          description: getConsumerSecret
      tags:
        - all
        - self
    parameters:
      - in: path
        name: key
        required: true
        schema:
          type: string
  /self/consumptions:
    get:
      operationId: getSelfConsumptions
      parameters:
        - in: query
          name: appId
          required: false
          schema:
            type: string
        - in: query
          name: from
          required: false
          schema:
            type: string
        - in: query
          name: to
          required: false
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Conso"
          description: getConsumptions
      tags:
        - all
        - self
  /self/credits:
    get:
      operationId: getSelfCredits
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Credits"
          description: getAmount
      tags:
        - all
        - self
  /self/emails:
    get:
      operationId: getSelfEmails
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  type: string
                type: array
          description: getEmailAddresses
      tags:
        - all
        - self
  "/self/emails/{email}":
    delete:
      operationId: deleteSelfEmailsEmail
      responses:
        "200":
          description: removeEmailAddress
      tags:
        - all
        - self
    parameters:
      - in: path
        name: email
        required: true
        schema:
          type: string
    put:
      operationId: putSelfEmailsEmail
      requestBody:
        $ref: "#/components/requestBodies/Body"
      responses:
        "200":
          description: addEmailAddress
      tags:
        - all
        - self
  /self/id:
    get:
      operationId: getSelfId
      responses:
        "200":
          content:
            "*/*":
              schema:
                type: string
          description: getId
      tags:
        - all
        - self
  /self/instances:
    get:
      operationId: getSelfInstances
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Instance"
                type: array
          description: getInstancesForAllApps
      tags:
        - all
        - self
  /self/keys:
    get:
      operationId: getSelfKeys
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Key"
                type: array
          description: getSshKeys
      tags:
        - all
        - self
  "/self/keys/{key}":
    delete:
      operationId: deleteSelfKeysKey
      responses:
        "200":
          description: removeSshKey
      tags:
        - all
        - self
    parameters:
      - in: path
        name: key
        required: true
        schema:
          type: string
    put:
      operationId: putSelfKeysKey
      requestBody:
        $ref: "#/components/requestBodies/Body"
      responses:
        "200":
          description: addSshKey
      tags:
        - all
        - self
  "/self/mfa/{kind}":
    delete:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - self
    parameters:
      - in: path
        name: kind
        required: true
        schema:
          type: string
    post:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - self
    put:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - self
  "/self/mfa/{kind}/backupcodes":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - self
    parameters:
      - in: path
        name: kind
        required: true
        schema:
          type: string
  "/self/mfa/{kind}/confirmation":
    parameters:
      - in: path
        name: kind
        required: true
        schema:
          type: string
    post:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - self
  /self/payment-info:
    get:
      operationId: getSelfPaymentInfo
      responses:
        "200":
          description: getPaymentInfo
      tags:
        - all
        - self
  /self/payments/billings:
    get:
      operationId: getSelfPaymentsBillings
      responses:
        "200":
          description: getInvoices
      tags:
        - all
        - payments
        - self
    post:
      operationId: postSelfPaymentsBillings
      responses:
        "200":
          description: buyDrops
      tags:
        - all
        - payments
        - self
  "/self/payments/billings/{bid}":
    delete:
      operationId: deleteSelfPaymentsBillingsBid
      responses:
        "200":
          description: deletePurchaseOrder
      tags:
        - all
        - payments
        - self
    get:
      operationId: getSelfPaymentsBillingsBid
      responses:
        "200":
          description: getInvoice
      tags:
        - all
        - payments
        - self
    parameters:
      - in: path
        name: bid
        required: true
        schema:
          type: string
    put:
      operationId: putSelfPaymentsBillingsBid
      responses:
        "200":
          description: choosePaymentProvider
      tags:
        - all
        - payments
        - self
  "/self/payments/billings/{bid}.pdf":
    get:
      operationId: getSelfPaymentsBillingsBidPdf
      parameters:
        - in: query
          name: token
          required: false
          schema:
            type: string
      responses:
        "200":
          description: getPdfInvoice
      tags:
        - all
        - payments
        - self
    parameters:
      - in: path
        name: bid
        required: true
        schema:
          type: string
  "/self/payments/fullprice/{price}":
    get:
      operationId: getSelfPaymentsFullpricePrice
      responses:
        "200":
          description: priceWithTax
      tags:
        - all
        - payments
        - self
    parameters:
      - in: path
        name: price
        required: true
        schema:
          type: string
  /self/payments/methods:
    get:
      operationId: getSelfPaymentsMethods
      responses:
        "200":
          description: getUserPaymentMethods
      tags:
        - all
        - payments
        - self
    post:
      operationId: postSelfPaymentsMethods
      responses:
        "200":
          description: addUserMethod
      tags:
        - all
        - payments
        - self
  /self/payments/methods/default:
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - payments
        - self
    put:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - payments
        - self
  "/self/payments/methods/{mId}":
    delete:
      operationId: deleteSelfPaymentsMethodsMId
      responses:
        "200":
          description: deleteUserCard
      tags:
        - all
        - payments
        - self
    parameters:
      - in: path
        name: mId
        required: true
        schema:
          type: string
  /self/payments/monthlyinvoice:
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - payments
        - self
  /self/payments/monthlyinvoice/maxcredit:
    put:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - payments
        - self
  /self/payments/recurring:
    delete:
      operationId: deleteSelfPaymentsRecurring
      responses:
        "200":
          description: deleteRecurrentPayment
      tags:
        - all
        - payments
        - self
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - payments
        - self
  /self/payments/tokens/stripe:
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - payments
        - self
  /self/tokens:
    delete:
      operationId: deleteSelfTokens
      responses:
        "200":
          description: revokeAllTokens
      tags:
        - all
        - self
    get:
      operationId: getSelfTokens
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Token"
                type: array
          description: getSelfTokens
      tags:
        - all
        - self
  "/self/tokens/{token}":
    delete:
      operationId: deleteSelfTokensToken
      responses:
        "200":
          description: revokeToken
      tags:
        - all
        - self
    parameters:
      - in: path
        name: token
        required: true
        schema:
          type: string
  /self/validate_email:
    get:
      operationId: getSelfValidateEmail
      parameters:
        - in: query
          name: validationKey
          required: false
          schema:
            type: string
      responses:
        "200":
          description: validateEmail
      tags:
        - all
        - self
  /summary:
    get:
      operationId: getSummary
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Summary"
          description: getSummary
      tags:
        - all
  /users:
    post:
      operationId: postUsers
      parameters:
        - in: query
          name: invitationKey
          required: false
          schema:
            type: string
        - in: query
          name: addonBetaInvitationKey
          required: false
          schema:
            type: string
        - in: query
          name: email
          required: false
          schema:
            type: string
        - in: query
          name: pass
          required: false
          schema:
            type: string
        - in: query
          name: url_next
          required: false
          schema:
            type: string
        - in: query
          name: terms
          required: false
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/WannabeUser"
      responses:
        "200":
          description: |-
            createUser
            createUserFromForm
      tags:
        - all
        - users
  "/users/{id}":
    get:
      operationId: getUsersId
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User"
          description: getUser
      tags:
        - all
        - users
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/users/{id}/applications":
    get:
      operationId: getUsersIdApplications
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: getApplications
      tags:
        - all
        - applications
        - users
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  "/users/{userId}/git-info":
    get:
      operationId: getUsersUserIdGitInfo
      responses:
        "200":
          description: getGitInfo
      tags:
        - all
        - users
    parameters:
      - in: path
        name: userId
        required: true
        schema:
          type: string
  /v2/providers/addon-matomo/resources:
    post:
      operationId: createMatomo
      requestBody:
        content:
          "*/*":
            schema:
              $ref: "#/components/schemas/ProvisionRequest"
      responses:
        default:
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Function1RequestContextFutureRouteResult"
          description: default response
      summary: Create Matomo addon
      tags:
        - all
      x-function: createMatomo
      x-service: addon
  "/v2/providers/addon-matomo/resources/{matomoId}":
    delete:
      operationId: deleteMatomo
      parameters:
        - description: Automatically added
          in: path
          name: matomoId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/deleteMatomo"
      responses:
        default:
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Function1RequestContextFutureRouteResult"
          description: default response
      summary: Delete Matomo addon
      tags:
        - all
      x-function: deleteMatomo
      x-service: addon
  "/v3/logs/{appId}":
    get:
      description: Fetch the logs for a given application
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/v3/logs/{appId}/drains":
    get:
      description: Fetch the logs drains for a given application
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
    post:
      description: Add a log drain for a given application
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/v3/logs/{appId}/drains/:idOrUrl":
    delete:
      description: Delete the logs drain by id or url for a given application
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
    get:
      description: Fetch the logs drain by id or url for a given application
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/v3/logs/{appId}/logs-chunked":
    get:
      description: Retrieve logs as they come through a chunked, never-ending response
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/v3/logs/{appId}/logs-socket":
    get:
      description: 'Retrieve logs as they come through a websocket connection. To have authorization, you have to send a `{ "message_type": "oauth", "authorization": "oauth authorization string" }` message'
      parameters:
        - description: Automatically added
          in: path
          name: appId
          required: true
          schema:
            type: string
      responses:
        default:
          description: <No description>
      tags:
        - all
        - logs
  "/v4/addon-providers/addon-matomo/addons/{matomoId}":
    get:
      operationId: getMatomo
      parameters:
        - description: Automatically added
          in: path
          name: matomoId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/deleteMatomo"
      responses:
        default:
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Function1RequestContextFutureRouteResult"
          description: default response
      summary: Get Matomo addon
      tags:
        - all
        - addons
      x-function: getMatomo
      x-service: addon
  /v4/addon-providers/addon-matomo/token/validate:
    get:
      operationId: getMatomoKTokenValidation
      parameters:
        - description: Environment variable injected on the app with 'KEYCLOAK_TOKEN' name
          in: query
          name: keycloakToken
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/deleteMatomo"
      responses:
        default:
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/Function1RequestContextFutureRouteResult"
          description: default response
      summary: Validate a keycloak token
      tags:
        - all
      x-function: getMatomoVHosts
      x-service: addon
  "/v4/addon-providers/config-provider/addons/{configurationProviderId}":
    get:
      operationId: getConfigProvider
      parameters:
        - description: Automatically added
          in: path
          name: configurationProviderId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/deleteMatomo"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AddonConfigProviderView"
          description: requested config provider object
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - {}
      summary: Get Addon provider configuration
      tags:
        - all
        - addons
      x-function: getConfigProvider
      x-service: addon
  "/v4/addon-providers/config-provider/addons/{configurationProviderId}/env":
    get:
      operationId: getConfigProviderEnv
      parameters:
        - description: Automatically added
          in: path
          name: configurationProviderId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/deleteMatomo"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/EnvVar"
                type: array
          description: config provider environment variables
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - {}
      summary: Get provider's addon environment
      tags:
        - all
        - addons
      x-function: getConfigProviderEnv
      x-service: addon
    put:
      operationId: updateConfigProviderEnv
      parameters:
        - description: Automatically added
          in: path
          name: configurationProviderId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/WannabeEnvVar"
              type: array
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/EnvVar"
                type: array
          description: updated config providers environment variables
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - {}
      summary: Update provider's addon environment
      tags:
        - all
        - addons
      x-function: updateConfigProviderEnv
      x-service: addon
  "/v4/networkgroups/organisations/{ownerId}/networkgroups":
    get:
      description: Lists Network Groups from an owner.
      operationId: listNetworkGroups
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/NetworkGroup"
                type: array
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - {}
      summary: List Network Groups
      tags:
        - all
        - organisations
        - networkgroups
      x-function: listNetworkGroups
      x-service: networkGroup
    post:
      description: Creates a Network Group.
      operationId: createNetworkGroup
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WannabeNetworkGroup"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NetworkGroup"
          description: Success
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "409":
          content:
            text/plain; charset=UTF-8:
              examples:
                NetworkGroupLabelAlreadyTaken:
                  $ref: "#/components/examples/NetworkGroupLabelAlreadyTaken"
              schema:
                type: string
          description: Conflict
      security:
        - {}
      summary: Create Network Group
      tags:
        - all
        - organisations
        - networkgroups
      x-function: createNetworkGroup
      x-service: networkGroup
  "/v4/networkgroups/organisations/{ownerId}/networkgroups/{networkGroupId}":
    delete:
      description: Deletes a Network Group.
      operationId: deleteNetworkGroup
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "204":
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/NetworkGroupNotFound"
      security:
        - {}
      summary: Delete Network Group
      tags:
        - all
        - organisations
        - networkgroups
      x-function: deleteNetworkGroup
      x-service: networkGroup
    get:
      description: Gets details of a Network Group.
      operationId: getNetworkGroup
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NetworkGroup"
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/NetworkGroupNotFound"
      security:
        - {}
      summary: Get Network Group
      tags:
        - all
        - organisations
        - networkgroups
      x-function: getNetworkGroup
      x-service: networkGroup
  "/v4/networkgroups/organisations/{ownerId}/networkgroups/{networkGroupId}/external-peers":
    post:
      description: Adds an external peer to a Network Group.
      operationId: createNetworkGroupExternalPeer
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WannabeExternalPeer"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Peer"
          description: Success
        "400":
          content:
            text/plain; charset=UTF-8:
              schema:
                type: string
          description: Bad Request
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/NetworkGroupNotFound"
      security:
        - {}
      summary: Add external peer
      tags:
        - all
        - organisations
        - networkgroups
      x-function: createNetworkGroupExternalPeer
      x-service: networkGroup
  "/v4/networkgroups/organisations/{ownerId}/networkgroups/{networkGroupId}/external-peers/{peerId}":
    delete:
      description: Removes an external peer from a Network Group.
      operationId: deleteNetworkGroupExternalPeer
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: peerId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "204":
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - {}
      summary: Remove external peer
      tags:
        - all
        - organisations
        - networkgroups
      x-function: deleteNetworkGroupExternalPeer
      x-service: networkGroup
  "/v4/networkgroups/organisations/{ownerId}/networkgroups/{networkGroupId}/members":
    get:
      description: Lists members in a Network Group.
      operationId: listNetworkGroupMembers
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/schema1"
                type: array
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/NetworkGroupNotFound"
      security:
        - {}
      summary: List members
      tags:
        - all
        - organisations
        - networkgroups
      x-function: listNetworkGroupMembers
      x-service: networkGroup
    post:
      description: Adds a member to a Network Group.
      operationId: createNetworkGroupMember
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/schema2"
      responses:
        "202":
          $ref: "#/components/responses/Accepted"
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/NetworkGroupNotFound"
      security:
        - {}
      summary: Add member
      tags:
        - all
        - organisations
        - networkgroups
      x-function: createNetworkGroupMember
      x-service: networkGroup
  "/v4/networkgroups/organisations/{ownerId}/networkgroups/{networkGroupId}/members/{memberId}":
    delete:
      description: Removes a member from a Network Group.
      operationId: deleteNetworkGroupMember
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: memberId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "204":
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - {}
      summary: Remove member
      tags:
        - all
        - organisations
        - networkgroups
      x-function: deleteNetworkGroupMember
      x-service: networkGroup
    get:
      description: Gets details of a Network Group member.
      operationId: getNetworkGroupMember
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: memberId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/schema1"
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/MemberNotFound"
      security:
        - {}
      summary: Get member
      tags:
        - all
        - organisations
        - networkgroups
      x-function: getNetworkGroupMember
      x-service: networkGroup
  "/v4/networkgroups/organisations/{ownerId}/networkgroups/{networkGroupId}/peers":
    get:
      description: Lists peers in a Network Group.
      operationId: listNetworkGroupPeers
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Peer"
                type: array
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/NetworkGroupNotFound"
      security:
        - {}
      summary: List peers
      tags:
        - all
        - organisations
        - networkgroups
      x-function: listNetworkGroupPeers
      x-service: networkGroup
  "/v4/networkgroups/organisations/{ownerId}/networkgroups/{networkGroupId}/peers/{peerId}":
    delete:
      description: Removes a peer from a Network Group.
      operationId: deleteNetworkGroupPeer
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: peerId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "204":
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - {}
      summary: Remove peer
      tags:
        - all
        - organisations
        - networkgroups
      x-function: deleteNetworkGroupPeer
      x-service: networkGroup
    get:
      description: Gets details of a Network Group peer.
      operationId: getNetworkGroupPeer
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: peerId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Peer"
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/PeerNotFound"
      security:
        - {}
      summary: Get peer
      tags:
        - all
        - organisations
        - networkgroups
      x-function: getNetworkGroupPeer
      x-service: networkGroup
  "/v4/networkgroups/organisations/{ownerId}/networkgroups/{networkGroupId}/peers/{peerId}/wireguard/configuration":
    get:
      description: Gets the current WireGuard® tunnel configuration file for a Network Group peer.
      operationId: getNetworkGroupWireGuardConfiguration
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: peerId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WireGuardConfiguration"
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/PeerNotFound"
      security:
        - {}
      summary: Get WireGuard® configuration
      tags:
        - all
        - organisations
        - networkgroups
      x-function: getNetworkGroupWireGuardConfiguration
      x-service: networkGroup
  "/v4/networkgroups/organisations/{ownerId}/networkgroups/{networkGroupId}/peers/{peerId}/wireguard/configuration/stream":
    get:
      description: Gets the current WireGuard® tunnel configuration file for a Network Group peer as a Server Sent Event.
      operationId: getNetworkGroupWireGuardConfigurationStream
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: peerId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "200":
          content:
            text/event-stream:
              schema:
                $ref: "#/components/schemas/WireGuardConfiguration"
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/PeerNotFound"
      security:
        - {}
      summary: Get WireGuard® configuration
      tags:
        - all
        - organisations
        - networkgroups
      x-function: getNetworkGroupWireGuardConfigurationStream
      x-service: networkGroup
  "/v4/networkgroups/organisations/{ownerId}/networkgroups/{networkGroupId}/stream":
    get:
      description: Retrieves the current Network Group details as a Server Sent Event.
      operationId: getNetworkGroupStream
      parameters:
        - description: Automatically added
          in: path
          name: ownerId
          required: true
          schema:
            type: string
        - description: Automatically added
          in: path
          name: networkGroupId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/listNetworkGroups"
      responses:
        "200":
          content:
            text/event-stream:
              schema:
                $ref: "#/components/schemas/NetworkGroup"
          description: Success
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/NetworkGroupNotFound"
      security:
        - {}
      summary: Network Group SSE
      tags:
        - all
        - organisations
        - networkgroups
      x-function: getNetworkGroupStream
      x-service: networkGroup
  /vendor//addons:
    post:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - addons
        - vendor
  "/vendor//apps/{addonId}/logscollector":
    get:
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - vendor
    parameters:
      - in: path
        name: addonId
        required: true
        schema:
          type: string
  /vendor/apps:
    get:
      operationId: getVendorApps
      parameters:
        - in: query
          name: offset
          required: false
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Application"
                type: array
          description: listApps
      tags:
        - all
        - vendor
  "/vendor/apps/{addonId}":
    get:
      operationId: getVendorAppsAddonId
      responses:
        "200":
          description: getApplicationInfo
      tags:
        - all
        - vendor
    parameters:
      - in: path
        name: addonId
        required: true
        schema:
          type: string
    put:
      operationId: putVendorAppsAddonId
      responses:
        "200":
          description: editApplicationConfiguration
      tags:
        - all
        - vendor
  "/vendor/apps/{addonId}/consumptions":
    parameters:
      - in: path
        name: addonId
        required: true
        schema:
          type: string
    post:
      operationId: postVendorBillingOwnerId
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WannabeAddonBilling"
        required: true
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - vendor
  "/vendor/apps/{addonId}/migration_callback":
    parameters:
      - in: path
        name: addonId
        required: true
        schema:
          type: string
    put:
      parameters:
        - in: query
          name: plan_id
          required: false
          schema:
            type: string
        - in: query
          name: region
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Status 200
      tags:
        - all
        - vendor
components:
  examples:
    NetworkGroupLabelAlreadyTaken: {}
  requestBodies:
    Body:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/Body"
      required: true
    Vhost:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/Vhost"
      required: true
    WannabeAddon:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/WannabeAddon"
      required: true
    WannabeAddonProvider:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/WannabeAddonProvider"
      required: true
    WannabeApplication:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/WannabeApplication"
      required: true
    WannabeConsumer:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/WannabeConsumer"
      required: true
    WannabeEnv:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/WannabeEnv"
      required: true
    WannabeMember:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/WannabeMember"
      required: true
    WannabeOrganisation:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/WannabeOrganisation"
      required: true
    WannabePlan:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/WannabePlan"
      required: true
    WannabeUser:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/WannabeUser"
      required: true
    deleteMatomo:
      content:
        "*/*":
          schema:
            type: string
    listNetworkGroups:
      content:
        "*/*":
          schema:
            $ref: "#/components/schemas/OVDHttpRequestContext"
  responses:
    Accepted:
      description: ""
    BadRequest:
      description: ""
    MemberNotFound:
      description: ""
    NetworkGroupNotFound:
      description: ""
    PeerNotFound:
      description: ""
    Unauthorized:
      description: ""
  schemas:
    Addon:
      description: An addon
      properties:
        configKeys:
          description: Environments variables link to the addon.
          items:
            type: string
          type: array
        creationDate:
          description: The creation timestamp of the addon
          format: date
          type: string
        id:
          description: "`addon_${uuid}`"
          type: string
        name:
          type: string
        plan:
          $ref: "#/components/schemas/Plan"
        provider:
          $ref: "#/components/schemas/Provider"
        realId:
          description: "`${provider}_${uuid2}`"
          type: string
        region:
          type: string
      required:
        - configKeys
        - creationDate
        - id
        - name
        - plan
        - provider
        - realId
        - region
      type: object
    AddonConfigProviderView: {}
    AddonMigration:
      example: |-
        {
           "id": "<UUID>",
           "addon_id": "addon_<uuid>",
           "kind": "SHARED_TO_SHARED|SHARED_TO_DEDICATED|DEDICATED_TO_DEDICATED|DEDICATED_TO_SHARED",
           "state": "RUNNING|FAILED|RECOVERING|RECOVERED|OK",
           "hostname": "db.hostname",
           "database": "dbname",
           "port": 5432,
           "database_user": "username",
           "callback_url": "https://api.clever-cloud.com/v2/…",
           "old_cluster_id": "acddc485-79c2-4c6b-a617-c92a06c0cb0b",
           "old_cluster_label": "par2-01",
           "old_instance_id": "acddc485-79c2-4c6b-a617-c92a06c0cb0b",
           "old_plan": "s",
           "old_zone": "par2",
           "old_recipient_hostname": "postgresql-sdc-par2-clevercloud.services.clever-cloud.com", 
           "new_cluster_id": "acddc485-79c2-4c6b-a617-c92a06c0cb0b",
           "new_cluster_label": "par2-02",
           "new_instance_id": "acddc485-79c2-4c6b-a617-c92a06c0cb0b",
           "new_plan": "m",
           "new_zone": "par3",
           "new_recipient_hostname": "postgresql-sdc-par3-clevercloud.services.clever-cloud.com", 
           "request_date": "2018-10-31T10:00:23Z",
           "last_state_update_date":  "2018-10-31T10:00:23Z",
           "dump_restore_start_date":  "2018-10-31T10:00:23Z",
           "dump_restore_finished_date":  "2018-10-31T10:00:23Z",
           "end_date":  "2018-10-31T10:00:23Z",
           "exit_message": "Success" 
        }
      properties:
        addon_id:
          type: string
        callback_url:
          type: string
        database:
          type: string
        database_user:
          type: string
        dump_restore_finished_date:
          type: string
        dump_restore_start_date:
          type: string
        end_date:
          type: string
        exit_message:
          type: string
        hostname:
          type: string
        id:
          type: string
        kind:
          type: string
        last_state_update_date:
          type: string
        new_cluster_id:
          type: string
        new_cluster_label:
          type: string
        new_instance_id:
          type: string
        new_plan:
          type: string
        new_recipient_hostname:
          type: string
        new_zone:
          type: string
        old_cluster_id:
          type: string
        old_cluster_label:
          type: string
        old_instance_id:
          type: string
        old_plan:
          type: string
        old_recipient_hostname:
          type: string
        old_zone:
          type: string
        port:
          type: number
        request_date:
          type: string
        state:
          type: string
      type: object
    AddonProviderSso:
      properties:
        macaroon:
          type: string
        url:
          type: string
      required:
        - macaroon
        - url
      type: object
    AppInstance:
      properties:
        appId:
          type: string
        appPort:
          format: int32
          type: integer
        commit:
          type: string
        deployNumber:
          format: int32
          type: integer
        flavor:
          $ref: "#/components/schemas/Flavor"
        id:
          type: string
        ip:
          type: string
        state:
          type: string
      type: object
    Application:
      properties:
        archived:
          default: false
          type: boolean
        branch:
          type: string
        buildFlavor:
          $ref: "#/components/schemas/Flavor"
        cancelOnPush:
          default: false
          type: boolean
        commitId:
          type: string
        creationDate:
          format: date
          type: string
        deployUrl:
          type: string
        deployment:
          $ref: "#/components/schemas/Deployment"
        description:
          type: string
        favourite:
          default: false
          type: boolean
        homogeneous:
          default: false
          type: boolean
        id:
          type: string
        instance:
          $ref: "#/components/schemas/Instance"
        last_deploy:
          format: int32
          type: integer
        name:
          type: string
        ownerId:
          type: string
        separateBuild:
          default: false
          type: boolean
        state:
          type: string
        stickySessions:
          default: false
          type: boolean
        vhosts:
          items:
            $ref: "#/components/schemas/Vhost"
          type: array
        webhookSecret:
          type: string
        webhookUrl:
          type: string
        zone:
          description: "`par` ou `mtl`"
          type: string
      required:
        - archived
        - branch
        - buildFlavor
        - cancelOnPush
        - commitId
        - creationDate
        - deployUrl
        - deployment
        - description
        - favourite
        - homogeneous
        - id
        - instance
        - last_deploy
        - name
        - ownerId
        - separateBuild
        - state
        - stickySessions
        - vhosts
        - webhookSecret
        - webhookUrl
        - zone
      type: object
    Avatar:
      description: If you want to upload an image from your computer, send the image in the body of the request without anything else.
      properties:
        source:
          description: ""
          properties:
            source:
              description: github or gravatar
              type: string
            value:
              $ref: "#/components/schemas/URL"
          required:
            - source
            - value
          type: object
      required:
        - source
      type: object
    Body:
      properties:
        body:
          type: string
      required:
        - body
      type: object
    Change_Password:
      properties:
        newPassword:
          type: string
        oldPassword:
          type: string
      required:
        - newPassword
        - oldPassword
      type: object
    Conso:
      properties:
        appId:
          type: string
        conso:
          properties:
            conso:
              description: One day consumption
              type: string
            date:
              type: string
          required:
            - conso
            - date
          type: object
      required:
        - appId
        - conso
      type: object
    Consumer:
      properties:
        baseUrl:
          type: string
        description:
          type: string
        key:
          type: string
        name:
          type: string
        picture:
          type: string
        rights:
          $ref: "#/components/schemas/ConsumerRights"
        url:
          type: string
      required:
        - baseUrl
        - description
        - name
        - rights
        - url
      type: object
    ConsumerRights:
      properties:
        access_bills:
          default: false
          type: boolean
        access_consumption_statistics:
          default: false
          type: boolean
        access_credit_count:
          default: false
          type: boolean
        access_organisations:
          default: false
          type: boolean
        access_organisations_bills:
          default: false
          type: boolean
        access_organisations_consumption_statistics:
          default: false
          type: boolean
        access_organisations_credit_count:
          default: false
          type: boolean
        access_personal_information:
          default: false
          type: boolean
        almighty:
          default: false
          type: boolean
        manage_applications:
          default: false
          type: boolean
        manage_organisations:
          default: false
          type: boolean
        manage_organisations_applications:
          default: false
          type: boolean
        manage_organisations_members:
          default: false
          type: boolean
        manage_organisations_services:
          default: false
          type: boolean
        manage_personal_information:
          default: false
          type: boolean
        manage_services:
          default: false
          type: boolean
        manage_ssh_keys:
          default: false
          type: boolean
      type: object
    Country:
      properties:
        code:
          description: Code ISO 3166
          type: string
        name:
          type: string
      required:
        - code
        - name
      type: object
    Credits:
      properties:
        count:
          format: float
          type: number
        dropPrice:
          properties:
            currency:
              type: string
            value:
              format: float
              type: number
          required:
            - currency
            - value
          type: object
        ownerId:
          type: string
      required:
        - count
        - dropPrice
        - ownerId
      type: object
    Deployment:
      properties:
        httpUrl:
          type: string
        repoState:
          type: string
        shutdownable:
          default: false
          type: boolean
        type:
          type: string
        url:
          type: string
      required:
        - repoState
        - shutdownable
        - type
        - url
      type: object
    DeploymentSummary:
      properties:
        "{app_id}":
          items:
            $ref: "#/components/schemas/DeploymentView"
          type: array
      type: object
    DeploymentView:
      properties:
        action:
          type: string
        author:
          properties:
            id:
              type: string
            name:
              type: string
          required:
            - id
            - name
          type: object
        cause:
          type: string
        commit:
          type: string
        date:
          format: date
          type: string
        id:
          format: int64
          type: integer
        instances:
          format: int64
          type: integer
        state:
          type: string
        uuid:
          type: string
      required:
        - action
        - cause
        - commit
        - date
        - id
        - instances
        - state
        - uuid
      type: object
    Env:
      properties:
        addon_id:
          type: string
        addon_name:
          type: string
        env:
          items:
            $ref: "#/components/schemas/WannabeEnv"
          type: array
        provider_id:
          type: string
      required:
        - addon_id
        - addon_name
        - env
        - provider_id
      type: object
    EnvVar: {}
    Error:
      example: '{"id":6200,"type":"error","message":"You do not belong to this organisation so you cannot access it"}'
      properties:
        id:
          description: Unique numeric id of this error type. Eg. id = 10 is "Serialization failed".
          type: number
        message:
          description: Description of the error.
          type: string
        type:
          description: Value should be "error"
          type: string
      type: object
    Feature:
      properties:
        name:
          description: The name of the properties
          type: string
        type:
          description: The type of the feature
          type: string
        value:
          description: The value of the feature
          type: string
      required:
        - name
        - type
        - value
      type: object
    Flavor:
      properties:
        available:
          default: false
          type: boolean
        cpus:
          format: int32
          type: integer
        disk:
          format: int32
          type: integer
        mem:
          format: int32
          type: integer
        microservice:
          default: false
          type: boolean
        name:
          type: string
        nice:
          format: double
          type: number
        price:
          format: double
          type: number
      required:
        - cpus
        - mem
        - name
        - price
      type: object
    Function1RequestContextFutureRouteResult: {}
    Instance:
      properties:
        buildFlavor:
          $ref: "#/components/schemas/Flavor"
        comingSoon:
          default: false
          type: boolean
        defaultEnv:
          $ref: "#/components/schemas/Map"
        defaultFlavor:
          $ref: "#/components/schemas/Flavor"
        deployments:
          items:
            type: string
          type: array
        description:
          type: string
        enabled:
          default: false
          type: boolean
        flavors:
          items:
            $ref: "#/components/schemas/Flavor"
          type: array
        instanceAndVersion:
          type: string
        maxAllowedInstances:
          format: int32
          type: integer
        maxFlavor:
          $ref: "#/components/schemas/Flavor"
        maxInstances:
          format: int32
          type: integer
        minFlavor:
          $ref: "#/components/schemas/Flavor"
        minInstances:
          format: int32
          type: integer
        name:
          type: string
        tags:
          items:
            type: string
          type: array
        type:
          type: string
        variant:
          $ref: "#/components/schemas/Variant"
        version:
          type: string
      required:
        - defaultEnv
        - flavors
        - instanceAndVersion
        - maxAllowedInstances
        - maxFlavor
        - maxInstances
        - minFlavor
        - minInstances
        - type
        - variant
        - version
      type: object
    Key:
      properties:
        fingerprint:
          type: string
        key:
          type: string
        name:
          description: ""
          type: string
      required:
        - fingerprint
        - key
        - name
      type: object
    LinkedAppEnv:
      properties:
        app_id:
          type: string
        app_name:
          type: string
        env:
          items:
            $ref: "#/components/schemas/WannabeEnv"
          type: array
      required:
        - app_id
        - app_name
        - env
      type: object
    ListEnv:
      properties:
        name:
          type: string
        value:
          type: string
      type: object
    Map:
      type: object
    Member:
      $ref: "#/components/schemas/schema1"
    NetworkGroup: {}
    OVDHttpRequestContext: {}
    Organisation:
      properties:
        VAT:
          type: string
        address:
          type: string
        avatar:
          type: string
        city:
          type: string
        company:
          type: string
        country:
          type: string
        description:
          type: string
        id:
          type: string
        name:
          type: string
        vatState:
          type: string
        zipcode:
          type: string
      required:
        - VAT
        - address
        - avatar
        - city
        - company
        - country
        - description
        - id
        - name
        - vatState
        - zipcode
      type: object
    PaymentData:
      properties:
        deviceData:
          type: string
        token:
          type: string
        type:
          enum:
            - NEW_CARD
            - EXISTING_CARD
          type: string
      required:
        - token
        - type
      type: object
    Payment_Provider:
      properties:
        comingSoon:
          default: false
          type: boolean
        imgUrl:
          type: string
        name:
          type: string
        title:
          type: string
      required:
        - comingSoon
        - imgUrl
        - name
        - title
      type: object
    Peer: {}
    Plan:
      properties:
        features:
          description: The list of the feature in the addon
          items:
            $ref: "#/components/schemas/Feature"
          type: array
        id:
          description: "`plan_${uuid}`"
          type: string
        name:
          description: Name of the pan
          type: string
        price:
          format: int32
          type: integer
        slug:
          type: string
      required:
        - features
        - id
        - name
        - price
        - slug
      type: object
    Provider:
      description: A provider
      properties:
        analyticsId:
          description: The id of the analytics page link to this addon
          type: string
        canUpgrade:
          default: false
          description: Can the addon be upgraded
          type: boolean
        features:
          items:
            $ref: "#/components/schemas/Feature"
          type: array
        googlePlusName:
          description: The name of the google + page link to this addon (could be empty)
          type: string
        id:
          description: The id of the provider
          type: string
        logoUrl:
          description: The url of the addon's logo
          type: string
        longDesc:
          description: A less concise description of the addon
          type: string
        name:
          type: string
        openInNewTab:
          default: false
          description: Does the addon panel need to be open in a new tab
          type: boolean
        plans:
          items:
            $ref: "#/components/schemas/Plan"
          type: array
        regions:
          description: The differents regions where the addon is available
          items:
            type: string
          type: array
        shortDesc:
          description: A short description of the addon
          type: string
        status:
          description: The status of this addon (RELEASE, BETA, ...)
          type: string
        supportEmail:
          description: The mail to contact in case of issue with this addon
          type: string
        twitterName:
          description: The name of the user to contact on twitter for this addon (could be empty)
          type: string
        website:
          description: The website of the provider. If the addon is developped by clever-cloud, the site is "http://www.clever-cloud.com/"
          type: string
      required:
        - analyticsId
        - canUpgrade
        - googlePlusName
        - id
        - logoUrl
        - longDesc
        - name
        - openInNewTab
        - regions
        - shortDesc
        - status
        - supportEmail
        - twitterName
        - website
      type: object
    ProvisionRequest: {}
    Rights:
      properties:
        description:
          type: string
        name:
          type: string
      required:
        - description
        - name
      type: object
    Secret:
      properties:
        secret:
          type: string
        value:
          type: string
      required:
        - secret
        - value
      type: object
    Sso:
      properties:
        email:
          type: string
        id:
          type: string
        nav-data:
          type: string
        timestamp:
          format: date
          type: string
        token:
          type: string
        url:
          type: string
      required:
        - email
        - id
        - nav-data
        - timestamp
        - token
        - url
      type: object
    Summary:
      properties:
        organisations:
          items:
            properties:
              addons:
                items:
                  properties:
                    id:
                      type: string
                    logoUrl:
                      type: string
                    name:
                      type: string
                    providerId:
                      type: string
                  type: object
                type: array
              applications:
                items:
                  properties:
                    archived:
                      default: false
                      type: boolean
                    commit:
                      type: string
                    id:
                      type: string
                    instanceType:
                      type: string
                    instanceVariant:
                      type: string
                    name:
                      type: string
                    state:
                      type: string
                    variantSlug:
                      type: string
                  type: object
                type: array
              avatar:
                type: string
              consumers:
                items:
                  properties:
                    key:
                      type: string
                    name:
                      type: string
                    picture:
                      type: string
                  type: object
                type: array
              id:
                type: string
              name:
                type: string
              providers:
                items:
                  type: string
                type: array
              role:
                type: string
            type: object
          type: array
        user:
          properties:
            addons:
              items:
                properties:
                  id:
                    type: string
                  logoUrl:
                    type: string
                  name:
                    type: string
                  providerId:
                    type: string
                type: object
              type: array
            admin:
              default: false
              type: boolean
            applications:
              items:
                properties:
                  archived:
                    default: false
                    type: boolean
                  commit:
                    type: string
                  id:
                    type: string
                  instanceType:
                    type: string
                  instanceVariant:
                    type: string
                  name:
                    type: string
                  state:
                    type: string
                  variantSlug:
                    type: string
                type: object
              type: array
            avatar:
              type: string
            consumers:
              items:
                properties:
                  key:
                    type: string
                  name:
                    type: string
                  picture:
                    type: string
                type: object
              type: array
            id:
              type: string
            lang:
              type: string
            name:
              type: string
          required:
            - addons
            - admin
            - applications
            - avatar
            - id
            - lang
            - name
          type: object
      required:
        - organisations
        - user
      type: object
    SupernovaInstanceView:
      example: |-
        {
          "uuid": "19d21edb-a343-49e7-8aa6-9d87c7e272b8",
          "displayName": "Sizzling spewpa",
          "appId": "app_2b5ad0bb-4bd7-4180-80b9-0459e98364f3",
          "ownerId": "orga_0d221ceb-1b50-4994-a8d9-babb3cceef02",
          "flavor": {
            "name": "nano",
            "mem": 512,
            "cpus": 1,
            "price": 0.1431844215
          },
          "ip": "65.10.142.94",
          "appPort": 18605,
          "zabbixPort": 28605,
          "sshPort": 48605,
          "hv": "hv-par2-049",
          "image": "java-20181029",
          "state": "UP",
          "commitId": "43a4ba1726e26f039654dcd3916f61c612802947",
          "deployNumber": 107,
          "deployId": "deployment_cad0cf75-38e2-4dc8-b1be-ea869862bb69",
          "source": "apps",
          "zone": "par",
          "internalIP": "10.6.123.92",
          "createdAt": 1540921810532,
          "instanceNumber": 0
        }
      properties:
        appId:
          description: Identifier of running app/add-on
          type: string
        appPort:
          description: Port of the HV that's redirected to 8080 on VM
          type: number
        commitId:
          type: string
        createdAt:
          description: Integer unix timestamp
          type: number
        deployId:
          type: string
        deployNumber:
          type: number
        displayName:
          description: Generated PokéName. This name is generated from the uuid.
          type: string
        flavor:
          description: 'The instance "flavor": memory, cpu, disk size…'
          properties:
            cpus:
              type: number
            mem:
              type: number
            name:
              description: Name of flavor. For indication only.
              type: string
            price:
              type: number
          type: object
        hv:
          description: String name of hv.
          type: string
        image:
          description: Base system image. E.g. java-20181030, node-20180912…
          type: string
        instanceNumber:
          type: number
        internalIP:
          type: string
        ip:
          description: Public IP of the HV
          type: string
        ownerId:
          description: Identifier of the owner of the app/add-on running
          type: string
        source:
          description: Who/what started this instance? E.g. "app", "cli"
          type: string
        sshPort:
          description: Port of the HV that's redirected to 22 on VM
          type: number
        state:
          type: string
        uuid:
          type: string
        zabbixPort:
          description: Port of the HV that's redirected to 10050 on VM
          type: number
        zone:
          type: string
      required:
        - appPort
        - flavor
        - hv
        - image
        - ip
        - source
        - uuid
        - zabbixPort
      type: object
    Token:
      properties:
        consumer:
          $ref: "#/components/schemas/Consumer"
        creationDate:
          format: int32
          type: integer
        lastUtilisation:
          type: string
        rights:
          $ref: "#/components/schemas/Rights"
        token:
          type: string
      required:
        - consumer
        - creationDate
        - lastUtilisation
        - rights
        - token
      type: object
    Transaction_Id:
      description: A simple transaction id
      properties:
        transactionId:
          description: The transaction Id
          type: string
      required:
        - transactionId
      type: object
    URL:
      description: Must be a valid HTTP URL
      properties:
        url:
          type: string
      required:
        - url
      type: object
    User:
      description: A user representation
      properties:
        address:
          description: The address of the user
          type: string
        admin:
          default: false
          description: Is the user an administrator ?
          type: boolean
        avatar:
          description: The location of the user's avatar
          type: string
        canPay:
          default: false
          description: Does the user can pay ?
          type: boolean
        city:
          description: The city of the user
          type: string
        country:
          description: The country of the user
          type: string
        creationDate:
          description: The creation timestamp of the user
          format: int64
          type: integer
        email:
          description: The email of the user
          type: string
        emailValidated:
          default: false
          description: Does the user email is validate
          type: boolean
        hasPassword:
          default: false
          type: boolean
        id:
          description: "The id of the user : `user_${uuid}`"
          type: string
        lang:
          description: The lang of the user
          type: string
        name:
          description: The name of the user
          type: string
        oauthApps:
          description: The list of token oauth
          items:
            type: string
          type: array
        phone:
          description: The phone of the user
          type: string
        preferredMFA:
          type: string
        zipcode:
          description: The zipcode of the user
          type: string
      required:
        - address
        - admin
        - avatar
        - canPay
        - city
        - country
        - creationDate
        - email
        - emailValidated
        - id
        - lang
        - name
        - oauthApps
        - phone
        - zipcode
      type: object
    Variant:
      properties:
        deployType:
          type: string
        id:
          type: string
        logo:
          type: string
        name:
          type: string
        slug:
          type: string
      required:
        - deployType
        - id
        - logo
        - name
        - slug
      type: object
    Vhost:
      properties:
        fqdn:
          type: string
      required:
        - fqdn
      type: object
    WannabeAddon:
      properties:
        name:
          type: string
        payment:
          $ref: "#/components/schemas/PaymentData"
        plan:
          type: string
        providerId:
          description: ""
          type: string
        region:
          type: string
      required:
        - name
        - payment
        - plan
        - providerId
        - region
      type: object
    WannabeAddonBilling:
      properties:
        cost:
          format: double
          type: number
      required:
        - cost
      type: object
    WannabeAddonProvider:
      properties:
        api:
          $ref: "#/components/schemas/WannabeAddonProviderAPI"
        id:
          type: string
        name:
          type: string
      required:
        - api
        - id
        - name
      type: object
    WannabeAddonProviderAPI:
      properties:
        config_vars:
          items:
            type: string
          type: array
        password:
          type: string
        production:
          $ref: "#/components/schemas/WannabeAddonProviderAPIUrl"
        regions:
          items:
            type: string
          type: array
        sso_salt:
          type: string
        test:
          $ref: "#/components/schemas/WannabeAddonProviderAPIUrl"
      required:
        - config_vars
        - password
        - sso_salt
      type: object
    WannabeAddonProviderAPIUrl:
      properties:
        base_url:
          type: string
        sso_url:
          type: string
      required:
        - base_url
        - sso_url
      type: object
    WannabeApplication:
      properties:
        archived:
          default: false
          type: boolean
        cancelOnPush:
          default: false
          type: boolean
        deploy:
          type: string
        description:
          type: string
        enabled:
          default: false
          type: boolean
        favourite:
          default: false
          type: boolean
        homogeneous:
          default: false
          type: boolean
        instanceType:
          type: string
        instanceVariant:
          type: string
        instanceVersion:
          type: string
        maxFlavor:
          type: string
        maxInstances:
          format: int32
          type: integer
        minFlavor:
          type: string
        minInstances:
          format: int32
          type: integer
        name:
          type: string
        oauthApp:
          $ref: "#/components/schemas/WannabeOauthApp"
        oauthAppId:
          type: string
        oauthService:
          type: string
        separateBuild:
          default: false
          type: boolean
        shutdownable:
          default: false
          type: boolean
        stickySessions:
          default: false
          type: boolean
        tags:
          items:
            type: string
          type: array
        zone:
          type: string
      required:
        - deploy
        - enabled
        - maxInstances
        - minInstances
        - name
        - zone
      type: object
    WannabeConsumer:
      properties:
        baseUrl:
          $ref: "#/components/schemas/URL"
        description:
          type: string
        name:
          type: string
        picture:
          description: ""
          type: string
        rights:
          properties:
            activated:
              default: false
              type: boolean
            right:
              type: string
          required:
            - activated
            - right
          type: object
        url:
          $ref: "#/components/schemas/URL"
      required:
        - baseUrl
        - name
        - rights
        - url
      type: object
    WannabeEnv:
      properties:
        name:
          type: string
        value:
          type: string
      required:
        - name
        - value
      type: object
    WannabeEnvVar: {}
    WannabeExternalPeer: {}
    WannabeFeature:
      properties:
        name:
          type: string
        type:
          description: BOOLEAN, INTERVAL, FILESIZE, NUMBER, PERCENTAGE
          type: string
      required:
        - name
        - type
      type: object
    WannabeMember:
      $ref: "#/components/schemas/schema2"
    WannabeNetworkGroup: {}
    WannabeOauthApp:
      properties:
        name:
          type: string
        owner:
          type: string
      type: object
    WannabeOrganisation:
      properties:
        VAT:
          type: string
        address:
          description: The address of the organisation.
          type: string
        city:
          description: The city of the organisation.
          type: string
        company:
          description: The company's name of the organisation.
          type: string
        country:
          description: The country of the organisation.
          type: string
        description:
          description: The description of the organisation.
          type: string
        name:
          description: The name of the organisation.
          type: string
        zipcode:
          description: The zipcode of the city's organisation.
          type: string
      required:
        - description
        - name
      type: object
    WannabePlan:
      properties:
        features:
          items:
            $ref: "#/components/schemas/WannabePlanFeature"
          type: array
        name:
          type: string
        price:
          format: int64
          type: integer
        slug:
          type: string
      required:
        - features
        - name
        - price
        - slug
      type: object
    WannabePlanFeature:
      properties:
        name:
          type: string
        type:
          type: string
        value:
          type: string
      required:
        - name
        - type
        - value
      type: object
    WannabeUser:
      description: ""
      properties:
        address:
          type: string
        city:
          type: string
        country:
          type: string
        email:
          description: ""
          type: string
        lang:
          type: string
        name:
          type: string
        password:
          type: string
        phone:
          type: string
        terms:
          default: false
          type: boolean
        zipcode:
          type: string
      required:
        - email
        - password
        - terms
      type: object
    WireGuardConfiguration: {}
    Zone:
      properties:
        correspondingRegion:
          type: string
        internal:
          default: false
          type: boolean
        name:
          type: string
      required:
        - correspondingRegion
        - internal
        - name
      type: object
    schema1:
      properties:
        job:
          type: string
        member:
          properties:
            avatar:
              type: string
            email:
              type: string
            id:
              type: string
            name:
              type: string
          required:
            - email
            - id
          type: object
        role:
          type: string
      required:
        - job
        - member
        - role
      type: object
    schema2:
      properties:
        email:
          type: string
        job:
          type: string
        role:
          type: string
      required:
        - email
        - role
      type: object
