Skip to main content

Codema (1.42.319)

Download OpenAPI specification:Download

Deployments

Deployments Control API - Please refer to this documentation to get started with deployments.

Get the Context of a Deployment

Retrieve contextual information about your live deployment. You should use this URL inside your deployment container. The URL is injected in your deployment and accessible via the environment variable ARBITRIUM_CONTEXT_URL.

path Parameters
request_id
required
string

Unique Identifier to keep track of your request across all Arbitrium ecosystem.

security_number
required
integer

Random Security number generate to validate the request id.

header Parameters
authorization
required
string

Auto Generated token. This token is injected in your deployment and can be found via the environment variable named ARBITRIUM_CONTEXT_TOKEN

Responses

Response samples

Content type
application/json
{
  • "request_id": "abc123",
  • "public_ip": "100.10.0.85",
  • "status": "Status.READY",
  • "ready": true,
  • "whitelisting_active": true,
  • "fqdn": "abc123.test.edgegap.com",
  • "ports": {
    },
  • "location": {
    },
  • "tags": [
    ],
  • "sockets": "5",
  • "sockets_usage": "2"
}

Create a Deployment

Create a new deployment. Deployment is a server instance of your application version.

Authorizations:
None
Request Body schema: application/json
app_name
required
string

The name of the App you want to deploy

version_name
string

The name of the App Version you want to deploy, if not present, the last version created is picked

is_public_app
boolean

If the Application is public or private. If not specified, we will look for a private Application

ip_list
Array of strings

The List of IP of your user

Array of objects (GeoIpListModel)

The list of IP of your user with their location (latitude, longitude)

Array of objects (DeployEnvModel)

A list of deployment variables

skip_telemetry
boolean

If you want to skip the Telemetry and use a geolocations decision only

object (LocationModel)
city
string

DEPRECATED - See filters instead.

country
string

DEPRECATED - See filters instead.

continent
string

DEPRECATED - See filters instead.

region
string

DEPRECATED - See filters instead.

administrative_division
string

DEPRECATED - See filters instead.

webhook_url
string

A web URL. This url will be called with method POST. The deployment status will be send in JSON format

tags
Array of strings

The list of tags for your deployment

object (ContainerLogStorageModel)
Array of objects (api-model-deploymentfilter)

Filters to use while choosing the deployment location.

ap_sort_strategy
string
Enum: "basic" "weighted"

Algorithm used to select the edge location

command
string or null

Allows to override the Container command for this deployment.

arguments
string or null

Allows to override the Container arguments for this deployment.

Responses

Request samples

Content type
application/json
{
  • "app_name": "string",
  • "version_name": "string",
  • "is_public_app": true,
  • "ip_list": [
    ],
  • "geo_ip_list": [
    ],
  • "env_vars": [
    ],
  • "skip_telemetry": true,
  • "location": {
    },
  • "city": "DEPRECATED - See `filters` instead.",
  • "country": "DEPRECATED - See `filters` instead.",
  • "continent": "DEPRECATED - See `filters` instead.",
  • "region": "DEPRECATED - See `filters` instead.",
  • "administrative_division": "DEPRECATED - See `filters` instead.",
  • "webhook_url": "https://www.webhook.com/",
  • "tags": [
    ],
  • "container_log_storage": {
    },
  • "filters": [
    ],
  • "ap_sort_strategy": "basic",
  • "command": "string",
  • "arguments": "string"
}

Response samples

Content type
application/json
{
  • "request_id": "93924761ccde",
  • "request_dns": "supermario.93924761ccde.edgelab.io",
  • "request_app": "supermario",
  • "request_version": "v1.0",
  • "request_user_count": 4,
  • "city": "string",
  • "country": "string",
  • "continent": "string",
  • "administrative_division": "string",
  • "tags": [
    ],
  • "container_log_storage": {
    }
}

Get Deployment Container Logs

Retrieve the logs of your container. Logs are not available when your deployment is terminated. You can set up an endpoint storage to save your logs. Endpoint Storage Documentation

Authorizations:
None
path Parameters
request_id
required
string

Responses

Response samples

Content type
application/json
{
  • "logs": "string",
  • "encoding": "string",
  • "crash_logs": "string",
  • "crash_data": {
    },
  • "logs_link": "string"
}

List All Deployments

List all deployments.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total_count": 0,
  • "pagination": {
    },
  • "message": [
    ]
}

Delete Deployments in Bulk

Make a bulk delete of deployments using filters. All the deployments matching the given filters will be permanently deleted.

Authorizations:
None
Request Body schema: application/json
required
Array of objects (DeploymentBulkStopFiltersPayload)

Filters used to match with deployments

Array
field
required
string
Enum: "request_id" "deployment_tags"

The field on which to apply the filter

values
required
Array of strings

Values that will be used for the filter

filter_type
required
string
Enum: "any" "all" "not"

Types of filter used. Possible values are: ['any', 'all', 'not']

Responses

Request samples

Content type
application/json
{
  • "filters": [
    ]
}

Response samples

Content type
application/json
{
  • "processable": [
    ]
}

Delete a Deployment from inside the container

Delete a deployment from the inside of a container. You should use this URL inside your deployment. The URL is injected in your deployment and can be found via the environment variable ARBITRIUM_DELETE_URL.

