Qovery Applications API

The Applications API from Qovery — 4 operation(s) for applications.

OpenAPI Specification

qovery-applications-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.4
  title: Qovery Account Info Applications API
  description: '- Qovery is the fastest way to deploy your full-stack apps on any Cloud provider.

    - ℹ️ The API is stable and still in development.

    '
  contact:
    name: Qovery Product Team
    url: https://www.qovery.com
    email: support+api+documentation@qovery.com
  x-logo:
    url: https://console.qovery.com/assets/logos/logo-white.svg
    altText: Qovery
servers:
- url: https://api.qovery.com
security:
- bearerAuth: []
- ApiKeyAuth: []
tags:
- name: Applications
paths:
  /environment/{environmentId}/application:
    get:
      summary: List applications
      operationId: listApplication
      parameters:
      - $ref: '#/components/parameters/environmentId'
      - $ref: '#/paths/~1environment~1%7BenvironmentId%7D~1job/get/parameters/1'
      tags:
      - Applications
      responses:
        '200':
          description: List applications
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    post:
      summary: Create an application
      operationId: createApplication
      parameters:
      - $ref: '#/components/parameters/environmentId'
      tags:
      - Applications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
      responses:
        '201':
          description: Create application
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Application name within the environment is already taken
  /environment/{environmentId}/application/status:
    get:
      summary: List all environment applications statuses
      description: Returns a list of applications with only their id and status.
      operationId: getEnvironmentApplicationStatus
      parameters:
      - $ref: '#/components/parameters/environmentId'
      tags:
      - Applications
      responses:
        '200':
          description: Get status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferenceObjectStatusResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /defaultApplicationAdvancedSettings:
    get:
      summary: List default application advanced settings
      operationId: getDefaultApplicationAdvancedSettings
      description: Default values for each setting are available in [our documentation](https://hub.qovery.com/docs/using-qovery/configuration/advanced-settings/)
      tags:
      - Applications
      responses:
        '200':
          description: Default application advanced settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationAdvancedSettings'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /application/{applicationId}/clone:
    post:
      summary: Clone application
      description: This will create a new application with the same configuration on the targeted environment Id.
      operationId: cloneApplication
      parameters:
      - $ref: '#/components/parameters/applicationId'
      tags:
      - Applications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneServiceRequest'
      responses:
        '202':
          description: Application clone has been requested
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Operation is in progress
components:
  schemas:
    ReferenceObject:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
    ServicePortResponseList:
      type: array
      items:
        $ref: '#/components/schemas/ServicePort'
    GitProviderEnum:
      type: string
      enum:
      - BITBUCKET
      - GITHUB
      - GITLAB
    ServiceLabelRequest:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
    ServiceStorage:
      type: object
      properties:
        storage:
          type: array
          items:
            type: object
            required:
            - id
            - type
            - size
            - mount_point
            properties:
              id:
                type: string
                format: uuid
              type:
                $ref: '#/components/schemas/StorageTypeEnum'
              size:
                type: integer
                description: unit is GB
                example: 16
              mount_point:
                type: string
                example: /mnt/images
    OrganizationAnnotationsGroupScopeEnum:
      type: string
      description: Annotations Group Scope
      enum:
      - DEPLOYMENTS
      - STATEFUL_SETS
      - SERVICES
      - INGRESS
      - GATEWAY_API_ROUTES
      - HPA
      - PODS
      - SECRETS
      - JOBS
      - CRON_JOBS
    KedaAutoscalingResponse:
      title: KedaAutoscalingResponse
      x-stoplight:
        id: dgcb902szizvv
      allOf:
      - $ref: '#/components/schemas/Base'
      - type: object
        x-stoplight:
          id: zjlwqohiiyuwf
        required:
        - service_id
        - mode
        - polling_interval_seconds
        - cooldown_period_seconds
        - scalers
        properties:
          service_id:
            type: string
            x-stoplight:
              id: j9bxhtiyyl0iv
            format: uuid
          mode:
            $ref: '#/components/schemas/AutoscalingMode'
          polling_interval_seconds:
            type: integer
            x-stoplight:
              id: uone6zr48amok
            format: int32
          cooldown_period_seconds:
            type: integer
            x-stoplight:
              id: j2dapmjjjiafj
            format: int32
          scalers:
            type: array
            x-stoplight:
              id: oyhxgvwg36ixz
            minItems: 1
            items:
              $ref: '#/components/schemas/KedaScalerResponse'
      description: ''
    BuildModeEnum:
      type: string
      enum:
      - DOCKER
      description: '`DOCKER` requires `dockerfile_path`

        '
      default: DOCKER
    Application:
      allOf:
      - $ref: '#/components/schemas/Base'
      - $ref: '#/components/schemas/ServiceStorage'
      - type: object
        required:
        - environment
        - name
        - healthchecks
        - icon_uri
        - service_type
        properties:
          environment:
            $ref: '#/components/schemas/ReferenceObject'
          git_repository:
            $ref: '#/components/schemas/ApplicationGitRepository'
          maximum_cpu:
            type: integer
            description: Maximum cpu that can be allocated to the application based on organization cluster configuration. unit is millicores (m). 1000m = 1 cpu
            example: 16000
          maximum_memory:
            type: integer
            description: Maximum memory that can be allocated to the application based on organization cluster configuration. unit is MB. 1024 MB = 1GB
            example: 16384
          maximun_gpu:
            type: integer
            x-stoplight:
              id: ho7l9maiyqe52
            default: 0
            minimum: 0
          name:
            type: string
            description: name is case insensitive
          description:
            type: string
            description: give a description to this application
          build_mode:
            $ref: '#/components/schemas/BuildModeEnum'
          dockerfile_path:
            type: string
            description: The path of the associated Dockerfile. Only if you are using build_mode = DOCKER
            nullable: true
          cpu:
            type: integer
            description: unit is millicores (m). 1000m = 1 cpu
            example: 1250
          memory:
            type: integer
            description: unit is MB. 1024 MB = 1GB
            example: 1024
          gpu:
            type: integer
            x-stoplight:
              id: 3n3pebmhkah3k
            default: 0
            minimum: 0
          min_running_instances:
            type: integer
            minimum: 0
            description: 'Minimum number of instances running. This resource auto-scale based on the CPU and Memory consumption.

              Note: 0 means that there is no application running.

              '
            default: 1
          max_running_instances:
            type: integer
            description: 'Maximum number of instances running. This resource auto-scale based on the CPU and Memory consumption.

              Note: -1 means that there is no limit.

              '
            default: 1
          healthchecks:
            $ref: '#/components/schemas/Healthcheck'
          auto_preview:
            type: boolean
            description: "Specify if the environment preview option is activated or not for this application.  \nIf activated, a preview environment will be automatically cloned at each pull request.  \nIf not specified, it takes the value of the `auto_preview` property from the associated environment.\n"
            default: true
          ports:
            $ref: '#/components/schemas/ServicePortResponseList'
          arguments:
            type: array
            items:
              type: string
          entrypoint:
            type: string
            description: optional entrypoint when launching container
          auto_deploy:
            type: boolean
            description: Specify if the application will be automatically updated after receiving a new commit.
          annotations_groups:
            $ref: '#/components/schemas/OrganizationAnnotationsGroupResponseList'
          labels_groups:
            $ref: '#/components/schemas/OrganizationLabelsGroupResponseList'
          icon_uri:
            type: string
            format: uri
            description: Icon URI representing the application.
            x-stoplight:
              id: b8karc43pdxpu
          service_type:
            $ref: '#/components/schemas/ServiceTypeEnum'
          docker_target_build_stage:
            type: string
            x-stoplight:
              id: tdxdfoyowutcx
            description: The target build stage in the Dockerfile to build
            nullable: true
          autoscaling:
            $ref: '#/components/schemas/AutoscalingPolicyResponse'
    ServiceAnnotationsRequestList:
      type: array
      items:
        $ref: '#/components/schemas/ServiceAnnotationRequest'
    KedaScalerRole:
      title: KedaScalerRole
      x-stoplight:
        id: 1sl0mlxoqzr8w
      type: string
      enum:
      - PRIMARY
      - SAFETY
    OrganizationLabelsGroupResponse:
      allOf:
      - $ref: '#/components/schemas/Base'
      - type: object
        required:
        - name
        - labels
        properties:
          name:
            type: string
          labels:
            type: array
            items:
              $ref: '#/components/schemas/Label'
      title: ''
    ApplicationGitRepository:
      type: object
      required:
      - provider
      - owner
      - name
      - url
      properties:
        has_access:
          type: boolean
        provider:
          $ref: '#/components/schemas/GitProviderEnum'
        owner:
          type: string
          example: John Doe
        url:
          type: string
          format: uri
        name:
          type: string
          description: repository name
          example: simple-node-app
        branch:
          type: string
        root_path:
          type: string
        deployed_commit_id:
          type: string
          description: Git commit ID corresponding to the deployed version of the app
        deployed_commit_date:
          type: string
          readOnly: true
          format: date-time
          description: Git commit date corresponding to the deployed version of the app
        deployed_commit_contributor:
          type: string
          description: Git commit user corresponding to the deployed version of the app
        deployed_commit_tag:
          type: string
          example: v1.0.1
        git_token_id:
          type: string
          nullable: true
        git_token_name:
          type: string
          nullable: true
      title: ''
    StorageTypeEnum:
      type: string
      enum:
      - FAST_SSD
    Healthcheck:
      type: object
      nullable: false
      properties:
        readiness_probe:
          $ref: '#/components/schemas/Probe'
        liveness_probe:
          $ref: '#/components/schemas/Probe'
    CloneServiceRequest:
      type: object
      required:
      - name
      - environment_id
      properties:
        name:
          type: string
        environment_id:
          type: string
          format: uuid
    ApplicationRequest:
      allOf:
      - $ref: '#/components/schemas/ServiceStorageRequest'
      - $ref: '#/components/schemas/ServicePortRequest'
      - type: object
        required:
        - name
        - git_repository
        - healthchecks
        properties:
          name:
            type: string
            description: name is case insensitive
          description:
            type: string
            description: give a description to this application
            nullable: true
          git_repository:
            $ref: '#/components/schemas/ApplicationGitRepositoryRequest'
          build_mode:
            $ref: '#/components/schemas/BuildModeEnum'
          dockerfile_path:
            type: string
            description: The path of the associated Dockerfile. Only if you are using build_mode = DOCKER
            nullable: true
          cpu:
            type: integer
            description: unit is millicores (m). 1000m = 1 cpu
            default: 500
            example: 1250
          memory:
            type: integer
            description: unit is MB. 1024 MB = 1GB
            default: 512
            example: 1024
          gpu:
            type: integer
            x-stoplight:
              id: 1jq9ic2dbgx3l
            default: 0
            minimum: 0
            example: 1
          min_running_instances:
            type: integer
            minimum: 0
            description: 'Minimum number of instances running. This resource auto-scale based on the CPU and Memory consumption.

              Note: 0 means that there is no application running.

              '
            default: 1
          max_running_instances:
            type: integer
            description: 'Maximum number of instances running. This resource auto-scale based on the CPU and Memory consumption.

              Note: -1 means that there is no limit.

              '
            default: 1
          healthchecks:
            $ref: '#/components/schemas/Healthcheck'
          auto_preview:
            type: boolean
            description: "Specify if the environment preview option is activated or not for this application.  \nIf activated, a preview environment will be automatically cloned at each pull request.  \nIf not specified, it takes the value of the `auto_preview` property from the associated environment.\n"
            default: true
          arguments:
            type: array
            items:
              type: string
          entrypoint:
            type: string
            description: optional entrypoint when launching container
          auto_deploy:
            type: boolean
            description: Specify if the application will be automatically updated after receiving a new commit.
            nullable: true
          annotations_groups:
            $ref: '#/components/schemas/ServiceAnnotationsRequestList'
          labels_groups:
            $ref: '#/components/schemas/ServiceLabelsRequestList'
          icon_uri:
            type: string
            format: uri
            description: Icon URI representing the application.
            x-stoplight:
              id: om4lw1ulknsrg
          docker_target_build_stage:
            type: string
            x-stoplight:
              id: xg9q0urac8kdq
            description: The target build stage in the Dockerfile to build
            nullable: true
          autoscaling:
            $ref: '#/components/schemas/AutoscalingPolicyRequest'
    ServiceAnnotationRequest:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
    ServiceTypeEnum:
      type: string
      x-stoplight:
        id: d66063cd29913
      description: type of the service (application, database, job, ...)
      enum:
      - APPLICATION
      - DATABASE
      - CONTAINER
      - JOB
      - HELM
      - TERRAFORM
      - ARGOCD_APP
    KedaAutoscalingRequest:
      title: KedaAutoscalingRequest
      x-stoplight:
        id: 4vq8n2a7z3pen
      type: object
      required:
      - mode
      - scalers
      properties:
        mode:
          $ref: '#/components/schemas/AutoscalingMode'
        polling_interval_seconds:
          type: integer
          x-stoplight:
            id: wy5blh9au1d85
          format: int32
        cooldown_period_seconds:
          type: integer
          x-stoplight:
            id: zy5rt4bh9fyph
          format: int32
        scalers:
          type: array
          x-stoplight:
            id: 6oh134v1tqb28
          minItems: 1
          items:
            $ref: '#/components/schemas/KedaScalerRequest'
    OrganizationAnnotationsGroupResponse:
      allOf:
      - $ref: '#/components/schemas/Base'
      - type: object
        required:
        - name
        - annotations
        - scopes
        properties:
          name:
            type: string
          annotations:
            type: array
            items:
              $ref: '#/components/schemas/Annotation'
          scopes:
            type: array
            items:
              $ref: '#/components/schemas/OrganizationAnnotationsGroupScopeEnum'
    ReferenceObjectStatusResponseList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ReferenceObjectStatus'
    StepMetricStatusEnum:
      type: string
      enum:
      - SUCCESS
      - ERROR
      - CANCEL
      - SKIP
      description: 'The status of completion for the step:

        - SUCCESS: The step completed successfully.

        - ERROR: The step completed with an error.

        - CANCEL: The step was canceled.

        - SKIP: The step was skipped because it was not necessary.

        '
    Label:
      type: object
      required:
      - key
      - value
      - propagate_to_cloud_provider
      properties:
        key:
          type: string
        value:
          type: string
        propagate_to_cloud_provider:
          type: boolean
    Probe:
      type: object
      nullable: true
      properties:
        type:
          type: object
          properties:
            tcp:
              type: object
              nullable: true
              properties:
                port:
                  type: integer
                host:
                  type: string
                  default: null
                  nullable: true
            http:
              type: object
              nullable: true
              properties:
                path:
                  type: string
                  default: /
                scheme:
                  type: string
                  default: HTTP
                port:
                  type: integer
            exec:
              type: object
              nullable: true
              description: Execute a command inside the container. The probe succeeds if the command exits with status code 0.
              properties:
                command:
                  type: array
                  description: 'Command to execute inside the container, specified as an array of strings. The first element is the executable, followed by its arguments. Example: ["sh", "-c", "test -f /tmp/healthy"]'
                  example:
                  - sh
                  - -c
                  - test -f /tmp/healthy
                  items:
                    type: string
                  minItems: 1
            grpc:
              type: object
              nullable: true
              properties:
                service:
                  type: string
                  nullable: true
                  default: null
                port:
                  type: integer
        initial_delay_seconds:
          type: integer
          default: 30
        period_seconds:
          type: integer
          default: 10
        timeout_seconds:
          type: integer
          default: 5
        success_threshold:
          type: integer
          default: 1
        failure_threshold:
          type: integer
          default: 9
    ServiceSubActionEnum:
      type: string
      default: NONE
      enum:
      - NONE
      - TERRAFORM_PLAN_ONLY
      - TERRAFORM_PLAN_AND_APPLY
      - TERRAFORM_DESTROY
      - TERRAFORM_FORCE_UNLOCK_STATE
      - TERRAFORM_MIGRATE_STATE
    ApplicationResponseList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Application'
    KedaScalerRequest:
      title: KedaScalerRequest
      x-stoplight:
        id: hfn4tfrtivkcs
      type: object
      required:
      - scaler_type
      - role
      properties:
        scaler_type:
          type: string
          x-stoplight:
            id: 3ba9iisjwqgsp
        enabled:
          type: boolean
          x-stoplight:
            id: 9m67trg9m0ioz
        role:
          $ref: '#/components/schemas/KedaScalerRole'
        config_json:
          type: object
          x-stoplight:
            id: si5ekni2hc6w9
        config_yaml:
          type: string
          x-stoplight:
            id: 8c7vktd7svl30
        trigger_authentication:
          $ref: '#/components/schemas/KedaTriggerAuthenticationRequest'
    PortProtocolEnum:
      type: string
      default: HTTP
      enum:
      - HTTP
      - GRPC
      - TCP
      - UDP
    KedaTriggerAuthenticationRequest:
      title: KedaTriggerAuthenticationRequest
      x-stoplight:
        id: wp51tmturog3b
      type: object
      required:
      - name
      properties:
        name:
          type: string
          x-stoplight:
            id: ka4ltf1usuola
        config_yaml:
          type: string
          x-stoplight:
            id: 65znz6jclbew5
          description: Optional raw KEDA TriggerAuthentication YAML configuration.
    KedaTriggerAuthenticationResponse:
      title: KedaTriggerAuthenticationResponse
      x-stoplight:
        id: 7mm4a4sk9jhz3
      allOf:
      - $ref: '#/components/schemas/Base'
      - type: object
        x-stoplight:
          id: ssejnexbsra11
        required:
        - organization_id
        - name
        properties:
          organization_id:
            type: string
            x-stoplight:
              id: akxa3zctvjj5h
          name:
            type: string
            x-stoplight:
              id: gpvwed95xygk1
          config_yaml:
            type: string
            x-stoplight:
              id: r5lmrzakyk9o6
            description: ' Optional raw KEDA TriggerAuthentication YAML configuration.'
    ServiceLabelsRequestList:
      type: array
      items:
        $ref: '#/components/schemas/ServiceLabelRequest'
    OrganizationLabelsGroupResponseList:
      type: array
      items:
        $ref: '#/components/schemas/OrganizationLabelsGroupResponse'
      title: ''
    ServiceStepMetric:
      type: object
      properties:
        step_name:
          $ref: '#/components/schemas/ServiceStepMetricNameEnum'
        status:
          $ref: '#/components/schemas/StepMetricStatusEnum'
        duration_sec:
          description: The duration of the step in seconds.
          type: integer
    Annotation:
      type: object
      required:
      - key
      - value
      properties:
        key:
          type: string
        value:
          type: string
    AutoscalingPolicyResponse:
      title: AutoscalingPolicyResponse
      x-stoplight:
        id: mjawsx6obi237
      oneOf:
      - $ref: '#/components/schemas/KedaAutoscalingResponse'
      discriminator:
        propertyName: mode
        mapping:
          KEDA: '#/components/schemas/KedaAutoscalingResponse'
    KedaScalerResponse:
      title: KedaScalerResponse
      x-stoplight:
        id: gaaqg32ivl48h
      allOf:
      - $ref: '#/components/schemas/Base'
      - type: object
        x-stoplight:
          id: 74tt3hgf95nfe
        required:
        - scaler_type
        - enabled
        - role
        properties:
          scaler_type:
            type: string
            x-stoplight:
              id: 1ckp76ziimkg4
          enabled:
            type: boolean
            x-stoplight:
              id: 0dnjwnlkuj3kp
          role:
            $ref: '#/components/schemas/KedaScalerRole'
          config_json:
            type: object
            nullable: true
          config_yaml:
            type: string
            nullable: true
          trigger_authentication:
            $ref: '#/components/schemas/KedaTriggerAuthenticationResponse'
    ServiceDeploymentStatusEnum:
      type: string
      enum:
      - NEVER_DEPLOYED
      - OUT_OF_DATE
      - UP_TO_DATE
    ServiceStepMetricNameEnum:
      type: string
      enum:
      - REGISTRY_CREATE_REPOSITORY
      - GIT_CLONE
      - BUILD_QUEUEING
      - BUILD
      - DEPLOYMENT_QUEUEING
      - DEPLOYMENT
      - ROUTER_DEPLOYMENT
      - MIRROR_IMAGE
      - EXECUTING
      description: "The name of the deployment step at the service level:\n- REGISTRY_CREATE_REPOSITORY: The step to create the repository in the registry.\n- GIT_CLONE: The step to clone the source code repository. \n- BUILD_QUEUEING: The queuing time preceding the actual building step.\n- BUILD: The step to build the source code.\n- DEPLOYMENT_QUEUEING: The queuing time preceding the actual deployment step.\n- DEPLOYMENT: The step to deploy the service. \n- ROUTER_DEPLOYMENT: The step to deploy the router. \n- MIRROR_IMAGE: The step to mirror the image to the private registry.\n- EXECUTING: The step to execute a job or terraform apply.\n"
    ServiceStepMetrics:
      type: object
      required:
      - total_duration_sec
      - total_computing_duration_sec
      - details
      properties:
        total_duration_sec:
          description: The total duration in seconds of the service deployment or null if the deployment is not completed.
          type: integer
          nullable: true
        total_computing_duration_sec:
          description: The total duration in seconds of the service deployment without queuing steps.
          type: integer
        details:
          description: A list of metrics for deployment steps of the service.
          type: array
          items:
            $ref: '#/components/schemas/ServiceStepMetric'
    ServiceActionEnum:
      type: string
      enum:
      - DEPLOY
      - DELETE
      - RESTART
      - STOP
      - UNKNOWN
    ApplicationGitRepositoryRequest:
      type: object
      required:
      - url
      - owner
      - name
      - provider
      properties:
        url:
          type: string
          description: application git repository URL
          example: https://github.com/Qovery/simple-node-app
        branch:
          type: string
          description: 'Name of the branch to use. This is optional

            If not specified, then the branch used is the `main` or `master` one

            '
          example: feat/text_xxx
        root_path:
          type: string
          default: /
          description: indicates the root path of the application.
        git_token_id:
          type: string
          format: uuid
          description: The git token id on Qovery side
          nullable: true
        provider:
          $ref: '#/components/schemas/GitProviderEnum'
    ReferenceObjectStatus:
      allOf:
      - $ref: '#/components/schemas/ReferenceObject'
      - $ref: '#/components/schemas/Status'
    AutoscalingPolicyRequest:
      title: AutoscalingPolicyRequest
      x-stoplight:
        id: ylgyx3ozik2hf
      oneOf:
      - $ref: '#/components/schemas/KedaAutoscalingRequest'
      discriminator:
        propertyName: mode
        mapping:
          KEDA: '#/components/schemas/KedaAutoscalingRequest'
    AutoscalingMode:
      title: AutoscalingMode
      x-stoplight:
        id: vmgo27882mrl3
      type: string
      enum:
      - KEDA
    ServicePortRequest:
      type: object
      properties:
        ports:
          type: array
          items:
            type: object
            required:
            - internal_port
            - publicly_accessible
            properties:
              id:
                type: string
                format: uuid
              name:
                type: string
              internal_port:
                type: integer
                example: 8080
                description: The listening port of your service.
              external_port:
                type: integer
                example: 8080
                description: The exposed port for your service. This is optional. If not set a default port will be used.
              publicly_accessible:
                type: boolean
                description: Expose the port to the world
              is_default:
                type: boolean
                description: is the default port to use for domain
              protocol:
                $ref: '#/components/schemas/PortProtocolEnum'
              public_path:
                type: string
                description: "Indicate the path or regex that must match for traffic to be accepted on your service\ni.e: /api/ will only accept http calls that start with /api/ \nOnly valid for publicly_accessible HTTP or GRPC ports."
              public_path_rewrite:
                type: string
                description: "Indicate the new path that will be used to reach your service after replacement\ni.e: public_path -> /(.*)  public_path_rewrite -> /api/$1 will append /api/ on all externaly requested url when reaching the service \nexternal/use url -> example.com/foobar  -> url seen by the service -> example.com/api/foobar\nOnly valid for publicly_accessible HTTP or GRPC ports."
    StateEnum:
      type: string
      enum:
      - BUILDING
      - BUILD_ERROR
      - CANCELED
      - CANCELING
      - DELETED
      - DELETE_ERROR
      - DELETE_QUEUED
      - DELETING
      - DEPLOYED
      - DEPLOYING
      - DEPLOYMENT_ERROR
      - DEPLOYMENT_QUEUED
      - EXECUTING
      - QUEUED
      - READY
      - RECAP
      - RESTARTED
      - RESTARTING
      - RESTART_ERROR
      - RESTART_QUEUED
      - STOPPED
      - STOPPING
      - STOP_ERROR
      - STOP_QUEUED
      - UNAVAILABLE
      - WAITING_DELETING
      - WAITING_RESTARTING
      - WAITING_RUNNING
      - WAITING_STOPPING
    ServiceStorageRequest:
      type: object
      properties:
        storage:
          type: array
          items:
            type: object
            required:
            - type
            - size
            - mount_point
            properties:
              id:
                type: string
                format: uuid
              type:
                $ref: '#/components/schemas/StorageTypeEnum'
              size:
                type: integer
                description: 'unit is GB


# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/qovery/refs/heads/main/openapi/qovery-applications-api-openapi.yml