{"swagger": "2.0", "paths": {"/v1/app": {"post": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "409": {"description": "Conflict", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Application"}}}, "summary": "Create a New Application", "description": "Create an application that will regroup application versions.", "operationId": "application-post", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/ApplicationPost"}}], "tags": ["Applications"]}}, "/v1/app/{app_name}": {"parameters": [{"name": "app_name", "in": "path", "required": true, "type": "string"}], "patch": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "409": {"description": "Conflict", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Application"}}}, "summary": "Update an Application", "description": "Update an application with new information.", "operationId": "application-patch", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/ApplicationPatch"}}], "tags": ["Applications"]}, "get": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Application"}}}, "summary": "Get an Application", "description": "Retrieve an application and its information.", "operationId": "application-get", "tags": ["Applications"]}, "delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success"}}, "summary": "Delete an Application", "description": "Delete an application and all its current versions.", "operationId": "application-delete", "tags": ["Applications"]}}, "/v1/app/{app_name}/version": {"post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/AppVersionCreateResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "424": {"description": "Failed Dependency", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "409": {"description": "Conflict", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Create a New Application Version", "description": "Create an application version associated with an application. The version contains all the specifications to create a deployment.", "operationId": "app-version-post", "parameters": [{"name": "app_name", "in": "path", "required": true, "type": "string", "description": "The name of the application associated"}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/AppVersionCreatePayload"}}], "tags": ["Applications"]}}, "/v1/app/{app_name}/version/{version_name}": {"delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/AppVersionDelete"}}}, "summary": "Delete an Application Version", "description": "Delete a specific version of an application.", "operationId": "app-version-delete", "parameters": [{"name": "app_name", "in": "path", "required": true, "type": "string", "description": "The name of the application"}, {"name": "version_name", "in": "path", "required": true, "type": "string", "description": "The name of the application version"}], "tags": ["Applications"]}, "get": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/AppVersionPayload"}}}, "summary": "Get an Application Version", "description": "Retrieve the specifications of an application version.", "operationId": "app-version-get", "parameters": [{"name": "app_name", "in": "path", "required": true, "type": "string", "description": "The name of the application"}, {"name": "version_name", "in": "path", "required": true, "type": "string", "description": "The name of the application version"}], "tags": ["Applications"]}, "patch": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/AppVersionUpdateResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "424": {"description": "Failed Dependency", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Update an Application Version", "description": "Update an application version with new specifications.", "operationId": "app-versions-patch", "parameters": [{"name": "app_name", "in": "path", "required": true, "type": "string", "description": "The name of the application"}, {"name": "version_name", "in": "path", "required": true, "type": "string", "description": "The name of the application version"}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/AppVersionUpdatePayload"}}], "tags": ["Applications"]}}, "/v1/app/{app_name}/versions": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/AppVersionList"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List All Versions for an Application", "description": "List all versions of a specific application.", "operationId": "app-versions-get", "parameters": [{"name": "app_name", "in": "path", "required": true, "type": "string", "description": "The name of the application"}], "tags": ["Applications"]}}, "/v1/apps": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Applications"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List All Applications", "description": "List all the applications that you own.", "operationId": "applications-get", "tags": ["Applications"]}}, "/v1/container-registry/images/{image_name}/tags": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/ImageTagList"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List All Tags for a Registry Image", "description": "List all tags of a specific registry image.", "operationId": "registry-image-tag-list", "parameters": [{"name": "image_name", "in": "path", "required": true, "type": "string", "description": "The name of the image"}], "tags": ["Container Registry"]}}, "/v1/container-registry/images/{image_name}/tags/bulk-delete": {"post": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "207": {"description": "Multi-Status", "schema": {"$ref": "#/definitions/api-model-bulkdeletetagsresponse"}}}, "summary": "Bulk Delete Tags For a Registry Image", "description": "Delete multiple tags for a registry image in a single request. Returns 207 Multi-Status with per-tag results.", "operationId": "image-tag-bulk-delete", "parameters": [{"name": "image_name", "in": "path", "required": true, "type": "string", "description": "The name of the image"}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/api-model-bulkdeletetagsrequest"}}], "tags": ["Container Registry"]}}, "/v1/container-registry/images/{image_name}/tags/{tag_name}": {"delete": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/api-model-registryartifacttagdeleteresponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Delete Tag For a Registry Image", "description": "Delete a single tag from a artifact in the registry.", "operationId": "image-tag-delete", "parameters": [{"name": "image_name", "in": "path", "required": true, "type": "string", "description": "The name of the image"}, {"name": "tag_name", "in": "path", "required": true, "type": "string", "description": "The name of the tag"}], "tags": ["Container Registry"]}}, "/v1/deploy": {"post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Request"}}, "422": {"description": "Unprocessable", "schema": {"$ref": "#/definitions/Error"}}, "409": {"description": "Conflict", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Create a Deployment request.", "description": "[Rate Limit: 40/second] Create a new deployment. A deployment is a containerized instance of an application version running on the Edgegap platform.", "operationId": "deploy", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DeployModel"}}], "tags": ["Deployments"]}}, "/v1/deployment/{request_id}/container-logs": {"parameters": [{"name": "request_id", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/api-model-containerlogs"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "424": {"description": "Endpoint Storage Access Denied", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get Deployment Container Logs", "description": "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. <a target='_blank' href='https://docs.edgegap.com/docs/deployment/endpoint-storage'>Endpoint Storage Documentation</a>", "operationId": "deployment-get-logs", "parameters": [{"description": "Log output format. `text` (default) returns plain-text lines; `ndjson` returns NDJSON records carrying the stream and timestamp of each line.", "name": "format", "type": "string", "in": "query"}], "tags": ["Deployments"]}}, "/v1/deployments": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Deployments"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List All Deployments", "description": "[Rate Limit: 10/second] List all deployments.", "operationId": "deployments-get", "parameters": [{"name": "query", "in": "query", "type": "string", "description": "Query to filter the deployments."}], "tags": ["Deployments"]}}, "/v1/deployments/bulk-stop": {"post": {"responses": {"202": {"description": "Accepted", "schema": {"$ref": "#/definitions/DeploymentBulkStopResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Delete Deployments in Bulk", "description": "Make a bulk delete of deployments using filters. All the deployments matching the given filters will be permanently deleted.", "operationId": "deployments-bulk-delete", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DeploymentBulkStopPayload"}}], "tags": ["Deployments"]}}, "/v1/deployments/{request_id}": {"parameters": [{"name": "request_id", "in": "path", "required": true, "type": "string"}], "patch": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/DeploymentUpdateResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Updates properties of a deployment", "description": "Updates properties of a deployment. Currently only the `is_joinable_by_session` property can be updated.", "operationId": "deployment-update", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DeploymentUpdatePayload"}}], "tags": ["Deployments"]}}, "/v1/deployments/{request_id}/tags": {"parameters": [{"name": "request_id", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/DeploymentTagResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "409": {"description": "Conflict", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Create Tag for a Deployment", "description": "Create a tag for a deployment. The tag will however not be injected into a running container.", "operationId": "deployments-tags-create", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DeploymentTagPayload"}}], "tags": ["Deployment Tags"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/DeploymentTagListResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List tags for a Deployment", "description": "List tags for a deployment.", "operationId": "deployments-tags-list", "tags": ["Deployment Tags"]}}, "/v1/deployments/{request_id}/tags/{tag_name}": {"parameters": [{"name": "request_id", "in": "path", "required": true, "type": "string"}, {"name": "tag_name", "in": "path", "required": true, "type": "string"}], "delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "204": {"description": "No Content"}}, "summary": "Delete Tag for a Deployment", "description": "Delete a tag for a deployment. The tag will however not be removed from the environment of a running container.", "operationId": "deployments-tags-delete", "tags": ["Deployment Tags"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/DeploymentTagResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get tag for a Deployment", "description": "Get tag for a deployment.", "operationId": "deployments-tags-read", "tags": ["Deployment Tags"]}, "patch": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/DeploymentTagResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "409": {"description": "Conflict", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Update Tag for a Deployment", "description": "Update a tag for a deployment.", "operationId": "deployments-tags-update", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/DeploymentTagPayload"}}], "tags": ["Deployment Tags"]}}, "/v1/deployments/{request_id}:report": {"parameters": [{"name": "request_id", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"200": {"description": "Success"}, "503": {"description": "Service Unavailable", "schema": {"$ref": "#/definitions/Error"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "403": {"description": "Forbidden", "schema": {"$ref": "#/definitions/Error"}}}, "operationId": "post_report_deployment", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/Report%20Deployment%20Payload"}}], "tags": ["Report Deployment"]}}, "/v1/fleet": {"post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/FleetPostResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Create a Fleet", "description": "Create a fleet. A fleet is a top-level object; you must create child resources to work properly.", "operationId": "fleet-create", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/FleetPostPayload"}}], "tags": ["Fleets"]}}, "/v1/fleet/{fleet_name}": {"delete": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/FleetDeleteResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Delete a Fleet", "description": "Delete a fleet, its policies and links between the application versions.", "operationId": "fleet-delete", "parameters": [{"name": "fleet_name", "in": "path", "required": true, "type": "string", "description": "The name of the fleet"}], "tags": ["Fleets"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/FleetGetResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get a Fleet", "description": "Retrieve a fleet with its details.", "operationId": "fleet-get", "parameters": [{"name": "fleet_name", "in": "path", "required": true, "type": "string", "description": "The name of the fleet"}], "tags": ["Fleets"]}, "patch": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/FleetPatchResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Update a Fleet", "description": "Update a fleet with new specifications.", "operationId": "fleet-update", "parameters": [{"name": "fleet_name", "in": "path", "required": true, "type": "string", "description": "The name of the fleet"}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/FleetPatchPayload"}}], "tags": ["Fleets"]}}, "/v1/fleet/{fleet_name}/app/{app_name}/version/{version_name}": {"put": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/HorizontalScalerAppVersionLink"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Link an Application Version to a Fleet", "description": "Link an application version to a fleet. By linking this version, the fleet will automatically create deployments of this version according to the fleet policies.", "operationId": "fleet-link-app-version", "parameters": [{"name": "fleet_name", "in": "path", "required": true, "type": "string", "description": "The name of the fleet"}, {"name": "app_name", "in": "path", "required": true, "type": "string", "description": "The name of the application to link"}, {"name": "version_name", "in": "path", "required": true, "type": "string", "description": "The name of the application version to link"}], "tags": ["Fleets"]}, "delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "204": {"description": "Success"}}, "summary": "Unlink an Application Version From a Fleet", "description": "Unlink an application version from a fleet. It will not delete the application version or the fleet", "operationId": "fleet-unlink-app-version", "parameters": [{"name": "fleet_name", "in": "path", "required": true, "type": "string", "description": "The name of the fleet"}, {"name": "app_name", "in": "path", "required": true, "type": "string", "description": "The name of the application to link"}, {"name": "version_name", "in": "path", "required": true, "type": "string", "description": "The name of the application version to link"}], "tags": ["Fleets"]}}, "/v1/fleet/{fleet_name}/policies": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/HorizontalScalerConstraintList"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List All Policies of a Fleet", "description": "List all the policies of a fleet.", "operationId": "fleet-policies-list", "parameters": [{"name": "fleet_name", "in": "path", "required": true, "type": "string", "description": "The name of the fleet"}, {"name": "page", "in": "query", "type": "integer", "description": "Page number for pagination", "default": 1}, {"name": "limit", "in": "query", "type": "integer", "description": "Limit of Fleet for each page", "default": 10}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["Fleets"]}, "post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/FleetPoliciesPostResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Create a Fleet Policy", "description": "Create a fleet policy. Policies are conditions that the fleet must respect.", "operationId": "fleet-policies-create", "parameters": [{"name": "fleet_name", "in": "path", "required": true, "type": "string", "description": "The name of the fleet"}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/FleetPoliciesPostPayload"}}], "tags": ["Fleets"]}}, "/v1/fleet/{fleet_name}/policies/{policy_name}": {"delete": {"responses": {"200": {"description": "OK", "schema": {"$ref": "#/definitions/Error"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Delete a Policy", "description": "Delete a policy. It will not delete the fleet.", "operationId": "fleet-policies-delete", "parameters": [{"name": "fleet_name", "in": "path", "required": true, "type": "string", "description": "The name of the fleet"}, {"name": "policy_name", "in": "path", "required": true, "type": "string", "description": "The name of the policy to delete"}], "tags": ["Fleets"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/FleetPoliciesGetResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get a Policy", "description": "Retrieve a specific policy of a fleet.", "operationId": "fleet-policies-get", "parameters": [{"name": "fleet_name", "in": "path", "required": true, "type": "string", "description": "The name of the fleet"}, {"name": "policy_name", "in": "path", "required": true, "type": "string", "description": "The name of the policy"}], "tags": ["Fleets"]}, "patch": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/FleetPoliciesPatchPayload"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Update a Policy", "description": "Update a policy with new specifications.", "operationId": "fleet-policies-update", "parameters": [{"name": "fleet_name", "in": "path", "required": true, "type": "string", "description": "The name of the fleet"}, {"name": "policy_name", "in": "path", "required": true, "type": "string", "description": "The name of the policy"}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/FleetPoliciesPatchPayload"}}], "tags": ["Fleets"]}}, "/v1/fleets": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/FleetList"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List All Fleets", "description": "List all the fleets you own.", "operationId": "fleets", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number for pagination", "default": 1}, {"name": "limit", "in": "query", "type": "integer", "description": "Limit of Fleet for each page", "default": 10}], "tags": ["Fleets"]}}, "/v1/hooks/stop/{request_id}": {"post": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Deployment not found", "schema": {"$ref": "#/definitions/Error"}}, "403": {"description": "Forbidden \u2014 deployment is protected", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Stop initiated", "schema": {"$ref": "#/definitions/HooksStopResponse"}}}, "summary": "[Internal] Stop a deployment via container exit hook", "description": "Internal endpoint called by ExternalHooksManager when a container exits and the AppVersion restart policy requires the deployment to be stopped. Not intended for direct client use.", "operationId": "hooks-stop-deployment", "parameters": [{"name": "request_id", "in": "path", "required": true, "type": "string", "description": "Unique identifier of the deployment to stop"}, {"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/HooksStopPayload"}}], "tags": ["Deployments"]}}, "/v1/ip": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/IPAddressResponse"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get Your Public IP", "description": "Retrieve your public IP address.", "operationId": "IP", "tags": ["IP Lookup"]}}, "/v1/ip/{ip}/lookup": {"parameters": [{"name": "ip", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/IPAddressLookupResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get an IP's information", "description": "Lookup an IP address and return the associated information.", "operationId": "IP lookup", "tags": ["IP Lookup"]}}, "/v1/ips/lookup": {"post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/IPAddressesLookupResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorizeed", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get IPs Information in Bulk", "description": "Lookup IP addresses and return the associated information. Maximum of 20 IPs.", "operationId": "IPs lookup", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/IPAddressesLookupPayload"}}], "tags": ["IP Lookup"]}}, "/v1/locations": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Locations"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List All Locations", "description": "List all the locations available to deploy on. You can specify an application and a version to filter out the locations that don\u2019t have enough resources to deploy this application version.", "operationId": "locations-get", "parameters": [{"name": "app", "in": "query", "type": "string", "description": "The App Name you want to filter with capacity"}, {"name": "version", "in": "query", "type": "string", "description": "The Version Name you want to filter with capacity"}, {"name": "type", "in": "query", "type": "string", "description": "The type of the location"}, {"name": "tags", "in": "query", "type": "string", "description": "Gets locations with tags. Set to: \"true\" to have the tags"}], "tags": ["Locations"]}}, "/v1/locations/beacons": {"get": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/LocationBeaconList"}}}, "summary": "List All Location Beacons", "description": "List all the active location beacons. They can be used to ping them for your matchmaking system. You cannot deploy on beacons.", "operationId": "location-beacon-list", "tags": ["Locations"]}}, "/v1/metrics/deployment/{request_id}": {"parameters": [{"name": "request_id", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "422": {"description": "Unprocessable", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/MetricsResponse"}}}, "summary": "Get a Deployment Metrics", "description": "Get the metrics for a specific deployment based on the ```start_time```, ```end_time``` and ```steps```. ```raw``` parameter can be set to true to get the raw data.", "operationId": "deployment-metrics-get", "parameters": [{"description": "Starting time for the query. Default to deployment start time. Should match %Y-%m-%d %H:%M:%S.%f\n\n\t\tExample: 2021-07-10 00:00:00.00", "name": "start_time", "type": "string", "in": "query"}, {"description": "End time for the metrics. Default to now.Must be greater than start_time. Should match %Y-%m-%d %H:%M:%S.%f\n\n\t\tExample: 2021-07-19 00:00:00.00", "name": "end_time", "type": "string", "in": "query"}, {"description": "Steps between each metrics.\n\n\t\tExample: 30s, 1m, 5m 10m, 1h ", "name": "steps", "type": "string", "in": "query"}, {"description": "If set to true, will return the raw data. Default to false.", "name": "raw", "type": "string", "in": "query"}], "tags": ["Metrics"]}}, "/v1/relays/sessions": {"post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/RelaySessionBaseResponse"}}, "503": {"description": "Service Unavailable", "schema": {"$ref": "#/definitions/Error"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "403": {"description": "Forbidden", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Create a Relay Session", "description": "Create a relay session with users.", "operationId": "relay-session-create", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/RelaySessionCreatePayload"}}], "tags": ["Relays"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/RelaySessionListResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "403": {"description": "Forbidden", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List all Relay Sessions", "description": "List all the active relay sessions.", "operationId": "relay-session-list", "tags": ["Relays"]}}, "/v1/relays/sessions/{session_id}": {"parameters": [{"name": "session_id", "in": "path", "required": true, "type": "string"}], "delete": {"responses": {"503": {"description": "Service Unavailable", "schema": {"$ref": "#/definitions/Error"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "403": {"description": "Forbidden", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "204": {"description": "No Content"}}, "summary": "Delete a Relay Session", "description": "Delete a relay session.", "operationId": "relay-session-delete", "tags": ["Relays"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/RelaySessionBaseResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "403": {"description": "Forbidden", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get a Relay Session", "description": "Retrieve the information for a relay session.", "operationId": "relay-session-get", "tags": ["Relays"]}}, "/v1/relays/sessions:authorize-user": {"post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/RelaySessionUserBaseResponse"}}, "503": {"description": "Service Unavailable", "schema": {"$ref": "#/definitions/Error"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "409": {"description": "Conflict", "schema": {"$ref": "#/definitions/Error"}}, "403": {"description": "Forbidden", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Authorize a user on a Relay Session", "description": "Authorize a user on a Relay Session", "operationId": "relay-user-authorize", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/RelayUserAuthorizePayload"}}], "tags": ["Relays"]}}, "/v1/relays/sessions:revoke-user": {"post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/RelaySessionBaseResponse"}}, "503": {"description": "Service Unavailable", "schema": {"$ref": "#/definitions/Error"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "403": {"description": "Forbidden", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "204": {"description": "No Content"}}, "summary": "Remove a user on a Relay Session", "description": "Authorize a user on a Relay Session", "operationId": "relay-user-revoke", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/RelayUserRevokePayload"}}], "tags": ["Relays"]}}, "/v1/self/stop/{request_id}/{access_point_id}": {"delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "403": {"description": "Forbidden", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "202": {"description": "Accepted", "schema": {"$ref": "#/definitions/DeleteRequestReceived"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Delete"}}}, "summary": "Delete a Deployment from inside the container", "description": "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.", "operationId": "self-deployment-delete", "parameters": [{"name": "request_id", "in": "path", "required": true, "type": "string", "description": "Unique Identifier to keep track of your request across all Arbitrium ecosystem. It's included in the response of the app deploy, example: \n\n\t93924761ccde"}, {"name": "access_point_id", "in": "path", "required": true, "type": "integer", "description": "Access Point Number provided by our system"}, {"name": "authorization", "in": "header", "type": "string", "required": true, "description": "Auto Generated token. This token is injected in your deployment and can be found via the environment variable named ARBITRIUM_DELETE_TOKEN"}, {"name": "container_log_storage", "in": "query", "type": "string", "description": "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."}], "security": [], "tags": ["Deployments"]}}, "/v1/session": {"post": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "422": {"description": "Unprocessable", "schema": {"$ref": "#/definitions/Error"}}, "409": {"description": "Conflict", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/SessionRequest"}}}, "summary": "Create a Session", "description": "Create a session with users. Sessions are linked to a deployment.", "operationId": "session-post", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/SessionModel"}}], "tags": ["Sessions"]}}, "/v1/session/{session_id}": {"parameters": [{"name": "session_id", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/SessionGet"}}}, "summary": "Get a Session", "description": "Retrieve the information for a session.", "operationId": "get-session", "tags": ["Sessions"]}, "delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "410": {"description": "Instance Already terminated", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/SessionDelete"}}}, "summary": "Delete a Session", "description": "Delete a session. Once deleted, a session is no more accessible and does not have a history. The deployment associated will not be deleted.", "operationId": "session-delete", "tags": ["Sessions"]}}, "/v1/session/{session_id}/users": {"parameters": [{"name": "session_id", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/SessionUserContext"}}}, "summary": "List Users of a Session", "description": "List all the users of session.", "operationId": "get-users-session", "tags": ["Sessions"]}, "delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/SessionUserContext"}}}, "summary": "Delete Users From a Session", "description": "Remove specified users from a session.", "operationId": "delete-users-session", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PatchSessionModel"}}], "tags": ["Sessions"]}, "put": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "422": {"description": "Unprocessable", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/SessionUserContext"}}}, "summary": "Put Users in a Session", "description": "Add specified users to a session.", "operationId": "put-users-session", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PatchSessionModel"}}], "tags": ["Sessions"]}}, "/v1/sessions": {"get": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Sessions"}}}, "summary": "List All Sessions", "description": "List all the active sessions.", "operationId": "list-sessions", "tags": ["Sessions"]}}, "/v1/sessions/bulk-stop": {"post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/SessionBulkStopResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Delete Sessions in Bulk", "description": "Make a bulk delete of sessions using filters. All the sessions matching the given filters will be permanently deleted.", "operationId": "sessions-bulk-stop", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/SessionBulkStopPayload"}}], "tags": ["Sessions"]}}, "/v1/status/{request_id}": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/Status"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get a Deployment Status and Information", "description": "[Rate Limit: 20/second] Retrieve the information for a deployment.", "operationId": "deployment-status-get", "parameters": [{"name": "request_id", "in": "path", "required": true, "type": "string", "description": "Unique Identifier to keep track of your request across all Arbitrium ecosystem. It's included in the response of the app deploy, example: \n\n\t93924761ccde"}], "tags": ["Deployments"]}}, "/v1/stop/{request_id}": {"delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "410": {"description": "Instance Already terminated", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "403": {"description": "Forbidden", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "202": {"description": "Accepted", "schema": {"$ref": "#/definitions/DeleteRequestReceived"}}, "200": {"description": "Success", "schema": {"$ref": "#/definitions/Delete"}}}, "summary": "Stop a deployment", "description": "Request to stop a Deployment, triggering a graceful shutdown (SIGTERM). Returns 200 or 202 if deployment status is not READY and not ERROR, and stops deployment once either of these statuses is reached - see [Deployment Lifecycle](https://docs.edgegap.com/learn/advanced-features/deployments#deployment-lifecycle).", "operationId": "deployment-delete", "parameters": [{"name": "request_id", "in": "path", "required": true, "type": "string", "description": "Unique Identifier to keep track of your request across all Edgegap ecosystem. It's included in the response of the app deploy, example: \n\n\t93924761ccde"}, {"name": "container_log_storage", "in": "query", "type": "string", "description": "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."}], "tags": ["Deployments"]}}, "/v1/storage/endpoint": {"post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/EndpointStoragePostResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Create a New Endpoint Storage", "description": "Create an endpoint storage to store your container logs at the end of a deployment.", "operationId": "endpoint-create", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/EndpointStoragePostPayload"}}], "tags": ["Endpoint Storage"]}}, "/v1/storage/endpoint/{endpoint_name}": {"parameters": [{"name": "endpoint_name", "in": "path", "required": true, "type": "string"}], "delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "204": {"description": "No Content"}}, "summary": "Delete an Endpoint Storage", "description": "Delete an endpoint storage. All the application versions linked to it won't be able to store logs anymore.", "operationId": "endpoint-delete", "tags": ["Endpoint Storage"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/EndpointStorageGetResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get an Endpoint Storage", "description": "Retrieve an endpoint storage. The ```secret_access_key``` won't be displayed.", "operationId": "endpoint-get", "tags": ["Endpoint Storage"]}, "patch": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/EndpointStoragePatchResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Update an Endpoint Storage", "description": "Update an Endpoint Storage with new specifications.", "operationId": "endpoint-update", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/EndpointStoragePatchPayload"}}], "tags": ["Endpoint Storage"]}}, "/v1/storage/endpoint/{endpoint_name}/pull-profile": {"parameters": [{"name": "endpoint_name", "in": "path", "required": true, "type": "string"}], "post": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/PullProfilePostResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Create a New Pull Profile", "description": "Create a pull profile. Pull profile will upload data from an endpoint storage to a deployment container on boot. You must link the application version to the pull profile first.", "operationId": "pull-profile-create", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PullProfilePostPayload"}}], "tags": ["Endpoint Storage"]}}, "/v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}": {"parameters": [{"name": "endpoint_name", "in": "path", "required": true, "type": "string"}, {"name": "pull_profile_name", "in": "path", "required": true, "type": "string"}], "delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "204": {"description": "No Content"}}, "summary": "Delete a Pull Profile", "description": "Delete a pull profile. All the application versions linked won't receive the data upload anymore. It will not delete your endpoint storage.", "operationId": "pull-profile-delete", "tags": ["Endpoint Storage"]}, "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/PullProfileGetResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Get a Pull Profile", "description": "Retrieve a pull profile and its specifications.", "operationId": "pull-profile-get", "tags": ["Endpoint Storage"]}, "patch": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/PulloProfilePatchResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Update a Pull Profile", "description": "Update a pull profile with new specifications.", "operationId": "pull-profile-update", "parameters": [{"name": "payload", "required": true, "in": "body", "schema": {"$ref": "#/definitions/PullProfilePatchPayload"}}], "tags": ["Endpoint Storage"]}}, "/v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}/app/{app_name}/version/{version_name}": {"parameters": [{"name": "endpoint_name", "in": "path", "required": true, "type": "string"}, {"name": "pull_profile_name", "in": "path", "required": true, "type": "string"}, {"name": "app_name", "in": "path", "required": true, "type": "string"}, {"name": "version_name", "in": "path", "required": true, "type": "string"}], "put": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/PullProfileAppVersionLinkResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "Link a Pull Profile to an Application Version", "description": "Link a pull profile to an app version. Without a link, the pull profile by itself will do nothing.", "operationId": "pull-profile-link-app-version", "tags": ["Endpoint Storage"]}, "delete": {"responses": {"500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "204": {"description": "Success"}}, "summary": "Unlink a Pull Profile From an Application Version", "description": "Unlink a pull profile from an app version. It will not delete the pull profile.", "operationId": "pull-profile-unlink-app-version", "tags": ["Endpoint Storage"]}}, "/v1/storage/endpoint/{endpoint_name}/pull-profiles": {"parameters": [{"name": "endpoint_name", "in": "path", "required": true, "type": "string"}], "get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/PullProfilesListResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "404": {"description": "Not Found", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List All Pull Profile of an Endpoint Storage", "description": "List all pull profiles of an endpoint storage.", "operationId": "pull-profile-list", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number for pagination", "default": 1}, {"name": "limit", "in": "query", "type": "integer", "description": "Limit of pull profiles for each page", "default": 10}], "tags": ["Endpoint Storage"]}}, "/v1/storage/endpoints": {"get": {"responses": {"200": {"description": "Success", "schema": {"$ref": "#/definitions/EndpointStorageListResponse"}}, "500": {"description": "Internal Server Error", "schema": {"$ref": "#/definitions/Error"}}, "401": {"description": "Unauthorized", "schema": {"$ref": "#/definitions/Error"}}, "400": {"description": "Bad Request", "schema": {"$ref": "#/definitions/Error"}}}, "summary": "List All Endpoint Storage", "description": "List all endpoint storage.", "operationId": "endpoints-list", "parameters": [{"name": "page", "in": "query", "type": "integer", "description": "Page number for pagination", "default": 1}, {"name": "limit", "in": "query", "type": "integer", "description": "Limit of Fleet for each page", "default": 10}, {"name": "X-Fields", "in": "header", "type": "string", "format": "mask", "description": "An optional fields mask"}], "tags": ["Endpoint Storage"]}}}, "info": {"title": "Edgegap V1", "version": "0.0.0", "description": "<h1 style=\"margin-top: 2rem\">Introduction</h1>\n<p>The Edgegap API lets you manage all your resources from standard HTTP requests. We promote using them to automate all your processes that are using Edgegap.</p>\n<p>If you have any questions, don't hesitate to contact us via email, or you can also jump on our <a href=\"https://discord.com/invite/GYaHcKR9a5\" target=\"_blank\">Discord</a>. We will be happy to help. Feel free to make features request; we also love those.</p>\n<div class=\"theme-doc-markdown markdown\"><h2 class=\"anchor anchorWithStickyNavbar_node_modules-@docusaurus-theme-classic-lib-theme-Heading-styles-module\" id=\"pagination---response\">Pagination - Response<a class=\"hash-link\" href=\"#pagination---response\" title=\"Direct link to heading\">\u200b</a></h2><p>The GET response body can be returned with pagination to avoid requesting all the data at once.</p><p>Pagination object will always be under the  <em>paginator</em> key.</p><div class=\"language-json codeBlockContainer_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Container-styles-module theme-code-block\" style=\"--prism-color:#bfc7d5; --prism-background-color:#292d3e;\"><div class=\"codeBlockContent_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module\"><pre tabindex=\"0\" class=\"prism-code language-json codeBlock_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module thin-scrollbar\"><code class=\"codeBlockLines_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module\"><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">{</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token property\">\"number\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color: rgb(195, 232, 141);\">\"The Current page, default=1\"</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token property\">\"next_page_number\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color: rgb(195, 232, 141);\">\"The Next page number or null\"</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token property\">\"previous_page_number\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color: rgb(195, 232, 141);\">\"The Previous page number or null\"</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token property\">\"paginator\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">{</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">    </span><span class=\"token property\">\"num_pages\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color: rgb(195, 232, 141);\">\"The total numbers of pages\"</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">}</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token property\">\"has_next\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color: rgb(195, 232, 141);\">\"Boolean if there is a next page\"</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token property\">\"has_previous\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color: rgb(195, 232, 141);\">\"Boolean if there is a previous page\"</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">}</span><br></span></code></pre><div class=\"buttonGroup_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module\"><button type=\"button\" aria-label=\"Copy code to clipboard\" title=\"Copy\" class=\"clean-btn\"><span class=\"copyButtonIcons_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-CopyButton-styles-module\" aria-hidden=\"true\"><svg class=\"copyButtonIcon_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-CopyButton-styles-module\" viewBox=\"0 0 24 24\"><path d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"></path></svg><svg class=\"copyButtonSuccessIcon_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-CopyButton-styles-module\" viewBox=\"0 0 24 24\"><path d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"></path></svg></span></button></div></div></div><p>Full Body Example:</p><div class=\"language-json codeBlockContainer_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Container-styles-module theme-code-block\" style=\"--prism-color:#bfc7d5; --prism-background-color:#292d3e;\"><div class=\"codeBlockContent_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module\"><pre tabindex=\"0\" class=\"prism-code language-json codeBlock_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module thin-scrollbar\"><code class=\"codeBlockLines_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module\"><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">{</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token property\">\"count\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color: rgb(247, 140, 108);\">100</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token property\">\"data\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">[</span><span class=\"token string\" style=\"color: rgb(195, 232, 141);\">\"value-0\"</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color: rgb(195, 232, 141);\">\"[...]\"</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color: rgb(195, 232, 141);\">\"value-9\"</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">]</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token property\">\"success\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token boolean\" style=\"color: rgb(255, 88, 116);\">true</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token property\">\"pagination\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">{</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">    </span><span class=\"token property\">\"number\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color: rgb(247, 140, 108);\">1</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">    </span><span class=\"token property\">\"next_page_number\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color: rgb(247, 140, 108);\">2</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">    </span><span class=\"token property\">\"previous_page_number\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token null keyword\" style=\"font-style: italic;\">null</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">    </span><span class=\"token property\">\"paginator\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">{</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">      </span><span class=\"token property\">\"num_pages\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token number\" style=\"color: rgb(247, 140, 108);\">10</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">}</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">    </span><span class=\"token property\">\"has_next\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token boolean\" style=\"color: rgb(255, 88, 116);\">true</span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">,</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">    </span><span class=\"token property\">\"has_previous\"</span><span class=\"token operator\" style=\"color: rgb(137, 221, 255);\">:</span><span class=\"token plain\"> </span><span class=\"token boolean\" style=\"color: rgb(255, 88, 116);\">false</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">  </span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">}</span><span class=\"token plain\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color: rgb(199, 146, 234);\">}</span><br></span></code></pre><div class=\"buttonGroup_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module\"><button type=\"button\" aria-label=\"Copy code to clipboard\" title=\"Copy\" class=\"clean-btn\"><span class=\"copyButtonIcons_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-CopyButton-styles-module\" aria-hidden=\"true\"><svg class=\"copyButtonIcon_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-CopyButton-styles-module\" viewBox=\"0 0 24 24\"><path d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"></path></svg><svg class=\"copyButtonSuccessIcon_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-CopyButton-styles-module\" viewBox=\"0 0 24 24\"><path d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"></path></svg></span></button></div></div></div><h2 class=\"anchor anchorWithStickyNavbar_node_modules-@docusaurus-theme-classic-lib-theme-Heading-styles-module\" id=\"pagination---parameters\">Pagination - Parameters<a class=\"hash-link\" href=\"#pagination---parameters\" title=\"Direct link to heading\">\u200b</a></h2><p>You can add those values to manipulate the pagination object in the URL Parameters.</p><ul class=\"\"><li>page</li><li>limit</li></ul><p>Example:</p><div class=\"language-text codeBlockContainer_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Container-styles-module theme-code-block\" style=\"--prism-color:#bfc7d5; --prism-background-color:#292d3e;\"><div class=\"codeBlockContent_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module thin-scrollbar\"><code class=\"codeBlockLines_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module\"><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\"># To get the second page</span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">GET - https://api.edgegap.com/v1/apps?page=2</span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\" style=\"display: inline-block;\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\"># To change the count of element in one page (20/page)</span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">GET - https://api.edgegap.com/v1/apps?limit=20</span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\" style=\"display: inline-block;\"></span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\"># You can mix those (20/page, second page)</span><br></span><span class=\"token-line\" style=\"color: rgb(191, 199, 213);\"><span class=\"token plain\">GET - https://api.edgegap.com/v1/apps?page=2&amp;limit=20</span><br></span></code></pre><div class=\"buttonGroup_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-Content-styles-module\"><button type=\"button\" aria-label=\"Copy code to clipboard\" title=\"Copy\" class=\"clean-btn\"><span class=\"copyButtonIcons_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-CopyButton-styles-module\" aria-hidden=\"true\"><svg class=\"copyButtonIcon_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-CopyButton-styles-module\" viewBox=\"0 0 24 24\"><path d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"></path></svg><svg class=\"copyButtonSuccessIcon_node_modules-@docusaurus-theme-classic-lib-theme-CodeBlock-CopyButton-styles-module\" viewBox=\"0 0 24 24\"><path d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"></path></svg></span></button></div></div></div></div>", "termsOfService": "https://console.edgegap.com/terms-of-service", "contact": {"name": "Email", "email": "info@edgegap.com", "url": "https://edgegap.com"}}, "produces": ["application/json"], "consumes": ["application/json"], "securityDefinitions": {"apiKey": {"type": "apiKey", "in": "header", "name": "authorization", "description": "To access Edgegap API, generate (and view) your secret tokens in Dashboard - User Settings / Tokens. Add your secret token with each API request as an HTTP header (include the word token): `Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62`"}}, "security": [{"apiKey": []}], "tags": [{"name": "Deployments", "description": "Deployments Control API - Please refer to <a href='https://docs.edgegap.com/docs/deployment' target='_blank'>this documentation</a> to get started with deployments."}, {"name": "Applications", "description": "Applications Control API - Please refer to <a href='https://docs.edgegap.com/docs/application' target='_blank'>this documentation</a> to get started with applications."}, {"name": "Locations", "description": "Locations API - Please refer to <a href='https://docs.edgegap.com/docs/deployment/locations/beacons' target='_blank'>this documentation</a> to get started with locations beacons."}, {"name": "Sessions", "description": "Sessions Control API - Please refer to <a href='https://docs.edgegap.com/docs/deployment/session' target='_blank'>this documentation</a> to get started with sessions."}, {"name": "Metrics", "description": "Metrics API - Please refer to <a href='https://docs.edgegap.com/docs/deployment/metrics' target='_blank'>this documentation</a> to get started with your deployment metrics."}, {"name": "IP Lookup", "description": "IP API - IP addresses related operations."}, {"name": "Fleets", "description": "Fleets Control API - Please refer to <a href='https://docs.edgegap.com/docs/deployment/session/fleet-manager/fleet' target='_blank'>this documentation</a> to get started with fleets."}, {"name": "Endpoint Storage", "description": "Endpoint Storage Control API - Please refer to <a href='https://docs.edgegap.com/docs/deployment/endpoint-storage' target='_blank'>this documentation</a> to get started with storage."}, {"name": "Relays", "description": "Handles Relay Sessions operations. Those operations are similar to Sessions but are simplified to be used with relays."}, {"name": "Deployment Tags", "description": "Deployment Tags API - Deployment Tags related operations."}, {"name": "Container Registry", "description": "Container Registry API"}, {"name": "Report Deployment", "description": "API to report one of your game server"}], "definitions": {"DeploymentUpdatePayload": {"properties": {"is_joinable_by_session": {"type": "boolean", "description": "Whether a session can connect to this deployment or not."}}, "type": "object", "additionalProperties": false}, "DeploymentUpdateResponse": {"required": ["is_joinable_by_session"], "properties": {"is_joinable_by_session": {"type": "boolean", "description": "If the deployment is joinable by sessions"}}, "type": "object"}, "Error": {"required": ["message"], "properties": {"message": {"type": "string", "description": "A message depending of the request termination"}}, "type": "object"}, "DeploymentBulkStopPayload": {"required": ["filters"], "properties": {"filters": {"type": "array", "description": "Filters used to match with deployments", "items": {"$ref": "#/definitions/DeploymentBulkStopFiltersPayload"}}}, "type": "object"}, "DeploymentBulkStopFiltersPayload": {"required": ["field", "filter_type", "values"], "properties": {"field": {"type": "string", "description": "The field on which to apply the filter", "example": "request_id", "enum": ["request_id", "deployment_tags"]}, "values": {"type": "array", "description": "Values that will be used for the filter", "example": ["c0653765de3b"], "items": {"type": "string"}}, "filter_type": {"type": "string", "description": "Types of filter used. Possible values are: ['any', 'all', 'not']", "example": "any", "enum": ["any", "all", "not"]}}, "type": "object"}, "DeploymentBulkStopResponse": {"required": ["processable"], "properties": {"processable": {"type": "array", "description": "A list deployments that can be processed to be stopped", "items": {"$ref": "#/definitions/DeploymentStopResponse"}}}, "type": "object"}, "DeploymentStopResponse": {"required": ["request_id"], "properties": {"request_id": {"type": "string", "description": "The id of the request for a deployment", "example": "c0653765de3b"}}, "type": "object"}, "DeployModel": {"required": ["app_name"], "properties": {"app_name": {"type": "string", "description": "The application you want to deploy a version of.", "example": "kart-racing"}, "version_name": {"type": "string", "description": "The application version you want to deploy a container, if not present, the last version created is automatically chosen.", "example": "production-v1.0"}, "is_public_app": {"type": "boolean", "description": "(DEPRECATED) - No longer used and you don't need to set it.", "default": false}, "ip_list": {"type": "array", "description": "This parameter is not optional, but mutually exclusive with the geo_ip_list parameter. One of them is required. List of IP representing your users. These will be used to determine the best location for your deployment.", "items": {"type": "string", "example": "1.2.3.4"}}, "geo_ip_list": {"type": "array", "description": "This parameter is not optional, but mutually exclusive with the ip_list parameter. One of them is required. List of IP of your user with their location (latitude, longitude). We will use the coordinates instead of the IPs to determine the best location for your deployment.", "items": {"$ref": "#/definitions/GeoIpListModel"}}, "telemetry_profile_uuid_list": {"type": "array", "description": "(DEPRECATED)", "example": ["85cf70e6-f871-42c6-96f0-65ff5bd469b5"], "items": {"type": "string"}}, "env_vars": {"type": "array", "description": "List of environment variables to set in your deployment instance. These variables will be available in your container.", "items": {"$ref": "#/definitions/DeployEnvModel"}}, "skip_telemetry": {"type": "boolean", "description": "If true, the deployment will skip the telemetry measurement. This result in a faster time to deploy.", "default": true}, "location": {"description": "Specify the centroid of the deployment instead of letting the system choose the best location. The system will do a best effort to deploy the container in the closest location to the specified coordinates.", "$ref": "#/definitions/LocationModel"}, "webhook_url": {"type": "string", "description": "A URL to send a POST request when the deployment is ready. The request will contain the deployment status. The content of the request is the same as the `v1/status/{request_id}` endpoint.", "example": "https://www.webhook.com/"}, "tags": {"type": "array", "description": "List of tags associated with the deployment. These tags will be shown in the dashboard.", "items": {"type": "string", "example": "production"}}, "container_log_storage": {"description": "Configuration for the container log storage. This will override the app version default configuration if set.", "$ref": "#/definitions/ContainerLogStorageModel"}, "filters": {"type": "array", "description": "List of filters to apply to the deployment. The deployment will be deployed in a location that match the filters.", "items": {"$ref": "#/definitions/DeploymentFilterModel"}}, "ap_sort_strategy": {"type": "string", "description": "(DEPRECATED) - No longer used and you don't need to set it.", "example": "basic", "enum": ["basic", "weighted"]}, "command": {"type": ["string", "null"], "description": "Allows to override the container command for this deployment. This is an advanced feature and should be used with caution.If set to null, the default command of the container will be used.", "example": "null | 'string'"}, "arguments": {"type": ["string", "null"], "description": "Allows to override the container arguments for this deployment. This is an advanced feature and should be used with caution.If set to null, the default arguments of the container will be used.", "example": "null | 'string'"}}, "type": "object"}, "GeoIpListModel": {"required": ["ip", "latitude", "longitude"], "properties": {"ip": {"type": "string", "description": "IP address", "example": "1.2.3.4"}, "latitude": {"type": "number", "description": "Latitude of the IP/User"}, "longitude": {"type": "number", "description": "Longitude of the IP/User"}}, "type": "object"}, "DeployEnvModel": {"required": ["key", "value"], "properties": {"key": {"type": "string", "description": "Key of the environment variable. This key will be used to access the value in your container.", "example": "MAP"}, "value": {"type": "string", "description": "Value of the environment variable. This value will be set in your container. Max 4096 characters.", "example": "Forest-2"}, "is_hidden": {"type": "boolean", "description": "If true, the environment variable will be encrypted and only decrypted in the container.", "example": false}}, "type": "object"}, "LocationModel": {"required": ["latitude", "longitude"], "properties": {"latitude": {"type": "number", "description": "Desired Latitude", "example": 45.5}, "longitude": {"type": "number", "description": "Desired Longitude", "example": -73.56}}, "type": "object"}, "ContainerLogStorageModel": {"required": ["enabled"], "properties": {"enabled": {"type": "boolean", "description": "If true, the container logs will be stored in the provided endpoint storage at the end of the request. If false, the container logs will not be stored, even if set up in the app version."}, "endpoint_storage": {"type": "string", "description": "The name of the endpoint storage to be used. It must be the same as the one set on the dashboard when created. If container log storage is enabled without this parameter, we will try to take the app version endpoint storage. If there is no endpoint storage in your app version, the container logs will not be stored. If we don't find any endpointstorage associated with this name, the container logs will not be stored.", "example": "my-endpoint"}}, "type": "object"}, "DeploymentFilterModel": {"required": ["field", "filter_type", "values"], "properties": {"field": {"type": "string", "description": "The deployment's field to filter on. See https://docs.edgegap.com/learn/advanced-features/deployments#filter-deployments for more details.", "example": "city"}, "values": {"type": "array", "description": "The values to filter on.", "example": ["Montreal"], "items": {"type": "string"}}, "filter_type": {"type": "string", "description": "The type of filter.", "example": "any", "enum": ["any", "all", "not"]}}, "type": "object"}, "Request": {"required": ["request_app", "request_dns", "request_id", "request_user_count", "request_version"], "properties": {"request_id": {"type": "string", "description": "The identifier of the deployment request. This is used to track the deployment.", "example": "61b1be8f54d9"}, "request_dns": {"type": "string", "description": "This is the FQDN that allow to connect to your Deployment. It will not resolve until the deployment is ready.", "example": "61b1be8f54d9.pr.edgegap.net"}, "request_app": {"type": "string", "description": "The application that has been deployed.", "example": "kart-racing"}, "filters": {"type": "array", "description": "List of filters applied to choose the location of the deployment.", "items": {"$ref": "#/definitions/DeploymentFilterModel"}}, "request_version": {"type": "string", "description": "The version of the application that has been deployed.", "example": "v1.0"}, "request_user_count": {"type": "integer", "description": "This is the number of IP you have provided in the deployment request.", "example": 4}, "tags": {"type": "array", "description": "List of tags that have been injected in the deployment request. This field will only be present if tags were provided in the request.", "items": {"type": "string", "example": "production"}}, "container_log_storage": {"description": "Endpoint storage configuration that will be used to store the container logs when the deployment will be deleted. This field will only be present if container log storage was provided in the request.", "$ref": "#/definitions/ContainerLogStorageModel"}, "location": {"description": "The desired location centroid of the deployment. This field will only be present if a location was provided in the request.", "$ref": "#/definitions/LocationModel"}, "ap_sort_strategy": {"type": "string", "description": "(DEPRECATED) - Will only be present if the request was made with the ap_sort_strategy field.", "example": "basic", "enum": ["basic", "weighted"]}}, "type": "object"}, "Deployments": {"properties": {"data": {"type": "array", "description": "List of active deployments", "items": {"$ref": "#/definitions/DeploymentListData"}}, "total_count": {"type": "integer", "description": "Total Objects in the Database"}, "pagination": {"description": "Pagination Object", "$ref": "#/definitions/Pagination"}, "message": {"type": "array", "description": "Extra Messages for the query", "example": [""], "items": {"type": "string"}}}, "type": "object"}, "DeploymentListData": {"required": ["fqdn", "public_ip", "ready", "request_id", "start_time"], "properties": {"request_id": {"type": "string", "description": "Unique UUID", "example": "2d35052ec4e9"}, "fqdn": {"type": "string", "description": "The FQDN that allow to connect to your deployment", "example": "abc123.test.edgegap.com"}, "start_time": {"type": "string", "description": "Timestamp of the deployment when it is up and running", "example": "2026-10-13 20:01:23.587697"}, "ready": {"type": "boolean", "description": "If the deployment is ready", "example": true}, "public_ip": {"type": "string", "description": "The public IP", "example": "100.10.0.85"}, "ports": {"type": "object", "example": {"web": {"external": 31587, "internal": 8080, "protocol": "http", "name": "web", "tls_upgrade": true, "link": "https://example.com:31587", "proxy": 65001}, "7777": {"external": 31669, "internal": 7777, "protocol": "UDP", "name": "7777", "tls_upgrade": false, "link": "example.com:31669", "proxy": 65002}}, "additionalProperties": {"$ref": "#/definitions/PortMapping"}}, "tags": {"type": "array", "description": "List of tags associated with the deployment", "items": {"type": "string", "example": "production"}}, "sockets": {"type": "integer", "description": "The capacity of the deployment", "example": "5"}, "sockets_usage": {"type": "integer", "description": "The capacity usage of the deployment", "example": "2"}, "is_joinable_by_session": {"type": "boolean", "description": "If the deployment is joinable by sessions"}}, "type": "object"}, "PortMapping": {"properties": {"external": {"type": "integer", "description": "The Port to Connect from Internet", "minimum": 1, "maximum": 65535}, "internal": {"type": "integer", "description": "The internal Port of the Container", "minimum": 1, "maximum": 65535}, "protocol": {"type": "string", "description": "The Protocol (i.e. 'TCP')"}, "name": {"type": "string", "description": "The Name of the port if given, default to internal port in string"}, "tls_upgrade": {"type": "boolean", "description": "If the port require TLS Upgrade"}, "link": {"type": "string", "description": "link of the port with scheme depending of the protocol"}, "proxy": {"type": "integer", "description": "Internal Proxy Mapping"}}, "type": "object"}, "Pagination": {"properties": {"number": {"type": "integer", "description": "Current page number"}, "next_page_number": {"type": "integer", "description": "Next page number"}, "previous_page_number": {"type": "integer", "description": "Previous page number"}, "paginator": {"$ref": "#/definitions/Paginator"}, "has_next": {"type": "boolean", "description": "If there is a next page"}, "has_previous": {"type": "boolean", "description": "If there is a previous page"}}, "type": "object"}, "Paginator": {"properties": {"num_pages": {"type": "integer", "description": "Total pages count"}}, "type": "object"}, "api-model-containerlogs": {"properties": {"logs": {"type": "string", "description": "Auto Generated Field for logs", "example": "Logs of the container"}, "encoding": {"type": "string", "description": "Auto Generated Field for encoding", "example": "utf-8"}, "crash_logs": {"type": "string", "description": "Auto Generated Field for crash_logs", "example": "Logs of the container when it crashed"}, "crash_data": {"$ref": "#/definitions/api-model-containercrashdata"}, "logs_link": {"type": "string", "description": "Auto Generated Field for logs_link", "example": "Link to the logs"}}, "type": "object"}, "api-model-containercrashdata": {"properties": {"exit_code": {"type": "integer", "description": "Auto Generated Field for exit_code", "example": 1}, "message": {"type": "string", "description": "Auto Generated Field for message", "example": "Container crashed"}, "restart_count": {"type": "integer", "description": "Auto Generated Field for restart_count", "example": 1}}, "type": "object"}, "Status": {"required": ["app_name", "app_version", "current_status", "elapsed_time", "error", "fqdn", "max_duration", "public_ip", "request_id", "running", "start_time", "whitelisting_active"], "properties": {"request_id": {"type": "string", "description": "The Unique ID of the Deployment's request", "example": "c0653765de3b"}, "fqdn": {"type": "string", "description": "The FQDN that allow to connect to your Deployment", "example": "abc123.test.edgegap.com"}, "app_name": {"type": "string", "description": "The name of the deployed App", "example": "test"}, "app_version": {"type": "string", "description": "The version of the deployed App", "example": "v1"}, "current_status": {"type": "string", "description": "The current status of the Deployment", "example": "Status.DEPLOYING"}, "running": {"type": "boolean", "description": "True if the current Deployment is ready to be connected and running", "example": true}, "whitelisting_active": {"type": "boolean", "description": "True if the current Deployment is ACL protected", "example": true}, "start_time": {"type": "string", "description": "Timestamp of the Deployment when it is up and running", "example": "2026-10-13 20:01:23.587697"}, "removal_time": {"type": "string", "description": "Timestamp of the end of the Deployment", "example": "2026-10-13 20:01:23.587697"}, "elapsed_time": {"type": "integer", "description": "Time since the Deployment is up and running in seconds"}, "last_status": {"type": "string", "description": "The last status of the Deployment", "example": "Status.SEEKING"}, "error": {"type": "boolean", "description": "True if there is an error with the Deployment", "example": true}, "error_detail": {"type": "string", "description": "The error details of the Deployment", "example": ""}, "ports": {"type": "object", "example": {"web": {"external": 31587, "internal": 8080, "protocol": "http", "name": "web", "tls_upgrade": true, "link": "https://example.com:31587", "proxy": 65001}, "7777": {"external": 31669, "internal": 7777, "protocol": "UDP", "name": "7777", "tls_upgrade": false, "link": "example.com:31669", "proxy": 65002}}, "additionalProperties": {"$ref": "#/definitions/PortMapping"}}, "public_ip": {"type": "string", "description": "The public IP", "example": "100.10.0.85"}, "sessions": {"type": "array", "description": "List of Active Sessions if Deployment App is Session Based", "items": {"$ref": "#/definitions/DeploymentSessionContext"}}, "location": {"description": "Location related information", "$ref": "#/definitions/DeploymentLocation"}, "tags": {"type": "array", "description": "List of tags associated with the deployment", "items": {"type": "string", "example": "production"}}, "sockets": {"type": "integer", "description": "The Capacity of the Deployment", "example": "5"}, "sockets_usage": {"type": "integer", "description": "The Capacity Usage of the Deployment", "example": "2"}, "command": {"type": "string", "description": "The command to use in the container, null mean it will take the default of the container", "example": ""}, "arguments": {"type": "string", "description": "The arguments to use in the container, null mean it will take the default of the container", "example": ""}, "max_duration": {"type": "integer", "description": "The deployment's maximum duration is the time, in minutes, that the deployment will remain active before automatically closing."}}, "type": "object"}, "DeploymentSessionContext": {"required": ["kind", "linked", "ready", "session_id", "status", "user_count"], "properties": {"session_id": {"type": "string", "description": "Unique UUID", "example": "abc123"}, "status": {"type": "string", "description": "Current status of the session", "example": "Status.READY"}, "ready": {"type": "boolean", "description": "If the session is linked to a Ready deployment", "example": true}, "linked": {"type": "boolean", "description": "If the session is linked to a deployment", "example": true}, "kind": {"type": "string", "description": "Type of session created", "example": "DEFAULT | SEATS | MATCH"}, "user_count": {"type": "integer", "description": "Count of user this session currently have", "example": "10"}}, "type": "object"}, "DeploymentLocation": {"required": ["administrative_division", "city", "continent", "country", "latitude", "longitude", "timezone"], "properties": {"city": {"type": "string", "description": "City of the deployment", "example": "Montreal"}, "country": {"type": "string", "description": "Country of the deployment", "example": "Canada"}, "continent": {"type": "string", "description": "Continent of the deployment", "example": "North America"}, "administrative_division": {"type": "string", "description": "Administrative division of the deployment", "example": "Quebec"}, "timezone": {"type": "string", "description": "Timezone of the deployment", "example": "Eastern Time"}, "latitude": {"type": "number", "description": "Latitude of the deployment", "example": 45.508888}, "longitude": {"type": "number", "description": "Longitude of the deployment", "example": -73.561668}}, "type": "object"}, "HooksStopPayload": {"required": ["exit_code", "exit_reason", "restart_policy"], "properties": {"exit_code": {"type": "integer", "description": "Exit code returned by the container process", "example": 137}, "exit_reason": {"type": "string", "description": "Human-readable reason for the container exit as reported by Kubeless", "example": "error"}, "restart_policy": {"type": "string", "description": "Restart policy configured on the AppVersion that triggered this stop", "example": "never", "enum": ["always", "never", "on_failure"]}}, "type": "object"}, "HooksStopResponse": {"required": ["message", "request_id"], "properties": {"request_id": {"type": "string", "description": "Unique identifier of the deployment being stopped", "example": "c0653765de3b"}, "message": {"type": "string", "description": "Confirmation message", "example": "stop initiated"}}, "type": "object"}, "DeleteRequestReceived": {"required": ["message"], "properties": {"message": {"type": "string", "description": "Message to confirm that the delete request has been received", "example": "1a9e4ff02cce - Delete request will be processed soon"}}, "type": "object"}, "Delete": {"required": ["message"], "properties": {"message": {"type": "string", "description": "A message depending of the request termination", "example": "Instance 93924761ccde will be deleted"}, "deployment_summary": {"description": "The status/summary of the deployment", "$ref": "#/definitions/Status"}}, "type": "object"}, "AppVersionDelete": {"properties": {"success": {"type": "boolean", "description": "If the creation happened correctly"}, "message": {"type": "string"}}, "type": "object"}, "AppVersionList": {"properties": {"versions": {"type": "array", "items": {"$ref": "#/definitions/AppVersionPayload"}}, "total_count": {"type": "integer"}}, "type": "object"}, "AppVersionPayload": {"required": ["docker_image", "docker_repository", "docker_tag", "name", "req_cpu", "req_memory"], "properties": {"name": {"type": "string", "description": "This is the identifier for your version. It\u2019s often linked to a build version, but can be any unique name.", "example": "1.0.0", "minLength": 1, "maxLength": 64}, "is_active": {"type": "boolean", "description": "This boolean tells the system whether this version can be deployed or is deactivated.", "example": true}, "docker_repository": {"type": "string", "description": "\u2018docker_repository\u2019 is named incorrectly, this property references the Docker registry where this version\u2019s container image is hosted (e.g., \u2018registry.edgegap.com\u2019 or \u2018docker.io\u2019).", "example": "docker.io"}, "docker_image": {"type": "string", "description": "The Docker image for your version, usually including a namespace or project.", "example": "edgegap/lyrastartergame"}, "docker_tag": {"type": "string", "description": "The Docker tag for your version. It must be valid according to your Docker image.", "example": "25.05.30-16.45.19-04"}, "private_username": {"type": "string", "description": "The username used to access your container registry. This is not your Edgegap account credential.", "example": "my_username"}, "private_token": {"type": "string", "description": "The token or password used to access your container registry. This is not your Edgegap account password.", "example": "my_password"}, "req_cpu": {"type": "integer", "description": "The number of vCPU units required to run your server container (1024 units = 1 vCPU).", "example": 1536, "minimum": 100}, "req_memory": {"type": "integer", "description": "The amount of memory in MB required to run your server container (1024 MB = 1 GB). It can be at most twice the number of vCPU units requested.", "example": 3072, "minimum": 100}, "req_video": {"type": "integer", "description": "Units of GPU needed (1024 = 1 GPU)", "example": 0, "minimum": 0}, "max_duration": {"type": "integer", "description": "The maximum duration in minutes the app version can run before being automatically stopped. If omitted, the default is 1440 minutes (24 hours).", "example": 30}, "force_cache": {"type": "boolean", "description": "Enable faster deployments by caching your container across all Edgegap locations. Recommended for live games.", "example": true}, "caching_percent": {"type": "number", "description": "Current caching percentage on scale 0-1, with 1 meaning 100% global cache coverage. Values above 0.8 are considered to be a good caching coverage level.", "example": 0.8}, "kind": {"type": "string", "description": "Specifies whether the app version is a default or session-based version (e.g., \u201cdefault\u201d or \u201csession\u201d).", "default": 0, "example": 0}, "time_to_deploy": {"type": "integer", "description": "Time in seconds to wait for the app version to deploy before marking it as failed. Useful for enforcing strict deployment time limits.", "example": 300, "minimum": 15}, "session_config": {"description": "Parameters for session-based app versions.", "$ref": "#/definitions/AppVersionCreateSessionConfig"}, "ports": {"type": "array", "items": {"$ref": "#/definitions/AppVersionPort"}}, "envs": {"type": "array", "description": "Environment variables to be set in the container for each deployment.", "items": {"$ref": "#/definitions/AppVersionEnv"}}, "verify_image": {"type": "boolean", "description": "By enabling the verify_image option, your image information (docker_repository, docker_image, docker_tag) will be tested to ensure the image can be pulled successfully.", "default": false, "example": true}, "termination_grace_period_seconds": {"type": "integer", "description": "Termination grace period in seconds after sending the SIGTERM signal to the container. Allows graceful shutdown and post-processing before the container stops.", "example": 5, "minimum": 5, "maximum": 3600}, "endpoint_storage": {"type": "string", "description": "The name of the endpoint storage to use to store the container logs at the end of the deployment. This will overwrite the default storage in the app version.", "example": "my-storage"}, "command": {"type": ["string", "null"], "description": "Entrypoint/command override for your container. This replaces the default command and should be used with caution.", "example": "null | 'string'"}, "arguments": {"type": ["string", "null"], "description": "Arguments to pass to the container\u2019s command. This replace the default arguments and should be used with caution", "example": "null | 'string'"}, "create_time": {"type": "string", "format": "date-time", "description": "The creation time of the app version"}, "last_updated": {"type": "string", "format": "date-time", "description": "The last update time of the app version"}, "dns_config": {"type": "string", "description": "The name of the DNS configuration to link with your deployment."}, "will_deploy_in_mainland_china": {"type": "boolean", "description": "If true, the app version will only be deployed in Mainland China locations. Otherwise, it will never deploy in Mainland China locations.", "default": false}, "restart_policy": {"type": "string", "description": "The restart policy for the deployment. The default is to always restart unless you terminate the deployment.", "default": "always", "example": "always", "enum": ["always", "never", "on_failure"]}}, "type": "object"}, "AppVersionCreateSessionConfig": {"required": ["kind", "sockets"], "properties": {"kind": {"type": "string", "description": "The kind of session to create. If 'Default' if chosen, the 'session_config' will be ignored. The kind of session must be: Default, Seat, Match", "example": "Seat", "enum": ["Default", "Seat", "Match"]}, "sockets": {"type": "integer", "description": "With seats, each player in a session occupies one socket slot. With matches, each session occupies one socket slot in the deployment, regardless of the number of players.", "example": 10, "minimum": 1}, "autodeploy": {"type": "boolean", "description": "If the system should automatically creates a deployment of this app version when a session is created and no sockets are available in existing deployments."}, "empty_ttl": {"type": "integer", "description": "The number of minutes a session deployment can remain empty before being automatically terminated. A deployment is considered empty when its socket count is zero.", "example": 60, "minimum": 1}, "session_max_duration": {"type": "integer", "description": "(DEPRECATED)", "minimum": 60}}, "type": "object"}, "AppVersionPort": {"required": ["port", "protocol"], "properties": {"port": {"type": "integer", "description": "The port number to expose for the application. At least one port is required to accept client connections. Use 0 for 1:1 port mapping, which will assign a random port number at deployment time, this must be handled by the application.", "example": 7777, "minimum": 0, "maximum": 59999}, "protocol": {"type": "string", "description": "Available protocols: TCP, UDP, TCP/UDP, HTTP, HTTPS, WS or WSS", "example": "UDP"}, "to_check": {"type": "boolean", "description": "Specifies whether the port must pass our validation checks. If validation fails, the deployment will be marked as an error.", "default": true, "example": true}, "tls_upgrade": {"type": "boolean", "description": "When set to true, the port will be upgraded to TLS if using HTTP or WS.", "default": false, "example": false}, "name": {"type": "string", "description": "An optional name for the port to simplify management. Required if using port 0 for 1:1 port mapping.", "example": "game_port"}}, "type": "object", "additionalProperties": false}, "AppVersionEnv": {"required": ["key", "value"], "properties": {"key": {"type": "string", "description": "The key name for the environment variable to be set in the container.", "example": "MAP_ID"}, "value": {"type": "string", "description": "The value assigned to the specified environment variable key.", "example": "forest1"}, "is_secret": {"type": "boolean", "description": "This will encrypt the value in our database and prevent it from being readable by any external source."}}, "type": "object"}, "AppVersionUpdatePayload": {"properties": {"name": {"type": "string", "description": "This is the identifier for your version. It\u2019s often linked to a build version, but can be any unique name.", "example": "1.0.0", "minLength": 1, "maxLength": 64}, "is_active": {"type": "boolean", "description": "This boolean tells the system whether this version can be deployed or is deactivated.", "example": true}, "req_cpu": {"type": "integer", "description": "The number of vCPU required for this version to run in edgegap unit 1024 units = 1 vCPU.", "example": 512, "minimum": 100}, "req_memory": {"type": "integer", "description": "The amount of memory in MB required for this version to run in MiB unit 1024 MiB = 1 GiB.", "example": 1024, "minimum": 100}, "docker_repository": {"type": "string", "description": "\u2018docker_repository\u2019 is named incorrectly, this property references the Docker registry where this version\u2019s container image is hosted (e.g., \u2018registry.edgegap.com\u2019 or \u2018docker.io\u2019).", "example": "docker.io"}, "docker_image": {"type": "string", "description": "The Docker image for your version, usually including a namespace or project.", "example": "edgegap/lyrastartergame"}, "docker_tag": {"type": "string", "description": "The Docker tag for your version. It must be valid according to your Docker image.", "example": "25.05.30-16.45.19-04"}, "private_username": {"type": "string", "description": "The username used to access your container registry. This is not your Edgegap account credential.", "example": "my_username"}, "private_token": {"type": "string", "description": "The token or password used to access your container registry. This is not your Edgegap account password.", "example": "my_password"}, "max_duration": {"type": ["integer", "null"], "description": "The maximum duration in minutes the app version can run before being automatically stopped. If omitted, the default is 1440 minutes (24 hours).", "example": 30}, "force_cache": {"type": "boolean", "description": "Enable faster deployments by caching your container across all Edgegap locations. Recommended for live games.", "example": true}, "time_to_deploy": {"type": "integer", "description": "Time in seconds to wait for the app version to deploy before marking it as failed. Useful for enforcing strict deployment time limits.", "example": 300, "minimum": 15}, "session_config": {"description": "Parameters for session-based app versions.", "$ref": "#/definitions/AppVersionUpdateSessionConfig"}, "ports": {"type": "array", "items": {"$ref": "#/definitions/AppVersionPort"}}, "envs": {"type": "array", "description": "Environment variables to be set in the container for each deployment.", "items": {"$ref": "#/definitions/AppVersionEnv"}}, "termination_grace_period_seconds": {"type": "integer", "description": "Termination grace period in seconds after sending the SIGTERM signal to the container. Allows graceful shutdown and post-processing before the container stops.", "example": 5, "minimum": 5, "maximum": 3600}, "verify_image": {"type": "boolean", "description": "By enabling the verify_image option, your image infos (docker_repository, docker_image, docker_tag) will be tested.", "default": false, "example": true}, "endpoint_storage": {"type": "string", "description": "The name of the endpoint storage to use to store the container logs at the end of the deployment. This will overwrite the default storage in the app version.", "example": "my-storage"}, "command": {"type": ["string", "null"], "description": "Entrypoint/command override for your container. This replaces the default command and should be used with caution.", "example": "null | 'string'"}, "arguments": {"type": ["string", "null"], "description": "Arguments to pass to the container\u2019s command. This replace the default arguments and should be used with caution", "example": "null | 'string'"}, "dns_config": {"type": "string", "description": "The name of the DNS configuration to link with your deployment."}, "will_deploy_in_mainland_china": {"type": "boolean", "description": "If true, the app version will only be deployed in Mainland China locations. Otherwise, it will never deploy in Mainland China locations.", "default": false}}, "type": "object"}, "AppVersionUpdateSessionConfig": {"properties": {"kind": {"type": "string", "description": "The kind of session to create. If 'Default' if chosen, the application will be handled like a normal application. The kind of session must be: Default, Seat, Match", "example": "Seat", "enum": ["Default", "Seat", "Match"]}, "sockets": {"type": "integer", "description": "With seats, each player in a session occupies one socket slot. With matches, each session occupies one socket slot in the deployment, regardless of the number of players.", "example": 10, "minimum": 1}, "autodeploy": {"type": "boolean", "description": "If the system should automatically creates a deployment of this app version when a session is created and no sockets are available in existing deployments."}, "empty_ttl": {"type": "integer", "description": "The number of minutes a session deployment can remain empty before being automatically terminated. A deployment is considered empty when its socket count is zero.", "example": 60, "minimum": 1}, "session_max_duration": {"type": "integer", "description": "(DEPRECATED)", "minimum": 60}}, "type": "object"}, "AppVersionUpdateResponse": {"properties": {"success": {"type": "boolean", "description": "If the creation happened correctly"}, "version": {"$ref": "#/definitions/AppVersionPayload"}}, "type": "object"}, "AppVersionCreatePayload": {"required": ["docker_image", "docker_repository", "docker_tag", "name", "req_cpu", "req_memory"], "properties": {"name": {"type": "string", "description": "This is the identifier for your version. It\u2019s often linked to a build version, but can be any unique name.", "example": "1.0.0", "minLength": 1, "maxLength": 64}, "is_active": {"type": "boolean", "description": "This boolean tells the system whether this version can be deployed or is deactivated.", "example": true}, "docker_repository": {"type": "string", "description": "\u2018docker_repository\u2019 is named incorrectly, this property references the Docker registry where this version\u2019s container image is hosted (e.g., \u2018registry.edgegap.com\u2019 or \u2018docker.io\u2019).", "example": "docker.io"}, "docker_image": {"type": "string", "description": "The Docker image for your version, usually including a namespace or project.", "example": "edgegap/lyrastartergame"}, "docker_tag": {"type": "string", "description": "The Docker tag for your version. It must be valid according to your Docker image.", "example": "25.05.30-16.45.19-04"}, "private_username": {"type": "string", "description": "The username used to access your container registry. This is not your Edgegap account credential.", "example": "my_username"}, "private_token": {"type": "string", "description": "The token or password used to access your container registry. This is not your Edgegap account password.", "example": "my_password"}, "req_cpu": {"type": "integer", "description": "The number of vCPU units required to run your server container (1024 units = 1 vCPU).", "example": 1536, "minimum": 100}, "req_memory": {"type": "integer", "description": "The amount of memory in MB required to run your server container (1024 MB = 1 GB). It can be at most twice the number of vCPU units requested.", "example": 3072, "minimum": 100}, "req_video": {"type": "integer", "description": "Units of GPU needed (1024 = 1 GPU)", "example": 0, "minimum": 0}, "max_duration": {"type": "integer", "description": "The maximum duration in minutes the app version can run before being automatically stopped. If omitted, the default is 1440 minutes (24 hours).", "example": 30}, "force_cache": {"type": "boolean", "description": "Enable faster deployments by caching your container across all Edgegap locations. Recommended for live games.", "example": true}, "caching_percent": {"type": "number", "description": "Current caching percentage on scale 0-1, with 1 meaning 100% global cache coverage. Values above 0.8 are considered to be a good caching coverage level.", "example": 0.8}, "time_to_deploy": {"type": "integer", "description": "Time in seconds to wait for the app version to deploy before marking it as failed. Useful for enforcing strict deployment time limits.", "example": 300, "minimum": 15}, "session_config": {"description": "Parameters for session-based app versions.", "$ref": "#/definitions/AppVersionCreateSessionConfig"}, "ports": {"type": "array", "items": {"$ref": "#/definitions/AppVersionPort"}}, "envs": {"type": "array", "description": "Environment variables to be set in the container for each deployment.", "items": {"$ref": "#/definitions/AppVersionEnv"}}, "verify_image": {"type": "boolean", "description": "By enabling the verify_image option, your image information (docker_repository, docker_image, docker_tag) will be tested to ensure the image can be pulled successfully.", "default": false, "example": true}, "termination_grace_period_seconds": {"type": "integer", "description": "Termination grace period in seconds after sending the SIGTERM signal to the container. Allows graceful shutdown and post-processing before the container stops.", "example": 5, "minimum": 5, "maximum": 3600}, "endpoint_storage": {"type": "string", "description": "The name of the endpoint storage to use to store the container logs at the end of the deployment. This will overwrite the default storage in the app version.", "example": "my-storage"}, "command": {"type": ["string", "null"], "description": "Entrypoint/command override for your container. This replaces the default command and should be used with caution.", "example": "null | 'string'"}, "arguments": {"type": ["string", "null"], "description": "Arguments to pass to the container\u2019s command. This replace the default arguments and should be used with caution", "example": "null | 'string'"}, "dns_config": {"type": "string", "description": "The name of the DNS configuration to link with your deployment."}, "will_deploy_in_mainland_china": {"type": "boolean", "description": "If true, the app version will only be deployed in Mainland China locations. Otherwise, it will never deploy in Mainland China locations.", "default": false}, "restart_policy": {"type": "string", "description": "The restart policy for the deployment. The default is to always restart unless you terminate the deployment.", "default": "always", "example": "always", "enum": ["always", "never", "on_failure"]}}, "type": "object"}, "AppVersionCreateResponse": {"properties": {"success": {"type": "boolean", "description": "If the creation happened correctly"}, "version": {"$ref": "#/definitions/AppVersionPayload"}}, "type": "object"}, "Applications": {"properties": {"applications": {"type": "array", "items": {"$ref": "#/definitions/Application"}}}, "type": "object"}, "Application": {"required": ["create_time", "is_active", "last_updated", "name"], "properties": {"name": {"type": "string", "description": "Application name", "example": "Example App"}, "is_active": {"type": "boolean", "description": "If the application can be deployed", "example": true}, "is_telemetry_agent_active": {"type": "boolean", "description": "If the telemetry agent is installed on the versions of this app.", "example": false}, "image": {"type": "string", "description": "Image base64 string", "example": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="}, "create_time": {"type": "string", "description": "Creation date", "example": "2026-10-13 20:01:23.587697"}, "last_updated": {"type": "string", "description": "Date of the last update", "example": "2026-10-13 20:01:23.587697"}}, "type": "object"}, "ApplicationPatch": {"properties": {"name": {"type": "string", "description": "Application name", "example": "Example App", "minLength": 3, "maxLength": 64}, "is_active": {"type": "boolean", "description": "If the application can be deployed", "example": true}, "is_telemetry_agent_active": {"type": "boolean", "description": "If the telemetry agent is installed on the versions of this app.", "example": false}, "image": {"type": "string", "description": "Image base64 string", "example": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="}}, "type": "object"}, "ApplicationPost": {"required": ["image", "is_active", "name"], "properties": {"name": {"type": "string", "description": "The application name", "example": "Example App", "minLength": 1, "maxLength": 64}, "is_active": {"type": "boolean", "description": "If the application can be deployed", "example": true}, "is_telemetry_agent_active": {"type": "boolean", "description": "If the telemetry agent is installed on the versions of this app.", "example": false}, "image": {"type": "string", "description": "Image base64 string", "example": "iVBORw0KGgoAAAANSUhEUg[...]AAABJRU5ErkJggg=="}}, "type": "object"}, "Locations": {"properties": {"locations": {"type": "array", "items": {"$ref": "#/definitions/Location"}}, "messages": {"type": "array", "description": "Extra Messages for the query", "example": [""], "items": {"type": "string"}}}, "type": "object"}, "Location": {"required": ["administrative_division", "city", "continent", "country", "latitude", "longitude", "timezone", "type"], "properties": {"city": {"type": "string", "description": "City Name", "example": "Montreal"}, "continent": {"type": "string", "description": "Continent Name", "example": "North America"}, "country": {"type": "string", "description": "Country name", "example": "Canada"}, "timezone": {"type": "string", "description": "Timezone name", "example": "Eastern Time"}, "administrative_division": {"type": "string", "description": "Administrative Division", "example": "Quebec"}, "latitude": {"type": "number", "description": "The Latitude in decimal", "example": "45.3324097"}, "longitude": {"type": "number", "description": "The Longitude in decimal", "example": "-73.2693626"}, "type": {"type": "string", "description": "The type of location", "example": "standard"}, "tags": {"type": "array", "items": {"$ref": "#/definitions/Tag"}}}, "type": "object"}, "Tag": {"required": ["key", "value"], "properties": {"key": {"type": "string", "description": "Tag's Key", "example": "key"}, "value": {"type": "string", "description": "Tag's Value", "example": "value"}}, "type": "object"}, "LocationBeaconList": {"properties": {"locations": {"type": "array", "description": "Total number of active location beacons", "items": {"$ref": "#/definitions/api-model-locationbeacon"}}, "count": {"type": "integer", "description": "List of active location beacons", "example": 1}}, "type": "object"}, "api-model-locationbeacon": {"required": ["host", "location"], "properties": {"host": {"type": "string", "description": "The URL of the pingable location."}, "fqdn": {"type": "string", "description": "Auto Generated Field for fqdn"}, "udp_port": {"type": "integer", "description": "The open UDP port number for UDP pings, if available."}, "tcp_port": {"type": "integer", "description": "The open TCP port number for TCP pings, if available."}, "location": {"$ref": "#/definitions/api-model-location"}}, "type": "object"}, "api-model-location": {"required": ["administrative_division", "city", "continent", "country", "latitude", "longitude", "timezone"], "properties": {"city": {"type": "string", "description": "City of the object"}, "country": {"type": "string", "description": "Country of the object"}, "continent": {"type": "string", "description": "Continent of the object"}, "administrative_division": {"type": "string", "description": "Administrative division of the object"}, "timezone": {"type": "string", "description": "Timezone of the object"}, "latitude": {"type": "number", "description": "Latitude of the object"}, "longitude": {"type": "number", "description": "Longitude of the object"}}, "type": "object"}, "SessionBulkStopPayload": {"required": ["filters"], "properties": {"filters": {"type": "array", "description": "Filters used to match with sessions", "items": {"$ref": "#/definitions/SessionBulkStopFiltersPayload"}}}, "type": "object"}, "SessionBulkStopFiltersPayload": {"required": ["field", "filter_type", "values"], "properties": {"field": {"type": "string", "description": "The field on which to apply the filter", "example": "session_id", "enum": ["session_id", "deployment_tags", "request_id"]}, "values": {"type": "array", "description": "Values that will be used for the filter", "example": ["session-1", "session-2"], "items": {"type": "string"}}, "filter_type": {"type": "string", "description": "Types of filter used. Possible values are: ['any', 'all', 'not']", "example": "any", "enum": ["any", "all", "not"]}}, "type": "object"}, "SessionBulkStopResponse": {"required": ["processable"], "properties": {"processable": {"type": "array", "description": "A list sessions that can be processed to be stopped", "items": {"$ref": "#/definitions/SessionStopResponse"}}}, "type": "object"}, "SessionStopResponse": {"required": ["session_id"], "properties": {"session_id": {"type": "string", "description": "The id of the request for a deployment", "example": "session-1"}}, "type": "object"}, "SessionGet": {"required": ["app_version", "create_time", "elapsed", "kind", "linked", "ready", "session_id", "status", "user_count"], "properties": {"session_id": {"type": "string", "description": "Unique UUID", "example": "abc123-s"}, "custom_id": {"type": "string", "description": "Custom ID if Available", "example": "custom-abc123"}, "status": {"type": "string", "description": "Current status of the session", "example": "Ready"}, "ready": {"type": "boolean", "description": "If the session is linked to a ready deployment", "example": true}, "linked": {"type": "boolean", "description": "If the session is linked to a deployment", "example": true}, "kind": {"type": "string", "description": "Type of session created", "example": "Seat"}, "user_count": {"type": "integer", "description": "Count of user this session currently have", "example": "10"}, "app_version": {"type": "integer", "description": "App version linked to the session"}, "create_time": {"type": "string", "description": "Session created at", "example": "2026-10-13 20:01:23.587697"}, "elapsed": {"type": "integer", "description": "Elapsed time"}, "error": {"type": "string", "description": "Error Detail"}, "session_users": {"type": "array", "description": "Users in the session", "items": {"$ref": "#/definitions/SessionUser"}}, "session_ips": {"type": "array", "description": "IPS in the session", "items": {"$ref": "#/definitions/SessionUser"}}, "deployment": {"$ref": "#/definitions/Deployment"}, "webhook_url": {"type": "string", "description": "When your Session is Linked, Unprocessable or in Error, we will POST the session's details on the webhook_url ", "example": "https://webhook.com"}}, "type": "object"}, "SessionUser": {"required": ["ip"], "properties": {"ip": {"type": "string", "description": "Ip of the user connected to the Session", "example": "1.2.3.4"}, "latitude": {"type": "number", "description": "Latitude"}, "longitude": {"type": "number", "description": "Longitude"}}, "type": "object"}, "Deployment": {"required": ["fqdn", "public_ip", "ready", "request_id", "status", "whitelisting_active"], "properties": {"request_id": {"type": "string", "description": "Unique UUID", "example": "abc123"}, "public_ip": {"type": "string", "description": "The public IP", "example": "100.10.0.85"}, "status": {"type": "string", "description": "Current status of Deployment", "example": "Status.READY"}, "ready": {"type": "boolean", "description": "if the deployment is ready", "example": true}, "whitelisting_active": {"type": "boolean", "description": "if the deployment ACL is active", "example": true}, "fqdn": {"type": "string", "description": "", "example": "abc123.test.edgegap.com"}, "ports": {"type": "object", "example": {"web": {"external": 31587, "internal": 8080, "protocol": "http", "name": "web", "tls_upgrade": true, "link": "https://example.com:31587", "proxy": 65001}, "7777": {"external": 31669, "internal": 7777, "protocol": "UDP", "name": "7777", "tls_upgrade": false, "link": "example.com:31669", "proxy": 65002}}, "additionalProperties": {"$ref": "#/definitions/PortMapping"}}, "location": {"description": "Location related information", "$ref": "#/definitions/DeploymentLocation"}, "tags": {"type": "array", "description": "List of tags associated with the deployment", "items": {"type": "string", "example": "production"}}, "sockets": {"type": "integer", "description": "The Capacity of the Deployment", "example": "5"}, "sockets_usage": {"type": "integer", "description": "The Capacity Usage of the Deployment", "example": "2"}, "is_joinable_by_session": {"type": "boolean", "description": "If the deployment is joinable by sessions"}}, "type": "object"}, "SessionDelete": {"required": ["message", "session_id"], "properties": {"message": {"type": "string", "description": "A message depending of the request termination", "example": "Instance 93924761ccde will be deleted"}, "session_id": {"type": "string", "description": "The Unique Identifier of the Session", "example": "abc123-s"}, "custom_id": {"type": "string", "description": "Custom ID if Available", "example": "custom-abc123"}}, "type": "object"}, "SessionModel": {"required": ["app_name"], "properties": {"app_name": {"type": "string", "description": "The Name of the App you want to deploy, example: \n\n\tsupermario", "example": "demo"}, "version_name": {"type": "string", "description": "The Name of the App Version you want to deploy, example: \n\n\tv1.0", "example": "v1.0"}, "ip_list": {"type": "array", "description": "The List of IP of your user, Array of String, example: \n\n\t [\"162.254.103.13\",\"198.12.116.39\", \"162.254.135.39\", \"162.254.129.34\"]", "example": ["1.1.1.1"], "items": {"type": "string", "example": "1.2.3.4"}}, "geo_ip_list": {"type": "array", "description": "The list of IP of your user with their location (latitude, longitude)", "items": {"$ref": "#/definitions/GeoIpListModel"}}, "deployment_request_id": {"type": "string", "description": "The request id of your deployment. If specified, the session will link to the deployment", "example": "c0653765de3b"}, "location": {"description": "If you want to specify a centroid for your session.", "$ref": "#/definitions/LocationModel"}, "city": {"type": "string", "description": "If you want your session in a specific city", "example": "Montreal"}, "country": {"type": "string", "description": "If you want your session in a specific country", "example": "Canada"}, "continent": {"type": "string", "description": "If you want your session in a specific continent", "example": "North America"}, "administrative_division": {"type": "string", "description": "If you want your session in a specific administrative division", "example": "Quebec"}, "region": {"type": "string", "description": "If you want your session in a specific region", "example": "North America"}, "selectors": {"type": "array", "description": "List of Selectors to filter potential Deployment to link and tag the Session", "items": {"$ref": "#/definitions/SelectorModel"}}, "webhook_url": {"type": "string", "description": "When your Session is Linked, Unprocessable or in Error, we will POST the session's details on the webhook_url ", "example": "https://webhook.com"}, "filters": {"type": "array", "description": "List of location filters to apply to the session", "items": {"$ref": "#/definitions/SessionFilterModel"}}, "skip_telemetry": {"type": "boolean", "description": "If system should skip the telemetry and use GeoBase decision only"}}, "type": "object"}, "SelectorModel": {"required": ["tag"], "properties": {"tag": {"type": "string", "description": "The Tag to filter potential Deployment with this Selector", "example": "tag", "minLength": 1, "maxLength": 40}, "tag_only": {"type": "boolean", "description": "If True, will not try to filter Deployment and only tag the Session", "default": false}, "env": {"description": "Environment Variable to inject in new Deployment created by App Version with auto-deploy", "allOf": [{"$ref": "#/definitions/SelectorEnvModel"}]}}, "type": "object"}, "SelectorEnvModel": {"required": ["key", "value"], "properties": {"key": {"type": "string", "description": "The Key to inject in the Deployment Environment Variable for this Selector", "example": "KEY", "minLength": 1, "maxLength": 255}, "value": {"type": "string", "description": "The Value to inject in the Deployment Environment Variable for this Selector", "example": "VALUE", "minLength": 1, "maxLength": 1024}}, "type": "object"}, "SessionFilterModel": {"required": ["field", "filter_type", "values"], "properties": {"field": {"type": "string", "description": "The field to filter", "example": "city"}, "values": {"type": "array", "description": "The values to filter", "example": ["Montreal"], "items": {"type": "string"}}, "filter_type": {"type": "string", "description": "The type of filter", "example": "any", "enum": ["any", "all", "not"]}}, "type": "object"}, "SessionRequest": {"required": ["app", "session_id", "version"], "properties": {"session_id": {"type": "string", "description": "The Unique Identifier of the Session", "example": "abc123-s"}, "custom_id": {"type": "string", "description": "Custom ID if Available", "example": "custom-abc123"}, "app": {"type": "string", "description": "The Name of the App you requested", "example": "demo"}, "version": {"type": "string", "description": "The name of the App Version you requested", "example": "v1.0"}, "deployment_request_id": {"type": "string", "description": "Unique UUID"}, "selectors": {"type": "array", "description": "List of Selectors to filter potential Deployment to link and tag the Session", "items": {"$ref": "#/definitions/SelectorModel"}}, "webhook_url": {"type": "string", "description": "When your Session is Linked, Unprocessable or in Error, we will POST the session's details on the webhook_url "}}, "type": "object"}, "PatchSessionModel": {"required": ["ip_list"], "properties": {"ip_list": {"type": "array", "description": "The List of IP of your user, Array of String, example: \n\n\t [\"162.254.103.13\",\"198.12.116.39\", \"162.254.135.39\", \"162.254.129.34\"]", "items": {"type": "string", "example": "1.2.3.4"}}}, "type": "object"}, "SessionUserContext": {"required": ["session_users"], "properties": {"session_users": {"type": "array", "description": "Users in the session", "items": {"$ref": "#/definitions/SessionUser"}}}, "type": "object"}, "Sessions": {"properties": {"data": {"type": "array", "description": "List of Active Sessions", "items": {"$ref": "#/definitions/SessionContext"}}, "total_count": {"type": "integer", "description": "Total Session in the Database"}, "pagination": {"description": "Pagination Object", "$ref": "#/definitions/Pagination"}}, "type": "object"}, "SessionContext": {"required": ["kind", "linked", "ready", "session_id", "status", "user_count"], "properties": {"session_id": {"type": "string", "description": "Unique UUID", "example": "abc123-s"}, "custom_id": {"type": "string", "description": "Custom ID if Available", "example": "custom-abc123"}, "status": {"type": "string", "description": "Current status of the session", "example": "Status.READY"}, "ready": {"type": "boolean", "description": "If the session is linked to a Ready deployment", "example": true}, "linked": {"type": "boolean", "description": "If the session is linked to a deployment", "example": true}, "kind": {"type": "string", "description": "Type of session created", "example": "DEFAULT | SEATS | MATCH"}, "user_count": {"type": "integer", "description": "Count of user this session currently have", "example": "10"}, "deployment_request_id": {"type": "string", "description": "Unique UUID", "example": "abc123"}, "webhook_url": {"type": "string", "description": "When your Session is Linked, Unprocessable or in Error, we will POST the session's details on the webhook_url ", "example": "https://webhook.com"}}, "type": "object"}, "MetricsResponse": {"properties": {"total": {"$ref": "#/definitions/TotalMetricsModel"}, "cpu": {"$ref": "#/definitions/MetricsModel"}, "cpu_throttle_rate": {"$ref": "#/definitions/MetricsModel"}, "cpu_throttle_total": {"$ref": "#/definitions/MetricsModel"}, "mem": {"$ref": "#/definitions/MetricsModel"}, "network": {"$ref": "#/definitions/NetworkMetricsModel"}}, "type": "object"}, "TotalMetricsModel": {"properties": {"receive_total": {"$ref": "#/definitions/MetricsModel"}, "transmit_total": {"$ref": "#/definitions/MetricsModel"}, "disk_read_total": {"$ref": "#/definitions/MetricsModel"}, "disk_write_total": {"$ref": "#/definitions/MetricsModel"}}, "type": "object"}, "MetricsModel": {"properties": {"labels": {"type": "array", "items": {"type": "string", "example": "00:00:00"}}, "datasets": {"type": "array", "items": {"type": "number", "example": "2458"}}, "timestamps": {"type": "array", "items": {"type": "string", "format": "date", "example": "2021-07-14 14:17:37.711"}}}, "type": "object"}, "NetworkMetricsModel": {"properties": {"receive": {"$ref": "#/definitions/MetricsModel"}, "transmit": {"$ref": "#/definitions/MetricsModel"}}, "type": "object"}, "IPAddressResponse": {"required": ["public_ip"], "properties": {"public_ip": {"type": "string", "description": "Public IP Address", "example": "174.91.204.75"}}, "type": "object"}, "IPAddressLookupResponse": {"required": ["ip_address"], "properties": {"type": {"type": "string", "description": "IP address type", "example": "IPv4"}, "ip_address": {"type": "string", "description": "IP address", "example": "1.1.1.1"}, "location": {"$ref": "#/definitions/IPAddressLookupLocation"}}, "type": "object"}, "IPAddressLookupLocation": {"properties": {"continent": {"$ref": "#/definitions/IPAddressLookupLocationContinent"}, "country": {"$ref": "#/definitions/IPAddressLookupLocationCountry"}, "latitude": {"type": "number", "description": "Latitude", "example": "45.4215"}, "longitude": {"type": "number", "description": "Longitude", "example": "-75.6972"}}, "type": "object"}, "IPAddressLookupLocationContinent": {"properties": {"code": {"type": "string", "description": "Continent code", "example": "AF"}, "name": {"type": "string", "description": "Continent name", "example": "Africa"}}, "type": "object"}, "IPAddressLookupLocationCountry": {"properties": {"code": {"type": "string", "description": "Country code", "example": "CA"}, "name": {"type": "string", "description": "Country name", "example": "Canada"}}, "type": "object"}, "IPAddressesLookupPayload": {"required": ["addresses"], "properties": {"addresses": {"type": "array", "description": "IP Addresses", "example": ["1.1.1.1"], "items": {"type": "string"}}}, "type": "object"}, "IPAddressesLookupResponse": {"required": ["addresses"], "properties": {"addresses": {"type": "array", "description": "IP Addresses", "items": {"$ref": "#/definitions/IPAddressLookupResponse"}}}, "type": "object"}, "FleetPoliciesGetResponse": {"required": ["data", "enabled", "maximum", "minimum", "name", "threshold", "type"], "properties": {"name": {"type": "string", "description": "Name of the Policy", "example": "policy_name"}, "enabled": {"type": "boolean", "description": "If the Policy is enabled. Defaults to true.", "example": true}, "type": {"type": "string", "description": "Type of the Policy. See our documentation for more information on the type and it's data.", "example": "Location", "enum": ["Location", "Tag", "Coordinates"]}, "minimum": {"type": "integer", "description": "Minimum deployments at all time", "example": 1, "minimum": 1}, "maximum": {"type": "integer", "description": "Maximum deployments for the provided type.", "example": 1, "minimum": 1}, "threshold": {"type": "number", "description": "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.", "default": 0.9, "minimum": 0.1, "maximum": 1}, "data": {"type": "object", "description": "JSON object for your filters. See our documentation for more information.", "example": {"filters": [{"field": "city", "values": ["Montreal"], "filter_type": "any"}]}}, "create_time": {"type": "string", "description": "UTC time of policy creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of policy last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "HorizontalScalerConstraintList": {"properties": {"policies": {"type": "array", "items": {"$ref": "#/definitions/FleetPoliciesGetResponse"}}, "pagination": {"description": "Pagination Object", "$ref": "#/definitions/Pagination"}}, "type": "object"}, "FleetPoliciesPatchPayload": {"properties": {"name": {"type": "string", "description": "Name of the Policy", "example": "policy_name"}, "enabled": {"type": "boolean", "description": "If the Policy is enabled. Defaults to true.", "example": true}, "type": {"type": "string", "description": "Type of the Policy. See our documentation for more information on the type and it's data.", "example": "Location", "enum": ["Location", "Tag", "Coordinates"]}, "minimum": {"type": "integer", "description": "Minimum deployments at all time", "example": 1, "minimum": 0}, "maximum": {"type": "integer", "description": "Maximum deployments for the provided type.", "example": 1, "minimum": 1}, "threshold": {"type": "number", "description": "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.", "example": 0.9, "minimum": 0.1, "maximum": 1}, "data": {"type": "object", "description": "JSON object for your filters. See our documentation for more information.", "example": {"filters": [{"field": "city", "values": ["Montreal"], "filter_type": "any"}]}}, "create_time": {"type": "string", "description": "UTC time of policy creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of policy last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "FleetPoliciesPostPayload": {"required": ["data", "enabled", "maximum", "minimum", "name", "threshold", "type"], "properties": {"name": {"type": "string", "description": "Name of the Policy", "example": "policy_name"}, "enabled": {"type": "boolean", "description": "If the Policy is enabled. Defaults to true.", "example": true}, "type": {"type": "string", "description": "Type of the Policy. See our documentation for more information on the type and it's data.", "example": "Location", "enum": ["Location", "Tag", "Coordinates"]}, "minimum": {"type": "integer", "description": "Minimum deployments at all time", "example": 1, "minimum": 1}, "maximum": {"type": "integer", "description": "Maximum deployments for the provided type.", "example": 1, "minimum": 1}, "threshold": {"type": "number", "description": "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.", "default": 0.9, "minimum": 0.1, "maximum": 1}, "data": {"type": "object", "description": "JSON object for your filters. See our documentation for more information.", "example": {"filters": [{"field": "city", "values": ["Montreal"], "filter_type": "any"}]}}}, "type": "object"}, "FleetPoliciesPostResponse": {"required": ["data", "enabled", "maximum", "minimum", "name", "threshold", "type"], "properties": {"name": {"type": "string", "description": "Name of the Policy", "example": "policy_name"}, "enabled": {"type": "boolean", "description": "If the Policy is enabled. Defaults to true.", "example": true}, "type": {"type": "string", "description": "Type of the Policy. See our documentation for more information on the type and it's data.", "example": "Location", "enum": ["Location", "Tag", "Coordinates"]}, "minimum": {"type": "integer", "description": "Minimum deployments at all time", "example": 1, "minimum": 1}, "maximum": {"type": "integer", "description": "Maximum deployments for the provided type.", "example": 1, "minimum": 1}, "threshold": {"type": "number", "description": "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.", "default": 0.9, "minimum": 0.1, "maximum": 1}, "data": {"type": "object", "description": "JSON object for your filters. See our documentation for more information.", "example": {"filters": [{"field": "city", "values": ["Montreal"], "filter_type": "any"}]}}, "create_time": {"type": "string", "description": "UTC time of policy creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of policy last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "FleetDeleteResponse": {"required": ["message"], "properties": {"message": {"type": "string", "description": "Success Message"}}, "type": "object"}, "FleetGetResponse": {"required": ["name"], "properties": {"name": {"type": "string", "description": "Name of the Fleet", "example": "fleet_name"}, "enabled": {"type": "boolean", "description": "If the Fleet is enabled. Defaults to false.", "default": false}, "create_time": {"type": "string", "description": "UTC time of fleet creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of fleet last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "HorizontalScalerAppVersionLink": {"required": ["app", "app_version", "fleet"], "properties": {"app": {"type": "string", "description": "Name of the linked app of the linked version", "example": "app_name"}, "app_version": {"type": "string", "description": "Name of the linked app version.", "example": "version_name"}, "fleet": {"type": "string", "description": "Name of the fleet the app version is linked to.", "example": "fleet_name"}, "create_time": {"type": "string", "description": "UTC time of link creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of link last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "FleetList": {"properties": {"fleets": {"type": "array", "description": "List of Fleets", "items": {"$ref": "#/definitions/FleetGetResponse"}}, "pagination": {"description": "Pagination Object", "$ref": "#/definitions/Pagination"}}, "type": "object"}, "FleetPatchPayload": {"properties": {"name": {"type": "string", "description": "Name of the Fleet", "example": "fleet_name"}, "enabled": {"type": "boolean", "description": "If the Fleet is enabled"}}, "type": "object"}, "FleetPatchResponse": {"properties": {"name": {"type": "string", "description": "Name of the Fleet", "example": "fleet_name"}, "enabled": {"type": "boolean", "description": "If the Fleet is enabled"}, "create_time": {"type": "string", "description": "UTC time of fleet creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of fleet last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "FleetPostPayload": {"required": ["name"], "properties": {"name": {"type": "string", "description": "Name of the Fleet", "example": "fleet_name"}, "enabled": {"type": "boolean", "description": "If the Fleet is enabled. Defaults to false.", "default": false}}, "type": "object"}, "FleetPostResponse": {"required": ["name"], "properties": {"name": {"type": "string", "description": "Name of the Fleet", "example": "fleet_name"}, "enabled": {"type": "boolean", "description": "If the Fleet is enabled. Defaults to false.", "default": false}, "create_time": {"type": "string", "description": "UTC time of fleet creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of fleet last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "EndpointStorageGetResponse": {"required": ["access_key_id", "bucket", "endpoint", "name"], "properties": {"name": {"type": "string", "description": "Name of the Endpoint Storage", "example": "my-s3-endpoint"}, "access_key_id": {"type": "string", "description": "Your access key ID to connect to your S3 Bucket.", "example": "my-access-key-id"}, "endpoint": {"type": "string", "description": "Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain", "example": "https://us-east-1.your-s3-provider.com"}, "bucket": {"type": "string", "description": "Your secret access key to connect to your S3 Bucket. Will be encrypted.", "example": "my-bucket"}, "output_format": {"type": "string", "description": "The format how the logs will be exported to the bucket.", "default": "TEXT", "example": "NDJSON", "enum": ["TEXT", "NDJSON"]}, "create_time": {"type": "string", "description": "UTC time of endpoint storage creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of endpoint storage last update", "example": "2022-01-01 00:00:00.000000"}, "container_log_version": {"type": "string", "description": "Log pipeline version (`v1` or `v2`).", "example": "v1", "enum": ["v1", "v2"]}}, "type": "object"}, "EndpointStorageListResponse": {"properties": {"endpoints": {"type": "array", "items": {"$ref": "#/definitions/EndpointStorageGetResponse"}}, "pagination": {"description": "Pagination Object", "$ref": "#/definitions/Pagination"}}, "type": "object"}, "EndpointStoragePatchPayload": {"properties": {"name": {"type": "string", "description": "Name of the Endpoint Storage", "example": "my-s3-endpoint"}, "access_key_id": {"type": "string", "description": "Your access key ID to connect to your S3 Bucket.", "example": "my-access-key-id"}, "endpoint": {"type": "string", "description": "Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain", "example": "https://us-east-1.your-s3-provider.com"}, "bucket": {"type": "string", "description": "Your secret access key to connect to your S3 Bucket. Will be encrypted.", "example": "my-bucket"}, "output_format": {"type": "string", "description": "The format how the logs will be exported to the bucket.", "default": "TEXT", "example": "NDJSON", "enum": ["TEXT", "NDJSON"]}, "container_log_version": {"type": "string", "description": "Log pipeline version. `v1` stores a single file per deployment at the end of the run. `v2` uses a streaming pipeline that writes chunked logs to S3 in real time.", "example": "v1", "enum": ["v1", "v2"]}, "secret_access_key": {"type": "string", "description": "Your secret access key to connect to your S3 Bucket. Will be encrypted.", "example": "my-secret-access"}}, "type": "object"}, "EndpointStoragePatchResponse": {"properties": {"name": {"type": "string", "description": "Name of the Endpoint Storage", "example": "my-s3-endpoint"}, "access_key_id": {"type": "string", "description": "Your access key ID to connect to your S3 Bucket.", "example": "my-access-key-id"}, "endpoint": {"type": "string", "description": "Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain", "example": "https://us-east-1.your-s3-provider.com"}, "bucket": {"type": "string", "description": "Your secret access key to connect to your S3 Bucket. Will be encrypted.", "example": "my-bucket"}, "output_format": {"type": "string", "description": "The format how the logs will be exported to the bucket.", "default": "TEXT", "example": "NDJSON", "enum": ["TEXT", "NDJSON"]}, "container_log_version": {"type": "string", "description": "Log pipeline version. `v1` stores a single file per deployment at the end of the run. `v2` uses a streaming pipeline that writes chunked logs to S3 in real time.", "example": "v1", "enum": ["v1", "v2"]}, "create_time": {"type": "string", "description": "UTC time of endpoint storage creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of endpoint storage last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "EndpointStoragePostPayload": {"required": ["access_key_id", "bucket", "endpoint", "name", "secret_access_key"], "properties": {"name": {"type": "string", "description": "Name of the Endpoint Storage", "example": "my-s3-bucket"}, "access_key_id": {"type": "string", "description": "Your access key ID to connect to your S3 Bucket.", "example": "my-access-key-id"}, "endpoint": {"type": "string", "description": "Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain", "example": "https://us-east-1.your-s3-provider.com"}, "bucket": {"type": "string", "description": "Your secret access key to connect to your S3 Bucket. Will be encrypted.", "example": "my-bucket"}, "output_format": {"type": "string", "description": "The format how the logs will be exported to the bucket.", "default": "TEXT", "example": "NDJSON", "enum": ["TEXT", "NDJSON"]}, "container_log_version": {"type": "string", "description": "Log pipeline version. `v1` (default) stores a single file per deployment at the end of the run. `v2` uses a streaming pipeline that writes chunked logs to S3 in real time.", "default": "v1", "example": "v1", "enum": ["v1", "v2"]}, "secret_access_key": {"type": "string", "description": "Your secret access key to connect to your S3 Bucket. Will be encrypted.", "example": "my-secret-access"}}, "type": "object"}, "EndpointStoragePostResponse": {"required": ["access_key_id", "bucket", "endpoint", "name"], "properties": {"name": {"type": "string", "description": "Name of the Endpoint Storage", "example": "my-s3-bucket"}, "access_key_id": {"type": "string", "description": "Your access key ID to connect to your S3 Bucket.", "example": "my-access-key-id"}, "endpoint": {"type": "string", "description": "Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain", "example": "https://us-east-1.your-s3-provider.com"}, "bucket": {"type": "string", "description": "Your secret access key to connect to your S3 Bucket. Will be encrypted.", "example": "my-bucket"}, "output_format": {"type": "string", "description": "The format how the logs will be exported to the bucket.", "default": "TEXT", "example": "NDJSON", "enum": ["TEXT", "NDJSON"]}, "container_log_version": {"type": "string", "description": "Log pipeline version. `v1` (default) stores a single file per deployment at the end of the run. `v2` uses a streaming pipeline that writes chunked logs to S3 in real time.", "default": "v1", "example": "v1", "enum": ["v1", "v2"]}, "create_time": {"type": "string", "description": "UTC time of endpoint creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of endpoint last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "PullProfileAppVersionLinkResponse": {"required": ["app", "app_version", "endpoint", "pull_profile"], "properties": {"app": {"type": "string", "description": "Name of the linked app of the linked version", "example": "app_name"}, "app_version": {"type": "string", "description": "Name of the linked app version.", "example": "version_name"}, "endpoint": {"type": "string", "description": "Name of the endpoint storage", "example": "endpoint_name"}, "pull_profile": {"type": "string", "description": "Name of the pull profile the app version is linked to.", "example": "pull_profile_name"}, "create_time": {"type": "string", "description": "UTC time of link creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of link last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "PullProfileGetResponse": {"required": ["destination", "name", "source", "source_type"], "properties": {"name": {"type": "string", "description": "Name of the pull profile", "example": "pull_profile_name"}, "source": {"type": "string", "description": "Source in the S3 bucket to fetch from", "example": "/my-bucket/config.cfg"}, "source_type": {"type": "string", "description": "If the source is a File or a Directory", "example": "File", "enum": ["File", "Folder"]}, "destination": {"type": "string", "description": "Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder.", "example": "/usr/share/configs"}, "create_time": {"type": "string", "description": "UTC time of pull profile creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of pull profile last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "PullProfilesListResponse": {"properties": {"pull_profiles": {"type": "array", "items": {"$ref": "#/definitions/PullProfileGetResponse"}}, "pagination": {"description": "Pagination Object", "$ref": "#/definitions/Pagination"}}, "type": "object"}, "PullProfilePatchPayload": {"properties": {"name": {"type": "string", "description": "Name of the pull profile", "example": "pull_profile_name"}, "source": {"type": "string", "description": "Source in the S3 bucket to fetch from", "example": "/my-bucket/config.cfg"}, "source_type": {"type": "string", "description": "If the source is a File or a Directory", "example": "File", "enum": ["File", "Folder"]}, "destination": {"type": "string", "description": "Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder.", "example": "/usr/share/configs"}}, "type": "object"}, "PulloProfilePatchResponse": {"properties": {"name": {"type": "string", "description": "Name of the pull profile", "example": "pull_profile_name"}, "source": {"type": "string", "description": "Source in the S3 bucket to fetch from", "example": "/my-bucket/config.cfg"}, "source_type": {"type": "string", "description": "If the source is a File or a Directory", "example": "File", "enum": ["File", "Folder"]}, "destination": {"type": "string", "description": "Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder.", "example": "/usr/share/configs"}, "create_time": {"type": "string", "description": "UTC time of pull profile creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of pull profile last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "PullProfilePostPayload": {"required": ["destination", "name", "source", "source_type"], "properties": {"name": {"type": "string", "description": "Name of the pull profile", "example": "pull_profile_name"}, "source": {"type": "string", "description": "Source in the S3 bucket to fetch from", "example": "/my-bucket/config.cfg"}, "source_type": {"type": "string", "description": "If the source is a File or a Directory", "example": "File", "enum": ["File", "Folder"]}, "destination": {"type": "string", "description": "Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder.", "example": "/usr/share/configs"}}, "type": "object"}, "PullProfilePostResponse": {"required": ["destination", "name", "source", "source_type"], "properties": {"name": {"type": "string", "description": "Name of the pull profile", "example": "pull_profile_name"}, "source": {"type": "string", "description": "Source in the S3 bucket to fetch from", "example": "/my-bucket/config.cfg"}, "source_type": {"type": "string", "description": "If the source is a File or a Directory", "example": "File", "enum": ["File", "Folder"]}, "destination": {"type": "string", "description": "Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder.", "example": "/usr/share/configs"}, "create_time": {"type": "string", "description": "UTC time of pull profile creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of pull profile last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "RelaySessionCreatePayload": {"required": ["users"], "properties": {"users": {"type": "array", "description": "List of IP Addresses of session users", "minItems": 1, "items": {"$ref": "#/definitions/RelaySessionUser"}}, "filters": {"type": "array", "description": "List of location filters to apply to the session", "items": {"$ref": "#/definitions/RelayFilterModel"}}, "webhook_url": {"type": "string", "description": "URL to send the session data to", "example": "https://my-webhook.com/dump"}}, "type": "object"}, "RelaySessionUser": {"required": ["ip"], "properties": {"ip": {"type": "string", "description": "IP Address of session user", "example": "1.1.1.1"}}, "type": "object", "additionalProperties": false}, "RelayFilterModel": {"required": ["field", "filter_type", "values"], "properties": {"field": {"type": "string", "description": "The field to filter", "example": "location"}, "values": {"type": "array", "description": "The values to filter", "example": ["US"], "items": {"type": "string"}}, "filter_type": {"type": "string", "description": "The type of filter", "example": "any", "enum": ["any", "all", "not"]}}, "type": "object"}, "RelaySessionBaseResponse": {"required": ["linked", "ready", "session_id", "status"], "properties": {"session_id": {"type": "string", "description": "The session ID", "example": "7349356945f1-S"}, "authorization_token": {"type": "integer", "description": "The authorization token for the session", "example": 3500589645}, "status": {"type": "string", "description": "The status of the session", "example": "READY"}, "ready": {"type": "boolean", "description": "If the session is ready to be used"}, "linked": {"type": "boolean", "description": "If the session is linked to a relay"}, "error": {"type": "string", "description": "The error message if the session failed", "example": "Session failed"}, "session_users": {"type": "array", "description": "List Session Users", "items": {"$ref": "#/definitions/RelaySessionUserResponse"}}, "relay": {"description": "The relay details the session is linked to", "allOf": [{"$ref": "#/definitions/RelayResponse"}]}, "webhook_url": {"type": "string", "description": "The webhook URL that we will call once the session is ready", "example": "https://my-webhook.com/dump"}}, "type": "object"}, "RelaySessionUserResponse": {"properties": {"ip_address": {"type": "string", "description": "The IP Address of the user", "example": "1.1.1.1"}, "latitude": {"type": "number", "description": "The latitude of the user", "example": 45.5088}, "longitude": {"type": "number", "description": "The longitude of the user", "example": -73.5878}, "authorization_token": {"type": "integer", "description": "The authorization token of the user", "example": 21986334}}, "type": "object"}, "RelayResponse": {"properties": {"ip": {"type": "string", "description": "The IP Address of the relay", "example": "2.2.2.2"}, "host": {"type": "string", "description": "The host of the relay", "example": "7349356945f1.st.edgegap.net"}, "ports": {"$ref": "#/definitions/MappedPortResponse"}}, "type": "object"}, "MappedPortResponse": {"properties": {"server": {"$ref": "#/definitions/ServerRelayPort"}, "client": {"$ref": "#/definitions/ClientRelayPort"}}, "type": "object"}, "ServerRelayPort": {"properties": {"port": {"type": "integer", "description": "The port number", "example": 32000}, "protocol": {"type": "string", "description": "The protocol of the port", "example": "UDP"}, "link": {"type": "string", "description": "The link to the port", "example": "7349356945f1.st.edgegap.net:32000"}}, "type": "object"}, "ClientRelayPort": {"properties": {"port": {"type": "integer", "description": "The port number", "example": 32001}, "protocol": {"type": "string", "description": "The protocol of the port", "example": "UDP"}, "link": {"type": "string", "description": "The link to the port", "example": "7349356945f1.st.edgegap.net:32001"}}, "type": "object"}, "RelaySessionListResponse": {"properties": {"sessions": {"type": "array", "description": "List of relay sessions", "items": {"$ref": "#/definitions/RelaySessionBaseResponse"}}, "pagination": {"description": "Pagination Object", "$ref": "#/definitions/Pagination"}}, "type": "object"}, "RelayUserAuthorizePayload": {"required": ["session_id", "user_ip"], "properties": {"session_id": {"type": "string", "description": "Session Request ID (ex: 0724828881e2-S)", "example": "0724828881e2-S"}, "user_ip": {"type": "string", "description": "User Ip to Authorize", "example": "1.1.1.1"}}, "type": "object"}, "RelaySessionUserBaseResponse": {"required": ["linked", "ready", "session_id", "status"], "properties": {"session_id": {"type": "string", "description": "The session ID", "example": "7349356945f1-S"}, "authorization_token": {"type": "integer", "description": "The authorization token for the session", "example": 3500589645}, "status": {"type": "string", "description": "The status of the session", "example": "READY"}, "ready": {"type": "boolean", "description": "If the session is ready to be used"}, "linked": {"type": "boolean", "description": "If the session is linked to a relay"}, "error": {"type": "string", "description": "The error message if the session failed", "example": "Session failed"}, "session_user": {"description": "List Session Users", "allOf": [{"$ref": "#/definitions/RelaySessionUserResponse"}]}, "relay": {"description": "The relay details the session is linked to", "allOf": [{"$ref": "#/definitions/RelayResponse"}]}, "webhook_url": {"type": "string", "description": "The webhook URL that we will call once the session is ready", "example": "https://my-webhook.com/dump"}}, "type": "object"}, "RelayUserRevokePayload": {"required": ["authorization_token", "session_id"], "properties": {"session_id": {"type": "string", "description": "Session Request ID (ex: 0724828881e2-S)", "example": "0724828881e2-S"}, "authorization_token": {"type": "integer", "description": "Relay Authorization Token", "example": 3500589645}}, "type": "object"}, "DeploymentTagPayload": {"required": ["name"], "properties": {"name": {"type": "string", "description": "The name of the tag", "example": "v1.0.0", "maxLength": 40}}, "type": "object"}, "DeploymentTagResponse": {"required": ["name"], "properties": {"name": {"type": "string", "description": "The name of the tag", "example": "v1.0.0"}, "create_time": {"type": "string", "description": "UTC time of policy creation", "example": "2022-01-01 00:00:00.000000"}, "last_updated": {"type": "string", "description": "UTC time of policy last update", "example": "2022-01-01 00:00:00.000000"}}, "type": "object"}, "DeploymentTagListResponse": {"properties": {"tags": {"type": "array", "items": {"$ref": "#/definitions/DeploymentTagResponse"}}, "count": {"type": "integer"}, "pagination": {"type": "object"}}, "type": "object"}, "api-model-registryartifacttagdeleteresponse": {"properties": {"artifact": {"$ref": "#/definitions/api-model-tagdeleteartifact"}, "deleted_tag": {"type": "string", "description": "Auto Generated Field for deleted_tag"}}, "type": "object"}, "api-model-tagdeleteartifact": {"properties": {"artifact_deleted": {"type": "boolean", "description": "Auto Generated Field for artifact_deleted"}, "size_mb": {"type": "number", "description": "Auto Generated Field for size_mb"}, "remaining_tags": {"type": "array", "description": "Auto Generated Field for remaining_tags", "items": {"type": "string", "description": "Auto Generated Field for remaining_tags"}}, "image_hash": {"type": "string", "description": "Auto Generated Field for image_hash"}}, "type": "object"}, "api-model-bulkdeletetagsrequest": {"properties": {"tags": {"type": "array", "description": "Auto Generated Field for tags", "items": {"type": "string", "description": "Auto Generated Field for tags"}}}, "type": "object"}, "api-model-bulkdeletetagsresponse": {"properties": {"results": {"type": "array", "description": "Auto Generated Field for results", "items": {"$ref": "#/definitions/api-model-bulkdeletetagresult"}}, "summary": {"$ref": "#/definitions/api-model-bulkdeletetagssummary"}}, "type": "object"}, "api-model-bulkdeletetagresult": {"properties": {"tag": {"type": "string", "description": "Auto Generated Field for tag"}, "status": {"type": "integer", "description": "Auto Generated Field for status"}, "message": {"type": "string", "description": "Auto Generated Field for message"}}, "type": "object"}, "api-model-bulkdeletetagssummary": {"properties": {"total": {"type": "integer", "description": "Auto Generated Field for total"}, "success": {"type": "integer", "description": "Auto Generated Field for success"}, "failed": {"type": "integer", "description": "Auto Generated Field for failed"}}, "type": "object"}, "ImageTagList": {"properties": {"data": {"type": "array", "items": {"$ref": "#/definitions/ImageTagPayload"}}}, "type": "object"}, "ImageTagPayload": {"required": ["artifact", "last_push_at", "tag"], "properties": {"tag": {"type": "string", "description": "The Image Tag", "example": "tag1"}, "last_push_at": {"type": "string", "format": "date-time", "description": "The Last Push Time"}, "artifact": {"description": "The Artifact which this tag is linked to", "allOf": [{"$ref": "#/definitions/ArtifactPayload"}]}}, "type": "object"}, "ArtifactPayload": {"required": ["artifact_deleted", "image_hash", "remaining_tags", "size_mb"], "properties": {"artifact_deleted": {"type": "boolean", "description": "Whether the Artifact is deleted"}, "remaining_tags": {"type": "array", "description": "The List of Tags associated with this Artifact", "example": ["tag1", "tag2"], "items": {"type": "string"}}, "image_hash": {"type": "string", "description": "The Hash of the Image", "example": "sha256:1234567890abcdef"}, "size_mb": {"type": "number", "description": "The Size of the Image in MB"}}, "type": "object"}, "Report Deployment Payload": {"required": ["reason"], "properties": {"reason": {"type": "string", "description": "Reason of the report", "minLength": 1, "maxLength": 255}, "metadata": {"type": "object", "description": "Additional information", "example": {"key": "value"}}}, "type": "object"}}, "responses": {"ParseError": {"description": "When a mask can't be parsed"}, "MaskError": {"description": "When any error occurs on mask"}, "OperationalError": {"description": "Convert a lost/broken DB connection (e"}, "InterfaceError": {"description": "Convert a lost/broken DB connection (e"}, "DisconnectionError": {"description": "Convert a lost/broken DB connection (e"}}, "host": "api.edgegap.com", "schemes": ["https"]}