path Parameters
request_id
required
string

Unique Identifier to keep track of your request across all Arbitrium ecosystem. It's included in the response of the app deploy, example:

93924761ccde
access_point_id
required
integer

Access Point Number provided by our system

query Parameters
container_log_storage
string

If you want to enable the container log storage for the deployment. You can put 'true' if you already have endpoint storage associated with your deployment's app version. You can put 'false' if it is enabled by default and you want to disable it for this specific request. Or you can put the name of your endpoint storage and if it is valid we will store the container logs.

header Parameters
authorization
required
string

Auto Generated token. This token is injected in your deployment and can be found via the environment variable named ARBITRIUM_DELETE_TOKEN

Responses

Response samples

Content type
application/json
{
  • "message": "Instance 93924761ccde will be deleted",
  • "deployment_summary": {
    }
}

Get a Deployment Status and Information

Retrieve the information for a deployment.

Authorizations:
None
path Parameters
request_id
required
string

Unique Identifier to keep track of your request across all Arbitrium ecosystem. It's included in the response of the app deploy, example:

93924761ccde

Responses

Response samples

Content type
application/json
{
  • "request_id": "string",
  • "fqdn": "abc123.test.edgegap.com",
  • "app_name": "test",
  • "app_version": "v1",
  • "current_status": "Status.DEPLOYING",
  • "running": true,
  • "whitelisting_active": true,
  • "start_time": "2023-01-25 18:42:39.284287",
  • "removal_time": "2023-01-25 18:42:39.284287",
  • "elapsed_time": 0,
  • "last_status": "Status.SEEKING",
  • "error": true,
  • "error_detail": "string",
  • "ports": {
    },
  • "public_ip": "100.10.0.85",
  • "sessions": [
    ],
  • "location": {
    },
  • "tags": [
    ],
  • "sockets": "5",
  • "sockets_usage": "2",
  • "command": "string",
  • "arguments": "string"
}

Delete a Deployment

Delete an instance of deployment. It will stop the running container and all its games.

Authorizations:
None
path Parameters
request_id
required
string

Unique Identifier to keep track of your request across all Arbitrium ecosystem. It's included in the response of the app deploy, example:

93924761ccde
query Parameters
container_log_storage
string

If you want to enable the container log storage for the deployment. You can put 'true' if you already have endpoint storage associated with your deployment's app version. You can put 'false' if it is enabled by default and you want to disable it for this specific request. Or you can put the name of your endpoint storage and if it is valid we will store the container logs.

Responses

Response samples

Content type
application/json
{
  • "message": "Instance 93924761ccde will be deleted",
  • "deployment_summary": {
    }
}

Applications

Applications Control API - Please refer to this documentation to get started with applications.

Create a New Application

Create an application that will regroup application versions.

Authorizations:
None
Request Body schema: application/json
name
required
string

The application name

is_active
required
boolean

If the application can be deployed

is_telemetry_agent_active
boolean

If the telemetry agent is installed on the versions of this app.

image
required
string

Image base64 string

Responses

Request samples

Content type
application/json
{
  • "name": "Example App",
  • "is_active": true,
  • "is_telemetry_agent_active": false,
  • "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="
}

Response samples

Content type
application/json
{
  • "name": "Example App",
  • "is_active": true,
  • "is_telemetry_agent_active": false,
  • "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==",
  • "create_time": "2023-01-25 18:42:39.284287",
  • "last_updated": "2023-01-25 18:42:39.284287"
}

Delete an Application

Delete an application and all its current versions.

Authorizations:
None
path Parameters
app_name
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Update an Application

Update an application with new information.

Authorizations:
None
path Parameters
app_name
required
string
Request Body schema: application/json
name
string

Application name

is_active
boolean

If the application can be deployed

is_telemetry_agent_active
boolean

If the telemetry agent is installed on the versions of this app.

image
string

Image base64 string

Responses

Request samples

Content type
application/json
{
  • "name": "Example App",
  • "is_active": true,
  • "is_telemetry_agent_active": false,
  • "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="
}

Response samples

Content type
application/json
{
  • "name": "Example App",
  • "is_active": true,
  • "is_telemetry_agent_active": false,
  • "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==",
  • "create_time": "2023-01-25 18:42:39.284287",
  • "last_updated": "2023-01-25 18:42:39.284287"
}

Get an Application

Retrieve an application and its information.

Authorizations:
None
path Parameters
app_name
required
string

Responses

Response samples

Content type
application/json
{
  • "name": "Example App",
  • "is_active": true,
  • "is_telemetry_agent_active": false,
  • "image": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg==",
  • "create_time": "2023-01-25 18:42:39.284287",
  • "last_updated": "2023-01-25 18:42:39.284287"
}

Create a New Application Version

Create an application version associated with an application. The version contains all the specifications to create a deployment.

Authorizations:
None
path Parameters
app_name
required
string

The name of the application associated

Request Body schema: application/json
name
required
string

The Version Name

is_active
boolean

If the Version is active currently in the system

docker_repository
required
string

The Repository where the image is (i.e. 'harbor.edgegap.com' or 'docker.io')

docker_image
required
string

The name of your image (i.e. 'edgegap/demo')

docker_tag
required
string

The tag of your image (i.e. '0.1.2')

private_username
string

