{ "host": "demo.accelbyte.io", "info": { "contact": { "email": "engineering@accelbyte.io", "name": "Engineering Team at AccelByte", "url": "https://accelbyte.io" }, "description": "Login Queue Service", "title": "justice-login-queue-service", "version": "2.3.3" }, "schemes": [ "https" ], "externalDocs": { "description": "API Docs", "url": "https://stage.accelbyte.io/login-queue/apidocs" }, "securityDefinitions": { "authorization": { "in": "header", "name": "Authorization", "type": "apiKey" } }, "swagger": "2.0", "paths": { "/login-queue/v1/admin/namespaces/{namespace}/config": { "get": { "consumes": [ "application/json" ], "description": "This API is used to get log queue configuration of a namespace.\nCalling this endpoint with namespace which has not set up configuration will return a valid configuration with default value", "operationId": "adminGetConfiguration", "parameters": [ { "description": "Namespace, only accept alphabet and numeric", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/apimodels.ConfigurationResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get Configuration", "tags": [ "Admin V1" ], "x-errorCodes": {}, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:QUEUE:CONFIG [READ]" ] } ] }, "put": { "consumes": [ "application/json" ], "description": "This API is used to set/update log queue configuration of a namespace.\nThis endpoint has upsert behavior. Calling the endpoint to a namespace with no configuration will make the service to create a new configuration. \nWhen creating new configuration, empty field will have default value:\n* enabled = false\n* maxConcurrency = 1000000\n* maxLoginRate = 500\n* safetyMarginPercentage = 5\n* minActivationPeriodInSecond = 600 \n* playerReconnectGracePeriodInSecond = 300\n* queueReconnectGracePeriodInSecond = 60\n* playerPollingTimeInSecond = 20\n\nCalling this endpoint with namespace that has configuration will replace the old configuration.\n\nInput validation:\n* maxConcurrency must be \u0026amp;gt; 0 and \u0026amp;lt;= 10000000 (0 \u0026amp;lt; x \u0026amp;lt;= 10000000)\n* maxLoginRate must be \u0026amp;gt; 0 and \u0026amp;lt;= 100000 (0 \u0026amp;lt; x \u0026amp;lt;= 100000)\n* minActivationPeriodInSecond, playerReconnectGracePeriodInSecond, playerPollingTimeInSecond and queueReconnectGracePeriodInSecond must be \u0026amp;gt; 0 and \u0026amp;lt;= 21600 (0 \u0026amp;lt; x \u0026amp;lt;= 21600)\n* playerPollingTimeInSecond must be smaller than queueReconnectGracePeriodInSecond \n* safetyMarginPercentage must be \u0026amp;gt;= 0 and \u0026amp;lt; 100 (0 \u0026amp;lt;= x \u0026amp;lt; 100)\n\n", "operationId": "adminUpdateConfiguration", "parameters": [ { "description": "update configuration request", "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/apimodels.ConfigurationRequest" } }, { "description": "Namespace, only accept alphabet and numeric", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/apimodels.ConfigurationResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Update Configuration", "tags": [ "Admin V1" ], "x-errorCodes": {}, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:QUEUE:CONFIG [UPDATE]" ] } ] } }, "/login-queue/v1/admin/namespaces/{namespace}/status": { "get": { "consumes": [ "application/json" ], "description": "Get login queue status", "operationId": "adminGetStatus", "parameters": [ { "description": "Namespace, only accept alphabet and numeric", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/apimodels.QueueStatusResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Get login queue status", "tags": [ "Admin V1" ], "x-errorCodes": {}, "x-security": [ { "userPermissions": [ "ADMIN:NAMESPACE:{namespace}:QUEUE [READ]" ] } ] } }, "/login-queue/v1/namespaces/{namespace}/ticket": { "delete": { "consumes": [ "application/json" ], "description": "Cancel ticket. This endpoint requires ticket to be placed in the authorization header with this format: \u0026amp;#34;Bearer ticketID\u0026amp;#34;", "operationId": "cancelTicket", "parameters": [ { "description": "Namespace, only accept alphabet and numeric", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "204": { "description": "No Content" }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Cancel ticket", "tags": [ "Ticket V1" ], "x-errorCodes": {} }, "get": { "consumes": [ "application/json" ], "description": "Refresh ticket. This endpoint requires ticket to be placed in the authorization header with this format: \u0026amp;#34;Bearer ticketID\u0026amp;#34;. When the ticketID is empty or not found the response status will be 401", "operationId": "refreshTicket", "parameters": [ { "description": "Namespace, only accept alphabet and numeric", "in": "path", "name": "namespace", "required": true, "type": "string" } ], "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/apimodels.RefreshTicketResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.Error" } } }, "security": [ { "authorization": [] } ], "summary": "Refresh ticket", "tags": [ "Ticket V1" ], "x-errorCodes": {} } } }, "definitions": { "apimodels.ConfigurationRequest": { "properties": { "enabled": { "type": "boolean", "x-omitempty": false }, "maxConcurrency": { "format": "int32", "type": "integer" }, "maxLoginRate": { "format": "int32", "type": "integer" }, "minActivationPeriodInSecond": { "format": "int32", "type": "integer" }, "playerPollingTimeInSecond": { "format": "int32", "type": "integer" }, "playerReconnectGracePeriodInSecond": { "format": "int32", "type": "integer" }, "queueReconnectGracePeriodInSecond": { "format": "int32", "type": "integer" }, "safetyMarginPercentage": { "format": "int32", "type": "integer" } }, "required": [ "enabled", "maxConcurrency", "maxLoginRate", "minActivationPeriodInSecond", "playerPollingTimeInSecond", "playerReconnectGracePeriodInSecond", "queueReconnectGracePeriodInSecond", "safetyMarginPercentage" ] }, "apimodels.ConfigurationResponse": { "properties": { "enabled": { "type": "boolean", "x-omitempty": false }, "maxConcurrency": { "format": "int32", "type": "integer" }, "maxLoginRate": { "format": "int32", "type": "integer" }, "minActivationPeriodInSecond": { "format": "int32", "type": "integer" }, "namespace": { "type": "string" }, "playerPollingTimeInSecond": { "format": "int32", "type": "integer" }, "playerReconnectGracePeriodInSecond": { "format": "int32", "type": "integer" }, "queueReconnectGracePeriodInSecond": { "format": "int32", "type": "integer" }, "safetyMarginPercentage": { "format": "int32", "type": "integer" } }, "required": [ "enabled", "maxConcurrency", "maxLoginRate", "minActivationPeriodInSecond", "namespace", "playerPollingTimeInSecond", "playerReconnectGracePeriodInSecond", "queueReconnectGracePeriodInSecond", "safetyMarginPercentage" ] }, "apimodels.Link": { "properties": { "action": { "type": "string" }, "href": { "type": "string" } }, "required": [ "action", "href" ] }, "apimodels.QueueStatusResponse": { "properties": { "isActive": { "type": "boolean", "x-omitempty": false }, "loggedUserCount": { "format": "int32", "type": "integer" }, "loginRPS": { "format": "int32", "type": "integer" }, "namespace": { "type": "string" }, "queueCount": { "format": "int32", "type": "integer" } }, "required": [ "isActive", "loggedUserCount", "loginRPS", "namespace", "queueCount" ] }, "apimodels.RefreshTicketResponse": { "properties": { "cancel": { "$ref": "#/definitions/apimodels.Link" }, "estimatedWaitingTimeInSeconds": { "format": "int32", "type": "integer" }, "namespace": { "type": "string" }, "playerPollingTimeInSeconds": { "format": "int32", "type": "integer" }, "position": { "format": "int32", "type": "integer" }, "reconnectExpiredAt": { "format": "int64", "type": "integer" } }, "required": [ "cancel", "estimatedWaitingTimeInSeconds", "namespace", "playerPollingTimeInSeconds", "position", "reconnectExpiredAt" ] }, "response.Error": { "properties": { "attributes": { "additionalProperties": { "type": "string" }, "type": "object" }, "errorCode": { "format": "int32", "type": "integer" }, "errorMessage": { "type": "string" }, "message": { "type": "string" }, "name": { "type": "string" } }, "required": [ "errorCode", "errorMessage", "message", "name" ] } }, "x-docs": { "alias": "login-queue", "host": "https://stage.accelbyte.io", "path": "/login-queue/apidocs/api.json" }, "x-version": { "buildDate": "2025-11-19T03:13:28+00:00", "gitHash": "2b8e8604f03bd2ddb3cba168bf6ef2b5da7627d9", "name": "justice-login-queue-service", "realm": "staging", "version": "2.3.3", "version-roles-seeding": "1.2.103" } }