{ "host": "demo.accelbyte.io", "info": { "description": "Manage AMS Fleets", "title": "fleet-commander", "version": "1.43.0" }, "schemes": [ "https" ], "externalDocs": { "description": "API Docs", "url": "https://stage.accelbyte.io/ams/apidocs" }, "securityDefinitions": { "authorization": { "in": "header", "name": "Authorization", "type": "apiKey" } }, "swagger": "2.0", "paths": { "/ams/auth": { "get": { "consumes": [ "application/json" ], "description": "Check if fleet commander is authorized to talk to AMS with this IAM", "operationId": "AuthCheck", "produces": [ "application/json" ], "responses": { "200": { "description": "success" }, "401": { "description": "unauthorized", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "forbidden", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "checks if fleet commander can auth with AMS", "tags": [ "Auth" ], "x-errorCodes": {} } }, "/ams/healthz": { "get": { "operationId": "PortalHealthCheck", "produces": [ "application/json" ], "responses": { "200": { "description": "OK" } }, "security": [ { "authorization": [] } ], "summary": "Health check", "tags": [ "Fleet Commander" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/account": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:ACCOUNT [READ]", "operationId": "AdminAccountGet", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.AccountResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "account not linked", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get the account associated with the namespace", "tags": [ "Account" ], "x-errorCodes": {} }, "post": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:ACCOUNT [CREATE]", "operationId": "AdminAccountCreate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.AccountCreateRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "account Created", "schema": { "$ref": "#/definitions/api.AccountCreateResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "create a new AMS account", "tags": [ "Account" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/account/link": { "get": { "consumes": [ "application/json" ], "description": "The link token returned can be used to connect another namespace to the account in which the provided namespace is linked. This route fails if there is no account linked to the specified namespace.\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:ACCOUNT [READ]", "operationId": "AdminAccountLinkTokenGet", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.AccountLinkTokenResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "account not linked", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get a link to account token", "tags": [ "Account" ], "x-errorCodes": {} }, "post": { "consumes": [ "application/json" ], "description": "This route will attempt to register the account to namespace linkage in AMS and requires a valid account link token. This route fails if an account is already linked\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:ACCOUNT [CREATE]", "operationId": "AdminAccountLink", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.AccountLinkRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "success", "schema": { "$ref": "#/definitions/api.AccountLinkResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "link an account to a namespace", "tags": [ "Account" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/artifacts": { "delete": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA [DELETE]", "operationId": "ArtifactBulkDelete", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "artifact type (can be repeated)", "in": "query", "name": "artifactType", "type": "string" }, { "description": "fleet ID (can be repeated)", "in": "query", "name": "fleetId", "type": "string" }, { "description": "uploaded before date", "format": "date", "in": "query", "name": "uploadedBefore", "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$", "type": "string", "x-nullable": true } ], "produces": [ "application/json" ], "responses": { "202": { "description": "delete received" }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "delete artifacts that match criteria in bulk. all artifacts matching any one criteria will be deleted. at least 1 parameter is required.", "tags": [ "Artifacts" ], "x-errorCodes": {} }, "get": { "consumes": [ "application/json" ], "description": "Get all artifacts matching the provided search criteria. When criteria is not specified the data returned won\u0026#39;t have been filtered on those parameters\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:AMS:ARTIFACT [READ]", "operationId": "ArtifactGet", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "one of: log, coredump", "in": "query", "name": "artifactType", "type": "string" }, { "default": 100, "description": "defines the maximum number of records returned in one page.", "in": "query", "maximum": 500, "name": "count", "type": "integer" }, { "description": "omit artifacts with collection dates newer than", "in": "query", "name": "endDate", "type": "string" }, { "description": "id of the fleet where the artifact was collected", "in": "query", "name": "fleetID", "type": "string" }, { "description": "id of the image being used on the server when artifact was collected", "in": "query", "name": "imageID", "type": "string" }, { "description": "maximum artifact size in bytes", "in": "query", "name": "maxSize", "type": "integer" }, { "description": "minimum artifact size in bytes", "in": "query", "name": "minSize", "type": "integer" }, { "default": 0, "description": "specifies the start index for the records returned. Useful for implementing pagination.", "in": "query", "name": "offset", "type": "integer" }, { "description": "region of the server where the artifact was collected", "in": "query", "name": "region", "type": "string" }, { "description": "id of the server (ds) where the artifact was collected", "in": "query", "name": "serverId", "type": "string" }, { "default": "created_on", "description": "field name to sort the artifact", "in": "query", "name": "sortBy", "type": "string" }, { "default": "desc", "description": "the sort direction", "enum": [ "asc", "desc" ], "in": "query", "name": "sortDirection", "type": "string" }, { "description": "omit artifacts with collection dates older than", "in": "query", "name": "startDate", "type": "string" }, { "description": "one of: success, skipped_sample, skipped_usage, failed", "in": "query", "name": "status", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.ArtifactListResponse" } }, "400": { "description": "invalid data in request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get all artifacts matching the provided criteria", "tags": [ "Artifacts" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/artifacts/usage": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:AMS:ARTIFACT [READ]", "operationId": "ArtifactUsageGet", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.ArtifactUsageResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "retrieve artifact storage usage for the namespace", "tags": [ "Artifacts" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/artifacts/{artifactID}": { "delete": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:AMS:ARTIFACT [DELETE]", "operationId": "ArtifactDelete", "parameters": [ { "description": "the id of the artifact", "in": "path", "name": "artifactID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "202": { "description": "delete received" }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "no artifact with specifed artifactID", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "delete a specified artifact", "tags": [ "Artifacts" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/artifacts/{artifactID}/url": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:AMS:ARTIFACT [READ]", "operationId": "ArtifactGetURL", "parameters": [ { "description": "the id of the artifact", "in": "path", "name": "artifactID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.ArtifactURLResponse" } }, "400": { "description": "invalid data in request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "no artifact with specifed artifactID", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get a signed URL for a specific artifact", "tags": [ "Artifacts" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/development/server-configurations": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [READ]", "operationId": "DevelopmentServerConfigurationList", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 100, "description": "defines the maximum number of records returned in one page.", "in": "query", "maximum": 500, "minimum": 10, "name": "count", "type": "integer" }, { "description": "filter by image ID", "in": "query", "name": "imageId", "type": "string" }, { "description": "filter by config name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "specifies the start index for the records returned.", "in": "query", "name": "offset", "type": "integer" }, { "default": "created_at", "description": "sort records by the given field", "enum": [ "created_at", "expires_at", "name" ], "in": "query", "name": "sortBy", "type": "string" }, { "description": "sort direction (ascending or descending)", "enum": [ "asc", "desc" ], "in": "query", "name": "sortDirection", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "development server configurations", "schema": { "$ref": "#/definitions/api.DevelopmentServerConfigurationListResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "lists development server configurations with pagination", "tags": [ "Development" ], "x-errorCodes": {} }, "post": { "consumes": [ "application/json" ], "description": "Configuration name can be up to 128 characters and must conform to ^[.a-zA-Z0-9_-]+$\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [CREATE]", "operationId": "DevelopmentServerConfigurationCreate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.DevelopmentServerConfigurationCreateRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "development server configuration created", "schema": { "$ref": "#/definitions/api.DevelopmentServerConfigurationCreateResponse" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "create a new development server configuration", "tags": [ "Development" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/development/server-configurations/{developmentServerConfigID}": { "delete": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [DELETE]", "operationId": "DevelopmentServerConfigurationDelete", "parameters": [ { "description": "the name of the development server configuration", "in": "path", "name": "developmentServerConfigID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "development server configuration deleted" }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "development server configuration not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "delete a development server configuration", "tags": [ "Development" ], "x-errorCodes": {} }, "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [READ]", "operationId": "DevelopmentServerConfigurationGet", "parameters": [ { "description": "the name of the development server configuration", "in": "path", "name": "developmentServerConfigID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "development server configuration", "schema": { "$ref": "#/definitions/api.DevelopmentServerConfigurationGetResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "development server configuration not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get a development server configuration", "tags": [ "Development" ], "x-errorCodes": {} }, "patch": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [UPDATE]", "operationId": "DevelopmentServerConfigurationPatch", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.DevelopmentServerConfigurationUpdateRequest" } }, { "description": "the name of the development server configuration", "in": "path", "name": "developmentServerConfigID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "development server configuration updated" }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "development server configuration not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "patch a development server configuration", "tags": [ "Development" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/fleets": { "delete": { "consumes": [ "application/json" ], "description": "Maximum of 1000 fleets allowed\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [DELETE]", "operationId": "BulkFleetDelete", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.FleetBulkDeleteRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetBulkDeleteResponse" } }, "207": { "description": "partial success", "schema": { "$ref": "#/definitions/api.FleetBulkDeleteResponse" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "422": { "description": "one or more fleet(s) are invalid", "schema": { "$ref": "#/definitions/api.FleetBulkDeleteResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "delete one or more fleets. maximum of 1000 fleets allowed", "tags": [ "Fleets" ], "x-errorCodes": {} }, "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [READ]", "operationId": "FleetList", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "filter fleets by active status", "in": "query", "name": "active", "type": "boolean", "x-omitempty": false }, { "default": 100, "description": "the number of fleets to return", "in": "query", "name": "count", "type": "integer" }, { "description": "filter fleets by name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the pagination offset", "in": "query", "name": "offset", "type": "integer" }, { "description": "filter fleets by region", "in": "query", "name": "region", "type": "string" }, { "description": "sort fleets by column name", "enum": [ "active", "name" ], "in": "query", "name": "sortBy", "type": "string" }, { "description": "sort direction (ascending or descending)", "enum": [ "asc", "desc" ], "in": "query", "name": "sortDirection", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetListResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "list all fleets in a namespace", "tags": [ "Fleets" ], "x-errorCodes": {} }, "post": { "consumes": [ "application/json" ], "description": "Optionally, sampling rules for the fleet can also be specified\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [CREATE]", "operationId": "FleetCreate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.FleetParameters" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "201": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetCreateResponse" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "exceeded quota", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "create a fleet", "tags": [ "Fleets" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/fleets/{fleetID}": { "delete": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [DELETE]", "operationId": "FleetDelete", "parameters": [ { "description": "the id of the fleet", "in": "path", "name": "fleetID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "no content" }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "fleet not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "delete a fleet", "tags": [ "Fleets" ], "x-errorCodes": {} }, "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [READ]", "operationId": "FleetGet", "parameters": [ { "description": "the id of the fleet", "in": "path", "name": "fleetID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetGetResponse" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "fleet not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get a fleet", "tags": [ "Fleets" ], "x-errorCodes": {} }, "put": { "consumes": [ "application/json" ], "description": "Optionally, sampling rules for the fleet can also be updated\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [UPDATE]", "operationId": "FleetUpdate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.FleetParameters" } }, { "description": "the id of the fleet", "in": "path", "name": "fleetID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "no content" }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "fleet not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "update a fleet -– overrides current data", "tags": [ "Fleets" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/fleets/{fleetID}/artifacts-sampling-rules": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:AMS:ARTIFACT [READ]", "operationId": "FleetArtifactSamplingRulesGet", "parameters": [ { "description": "the id of the fleet", "in": "path", "name": "fleetID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetArtifactsSampleRules" } }, "400": { "description": "invalid fleet ID", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "artifact sampling rules not found for fleet", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get the sampling rules for a fleet", "tags": [ "Artifacts" ], "x-errorCodes": {} }, "put": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:AMS:ARTIFACT [UPDATE]", "operationId": "FleetArtifactSamplingRulesSet", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.FleetArtifactsSampleRules" } }, { "description": "the id of the fleet", "in": "path", "name": "fleetID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetArtifactsSampleRules" } }, "400": { "description": "invalid fleet ID", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "fleet not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "set sampling rules for a fleet", "tags": [ "Artifacts" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/fleets/{fleetID}/servers": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [READ]", "operationId": "FleetServers", "parameters": [ { "description": "the id of the fleet", "in": "path", "name": "fleetID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 10000, "description": "the data limit", "in": "query", "name": "count", "type": "integer" }, { "default": 0, "description": "the data offset", "in": "query", "name": "offset", "type": "integer" }, { "description": "the servers region", "in": "query", "name": "region", "type": "string" }, { "description": "the id of the server", "in": "query", "name": "serverId", "type": "string" }, { "default": "created_at", "description": "the field by which to order the data", "in": "query", "name": "sortBy", "type": "string" }, { "default": "desc", "description": "the data ordering direction", "enum": [ "asc", "desc" ], "in": "query", "name": "sortDirection", "type": "string" }, { "description": "the servers status", "enum": [ "claimed", "claiming", "crash backoff", "creating", "draining", "ready", "unresponsive" ], "in": "query", "name": "status", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetServersResponse" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "fleet not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get server details \u0026 counts for a fleet", "tags": [ "Fleets" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/fleets/{fleetID}/servers/history": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [READ]", "operationId": "FleetServerHistory", "parameters": [ { "description": "ID of the fleet", "in": "path", "name": "fleetID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "Defines the maximum number of records returned in one page. Default is 1000 when not provided.", "in": "query", "name": "count", "type": "integer" }, { "description": "Specifies the start index for the records returned. Useful for implementing pagination. Default is 0 when not provided.", "in": "query", "name": "offset", "type": "integer" }, { "description": "Exit reason", "in": "query", "name": "reason", "type": "string" }, { "description": "Region", "in": "query", "name": "region", "type": "string" }, { "description": "Dedicated server ID", "in": "query", "name": "serverId", "type": "string" }, { "description": "The direction of the sort on the 'createdAt' column, 'asc' for ascending and 'desc' for descending. Defaults to 'asc' when not provided.", "in": "query", "name": "sortDirection", "type": "string" }, { "description": "Status of the dedicated server", "in": "query", "name": "status", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.DSHistoryList" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get history records of a dedicated server in a fleet", "tags": [ "Servers" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/images": { "get": { "consumes": [ "application/json" ], "description": "Returns images which exist (uploaded, uploading, or building) in the linked account. This route fails if no account is linked\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:AMS:IMAGE [READ]", "operationId": "ImageList", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "default": 100, "description": "the count of image list", "in": "query", "name": "count", "type": "integer" }, { "description": "the inUse filter", "in": "query", "name": "inUse", "type": "string" }, { "description": "the image protected", "in": "query", "name": "isProtected", "type": "boolean", "x-omitempty": false }, { "description": "the image name", "in": "query", "name": "name", "type": "string" }, { "default": 0, "description": "the offset of image list", "in": "query", "name": "offset", "type": "integer" }, { "default": "uploadedAt", "description": "the sortBy parameter specifies the attribute by which to sort the results", "in": "query", "name": "sortBy", "type": "string" }, { "default": "desc", "description": "the sort direction parameter", "in": "query", "name": "sortDirection", "type": "string" }, { "description": "the image status", "in": "query", "name": "status", "type": "string" }, { "description": "the image tag", "in": "query", "name": "tag", "type": "string" }, { "description": "the target architecture (currently only 'linux-x86_64' and 'linux-arm_64' are supported)", "in": "query", "name": "targetArchitecture", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.ImageList" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "account not linked", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get a list of existing images", "tags": [ "Images" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/images-storage": { "get": { "consumes": [ "application/json" ], "description": "Returns information regarding the account\u0026#39;s usage for images storage including the free tier quota\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:AMS:IMAGE [READ]", "operationId": "ImagesStorage", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.ImageStorage" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "account not linked", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get current usage for images storage", "tags": [ "Images" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/images/{imageID}": { "delete": { "consumes": [ "application/json" ], "description": "Marks an image for deletion. The image will stop being available for fleets and will eventually be deleted.\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:AMS:IMAGE [DELETE]", "operationId": "ImageMarkForDeletion", "parameters": [ { "description": "the id of the image", "in": "path", "name": "imageID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "202": { "description": "success" }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "image doesn't exist", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "412": { "description": "image is being used by 1 or more fleets", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "mark the image for deletion", "tags": [ "Images" ], "x-errorCodes": {} }, "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:AMS:IMAGE [READ]", "operationId": "ImageGet", "parameters": [ { "description": "the id of the image", "in": "path", "name": "imageID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.ImageDetails" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "account not linked", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get image details.", "tags": [ "Images" ], "x-errorCodes": {} }, "patch": { "consumes": [ "application/json" ], "description": "This allows editing of the image name, toggling `IsProtected`, or adding \u0026amp; removal of tags\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:AMS:IMAGE [UPDATE]", "operationId": "ImagePatch", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.ImageUpdate" } }, { "description": "the id of the image", "in": "path", "name": "imageID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.ImageDetails" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "account not linked", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "edit the image", "tags": [ "Images" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/images/{imageID}/restore": { "post": { "description": "Unmarks an image for deletion. The image will be available for fleets.\n\nRequired Permission: ADMIN:NAMESPACE:{namespace}:AMS:IMAGE [DELETE]", "operationId": "ImageUnmarkForDeletion", "parameters": [ { "description": "the id of the image", "in": "path", "name": "imageID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "202": { "description": "success" }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "image doesn't exist", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "412": { "description": "image wasn't marked for deletion", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "unmarks the image for deletion", "tags": [ "Images" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/qos": { "get": { "consumes": [ "application/json" ], "description": "```\n\t\t\tRequired Permission: ADMIN:NAMESPACE:{namespace}:QOS:SERVER [READ]\n\n\t\t\tThis endpoint lists all QoS services available in all regions.\n\n\t\t\tThis endpoint is intended to be called by game client to find out all available regions.\n\t\t\tAfter getting a list of QoS on each region, game client is expected to ping each one with UDP\n\t\t\tconnection as described below:\n\n\t\t\t1. Make UDP connection to each QoS\u0026#39;s IP:Port\n\t\t\t2. Send string \u0026#34;PING\u0026#34; after connection established\n\t\t\t3. Wait for string \u0026#34;PONG\u0026#34; response\n\t\t\t4. Note the request-response latency for each QoS in each region\n\n\t\t\tThe game then can use ping latency information to either:\n\t\t\t1. Inform the player on these latencies and let player choose preferred region\n\t\t\t2. Send the latency list to Matchmaking Service so that player can be matched with other players\n\t\t\t in nearby regions\n\t\t\t", "operationId": "QoSRegionsGet", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "QoS status, available value: ACTIVE, INACTIVE", "in": "query", "name": "status", "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.QoSEndpointResponse" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get a list of available AMS QoS regions", "tags": [ "AMS QoS" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/qos/{region}": { "patch": { "consumes": [ "application/json" ], "description": "```\n\t\t\tRequired Permission: ADMIN:NAMESPACE:{namespace}:QOS:SERVER [UPDATE]\n\n\t\t\tThis endpoint updates the registered QoS service\u0026#39;s configurable configuration.\n\t\t\t", "operationId": "QoSRegionsUpdate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.UpdateServerRequest" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "region of the QoS", "in": "path", "name": "region", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "record updated" }, "400": { "description": "malformed request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "regionial QoS record not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "update the status of a QoS region", "tags": [ "AMS QoS" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/regions": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA [READ]", "operationId": "InfoRegions", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.AMSRegionsResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get a list of the available AMS regions", "tags": [ "AMS Info" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/servers/{serverID}": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [READ]", "operationId": "FleetServerInfo", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "the id of the dedicated server", "in": "path", "name": "serverID", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetServerInfoResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "dedicated server not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get information about a dedicated server", "tags": [ "Servers" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/servers/{serverID}/connectioninfo": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:AMS:DS:LOGS [READ]", "operationId": "FleetServerConnectionInfo", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "the ID of the dedicated server", "in": "path", "name": "serverID", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetServerConnectionInfoResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "dedicated server not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get connection info for a dedicated server", "tags": [ "Servers" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/servers/{serverID}/history": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA:FLEET [READ]", "operationId": "ServerHistory", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "the id of the dedicated server", "in": "path", "name": "serverID", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetServerHistoryResponse" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get history records of a dedicated server", "tags": [ "Servers" ], "x-errorCodes": {} } }, "/ams/v1/admin/namespaces/{namespace}/supported-instances": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: ADMIN:NAMESPACE:{namespace}:ARMADA [READ]", "operationId": "InfoSupportedInstances", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.InstanceTypesResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get a list of available instance types for the current account", "tags": [ "AMS Info" ], "x-errorCodes": {} } }, "/ams/v1/namespaces/{namespace}/account": { "get": { "consumes": [ "application/json" ], "description": "Required Permission: NAMESPACE:{namespace}:AMS:ACCOUNT [READ]", "operationId": "AccountGet", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.AccountResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "account not linked", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "get the account associated with the namespace", "tags": [ "Account" ], "x-errorCodes": {} } }, "/ams/v1/namespaces/{namespace}/fleets/{fleetID}/claim": { "put": { "consumes": [ "application/json" ], "description": "Required Permission: NAMESPACE:{namespace}:AMS:SERVER:CLAIM [UPDATE]", "operationId": "FleetClaimByID", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.FleetClaimReq" } }, { "description": "the id of the fleet", "in": "path", "name": "fleetID", "required": true, "type": "string" }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetClaimResponse" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "fleet not found", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "claim a dedicated server from a fleet", "tags": [ "Fleets" ], "x-errorCodes": {} } }, "/ams/v1/namespaces/{namespace}/local/{watchdogID}/connect": { "get": { "description": "This is to support local ds development scenarios\n\nRequired Permission: NAMESPACE:{namespace}:AMS:LOCALDS [CREATE]", "operationId": "LocalWatchdogConnect", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "the id of the watchdog", "in": "path", "name": "watchdogID", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK" } }, "security": [ { "authorization": [] } ], "summary": "connect a local watchdog", "tags": [ "Watchdogs" ], "x-errorCodes": {} } }, "/ams/v1/namespaces/{namespace}/servers/claim": { "put": { "consumes": [ "application/json" ], "description": "Claim a dedicated server from fleets with matching claim keys.\nIf the claim key is for a regular fleet (non development), the request will instantly fail if there are no DS available (HTTP 404).\nIf the claim key is for a development fleet and there are no DS available, a new DS will be launched and the request might take up to 8 seconds to return (depending on the environment configuration). If it\u0026#39;s not ready after that duration the request will still return HTTP 404. In either case, the call to this endpoint may be retried at any time to check if a DS has become available.\n\nRequired Permission: NAMESPACE:{namespace}:AMS:SERVER:CLAIM [UPDATE]", "operationId": "FleetClaimByKeys", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/api.FleetClaimByKeysReq" } }, { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "success", "schema": { "$ref": "#/definitions/api.FleetClaimResponse" } }, "400": { "description": "bad request", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "401": { "description": "no authorization provided", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "403": { "description": "insufficient permissions", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "404": { "description": "no matching DS available", "schema": { "$ref": "#/definitions/response.ErrorResponse" } }, "500": { "description": "internal server error", "schema": { "$ref": "#/definitions/response.ErrorResponse" } } }, "security": [ { "authorization": [] } ], "summary": "claim a dedicated server", "tags": [ "Fleets" ], "x-errorCodes": {} } }, "/ams/v1/namespaces/{namespace}/watchdogs/{watchdogID}/connect": { "get": { "description": "Required Permission: NAMESPACE:{namespace}:ARMADA:WATCHDOG [CREATE]", "operationId": "WatchdogConnect", "parameters": [ { "description": "namespace of the game", "in": "path", "name": "namespace", "required": true, "type": "string" }, { "description": "the id of the watchdog", "in": "path", "name": "watchdogID", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK" } }, "security": [ { "authorization": [] } ], "summary": "connect a watchdog", "tags": [ "Watchdogs" ], "x-errorCodes": {} } }, "/ams/v1/upload-url": { "get": { "operationId": "UploadURLGet", "produces": [ "application/json" ], "responses": { "200": { "description": "success" } }, "security": [ { "authorization": [] } ], "summary": "get an URL for uploading an image", "tags": [ "AMS Info" ], "x-errorCodes": {} } }, "/ams/version": { "get": { "operationId": "func1", "produces": [ "application/json" ], "responses": { "200": { "description": "OK" } }, "security": [ { "authorization": [] } ], "summary": "Version info", "tags": [ "Fleet Commander" ], "x-errorCodes": {} } }, "/healthz": { "get": { "operationId": "BasicHealthCheck", "produces": [ "application/json" ], "responses": { "200": { "description": "OK" } }, "security": [ { "authorization": [] } ], "summary": "Health check", "tags": [ "Fleet Commander" ], "x-errorCodes": {} } } }, "definitions": { "api.AMSRegionsResponse": { "properties": { "regions": { "items": { "type": "string" }, "type": "array" } } }, "api.AccountCreateRequest": { "properties": { "name": { "type": "string" } }, "required": [ "name" ] }, "api.AccountCreateResponse": { "properties": { "Limits": { "$ref": "#/definitions/api.AccountLimits" }, "id": { "type": "string" }, "name": { "type": "string" }, "namespaces": { "items": { "type": "string" }, "type": "array" } }, "required": [ "Limits", "id", "name", "namespaces" ] }, "api.AccountLimits": { "properties": { "allowedNodeClasses": { "items": { "type": "string" }, "type": "array" }, "allowedRegions": { "items": { "type": "string" }, "type": "array" }, "fleetCount": { "format": "int32", "type": "integer" }, "fleetVmCount": { "format": "int32", "type": "integer" }, "imageStorageQuotaBytes": { "format": "int64", "type": "integer" } } }, "api.AccountLinkRequest": { "properties": { "token": { "type": "string" } }, "required": [ "token" ] }, "api.AccountLinkResponse": { "properties": { "Limits": { "$ref": "#/definitions/api.AccountLimits" }, "id": { "type": "string" }, "name": { "type": "string" }, "namespaces": { "items": { "type": "string" }, "type": "array" } }, "required": [ "Limits", "id", "name", "namespaces" ] }, "api.AccountLinkTokenResponse": { "properties": { "token": { "type": "string" } }, "required": [ "token" ] }, "api.AccountResponse": { "properties": { "Limits": { "$ref": "#/definitions/api.AccountLimits" }, "id": { "type": "string" }, "name": { "type": "string" }, "namespaces": { "items": { "type": "string" }, "type": "array" } }, "required": [ "Limits", "id", "name", "namespaces" ] }, "api.ArtifactListResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/api.ArtifactResponse" }, "type": "array" }, "totalData": { "format": "int32", "type": "integer" } }, "required": [ "data", "totalData" ] }, "api.ArtifactResponse": { "properties": { "artifactType": { "type": "string" }, "createdOn": { "$ref": "#/definitions/time.Time" }, "dsId": { "type": "string" }, "expiresOn": { "$ref": "#/definitions/time.Time" }, "filename": { "type": "string" }, "fleetId": { "type": "string" }, "id": { "type": "string" }, "imageId": { "type": "string" }, "namespace": { "type": "string" }, "reason": { "type": "string" }, "region": { "type": "string" }, "sizeBytes": { "format": "int64", "type": "integer" }, "status": { "type": "string" } }, "required": [ "artifactType", "createdOn", "dsId", "expiresOn", "filename", "fleetId", "id", "imageId", "namespace", "region", "sizeBytes", "status" ] }, "api.ArtifactSamplingRule": { "properties": { "collect": { "type": "boolean", "x-omitempty": false }, "percentage": { "format": "int64", "type": "integer" } }, "required": [ "collect", "percentage" ] }, "api.ArtifactTypeSamplingRules": { "properties": { "crashed": { "$ref": "#/definitions/api.ArtifactSamplingRule" }, "success": { "$ref": "#/definitions/api.ArtifactSamplingRule" }, "unclaimed": { "$ref": "#/definitions/api.ArtifactSamplingRule" } }, "required": [ "crashed", "success" ] }, "api.ArtifactURLResponse": { "properties": { "url": { "type": "string" } }, "required": [ "url" ] }, "api.ArtifactUsageResponse": { "properties": { "quotaBytes": { "format": "int64", "type": "integer" }, "remainingBytes": { "format": "int64", "type": "integer" }, "usedBytes": { "format": "int64", "type": "integer" } }, "required": [ "quotaBytes", "remainingBytes", "usedBytes" ] }, "api.Capacity": { "properties": { "region": { "type": "string" }, "vmCount": { "format": "int32", "type": "integer" } }, "required": [ "region", "vmCount" ] }, "api.CoredumpSamplingRules": { "properties": { "crashed": { "$ref": "#/definitions/api.ArtifactSamplingRule" } }, "required": [ "crashed" ] }, "api.DSHistoryEvent": { "properties": { "createdAt": { "$ref": "#/definitions/time.Time" }, "exitCode": { "format": "int32", "type": "integer" }, "ipAddress": { "type": "string" }, "reason": { "type": "string" }, "region": { "type": "string" }, "serverId": { "type": "string" }, "sessionId": { "type": "string" }, "status": { "type": "string" } }, "required": [ "createdAt", "exitCode", "ipAddress", "reason", "region", "serverId", "sessionId", "status" ] }, "api.DSHistoryList": { "properties": { "events": { "items": { "$ref": "#/definitions/api.DSHistoryEvent" }, "type": "array" }, "paging": { "$ref": "#/definitions/api.PagingInfo" } }, "required": [ "events", "paging" ] }, "api.DSHostConfiguration": { "properties": { "instanceId": { "type": "string" }, "instanceProvider": { "type": "string" }, "instanceType": { "type": "string" }, "serversPerVm": { "format": "int32", "type": "integer" } }, "required": [ "instanceId", "instanceProvider", "instanceType", "serversPerVm" ] }, "api.DSHostConfigurationParameters": { "properties": { "instanceId": { "type": "string" }, "serversPerVm": { "format": "int32", "type": "integer" } }, "required": [ "instanceId", "serversPerVm" ] }, "api.DevelopmentServerConfigurationCreateRequest": { "properties": { "commandLineArguments": { "type": "string" }, "expiresAt": { "$ref": "#/definitions/api.Time" }, "imageId": { "type": "string" }, "name": { "type": "string" } }, "required": [ "commandLineArguments", "imageId", "name" ] }, "api.DevelopmentServerConfigurationCreateResponse": { "properties": { "name": { "type": "string" } }, "required": [ "name" ] }, "api.DevelopmentServerConfigurationGetResponse": { "properties": { "commandLineArguments": { "type": "string" }, "createdAt": { "$ref": "#/definitions/api.Time" }, "expiresAt": { "$ref": "#/definitions/api.Time" }, "imageId": { "type": "string" }, "name": { "type": "string" } }, "required": [ "commandLineArguments", "imageId", "name" ] }, "api.DevelopmentServerConfigurationListResponse": { "properties": { "data": { "items": { "$ref": "#/definitions/api.DevelopmentServerConfigurationGetResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/pagination.PaginationInfo" }, "totalData": { "format": "int32", "type": "integer" } }, "required": [ "data", "paging", "totalData" ] }, "api.DevelopmentServerConfigurationUpdateRequest": { "properties": { "commandLineArguments": { "type": "string" }, "expiresAt": { "$ref": "#/definitions/api.Time" } } }, "api.FleetArtifactsSampleRules": { "properties": { "coredumps": { "$ref": "#/definitions/api.CoredumpSamplingRules" }, "logs": { "$ref": "#/definitions/api.ArtifactTypeSamplingRules" } }, "required": [ "coredumps", "logs" ] }, "api.FleetBulkActionErrorItemResponse": { "properties": { "errorMessage": { "type": "string" }, "errorType": { "type": "string" }, "fleetId": { "type": "string" } }, "required": [ "fleetId" ] }, "api.FleetBulkDeleteRequest": { "properties": { "fleetIds": { "items": { "type": "string" }, "type": "array" } }, "required": [ "fleetIds" ] }, "api.FleetBulkDeleteResponse": { "properties": { "errors": { "items": { "$ref": "#/definitions/api.FleetBulkActionErrorItemResponse" }, "type": "array" }, "successCount": { "format": "int32", "type": "integer" }, "totalCount": { "format": "int32", "type": "integer" } }, "required": [ "errors", "successCount", "totalCount" ] }, "api.FleetClaimByKeysReq": { "properties": { "claimKeys": { "items": { "type": "string" }, "type": "array" }, "regions": { "items": { "type": "string" }, "type": "array" }, "sessionId": { "type": "string" } }, "required": [ "claimKeys", "regions", "sessionId" ] }, "api.FleetClaimReq": { "properties": { "region": { "type": "string" }, "sessionId": { "type": "string" } }, "required": [ "region", "sessionId" ] }, "api.FleetClaimResponse": { "properties": { "fleetId": { "type": "string" }, "ip": { "type": "string" }, "ports": { "additionalProperties": { "type": "integer" }, "type": "object" }, "region": { "type": "string" }, "serverId": { "type": "string" } }, "required": [ "fleetId", "ip", "ports", "region", "serverId" ] }, "api.FleetCreateResponse": { "properties": { "id": { "type": "string" } }, "required": [ "id" ] }, "api.FleetGetResponse": { "properties": { "active": { "type": "boolean", "x-omitempty": false }, "claimKeys": { "items": { "type": "string" }, "type": "array" }, "dsHostConfiguration": { "$ref": "#/definitions/api.DSHostConfiguration" }, "fallbackFleet": { "type": "string" }, "hibernateAfterPeriod": { "description": "Maximum amount of time before an unused on-demand fleet is hibernated, e.g. '1h'", "type": "string" }, "id": { "type": "string" }, "imageDeploymentProfile": { "$ref": "#/definitions/api.ImageDeploymentProfile" }, "isLocal": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "onDemand": { "type": "boolean", "x-omitempty": false }, "primaryFleet": { "type": "string" }, "regions": { "items": { "$ref": "#/definitions/api.RegionConfig" }, "type": "array" }, "samplingRules": { "$ref": "#/definitions/api.FleetArtifactsSampleRules" } }, "required": [ "active", "claimKeys", "dsHostConfiguration", "fallbackFleet", "id", "imageDeploymentProfile", "isLocal", "name", "onDemand", "primaryFleet", "regions", "samplingRules" ] }, "api.FleetListItemResponse": { "properties": { "active": { "type": "boolean", "x-omitempty": false }, "counts": { "items": { "$ref": "#/definitions/api.FleetRegionalServerCounts" }, "type": "array" }, "fallbackFleet": { "type": "string" }, "id": { "type": "string" }, "image": { "type": "string" }, "instanceProvider": { "type": "string" }, "isLocal": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "onDemand": { "type": "boolean", "x-omitempty": false }, "primaryFleet": { "type": "string" }, "regions": { "items": { "type": "string" }, "type": "array" } }, "required": [ "active", "counts", "fallbackFleet", "id", "image", "instanceProvider", "isLocal", "name", "onDemand", "primaryFleet", "regions" ] }, "api.FleetListResponse": { "properties": { "fleets": { "items": { "$ref": "#/definitions/api.FleetListItemResponse" }, "type": "array" }, "paging": { "$ref": "#/definitions/pagination.PaginationInfo" } }, "required": [ "fleets", "paging" ] }, "api.FleetParameters": { "properties": { "active": { "type": "boolean", "x-omitempty": false }, "claimKeys": { "items": { "type": "string" }, "type": "array" }, "dsHostConfiguration": { "$ref": "#/definitions/api.DSHostConfigurationParameters" }, "fallbackFleet": { "type": "string" }, "hibernateAfterPeriod": { "description": "Amount of time before an unused on-demand fleet is hibernated, e.g. '1h'", "type": "string" }, "imageDeploymentProfile": { "$ref": "#/definitions/api.ImageDeploymentProfile" }, "name": { "type": "string" }, "onDemand": { "type": "boolean", "x-omitempty": false }, "regions": { "items": { "$ref": "#/definitions/api.RegionConfig" }, "type": "array" }, "samplingRules": { "$ref": "#/definitions/api.FleetArtifactsSampleRules" } }, "required": [ "active", "dsHostConfiguration", "imageDeploymentProfile", "name", "onDemand", "regions" ] }, "api.FleetRegionalServerCounts": { "properties": { "claimedServerCount": { "format": "int32", "type": "integer" }, "readyServerCount": { "format": "int32", "type": "integer" }, "region": { "type": "string" }, "runningVmCount": { "format": "int32", "type": "integer" }, "targetDsCount": { "format": "int32", "type": "integer" }, "targetVmCount": { "format": "int32", "type": "integer" } }, "required": [ "claimedServerCount", "readyServerCount", "region", "runningVmCount", "targetDsCount", "targetVmCount" ] }, "api.FleetServerConnectionInfoResponse": { "properties": { "expiresAt": { "$ref": "#/definitions/api.Time" }, "host": { "type": "string" }, "logstreamPort": { "format": "int32", "type": "integer" }, "secret": { "type": "string" } }, "required": [ "expiresAt", "host", "logstreamPort", "secret" ] }, "api.FleetServerHistoryEventResponse": { "properties": { "createdAt": { "$ref": "#/definitions/time.Time" }, "exitCode": { "format": "int32", "type": "integer" }, "fleetId": { "type": "string" }, "newState": { "type": "string" }, "oldState": { "type": "string" }, "reason": { "type": "string" }, "serverId": { "type": "string" } }, "required": [ "createdAt", "exitCode", "fleetId", "newState", "oldState", "reason", "serverId" ] }, "api.FleetServerHistoryResponse": { "properties": { "events": { "items": { "$ref": "#/definitions/api.FleetServerHistoryEventResponse" }, "type": "array" } }, "required": [ "events" ] }, "api.FleetServerInfoResponse": { "properties": { "createdAt": { "$ref": "#/definitions/api.Time" }, "fleetId": { "type": "string" }, "fleetName": { "type": "string" }, "imageCmd": { "type": "string" }, "imageId": { "type": "string" }, "instanceType": { "type": "string" }, "ipAddress": { "type": "string" }, "portConfiguration": { "items": { "$ref": "#/definitions/api.PortConfiguration" }, "type": "array" }, "ports": { "additionalProperties": { "type": "integer" }, "type": "object" }, "region": { "type": "string" }, "serverConfiguration": { "type": "string" }, "serverId": { "type": "string" }, "sessionId": { "type": "string" }, "status": { "type": "string" } }, "required": [ "createdAt", "fleetId", "fleetName", "imageCmd", "imageId", "instanceType", "ipAddress", "portConfiguration", "ports", "region", "serverConfiguration", "serverId", "sessionId", "status" ] }, "api.FleetServersResponse": { "properties": { "paging": { "$ref": "#/definitions/api.PagingInfo" }, "regions": { "items": { "$ref": "#/definitions/api.FleetRegionalServerCounts" }, "type": "array" }, "servers": { "items": { "$ref": "#/definitions/api.FleetServerInfoResponse" }, "type": "array" } }, "required": [ "paging", "regions", "servers" ] }, "api.ImageDeploymentProfile": { "properties": { "commandLine": { "type": "string" }, "imageId": { "type": "string" }, "portConfigurations": { "items": { "$ref": "#/definitions/api.PortConfiguration" }, "type": "array" }, "timeout": { "$ref": "#/definitions/api.Timeout" } }, "required": [ "commandLine", "imageId", "portConfigurations" ] }, "api.ImageDetails": { "properties": { "createdAt": { "$ref": "#/definitions/time.Time" }, "deleteAt": { "type": "string" }, "executable": { "type": "string" }, "id": { "type": "string" }, "isProtected": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "referencingFleets": { "items": { "$ref": "#/definitions/api.ReferencingFleet" }, "type": "array" }, "sizeInByte": { "format": "int64", "type": "integer" }, "status": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "targetArchitecture": { "type": "string" }, "uploadedAt": { "$ref": "#/definitions/time.Time" }, "uploadedBy": { "type": "string" } }, "required": [ "createdAt", "executable", "id", "isProtected", "name", "referencingFleets", "sizeInByte", "status", "tags", "targetArchitecture", "uploadedAt", "uploadedBy" ] }, "api.ImageList": { "properties": { "images": { "items": { "$ref": "#/definitions/api.ImageListItem" }, "type": "array" }, "paging": { "$ref": "#/definitions/api.PagingInfo" } }, "required": [ "images", "paging" ] }, "api.ImageListItem": { "properties": { "createdAt": { "$ref": "#/definitions/time.Time" }, "deleteAt": { "type": "string" }, "executable": { "type": "string" }, "id": { "type": "string" }, "isProtected": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "referencingConfigs": { "format": "int32", "type": "integer" }, "referencingFleets": { "format": "int32", "type": "integer" }, "sizeInByte": { "format": "int64", "type": "integer" }, "status": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "targetArchitecture": { "type": "string" }, "uploadedAt": { "$ref": "#/definitions/time.Time" }, "uploadedBy": { "type": "string" } }, "required": [ "createdAt", "executable", "id", "isProtected", "name", "referencingConfigs", "referencingFleets", "sizeInByte", "status", "tags", "targetArchitecture", "uploadedAt", "uploadedBy" ] }, "api.ImageStorage": { "properties": { "currentMarkedForDeletionBytes": { "format": "int64", "type": "integer" }, "currentUsageBytes": { "format": "int64", "type": "integer" }, "quotaBytes": { "format": "int64", "type": "integer" } }, "required": [ "currentMarkedForDeletionBytes", "currentUsageBytes", "quotaBytes" ] }, "api.ImageUpdate": { "properties": { "addedTags": { "items": { "type": "string" }, "type": "array" }, "isProtected": { "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "removedTags": { "items": { "type": "string" }, "type": "array" } }, "required": [ "addedTags", "removedTags" ] }, "api.InstanceType": { "properties": { "capacity": { "items": { "$ref": "#/definitions/api.Capacity" }, "type": "array" }, "description": { "type": "string" }, "id": { "type": "string" }, "isBaremetal": { "type": "boolean", "x-omitempty": false }, "memoryGiB": { "format": "double", "type": "number" }, "minSpeed": { "type": "string" }, "name": { "type": "string" }, "ownerAccountId": { "type": "string" }, "processorArchitecture": { "type": "string" }, "provider": { "type": "string" }, "virtualCpu": { "format": "int32", "type": "integer" } }, "required": [ "capacity", "description", "id", "isBaremetal", "memoryGiB", "minSpeed", "name", "ownerAccountId", "processorArchitecture", "provider", "virtualCpu" ] }, "api.InstanceTypesResponse": { "properties": { "availableInstanceTypes": { "items": { "$ref": "#/definitions/api.InstanceType" }, "type": "array" } }, "required": [ "availableInstanceTypes" ] }, "api.PagingInfo": { "properties": { "currentPage": { "format": "int32", "type": "integer" }, "hasNext": { "type": "boolean", "x-omitempty": false }, "hasPages": { "type": "boolean", "x-omitempty": false }, "hasPrev": { "type": "boolean", "x-omitempty": false }, "next": { "type": "string" }, "pageNums": { "items": { "format": "int32", "type": "integer" }, "type": "array" }, "previous": { "type": "string" }, "total": { "format": "int32", "type": "integer" } }, "required": [ "currentPage", "hasNext", "hasPages", "hasPrev", "next", "pageNums", "previous", "total" ] }, "api.PortConfiguration": { "properties": { "name": { "type": "string" }, "protocol": { "type": "string" } }, "required": [ "name", "protocol" ] }, "api.QoSEndpointResponse": { "properties": { "servers": { "items": { "$ref": "#/definitions/api.QoSServer" }, "type": "array" } }, "required": [ "servers" ] }, "api.QoSServer": { "properties": { "alias": { "type": "string" }, "ip": { "type": "string" }, "last_update": { "$ref": "#/definitions/time.Time" }, "port": { "format": "int32", "type": "integer" }, "region": { "type": "string" }, "status": { "type": "string" } }, "required": [ "alias", "ip", "last_update", "port", "region", "status" ] }, "api.ReferencingFleet": { "properties": { "environment": { "type": "string" }, "fleetId": { "type": "string" }, "namespace": { "type": "string" } }, "required": [ "environment", "fleetId", "namespace" ] }, "api.RegionConfig": { "properties": { "bufferSize": { "format": "int32", "type": "integer" }, "dynamicBuffer": { "type": "boolean", "x-omitempty": false }, "maxServerCount": { "format": "int32", "type": "integer" }, "minServerCount": { "format": "int32", "type": "integer" }, "region": { "type": "string" } }, "required": [ "bufferSize", "dynamicBuffer", "maxServerCount", "minServerCount", "region" ] }, "api.Time": { "format": "date-time", "type": "string" }, "api.Timeout": { "description": "Contains fleet timeout configuration. Fields accept duration strings (e.g. '30s', '1h30m'), an integer number of seconds.", "properties": { "claim": { "description": "Maximum time allowed for the DS to be claimed after it is created. (e.g. '4h')", "format": "int64", "type": "integer" }, "creation": { "description": "Maximum time allowed for the DS to become ready. (e.g. '30s')", "format": "int64", "type": "integer" }, "drain": { "description": "Maximum time allowed for the DS to drain gracefully after a drain signal before being terminated. (e.g. '30s')", "format": "int64", "type": "integer" }, "session": { "description": "Maximum time the game session will be allowed to run, (e.g. '1h30m')", "format": "int64", "type": "integer" }, "unresponsive": { "description": "Maximum time allowed for the DS to be unresponsive before being terminated. (e.g. '1m')", "format": "int64", "type": "integer" } } }, "api.UpdateServerRequest": { "properties": { "status": { "type": "string" } }, "required": [ "status" ] }, "pagination.PaginationInfo": { "properties": { "first": { "type": "string" }, "last": { "type": "string" }, "next": { "type": "string" }, "previous": { "type": "string" }, "total": { "format": "int32", "type": "integer" } }, "required": [ "first", "last", "next", "previous", "total" ] }, "response.ErrorResponse": { "properties": { "errorMessage": { "type": "string" }, "errorType": { "type": "string" }, "traceId": { "type": "string" } }, "required": [ "errorMessage", "errorType", "traceId" ] }, "time.Time": { "format": "date-time", "type": "string" } }, "x-docs": { "alias": "ams", "host": "https://stage.accelbyte.io", "path": "/ams/apidocs/api.json" }, "x-version": { "buildDate": "2025-11-19T03:04:23+00:00", "gitHash": "ee33b3bbd80204d26fe90ea9cc8028e4fe8ca8b1", "name": "fleet-commander", "version": "1.43.0", "version-roles-seeding": "1.2.70" } }