The username to access the docker repository

private_token
string

The Private Password or Token of the username (We recommend to use a token)

req_cpu
required
integer >= 100

Units of vCPU needed (1024 = 1vcpu)

req_memory
required
integer >= 100

Units of memory in MB needed (1024 = 1GB)

req_video
integer >= 0

Units of GPU needed (1024 = 1 GPU)

max_duration
integer

The Max duration of the game in minute. 0 means forever.

use_telemetry
boolean

Allow to inject ASA Variables

inject_context_env
boolean

Allow to inject Context Variables

whitelisting_active
boolean

ACL Protection is active

force_cache
boolean

Allow faster deployment by caching your container image in every Edge site

cache_min_hour
integer [ 0 .. 23 ]

Start of the preferred interval for caching your container

cache_max_hour
integer [ 0 .. 23 ]

End of the preferred interval for caching your container

time_to_deploy
integer >= 15

Estimated maximum time in seconds to deploy, after this time we will consider it not working and retry.

enable_all_locations
boolean

Enable every location available. By enabling this, your request will use every potential location, including those which may require a longer time to deploy. This means that your application could take significantly more time before being ready. We do not recommend this feature for live games. This functionality does not support ACL and Caching at the moment.

object (AppVersionCreateSessionConfig)
Array of objects (AppVersionPort)
object (AppVersionProbe)
Array of objects (AppVersionEnv)
verify_image
boolean
Default: false

By enabling the verify_image option, your image infos (docker_repository, docker_image, docker_tag) will be tested.

termination_grace_period_seconds
integer [ 5 .. 180 ]

Termination grace period in seconds after the SIGTERM signal has been sent

endpoint_storage
string

The name of the endpoint storage to link

command
string or null

Entrypoint/Command override of your Container

arguments
string or null

The Arguments to pass to the command

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "is_active": true,
  • "docker_repository": "string",
  • "docker_image": "string",
  • "docker_tag": "string",
  • "private_username": "string",
  • "private_token": "string",
  • "req_cpu": 256,
  • "req_memory": 256,
  • "req_video": 256,
  • "max_duration": 30,
  • "use_telemetry": true,
  • "inject_context_env": true,
  • "whitelisting_active": true,
  • "force_cache": true,
  • "cache_min_hour": 23,
  • "cache_max_hour": 23,
  • "time_to_deploy": 15,
  • "enable_all_locations": true,
  • "session_config": {
    },
  • "ports": [
    ],
  • "probe": {
    },
  • "envs": [
    ],
  • "verify_image": false,
  • "termination_grace_period_seconds": 5,
  • "endpoint_storage": "string",
  • "command": "string",
  • "arguments": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "version": {
    }
}

Delete an Application Version

Delete a specific version of an application.

Authorizations:
None
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "string"
}

Get an Application Version

Retrieve the specifications of an application version.

Authorizations:
None
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "is_active": true,
  • "docker_repository": "string",
  • "docker_image": "string",
  • "docker_tag": "string",
  • "private_username": "string",
  • "private_token": "string",
  • "req_cpu": 256,
  • "req_memory": 256,
  • "req_video": 256,
  • "max_duration": 30,
  • "use_telemetry": true,
  • "inject_context_env": true,
  • "whitelisting_active": true,
  • "force_cache": true,
  • "cache_min_hour": 23,
  • "cache_max_hour": 23,
  • "time_to_deploy": 15,
  • "enable_all_locations": true,
  • "session_config": {
    },
  • "ports": [
    ],
  • "probe": {
    },
  • "envs": [
    ],
  • "verify_image": false,
  • "termination_grace_period_seconds": 5,
  • "endpoint_storage": "string",
  • "command": "string",
  • "arguments": "string"
}

Update an Application Version

Update an application version with new specifications.

Authorizations:
None
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

Request Body schema: application/json
name
string

The Version Name

is_active
boolean

If the Version is active currently in the system

docker_repository
string

The Repository where the image is (i.e. 'harbor.edgegap.com' or 'docker.io')

docker_image
string

The name of your image (i.e. 'edgegap/demo')

docker_tag
string

The tag of your image (i.e. '0.1.2')

private_username
string

The username to access the docker repository

private_token
string

The Private Password or Token of the username (We recommend to use a token)

req_cpu
integer >= 100

Units of vCPU needed (1024 = 1vcpu)

req_memory
integer >= 100

Units of memory in MB needed (1024 = 1GB)

req_video
integer >= 0

Units of GPU needed (1024= 1 GPU)

max_duration
integer >= 0

The Max duration of the game

use_telemetry
boolean

Allow to inject ASA Variables

inject_context_env
boolean

Allow to inject Context Variables

whitelisting_active
boolean

ACL Protection is active

force_cache
boolean

Allow faster deployment by caching your container image in every Edge site

cache_min_hour
integer [ 0 .. 23 ]

Start of the preferred interval for caching your container

cache_max_hour
integer [ 0 .. 23 ]

End of the preferred interval for caching your container

time_to_deploy
integer >= 15

Estimated maximum time in seconds to deploy, after this time we will consider it not working and retry.

enable_all_locations
boolean

Enable every location available. By enabling this, your request will use every potential location, including those which may require a longer time to deploy. This means that your application may take up to 2 minutes before being up and ready. This functionality does not support ACL and Caching at the moment.

