openapi: 3.1.0
info:
title: Edgegap V2
description: ''
version: 1.0.0
tags:
- name: Deployments
- name: Private Fleets
paths:
/deployments:
post:
summary: '[v2] Deploy'
deprecated: false
description: >-
[Rate Limit: 40/seconds] Initiate a new deployment. A
deployment is a containerized server instance of an application version
running on the Edgegap platform.
operationId: deployment-create
tags:
- Deployments
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeploymentCreate'
examples: {}
responses:
'202':
description: Deployment Request Accepted
content:
application/json:
schema:
title: ''
type: object
properties:
request_id:
type: string
description: Request ID. Unique identifier of the deployment request
examples:
- a69f8e3e0555
required:
- request_id
headers: {}
'400':
description: Client Side Request Error
content:
application/json:
schema:
title: ''
type: object
properties:
message:
type: string
description: Error message
examples:
- Error message
details:
type: object
description: Additional error details
properties: {}
required:
- message
headers: {}
'401':
description: Unauthorized - Missing Token
content:
application/json:
schema:
title: ''
type: object
properties:
message:
type: string
description: Error message
examples:
- Error message
details:
type: object
description: Additional error details
properties: {}
required:
- message
headers: {}
'422':
description: Couldn't Allocate Server
content:
application/json:
schema:
title: ''
type: object
properties:
request_id:
type: string
description: Request ID. Unique identifier of the deployment request
examples:
- a69f8e3e0555
message:
type: string
description: Error message
examples:
- Error message
required:
- request_id
- message
headers: {}
'500':
description: Internal Server Error
content:
application/json:
schema:
title: ''
type: object
properties:
message:
type: string
description: Error message
examples:
- Error message
details:
type: object
description: Additional error details
properties: {}
required:
- message
headers: {}
security:
- API token: []
/private-fleets/deployments:
post:
summary: '[v2] Deploy to Fleet'
deprecated: false
description: >-
[Rate Limit: 40/seconds] Initiate a new private fleet
deployment. A deployment is a containerized server instance of an
application version running on the Edgegap platform.
operationId: deployment-create
tags:
- Private Fleets
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateFleetDeploymentCreate'
examples: {}
responses:
'400':
description: >-
Invalid Application or Application Version. No deployment has been
created
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers: {}
'401':
description: Unauthorized. No deployment has been created.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers: {}
'422':
description: >-
Could not allocate an Edge Server for the deployment. A deployment
has been created. Deployment is in error state. You can delete it
manually or it will be deleted automatically by our system after
some some times
content:
application/json:
schema:
$ref: '#/components/schemas/ParameterError422'
headers: {}
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers: {}
security:
- API token: []
webhooks: {}
components:
schemas:
DeploymentResponse:
required:
- request_id
properties:
request_id:
type: string
description: Request ID. Unique identifier of the deployment request
examples:
- a69f8e3e0555
type: object
ParameterError422:
required:
- message
- request_id
properties:
request_id:
type: string
description: Request ID. Unique identifier of the deployment request
examples:
- a69f8e3e0555
message:
type: string
description: Error message
examples:
- Error message
type: object
Error:
required:
- message
properties:
message:
type: string
description: Error message
examples:
- Error message
details:
type: object
description: Additional error details
properties: {}
type: object
PrivateFleetDeploymentCreate:
type: object
properties:
application:
type: string
description: Name of the application that will be deployed
examples:
- my-app
version:
type: string
description: Name of the version within the application that will be deployed
examples:
- 25.05.30-16.45.19-04
private_host_ids:
type: array
items:
type: string
description: >-
Preferred and prioritized Private Host IDs to try before overflowing
to cloud.
minItems: 1
uniqueItems: true
users:
type: array
description: >-
List of users. These users will be used to select the locations for
the deployment
minItems: 1
items:
$ref: '#/components/schemas/User'
examples:
- - user_type: ip_address
user_data:
ip_address: 75.28.35.192
- user_type: geo_coordinates
user_data:
latitude: 45.508888
longitude: -73.561668
environment_variables:
type: array
description: List of environment variables to inject into the deployment
items:
$ref: '#/components/schemas/DeploymentEnvironmentVariable'
tags:
type: array
description: List of tags to associate with the deployment
items:
type: string
webhook_on_ready:
description: Webhook to call when the deployment is ready
allOf:
- $ref: '#/components/schemas/BasicWebhook'
webhook_on_error:
description: Webhook to call when the deployment is in error
allOf:
- $ref: '#/components/schemas/BasicWebhook'
webhook_on_terminated:
description: Webhook to call when the deployment is terminated
allOf:
- $ref: '#/components/schemas/BasicWebhook'
required:
- application
- users
- version
- private_host_ids
DeploymentCreate:
required:
- application
- users
- version
properties:
application:
type: string
description: Name of the application that will be deployed
examples:
- my-app
version:
type: string
description: Name of the version within the application that will be deployed
examples:
- 25.05.30-16.45.19-04
require_cached_locations:
type:
- boolean
- 'null'
default: false
description: Deploy faster by limiting placement to locations with cached image.
users:
type: array
description: >-
List of users. These users will be used to select the locations for
the deployment
minItems: 1
items:
$ref: '#/components/schemas/User'
examples:
- - user_type: ip_address
user_data:
ip_address: 75.28.35.192
- user_type: geo_coordinates
user_data:
latitude: 45.508888
longitude: -73.561668
environment_variables:
type: array
description: List of environment variables to inject into the deployment
items:
$ref: '#/components/schemas/DeploymentEnvironmentVariable'
tags:
type: array
description: List of tags to associate with the deployment
items:
type: string
webhook_on_ready:
description: Webhook to call when the deployment is ready
allOf:
- $ref: '#/components/schemas/BasicWebhook'
webhook_on_error:
description: Webhook to call when the deployment is in error
allOf:
- $ref: '#/components/schemas/BasicWebhook'
webhook_on_terminated:
description: Webhook to call when the deployment is terminated
allOf:
- $ref: '#/components/schemas/BasicWebhook'
type: object
User:
required:
- user_data
- user_type
properties:
user_type:
type: string
description: Type of user (e.g., ip_address or geo_coordinates)
user_data:
type: object
description: Dynamic user data depending on user_type
examples:
- ip_address: 75.28.35.192
properties: {}
type: object
DeploymentEnvironmentVariable:
required:
- is_hidden
- key
- value
properties:
key:
type: string
description: Environment variable key
examples:
- MY_ENVIRONMENT_VARIABLE
value:
type: string
description: Environment variable value
examples:
- my-value
is_hidden:
type: boolean
description: An hidden environment variable is not shown in the UI
examples:
- false
type: object
BasicWebhook:
required:
- url
properties:
url:
type: string
description: Webhook URL
examples:
- https://my-webhook.com
type: object
securitySchemes:
API token:
type: apiKey
in: header
name: Authorization
servers: []
security:
- API token: []