object (AppVersionUpdateSessionConfig)
Array of objects (AppVersionPort)
object (AppVersionProbe)
Array of objects (AppVersionEnv)
termination_grace_period_seconds
integer [ 5 .. 180 ]

Termination grace period in seconds after the SIGTERM signal has been sent

endpoint_storage
string

The name of the endpoint storage to link

command
string or null

Entrypoint/Command override of your Container

arguments
string or null

The Arguments to pass to the command

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "is_active": true,
  • "docker_repository": "string",
  • "docker_image": "string",
  • "docker_tag": "string",
  • "private_username": "string",
  • "private_token": "string",
  • "req_cpu": 256,
  • "req_memory": 256,
  • "req_video": 256,
  • "max_duration": 30,
  • "use_telemetry": true,
  • "inject_context_env": true,
  • "whitelisting_active": true,
  • "force_cache": true,
  • "cache_min_hour": 23,
  • "cache_max_hour": 23,
  • "time_to_deploy": 15,
  • "enable_all_locations": true,
  • "session_config": {
    },
  • "ports": [
    ],
  • "probe": {
    },
  • "envs": [
    ],
  • "termination_grace_period_seconds": 5,
  • "endpoint_storage": "string",
  • "command": "string",
  • "arguments": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "version": {
    }
}

List All ACL Entries for an Application Version

List all the access control list entries for a specific application version.

Authorizations:
None
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

Responses

Response samples

Content type
application/json
{
  • "whitelist_entries": [
    ]
}

Create an ACL Entry

Create an access control list entry for an app version. This will allow the specified CIDR to connect to the deployment. The option whitelisting_active must be activated in the application version.

Authorizations:
None
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

Request Body schema: application/json
cidr
required
string

CIDR to allow

label
string

Label to organized your entries

is_active
boolean

If the Rule will be applied on runtime

Responses

Request samples

Content type
application/json
{
  • "cidr": "1.2.3.4/16",
  • "label": "Matchmaker",
  • "is_active": true
}

Response samples

Content type
application/json
{
  • "success": true,
  • "whitelist_entry": {
    }
}

Delete an ACL Entry

Delete an access control list entry for a specific application version

Authorizations:
None
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

entry_id
required
string

The unique ID of the entry

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "whitelist_entry": {
    }
}

Get an ACL Entry

Retrieve a specific access control list entry for an application version.

Authorizations:
None
path Parameters
app_name
required
string

The name of the application

version_name
required
string

The name of the application version

entry_id
required
string

The unique ID of the entry

Responses

Response samples

Content type
application/json
{
  • "id": "1",
  • "cidr": "1.2.3.4/16",
  • "label": "Matchmaker",
  • "is_active": true
}

List All Versions for an Application

List all versions of a specific application.

Authorizations:
None
path Parameters
app_name
required
string

The name of the application

Responses

Response samples

Content type
application/json
{
  • "versions": [
    ],
  • "total_count": 0
}

List All Applications

List all the applications that you own.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "applications": [
    ]
}

Locations

Locations API - Please refer to this documentation to get started with locations beacons.

List All Locations

List all the locations available to deploy on. You can specify an application and a version to filter out the locations that don’t have enough resources to deploy this application version.

Authorizations:
None
query Parameters
app
string

The App Name you want to filter with capacity

version
string

The Version Name you want to filter with capacity

type
string

The type of the location

tags
string

Gets locations with tags. Set to: "true" to have the tags

Responses

Response samples

Content type
application/json
{
  • "locations": [
    ],
  • "messages": [
    ]
}

List All Location Beacons

List all the active location beacons. They can be used to ping them for your matchmaking system. You cannot deploy on beacons.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "locations": [
    ],
  • "count": 1
}

Sessions

Sessions Control API - Please refer to this documentation to get started with sessions.

Create a Session

Create a session with users. Sessions are linked to a deployment.

Authorizations:
None
Request Body schema: application/json
app_name
required
string

The Name of the App you want to deploy, example:

supermario
version_name
string

The Name of the App Version you want to deploy, example:

v1.0
ip_list
Array of strings

The List of IP of your user, Array of String, example:

 ["162.254.103.13","198.12.116.39", "162.254.135.39", "162.254.129.34"]
Array of objects (GeoIpListModel)

The list of IP of your user with their location (latitude, longitude)

deployment_request_id
string

The request id of your deployment. If specified, the session will link to the deployment

object (LocationModel)
city
string

If you want your session in a specific city

country
string

If you want your session in a specific country

continent
string

If you want your session in a specific continent

administrative_division
string

If you want your session in a specific administrative division

region
string

If you want your session in a specific region

Array of objects (SelectorModel)

List of Selectors to filter potential Deployment to link and tag the Session

webhook_url
string

When your Session is Linked, Unprocessable or in Error, we will POST the session's details on the webhook_url

Responses

Request samples

Content type
application/json
{
  • "app_name": "string",
  • "version_name": "string",
  • "ip_list": [
    ],
  • "geo_ip_list": [
    ],
  • "deployment_request_id": "string",
  • "location": {
    },
  • "city": "Montreal",
  • "country": "Canada",
  • "continent": "North America",
  • "administrative_division": "Quebec",
  • "region": "string",
  • "selectors": [
    ],
  • "webhook_url": "string"
}

Response samples

Content type
application/json
{
  • "session_id": "abc123-s",
  • "custom_id": "custom-abc123",
  • "app": "demo",
  • "version": "v1.0",
  • "deployment_request_id": "string",
  • "selectors": [
    ],
  • "webhook_url": "string"
}

Delete a Session

Delete a session. Once deleted, a session is no more accessible and does not have a history. The deployment associated will not be deleted.

Authorizations:
None
path Parameters
session_id
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "Instance 93924761ccde will be deleted",
  • "session_id": "abc123-s",
  • "custom_id": "custom-abc123"
}

Get a Session

Retrieve the information for a session.

Authorizations:
None
path Parameters
session_id
required
string

Responses

Response samples

Content type
application/json
{
  • "session_id": "abc123-s",
  • "custom_id": "custom-abc123",
  • "status": "Status.READY",
  • "ready": true,
  • "linked": true,
  • "kind": "DEFAULT | SEATS | MATCH",
  • "user_count": "10",
  • "app_id": 0,
  • "create_time": "2023-01-25 18:42:39.284287",
  • "elapsed": 0,
  • "error": "string",
  • "session_users": [
    ],
  • "session_ips": [
    ],
  • "deployment": {
    },
  • "webhook_url": "string"
}

Put Users in a Session

Add specified users to a session.

Authorizations:
None
path Parameters
session_id
required
string
Request Body schema: application/json
ip_list
required
Array of strings

The List of IP of your user, Array of String, example:

 ["162.254.103.13","198.12.116.39", "162.254.135.39", "162.254.129.34"]

Responses

Request samples

Content type
application/json
{
  • "ip_list": [
    ]
}

Response samples

Content type
application/json
{
  • "session_users": [
    ]
}

Delete Users From a Session

Remove specified users from a session.

Authorizations:
None
path Parameters
session_id
required
string
Request Body schema: application/json
ip_list
required
Array of strings

The List of IP of your user, Array of String, example:

 ["162.254.103.13","198.12.116.39", "162.254.135.39", "162.254.129.34"]

Responses

Request samples

Content type
application/json
{
  • "ip_list": [
    ]
}

Response samples

Content type
application/json
{
  • "session_users": [
    ]
}

List Users of a Session

List all the users of session.

Authorizations:
None
path Parameters
session_id
required
string

Responses

Response samples

Content type
application/json
{
  • "session_users": [
    ]
}

List All Sessions

List all the active sessions.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total_count": 0,
  • "pagination": {
    }
}

Delete Sessions in Bulk

Make a bulk delete of sessions using filters. All the sessions matching the given filters will be permanently deleted.

Authorizations:
None
Request Body schema: application/json
required
Array of objects (SessionBulkStopFiltersPayload)

Filters used to match with sessions

Array
field
required
string
Enum: "session_id" "deployment_tags" "request_id"

The field on which to apply the filter

values
required
Array of strings

Values that will be used for the filter

filter_type
required
string
Enum: "any" "all" "not"

Types of filter used. Possible values are: ['any', 'all', 'not']

Responses

Request samples

Content type
application/json
{
  • "filters": [
    ]
}

Response samples

Content type
application/json
{
  • "processable": [
    ]
}

Metrics

Metrics API

Get a Deployment Metrics

Get the metrics for a specific deployment based on the start_time, end_time and steps.

Authorizations:
None
path Parameters
request_id
required
string
query Parameters
start_time
string

Starting time for the query. Default to deployment start time. Should match %Y-%m-%d %H:%M:%S

    Example: 2021-07-10 00:00:00
end_time
string

End time for the metrics. Default to now.Must be greater than start_time. Should match %Y-%m-%d %H:%M:%S

    Example: 2021-07-19 00:00:00
steps
string

Steps between each metrics.

    Example: 30s, 1m, 5m 10m, 1h 

Responses

Response samples

Content type
application/json
{
  • "total": {
    },
  • "cpu": {
    },
  • "mem": {
    },
  • "network": {
    }
}

Custom Sessions

Custom Sessions Control API - Please refer to this documentation to get started with custom sessions.

Get a Custom Session

Retrieve the information of a custom session.

Authorizations:
None
path Parameters
custom_id
required
string

Custom ID Managed by you

request_id
required
string

Deployment Request ID

Responses

Response samples

Content type
application/json
{
  • "session_id": "abc123-s",
  • "custom_id": "custom-abc123",
  • "status": "Status.READY",
  • "ready": true,
  • "linked": true,
  • "kind": "DEFAULT | SEATS | MATCH",
  • "user_count": "10",
  • "app_id": 0,
  • "create_time": "2023-01-25 18:42:39.284287",
  • "elapsed": 0,
  • "error": "string",
  • "session_users": [
    ],
  • "session_ips": [
    ],
  • "deployment": {
    },
  • "webhook_url": "string"
}

Delete a Custom Session

Delete a custom session. Once deleted, a custom session is no more accessible and does not have a history. The deployment associated will not be deleted.

Authorizations:
None
path Parameters
custom_id
required
string

Custom ID Managed by you

request_id
required
string

Deployment Request ID

Responses

Response samples

Content type
application/json
{
  • "message": "Instance 93924761ccde will be deleted",
  • "session_id": "abc123-s",
  • "custom_id": "custom-abc123"
}

Update a Custom Session

Update a custom session with new specifications.

Authorizations:
None
path Parameters
custom_id
required
string

Custom ID Managed by you

request_id
required
string

Deployment Request ID

Request Body schema: application/json
ip_list
required
Array of strings

The List of IP of your user, Array of String, example:

 ["162.254.103.13","198.12.116.39", "162.254.135.39", "162.254.129.34"]
webhook_url
string

When your Session is Linked, Unprocessable or in Error, we will POST the session's details on the webhook_url

Responses

Request samples

Content type
application/json
{
  • "ip_list": [
    ],
  • "webhook_url": "string"
}

Response samples

Content type
application/json
{
  • "session_id": "abc123-s",
  • "custom_id": "custom-abc123",
  • "status": "Status.READY",
  • "ready": true,
  • "linked": true,
  • "kind": "DEFAULT | SEATS | MATCH",
  • "user_count": "10",
  • "app_id": 0,
  • "create_time": "2023-01-25 18:42:39.284287",
  • "elapsed": 0,
  • "error": "string",
  • "session_users": [
    ],
  • "session_ips": [
    ],
  • "deployment": {
    },
  • "webhook_url": "string"
}

Create a New Custom Session

Create a custom session with users. You must specify a custom ID and a deployment request ID.

Authorizations:
None
path Parameters
custom_id
required
string

Custom ID Managed by you

request_id
required
string

Deployment Request ID

Request Body schema: application/json
ip_list
required
Array of strings

The List of IP of your user, Array of String, example:

 ["162.254.103.13","198.12.116.39", "162.254.135.39", "162.254.129.34"]
webhook_url
string

When your Session is Linked, Unprocessable or in Error, we will POST the session's details on the webhook_url

Responses

Request samples

Content type
application/json
{
  • "ip_list": [
    ],
  • "webhook_url": "string"
}

Response samples

Content type
application/json
{
  • "session_id": "abc123-s",
  • "custom_id": "custom-abc123",
  • "app": "demo",
  • "version": "v1.0",
  • "deployment_request_id": "string",
  • "selectors": [
    ],
  • "webhook_url": "string"
}

List All Custom Session of a Deployment

List all custom sessions of a deployment.

Authorizations:
None
path Parameters
request_id
required
string

Deployment Request ID

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total_count": 0,
  • "pagination": {
    }
}

Delete Custom Sessions in Bulk

Delete multiple custom sessions from a specific deployment.

Authorizations:
None
path Parameters
request_id
required
string

Deployment Request ID

Request Body schema: application/json
sessions
required
Array of strings

List of Custom IDs to Delete

Responses

Request samples

Content type
application/json
{
  • "sessions": [
    ]
}

Response samples

Content type
application/json
{
  • "sessions": [
    ],
  • "errors": [
    ]
}

Create Custom Sessions in Bulk

Create multiple custom sessions in a deployment. You must specify a custom ID for each.

Authorizations:
None
path Parameters
request_id
required
string

Deployment Request ID

Request Body schema: application/json
Array of objects (CustomBulkSessionModel)
Array
custom_id
required
string

Custom Session ID

ip_list
required
Array of strings

The List of IP of your user, Array of String, example:

 ["162.254.103.13","198.12.116.39", "162.254.135.39", "162.254.129.34"]
webhook_url
string

When your Session is Linked, Unprocessable or in Error, we will POST the session's details on the webhook_url

Responses

Request samples

Content type
application/json
{
  • "sessions": [
    ]
}

Response samples

Content type
application/json
{
  • "sessions": [
    ],
  • "errors": [
    ]
}

Matchmaker

Matchmaker Control API - Please refer to this documentation to get started with matchmakers.

Create a Matchmaker Component

Create a new matchmaker component.

Authorizations:
None
Request Body schema: application/json
name
required
string

Matchmaker component name. Must be unique.

repository
required
string

Container repository where the component's image is hosted.

image
required
string

Container image to use for this component.

tag
required
string

Tag of the container image to use for this component.

object

Private repo credentials to use for pulling the image, if applicable.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

Delete a Matchmaker Component

Delete a matchmaker component. It will not delete the matchmaker.

Authorizations:
None
path Parameters
component_name
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Update a Matchmaker Component

Update a matchmaker component with new specifications.

Authorizations:
None
path Parameters
component_name
required
string
Request Body schema: application/json
name
string

Matchmaker component name. Must be unique.

repository
string

Container repository where the component's image is hosted.

image
string

Container image to use for this component.

tag
string

Tag of the container image to use for this component.

object

Private repo credentials to use for pulling the image, if applicable.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

Get a Matchmaker Component

Retrieve a matchmaker component.

Authorizations:
None
path Parameters
component_name
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "name": "string",
  • "repository": "string",
  • "image": "string",
  • "tag": "string",
  • "credentials": {
    }
}

Create a Matchmaker Component ENV

Create a new matchmaker component ENV.

Authorizations:
None
path Parameters
component_name
required
string
Request Body schema: application/json
key
required
string

Name of the ENV variable.

value
required
string

Value of the ENV variable.

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "key": "string",
  • "value": "string"
}

Delete a Matchmaker Component ENV

Delete a matchmaker component ENV. It will not delete the component or the matchmaker.

Authorizations:
None
path Parameters
component_name
required
string
env_key
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Update a Matchmaker Component ENV

Update a matchmaker component ENV.

Authorizations:
None
path Parameters
component_name
required
string
env_key
required
string
Request Body schema: application/json
key
string

Name of the ENV variable.

value
string

Value of the ENV variable.

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "key": "string",
  • "value": "string"
}

Get a Matchmaker Component ENV

Retrieve a matchmaker component ENV.

Authorizations:
None
path Parameters
component_name
required
string
env_key
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "key": "string",
  • "value": "string"
}

List All Matchmaker Component ENVs

List all ENVs for a specific matchmaker component.

Authorizations:
None
path Parameters
component_name
required
string

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "data": {
    }
}

List All Matchmaker Components

List all components for a specific matchmaker.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "data": {
    }
}

Create a Matchmaker

Create a new matchmaker. A matchmaker is a top-level object; you must create child resources to work properly.

Authorizations:
None
Request Body schema: application/json
name
required
string

Name of the Matchmaker.

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "name": "string"
}

Delete a Matchmaker

Delete a matchmaker.

Authorizations:
None
path Parameters
matchmaker_name
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Update a Matchmaker

Update a matchmaker with new specifications.

Authorizations:
None
path Parameters
matchmaker_name
required
string
Request Body schema: application/json
name
string

Name of the Matchmaker.

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "name": "string"
}

Get a Matchmaker

Retrieve a matchmaker.

Authorizations:
None
path Parameters
matchmaker_name
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "name": "string"
}

Create a Matchmaker Release

Create a matchmaker release.

Authorizations:
None
path Parameters
matchmaker_name
required
string
Request Body schema: application/json
version
required
string

Name of the matchmaker release. Should be unique, and will be used to differentiate your releases.

frontend_component_name
required
string

Name of the matchmaker component to use as the Open Match frontend.

director_component_name
required
string

Name of the matchmaker component to use as the Open Match director.

match_function_component_name
required
string

Name of the matchmaker component to use as the Open Match match function.

Responses

Request samples

Content type
application/json
{
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "string"
}

Create a Matchmaker Managed Release

Create a matchmaker managed release.

Authorizations:
None
path Parameters
matchmaker_name
required
string
Request Body schema: application/json
version
required
string

Name of the matchmaker release. Should be unique, and will be used to differentiate your releases.

release_config_name
required
string

Name of the matchmaker release configuration to use for this managed release.

Responses

Request samples

Content type
application/json
{
  • "version": "string",
  • "release_config_name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "release_config_name": "string"
}

Delete a Matchmaker Managed Release

Delete a matchmaker managed release. It will not delete the matchmaker.

Authorizations:
None
path Parameters
matchmaker_name
required
string
release_version
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Update a Matchmaker Managed Release

Update a matchmaker managed release.

Authorizations:
None
path Parameters
matchmaker_name
required
string
release_version
required
string
Request Body schema: application/json
version
string

Name of the matchmaker release. Should be unique, and will be used to differentiate your releases.

release_config_name
string

Name of the matchmaker release configuration to use for this managed release.

Responses

Request samples

Content type
application/json
{
  • "version": "string",
  • "release_config_name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "release_config_name": "string"
}

Get a Matchmaker Managed Release

Retrieve a matchmaker managed release.

Authorizations:
None
path Parameters
matchmaker_name
required
string
release_version
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "release_config_name": "string"
}

Delete a Matchmaker Release

Delete a matchmaker release.

Authorizations:
None
path Parameters
matchmaker_name
required
string
release_version
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Update a Matchmaker Release

Update a matchmaker release.

Authorizations:
None
path Parameters
matchmaker_name
required
string
release_version
required
string
Request Body schema: application/json
version
string

Name of the matchmaker release. Should be unique, and will be used to differentiate your releases.

frontend_component_name
string

Name of the matchmaker component to use as the Open Match frontend.

director_component_name
string

Name of the matchmaker component to use as the Open Match director.

match_function_component_name
string

Name of the matchmaker component to use as the Open Match match function.

Responses

Request samples

Content type
application/json
{
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "string"
}

Get a Matchmaker Release

Retrieve a matchmaker release.

Authorizations:
None
path Parameters
matchmaker_name
required
string
release_version
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "app_name": "string",
  • "version_name": "string",
  • "version": "string",
  • "frontend_component_name": "string",
  • "director_component_name": "string",
  • "match_function_component_name": "string"
}

List All Matchmaker Releases

List all releases of a specific matchmaker.

Authorizations:
None
path Parameters
matchmaker_name
required
string

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "data": {
    }
}

List All Matchmakers

List all matchmakers.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "data": {
    }
}

Create a Matchmaker Release Config

Create a matchmaker release config.

Authorizations:
None
Request Body schema: application/json
name
required
string

Matchmaker configuration name. Must be unique.

configuration
required
string

Matchmaker configuration, parsed as a string.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "configuration": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "name": "string",
  • "configuration": "string"
}

Delete a Matchmaker Release Config

Delete a matchmaker release config.

Authorizations:
None
path Parameters
config_name
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Update a Matchmaker Release Config

Update a matchmaker release config.

Authorizations:
None
path Parameters
config_name
required
string
Request Body schema: application/json
name
string

Matchmaker configuration name. Must be unique.

configuration
string

Matchmaker configuration, parsed as a string.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "configuration": "string"
}

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "name": "string",
  • "configuration": "string"
}

Get a Matchmaker Release Config

Get a matchmaker release config.

Authorizations:
None
path Parameters
config_name
required
string

Responses

Response samples

Content type
application/json
{
  • "created_at": "2023-01-25 18:42:39.284287",
  • "updated_at": "2023-01-25 18:42:39.284287",
  • "name": "string",
  • "configuration": "string"
}

List All Matchmaker Release Configs

List all configs for a specific matchmaker release.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "data": {
    }
}

Telemetry

Active Deployment Telemetry API - Please refer to this documentation to get started with active deployment telemetry.

Create a New Active Deployment Telemetry Request

Create a telemetry request to get the best deployment(s) for given IP(s). You can use this to add players on a running deployment. If you set a webhook URL, the result will be sent to it.

Authorizations:
None
Request Body schema: application/json
deployments
required
Array of strings

List of Deployment request ID to get telemetry.

ips
required
Array of strings
webhook_url
string

Webhook URL that we should call to send the telemetry response back.

Responses

Request samples

Content type
application/json
{
  • "deployments": [
    ],
  • "ips": [
    ],
  • "webhook_url": "string"
}

Response samples

Content type
application/json
{
  • "retrieval_key": "string",
  • "expire": "2023-01-25 18:42:39.284287"
}

Get the Result of an Active Deployment Telemetry Request

Retrieve the results of a telemetry request on active deployment(s) for given IP(s). The score array is sorted from the best to the worse deployment. You can use this to add players on a running deployment.

Authorizations:
None
path Parameters
retrieval_key
required
string

Responses

Response samples

Content type
application/json
{
  • "retrieval_key": "string",
  • "scores": [
    ],
  • "partial_result": true
}

IP Lookup

IP API - IP addresses related operations.

Get Your Public IP

Retrieve your public IP address.

Authorizations:
None

Responses

Response samples

Content type
application/json
{
  • "public_ip": "174.91.204.75"
}

Get an IP's information

Lookup an IP address and return the associated information.

Authorizations:
None
path Parameters
ip
required
string

Responses

Response samples

Content type
application/json
{
  • "type": "ipv4",
  • "ip_address": "1.1.1.1",
  • "location": {
    }
}

Get IPs Information in Bulk

Lookup IP addresses and return the associated information. Maximum of 20 IPs.

Authorizations:
None
Request Body schema: application/json
addresses
required
Array of strings

IP Addresses

Responses

Request samples

Content type
application/json
{
  • "addresses": [
    ]
}

Response samples

Content type
application/json
{
  • "addresses": [
    ]
}

Fleets

Fleets Control API - Please refer to this documentation to get started with fleets.

Create a Fleet

Create a fleet. A fleet is a top-level object; you must create child resources to work properly.

Authorizations:
None
Request Body schema: application/json
name
required
string

Name of the Fleet

enabled
boolean
Default: false

If the Fleet is enabled. Defaults to false.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": false
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "enabled": false,
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Delete a Fleet

Delete a fleet, its policies and links between the application versions.

Authorizations:
None
path Parameters
fleet_name
required
string

The name of the fleet

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get a Fleet

Retrieve a fleet with its details.

Authorizations:
None
path Parameters
fleet_name
required
string

The name of the fleet

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "enabled": false,
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

Update a Fleet

Update a fleet with new specifications.

Authorizations:
None
path Parameters
fleet_name
required
string

The name of the fleet

Request Body schema: application/json
name
string

Name of the Fleet

enabled
boolean

If the Fleet is enabled

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "create_time": "2022-01-01 00:00:00.000000",
  • "last_updated": "2022-01-01 00:00:00.000000"
}

List All Policies of a Fleet

List all the policies of a fleet.

Authorizations:
None
path Parameters
fleet_name
required
string

The name of the fleet

query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Limit of Fleet for each page

header Parameters
X-Fields
string <mask>

An optional fields mask

Responses

Response samples

Content type
application/json
{
  • "policies": [
    ],
  • "pagination": {
    }
}

Create a Fleet Policy

Create a fleet policy. Policies are conditions that the fleet must respect.

Authorizations:
None
path Parameters
fleet_name
required
string

The name of the fleet

Request Body schema: application/json
name
required
string

Name of the Policy

enabled
required
boolean

If the Policy is enabled. Defaults to true.

type
required
string
Enum: "Location" "Tag" "Coordinates"

Type of the Policy. See our documentation for more information on the type and it's data.

minimum
required
integer >= 1

Minimum deployments at all time

maximum
required
integer >= 1

Maximum deployments for the provided type.

threshold
required
number [ 0.1 .. 1 ]
Default: 0.9

Based on the number of sockets connected, how filled should a session deployment be before initiating a scale-up deployment. Float between 0.1 and 1.

data
required
object

JSON object for your filters. See our documentation for more information.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "type": "Location",
  • "minimum": 1,
  • "maximum": 1,
  • "threshold": 0.9,
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true,
  • "type": "Location",
  • "minimum": 1,
  • "maximum": 1,
  • "threshold": 0.9,
  • "data": {