{ "openapi": "3.1.0", "info": { "title": "Rally Here Environment APIs", "description": "Rally Here Environment APIs", "version": "1.0.0" }, "servers": [ { "url": "https://{environment_id}.rally-here.io", "variables": { "environment_id": { "default": "demo", "description": "Environment ID assigned by RallyHere. This is available from your Environment in the RallyHere Developer Portal at https://developer.rallyhere.gg" } } } ], "externalDocs": { "description": "RallyHere Documentation", "url": "https://www.rallyhere.gg/docs" }, "tags": [ { "name": "ad", "description": "Operations on ad" }, { "name": "Friends V1", "description": "Operations to fetch and modify a player's friends. Note: V1 and V2 are not be be used together. Once you begin using V2, you must not use V1 anymore." }, { "name": "Friends V2", "description": "Operations to fetch and modify a player's friends using player uuids" }, { "name": "Blocked V1", "description": "Operations to fetch and modify a player's blocked list. Note: V1 and V2 are not be be used together. Once you begin using V2, you must not use V1 anymore." }, { "name": "Blocked V2", "description": "Operations to fetch and modify a player's blocked list using player uuids" }, { "name": "Configuration V1", "description": "Operations to view configuration for friends and blocked lists" }, { "name": "settings", "description": "\nEndpoints to get setting configuration and player settings\n\nPlayer Settings are meant to be used as a document storage for players settings.\n\nSettings are organized around Setting Types. Each Setting Type can contain one or more Setting Versions. Each Type+Version pair includes a jsonschema that is used to validate any update that apply to the setting. This does NOT validate data for the get endpoints. If the data is invalid, the get endpoint will return the data as it was stored.\n" }, { "name": "auth", "description": "RallyHere Authentication API\n\nThis API is used by clients to retrieve an access token to be used when accessing other RallyHere APIs.\n\n## User-based Client Logins\n\nThe /v1/login endpoint supports user-based authentication for a variety of platforms by \"wrapping\" a user's platform\naccess token using a multi-step process:\n\n1. The client must authenticate the user and retrieve an access token for their respective platform.\n2. The client must subsequently authenticate the user using the /v1/login endpoint by setting the `grant_type` to the\nappropriate platform, and setting the `portal_access_token` to the access token retrieved above, which will return a\nnew access token to be used for RallyHere APIs.\n\n## OAuth\n\n### Version 1\n\nThe /v1/oauth endpoints support user-based client authentication for a variety of different platforms, utilizing secure\nredirects to third-party authentication URLs. The OAuth flow allows authentication to the RallyHere APIs without the use\nof a game client.\n\n### Version 2\n\nCurrently, the /v2/oauth endpoints only support a `grant_type` value of `client_credentials`, for the purposes of\nuser-less client authentication, utilizing Basic authentication containing a RallyHere client ID and client secret. This\ntype of authentication enables trusted clients (such as backend game instances) to access the RallyHere APIs without\nuser-specific authentication.\n\nThe /v2/oauth endpoint will be updated in the future to include user-based authentication modes.\n\n" }, { "name": "Sessions", "description": "\nThis API is for the creation and management of sessions, which are just generic groups of players, and operations\non those sessions, such as joining matchmaking.\n" }, { "name": "Queues", "description": "\nThe queue endpoints are for requesting information and configuration about queues, instance launch templates, and\nmatchmaking profiles\n" }, { "name": "Regions", "description": "\nRegion endpoints for clients to request client visible regions and configuration around them\n" }, { "name": "Inventory", "description": "Operations on inventory data" }, { "name": "Catalog", "description": "Operations on catalog data" }, { "name": "Entitlements", "description": "Operations on entitlements. Key Entitlements are used to grant Players Key Claims for an external Marketing Campaign." }, { "name": "Key Claims", "description": "Operations to Fetch and Claim Key Claims. Key Claims are used to give Players keys as a reward to fulfilling the requirements of an external Marketing Campaign. Examples: Beta Keys, Extra Game keys for Friends, etc." }, { "name": "Marketing", "description": "Operations on Market Campaigns. There is currently no way to add Market Campaigns via API. Reach out to your Rally Here representative to add a new campaign." }, { "name": "presence", "description": "RallyHere Presence API\n\nThis API is intended to generally store presence information and be used in order to track the concurrent users for the game as a whole.\n\n## Basic Usage\n\nOn login, a client should go through the following steps.\n\n1. Get any existing current presence data and store that locally using GET `/v1/player/me/presence`.\n2. Mark online by patching their own presence with an empty update using PATCH `/v1/player/presence`.\n3. Request the client visible settings using GET `/v1/settings` and store them.\n4. Every `self_ping_interval_seconds` the client should mark online again by patching their own presence with an empty update using PATCH `/v1/player/presence`\n\n## Setting Presence\n\nWhen updating your presence the `display_name` and `platform` are not set directly. They are instead derived from the JWT provided by the users-api.\n\nThe presence you set is considered public, so do not set any values that should be considered private data in either the `status_message` or the\n`custom_data`.\n\n## Fetching Presence\n\nYou may fetch the presence of another user by either their `player_id` or `player_uuid`. You should prefer the `player_uuid` whenever it is available\nas the `player_id` is deprecated.\n\n\n## Private Presence Data\n\n`last_seen` is only available when requesting presence for yourself or as an admin.\n\n## Concurrent Users Updates\nIt's expected that users of this API will regularly patch their own presence with an empty update. This will signal that they are still online without\nchanging any of their presence information. This should be done on a cycle based on the `self_ping_interval_setting` settings provided by the API on\nthe `/v1/settings` endpoint conforming to the `ClientVisibleSettings` schema.\n\nIf a client takes longer than the `last_seen_age_considered_offline_seconds` setting to perform this update they will be considered offline by other\nclients. This setting is provided by the API on the `/v1/settings` endpoint conforming to the `ClientVisibleSettings` schema.\n" }, { "name": "presence-admin", "description": "RallyHere Presence Admin API\n\nThis API is only available to administrators. It provides access to CCU data and to set specific values for presence that aren't available to\nunprivileged clients.\n\nEach time a user interacts with this API their uuid is added to a time-keyed HyperLogLog. This enables us to track the number of users stochastically\nrather than having to create a complete entry for every interaction. Their uuid is also added to a HyperLogLog keyed by both time and the platform the\nuser authenticated on.\n\nThe three actions CCU tracks are total, updating, and requesting. Comparing the numbers between the three will help identify if there are users who are\nscanning the API rather than using it for normal presence operations.\n\nWhen requesting the CCU you generally have two major options: Combined and Individual.\n\nThe Combined methods count up the number of users internally and therefor handle duplicates correctly.\n\nThe Individual methods return the individual counts for each timestamp. This data can be useful, but can't be summed up directly unless you're okay\nwith counting players multiple times.\n\nFor example, if you want to know the 24-hour CCU you should *not* get the Individual CCUs and add them up yourself. You should request the Combined\nCCU over that time period.\n" }, { "name": "player-notification", "description": "Operations on Player Notifications" }, { "name": "player-id-notification", "description": "Operations on Player Notifications" }, { "name": "instance-notification", "description": "Operations on Instance Notifications" }, { "name": "rank", "description": "\n\nThis API is used to update players ranks after matches\n\n" }, { "name": "config", "description": "Getting client and server app settings" }, { "name": "time", "description": "Endpoint for UTC now time" }, { "name": "environment", "description": "Getting Sandbox configuration" }, { "name": "custom", "description": "Endpoints for hitting custom urls" }, { "name": "Events", "description": "Event Tracking" }, { "name": "match", "description": "Operations on match-api" }, { "name": "reports", "description": "Player Reports" }, { "name": "file", "description": "Operations on file-api" } ], "paths": { "/ad/v1/session": { "post": { "tags": [ "ad" ], "summary": "Begin New Session", "description": "Start a new session for the user. This will generate a new ad api token that is returned in the response header.", "operationId": "begin_new_session", "parameters": [ { "description": "Optional header to make calling the endpoint faster by not requiring a new token to be generated.", "required": false, "schema": { "type": "string", "title": "X-Hz-Ad-Api-Token", "description": "Optional header to make calling the endpoint faster by not requiring a new token to be generated." }, "name": "x-hz-ad-api-token", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_begin_new_session" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "x-hz-ad-api-token": { "description": "Provide this token to future requests for the same user to make their requests faster (as a new token doesn't need to be generated)", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "headers": { "x-hz-ad-api-token": { "description": "Provide this token to future requests for the same user to make their requests faster (as a new token doesn't need to be generated)", "schema": { "type": "string" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/ad/v1/opportunity": { "post": { "tags": [ "ad" ], "summary": "Find Opportunities", "description": "Find ad opportunities for the user given optional screen sizes. This will generate a new ad api token that is returned in the response header.", "operationId": "find_opportunities", "parameters": [ { "description": "Optional header to make calling the endpoint faster by not requiring a new token to be generated.", "required": false, "schema": { "type": "string", "title": "X-Hz-Ad-Api-Token", "description": "Optional header to make calling the endpoint faster by not requiring a new token to be generated." }, "name": "x-hz-ad-api-token", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_find_opportunities" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "x-hz-ad-api-token": { "description": "Provide this token to future requests for the same user to make their requests faster (as a new token doesn't need to be generated)", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdOpportunities" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "headers": { "x-hz-ad-api-token": { "description": "Provide this token to future requests for the same user to make their requests faster (as a new token doesn't need to be generated)", "schema": { "type": "string" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/ad/v1/opportunity/{opportunity_id}": { "post": { "tags": [ "ad" ], "summary": "Update Opportunity By Id", "description": "Update the opportunity with the given id. This will generate a new ad api token that is returned in the response header.", "operationId": "update_opportunity_by_id", "parameters": [ { "required": true, "schema": { "type": "string", "minLength": 1, "title": "Opportunity Id" }, "name": "opportunity_id", "in": "path" }, { "description": "Optional header to make calling the endpoint faster by not requiring a new token to be generated.", "required": false, "schema": { "type": "string", "title": "X-Hz-Ad-Api-Token", "description": "Optional header to make calling the endpoint faster by not requiring a new token to be generated." }, "name": "x-hz-ad-api-token", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_update_opportunity_by_id" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "x-hz-ad-api-token": { "description": "Provide this token to future requests for the same user to make their requests faster (as a new token doesn't need to be generated)", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "headers": { "x-hz-ad-api-token": { "description": "Provide this token to future requests for the same user to make their requests faster (as a new token doesn't need to be generated)", "schema": { "type": "string" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/ad/v1/unity/ad/watched": { "get": { "tags": [ "ad" ], "summary": "Unity Ad Watched", "description": "Callback URL for the Unity Ad API. Docs here https://docs.unity.com/ads/ImplementingS2SRedeemCallbacks.html", "operationId": "unity_ad_watched", "parameters": [ { "description": "Product ID in the Unity console", "required": true, "schema": { "type": "integer", "title": "Productid", "description": "Product ID in the Unity console" }, "name": "productid", "in": "query" }, { "description": "Server ID that contains custom data. Expected to be a comma separated list of platform and player ID", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Sid", "description": "Server ID that contains custom data. Expected to be a comma separated list of platform and player ID" }, "example": "ios,12345", "name": "sid", "in": "query" }, { "description": "Unique ID for the ad view generated by Unity", "required": true, "schema": { "type": "string", "title": "Oid", "description": "Unique ID for the ad view generated by Unity" }, "name": "oid", "in": "query" }, { "description": "The HMAC-MD5 hash of the parameter string used to validate the request", "required": true, "schema": { "type": "string", "title": "Hmac", "description": "The HMAC-MD5 hash of the parameter string used to validate the request" }, "name": "hmac", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "text/plain": { "schema": { "type": "string" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ad/v1/unity/mediation/watched": { "get": { "tags": [ "ad" ], "summary": "Unity Mediation Ad Watched", "description": "Callback URL for the Unity Ad API. Docs here https://docs.unity.com/mediation/S2SRedeemCallbacks.html", "operationId": "unity_mediation_ad_watched", "parameters": [ { "description": "Custom data provide by client. Expected to be client type", "required": true, "schema": { "type": "string", "title": "Customized Data", "description": "Custom data provide by client. Expected to be client type" }, "example": "android", "name": "customized_data", "in": "query" }, { "description": "User ID provided by the client", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Userid", "description": "User ID provided by the client" }, "name": "userId", "in": "query" }, { "description": "Unique ID for the ad view generated by Unity", "required": true, "schema": { "type": "string", "title": "Eventid", "description": "Unique ID for the ad view generated by Unity" }, "name": "eventId", "in": "query" }, { "description": "Timestamp of an ad event in Unix format", "required": true, "schema": { "type": "integer", "title": "Timestamp", "description": "Timestamp of an ad event in Unix format" }, "name": "timestamp", "in": "query" }, { "description": "The HMAC-MD5 hash of the parameter string used to validate the request", "required": true, "schema": { "type": "string", "title": "Signature", "description": "The HMAC-MD5 hash of the parameter string used to validate the request" }, "name": "signature", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "text/plain": { "schema": { "type": "string" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/friends/v2/player/{player_uuid}/friend": { "get": { "tags": [ "Friends V2" ], "summary": "Get Friends List For Player V2", "description": "Fetch the friend's list for the Player and their relationship status with those friends.

\n Note: This API supports etags and will return the etag header when with the response. \n Clients can utilize the if-none-match header to avoid having to reload the response if it has not changed.", "operationId": "get_friends_list_for_player_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": false, "schema": { "type": "integer", "minimum": 0, "title": "Page", "default": 0 }, "name": "page", "in": "query" }, { "required": false, "schema": { "type": "integer", "maximum": 10000, "minimum": 1, "title": "Limit", "default": 50 }, "name": "limit", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FriendsList" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Friends V2" ], "summary": "Delete Friends V2", "description": "Remove the friend's relationship status with the other players", "operationId": "delete_friends_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Friends" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/friends/v2/player/{player_uuid}/friend/{other_player_uuid}": { "get": { "tags": [ "Friends V2" ], "summary": "Get Friend Relationship V2", "description": "Get the relationship status with the other Player.

\n Note: This API supports etags and will return the etag header when with the response. \n Clients and then utilize the if-none-match header to avoid having to reload the response if \n it has not changed or to use it to modify the relationship without loosing updates. \n

Permissions Required: friend:friend_list:read", "operationId": "get_friend_relationship_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Other Player Uuid" }, "name": "other_player_uuid", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FriendRelationship" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "Friends V2" ], "summary": "Add Friend V2", "description": "Modify the friend's relationship status with the other Player. There is a max number of friends that can be added for a Player.\n The limit can determined using [this API](/#/Configuration%20V1/get_friends_and_block_limits). This API allows you optionally update \n the player's notes for the other player. If you do not want to update or set the notes when adding the other player, then do not \n include a body.

\n Note: This API supports etags and will return the etag header when with the response and will match the etag value \n provided when [fetching Friend Relationship between these two players](/#/Friends%20V1/get_friend_relationship). It is highly \n recommended to provide the etag value with the if-match header to avoid lost updates. \n

Permissions Required: friend:friend_list:write", "operationId": "add_friend_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Other Player Uuid" }, "name": "other_player_uuid", "in": "path" }, { "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed.", "required": false, "schema": { "type": "string", "title": "If-Match", "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed." }, "name": "if-match", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notes" } } } }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FriendRelationship" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "412": { "description": "The resource's Etag does not match the Etag provided. Get the Etag from the Get request and try again" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Friends V2" ], "summary": "Delete Friend V2", "description": "Remove the friend's relationship status with the other Player. \n This should be used for declining Friend requests, deleting sent Friends Requests, and deleting Friends

\n Note: This API supports etags and will return the etag header when with the response and will match the etag value \n provided when [fetching Friend Relationship between these two players](#/Friends V1/get_friend_relationship). It is highly \n recommended to provide the etag value with the if-match header to avoid lost updates. \n

Permissions Required: friend:friend_list:write", "operationId": "delete_friend_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Other Player Uuid" }, "name": "other_player_uuid", "in": "path" }, { "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed.", "required": false, "schema": { "type": "string", "title": "If-Match", "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed." }, "name": "if-match", "in": "header" } ], "responses": { "204": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "412": { "description": "The resource's Etag does not match the Etag provided. Get the Etag from the Get request and try again" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/friends/v2/player/{player_uuid}/friend/{other_player_uuid}/notes": { "put": { "tags": [ "Friends V2" ], "summary": "Add Notes V2", "description": "Update Player's notes on the other player. Players can only add notes for players they have relationship's with. \n The notes will be removed when the relationship is ended.\n

Permissions Required: friend:friend_list:write", "operationId": "add_notes_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Other Player Uuid" }, "name": "other_player_uuid", "in": "path" }, { "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed.", "required": false, "schema": { "type": "string", "title": "If-Match", "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed." }, "name": "if-match", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notes" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FriendRelationship" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Friends V2" ], "summary": "Delete Notes V2", "description": "Remove the Player's notes on the other player. Players can only add notes for players they have relationship's with. \n The notes will be removed when the relationship is ended.\n

Permissions Required: {FriendPermissions.FRIEND_LIST_WRITE}", "operationId": "delete_notes_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Other Player Uuid" }, "name": "other_player_uuid", "in": "path" }, { "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed.", "required": false, "schema": { "type": "string", "title": "If-Match", "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed." }, "name": "if-match", "in": "header" } ], "responses": { "204": { "description": "Successful Response" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/friends/v1/player/{player_id}/friend": { "get": { "tags": [ "Friends V1" ], "summary": "Get Friends List For Player", "description": "Fetch the friend's list for the Player and their relationship status with those friends.

\n Note: This API supports etags and will return the etag header when with the response. \n Clients and then utilize the if-none-match header to avoid having to reload the response if it has not changed. \n

Permissions Required: friend:friend_list:read", "operationId": "get_friends_list_for_player", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": false, "schema": { "type": "integer", "minimum": 0, "title": "Page", "default": 0 }, "name": "page", "in": "query" }, { "required": false, "schema": { "type": "integer", "maximum": 10000, "minimum": 1, "title": "Limit", "default": 50 }, "name": "limit", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FriendsListV1" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Friends V1" ], "summary": "Delete Friends", "description": "Remove the friend's relationship status with the other players

Permissions Required: friend:friend_list:write", "operationId": "delete_friends", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FriendsV1" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/friends/v1/player/{player_id}/friend/{other_player_id}": { "get": { "tags": [ "Friends V1" ], "summary": "Get Friend Relationship", "description": "Get the relationship status with the other Player.

\n Note: This API supports etags and will return the etag header when with the response. \n Clients can utilize the if-none-match header to avoid having to reload the response if \n it has not changed or to use it to modify the relationship without loosing updates. \n

Permissions Required: friend:friend_list:read", "operationId": "get_friend_relationship", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Other Player Id" }, "name": "other_player_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FriendRelationshipV1" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "Friends V1" ], "summary": "Add Friend", "description": "Modify the friend's relationship status with the other Player. There is a max number of friends that can be added for a Player.\n The limit can determined using [this API](/#/Configuration%20V1/get_friends_and_block_limits). This API allows you optionally update \n the player's notes for the other player. If you do not want to update or set the notes when adding the other player, then do not \n include a body.

Note: This API supports etags and will return the etag header when with the response and will match the etag value \n provided when [fetching Friend Relationship between these two players](/#/Friends%20V1/get_friend_relationship). It is highly \n recommended to provide the etag value with the if-match header to avoid lost updates. \n

Permissions Required: friend:friend_list:write", "operationId": "add_friend", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Other Player Id" }, "name": "other_player_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed." }, "name": "if-match", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notes" } } } }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FriendRelationshipV1" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "412": { "description": "The resource's Etag does not match the Etag provided. Get the Etag from the Get request and try again" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Friends V1" ], "summary": "Delete Friend", "description": "Remove the friend's relationship status with the other Player. \n This should be used for declining Friend requests, deleting sent Friends Requests, and deleting Friends

\n Note: This API supports etags and will return the etag header when with the response and will match the etag value \n provided when [fetching Friend Relationship between these two players](#/Friends V1/get_friend_relationship). It is highly \n recommended to provide the etag value with the if-match header to avoid lost updates. \n

Permissions Required: friend:friend_list:write", "operationId": "delete_friend", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Other Player Id" }, "name": "other_player_id", "in": "path" }, { "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed.", "required": false, "schema": { "type": "string", "title": "If-Match", "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed." }, "name": "if-match", "in": "header" } ], "responses": { "204": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "412": { "description": "The resource's Etag does not match the Etag provided. Get the Etag from the Get request and try again" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/friends/v1/player/{player_id}/friend/{other_player_id}/notes": { "put": { "tags": [ "Friends V1" ], "summary": "Add Notes", "description": "Update Player's notes on the other player. Players can only add notes for players they have relationship's with. \n The notes will be removed when the relationship is ended.\n

Permissions Required: friend:friend_list:write", "operationId": "add_notes", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Other Player Id" }, "name": "other_player_id", "in": "path" }, { "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed.", "required": false, "schema": { "type": "string", "title": "If-Match", "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed." }, "name": "if-match", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notes" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FriendRelationshipV1" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Friends V1" ], "summary": "Delete Notes", "description": "Remove the Player's notes on the other player. Players can only add notes for players they have relationship's with. \n The notes will be removed when the relationship is ended.\n

Permissions Required: friend:friend_list:write", "operationId": "delete_notes", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Other Player Id" }, "name": "other_player_id", "in": "path" }, { "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed.", "required": false, "schema": { "type": "string", "title": "If-Match", "description": "If you provide the ETag that does not matches the current ETag for this resource, a 412 response will be return - indicating that the resource has changed." }, "name": "if-match", "in": "header" } ], "responses": { "204": { "description": "Successful Response" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/friends/v2/player/{player_uuid}/block": { "get": { "tags": [ "Blocked V2" ], "summary": "Get Blocked List For Player V2", "description": "Fetch the blocked list for the Player.

\n Note: This API supports etags and will return the etag header when with the response. \n Clients can utilize the if-none-match header to avoid having to reload the response if it has not changed.\n

Permissions Required: friend:block_list:read", "operationId": "get_blocked_list_for_player_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": false, "schema": { "type": "integer", "minimum": 0, "title": "Page", "default": 0 }, "name": "page", "in": "query" }, { "required": false, "schema": { "type": "integer", "maximum": 10000, "minimum": 1, "title": "Limit", "default": 50 }, "name": "limit", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockedList" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/friends/v2/player/{player_uuid}/block/{other_player_uuid}": { "get": { "tags": [ "Blocked V2" ], "summary": "Get Blocked V2", "description": "Get the Blocked Player

Permissions Required: friend:block_list:read", "operationId": "get_blocked_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Other Player Uuid" }, "name": "other_player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockedPlayer" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "Blocked V2" ], "summary": "Block V2", "description": "Block the other Player. There is a max number of Players that can be blocked per Player.\n The limit can determined using [this API](/#/Configuration%20V1/get_friends_and_block_limits).\n

Permissions Required: friend:block_list:write", "operationId": "block_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Other Player Uuid" }, "name": "other_player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockedPlayer" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Blocked V2" ], "summary": "Unblock V2", "description": "Unblock the other Player

Permissions Required: friend:block_list:write", "operationId": "unblock_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Other Player Uuid" }, "name": "other_player_uuid", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/friends/v1/player/{player_id}/block": { "get": { "tags": [ "Blocked V1" ], "summary": "Get Blocked List For Player", "description": "Fetch the blocked list for the Player.

\n Note: This API supports etags and will return the etag header when with the response. \n Clients can utilize the if-none-match header to avoid having to reload the response if it has not changed. \n

Permissions Required: friend:block_list:read", "operationId": "get_blocked_list_for_player", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": false, "schema": { "type": "integer", "minimum": 0, "title": "Page", "default": 0 }, "name": "page", "in": "query" }, { "required": false, "schema": { "type": "integer", "maximum": 10000, "minimum": 1, "title": "Limit", "default": 50 }, "name": "limit", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockedListV1" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/friends/v1/player/{player_id}/block/{other_player_id}": { "get": { "tags": [ "Blocked V1" ], "summary": "Get Blocked", "description": "Get the Blocked Player

Permissions Required: friend:block_list:read", "operationId": "get_blocked", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Other Player Id" }, "name": "other_player_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockedPlayerV1" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "Blocked V1" ], "summary": "Block", "description": "Block the other Player. There is a max number of Players that can be blocked per Player.\n The limit can determined using [this API](/#/Configuration%20V1/get_friends_and_block_limits).\n

Permissions Required: friend:block_list:write", "operationId": "block", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Other Player Id" }, "name": "other_player_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockedPlayerV1" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Blocked V1" ], "summary": "Unblock", "description": "Unblock the other Player

Permissions Required: friend:block_list:write", "operationId": "unblock", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Other Player Id" }, "name": "other_player_id", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/friends/v1/configuration": { "get": { "tags": [ "Configuration V1" ], "summary": "Get Friends And Block Limits", "description": "Fetch the configuration used by Friends API, e.g. friend_limit, block_limit, etc.", "operationId": "get_friends_and_block_limits", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FriendsApiConfig" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/settings/v1/player/{player_id}/setting_type/{setting_type_id}/key": { "get": { "tags": [ "settings" ], "summary": "Get All Player Id Settings For Setting Type", "description": "Get a list of all player settings for a specific Setting Type.\n\nRequired Permissions: `setting:read` for any player. `setting:read:self` for the player of the access token.\n\n**DEPRECATED** - Use v2 instead", "operationId": "get_all_player_id_settings_for_setting_type", "parameters": [ { "description": "Player to get settings for", "required": true, "schema": { "type": "integer", "title": "Player Id", "description": "Player to get settings for" }, "name": "player_id", "in": "path" }, { "description": "Setting Type to get settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to get settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned", "required": false, "schema": { "items": { "type": "string", "maxLength": 256, "minLength": 1 }, "type": "array", "title": "Key", "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned" }, "name": "key", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "type": "object", "title": "Response Get All Player Id Settings For Setting Type" } } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "settings" ], "summary": "Delete All Player Id Settings For Setting Type", "description": "Delete all player setting for a specific type\n\nRequired Permissions: `setting:write` for any player. `setting:write:self` for the player of the access token.\n\n**DEPRECATED** - Use v2 instead", "operationId": "delete_all_player_id_settings_for_setting_type", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id" }, "name": "setting_type_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `does_not_exist` - Setting Key(s) do not exist\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/settings/v2/player/me/setting_type/{setting_type_id}/key": { "get": { "tags": [ "settings" ], "summary": "Get All Player Uuid Settings For Setting Type Self", "description": "Get a list of all player settings for a specific Setting Type\n\nRequired Permissions: `setting:read` or `setting:read:self`", "operationId": "get_all_player_uuid_settings_for_setting_type_self", "parameters": [ { "description": "Setting Type to get settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to get settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned", "required": false, "schema": { "items": { "type": "string", "maxLength": 256, "minLength": 1 }, "type": "array", "title": "Key", "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned" }, "name": "key", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "type": "object", "title": "Response Get All Player Uuid Settings For Setting Type Self" } } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "settings" ], "summary": "Delete All Player Uuid Settings For Setting Type Self", "description": "Delete all player setting for a specific type\n\nRequired Permissions: `setting:write` or `setting:write:self`", "operationId": "delete_all_player_uuid_settings_for_setting_type_self", "parameters": [ { "description": "Setting Type to delete settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to delete settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `does_not_exist` - Setting Key(s) do not exist\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/settings/v2/player/{player_uuid}/setting_type/{setting_type_id}/key": { "get": { "tags": [ "settings" ], "summary": "Get All Player Uuid Settings For Setting Type", "description": "Get a list of all player settings for a specific Setting Type\n\nRequired Permissions: `setting:read` for any player. `setting:read:self` for the player of the access token.", "operationId": "get_all_player_uuid_settings_for_setting_type", "parameters": [ { "description": "Player to get settings for", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player to get settings for" }, "name": "player_uuid", "in": "path" }, { "description": "Setting Type to get settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to get settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned", "required": false, "schema": { "items": { "type": "string", "maxLength": 256, "minLength": 1 }, "type": "array", "title": "Key", "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned" }, "name": "key", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "type": "object", "title": "Response Get All Player Uuid Settings For Setting Type" } } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "settings" ], "summary": "Delete All Player Uuid Settings For Setting Type", "description": "Delete all player setting for a specific type\n\nRequired Permissions: `setting:write` for any player. `setting:write:self` for the player of the access token.", "operationId": "delete_all_player_uuid_settings_for_setting_type", "parameters": [ { "description": "Player to delete setting for", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player to delete setting for" }, "name": "player_uuid", "in": "path" }, { "description": "Setting Type to delete settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to delete settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `does_not_exist` - Setting Key(s) do not exist\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/settings/v2/player/me/setting_type/{setting_type_id}/key/{key}": { "get": { "tags": [ "settings" ], "summary": "Get Single Player Uuid Setting Self", "description": "Get a single player setting\n\nRequired Permissions: `setting:read` or `setting:read:self`", "operationId": "get_single_player_uuid_setting_self", "parameters": [ { "description": "Setting Type to get settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to get settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to get settings for", "required": true, "schema": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Key", "description": "Setting Key to get settings for" }, "name": "key", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingData" } } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `not_found` - The setting key was not found\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "settings" ], "summary": "Set Single Player Uuid Setting Self", "description": "Update the value of a single player setting.\n \nRequired Permissions: `setting:write` or `setting:write:self`\n\nIf Legacy types are enabled, to maintain compatibility with legacy applications, the following settings have special-case handling:\n* Setting Type `case` - Version `1` - key `create` - creates a new case set and returns the new key and data in the response. \n* Setting Type `case` - Version `1` - key is integer - Modify an existing case set. If it does not exist, a 404 response with the `does_not_exist` error code. \n* Setting Type `loadout` - Version `1` - key `create` - creates a new loadout and returns the new key and data in the response. All items keys will be given a new key \n* Setting Type `loadout` - Version `1` - key is integer - Modify an existing loadout. If it does not exist, a 404 response with the `does_not_exist` error code. When modifying loadout items, item keys that convert into integers/longs are treated as updates (and will error the update if they are not valid), all others are treated as creates and will be given a new key.", "operationId": "set_single_player_uuid_setting_self", "parameters": [ { "description": "Setting Type to update settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to update settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to update setting for. Must conform to the setting type key format", "required": true, "schema": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Key", "description": "Setting Key to update setting for. Must conform to the setting type key format" }, "name": "key", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetSinglePlayerSettingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "type": "object", "title": "Response Set Single Player Uuid Setting Self" } } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n- `setting_version_invalid` - Setting Version is not valid for the provided type\n- `update_not_enabled` - Setting Type Version has updates disabled\n- `setting_key_invalid` - Setting Key does not meet requirements for that type/version\n- `setting_value_invalid` - Setting value failed validation against the jsonschema defined for the type/version. See response description for more details\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `does_not_exist` - Setting Key(s) do not exist - This will only occur for legacy setting types.\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "\nError Codes:\n- `setting_type_version_schema_invalid` - Setting type/version jsonschema is invalid and could not be used to validate the setting value. See response description for more details.\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "settings" ], "summary": "Delete Single Player Uuid Setting Self", "description": "Delete a single player setting\n\nRequired Permissions: `setting:write` or `setting:write:self`", "operationId": "delete_single_player_uuid_setting_self", "parameters": [ { "description": "Setting Type to delete settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to delete settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to delete setting for", "required": true, "schema": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Key", "description": "Setting Key to delete setting for" }, "name": "key", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `does_not_exist` - Setting Key(s) do not exist\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/settings/v2/player/{player_uuid}/setting_type/{setting_type_id}/key/{key}": { "get": { "tags": [ "settings" ], "summary": "Get Single Player Uuid Setting", "description": "Get a single player setting\n\nRequired Permissions: `setting:read` for any player. `setting:read:self` for the player of the access token.", "operationId": "get_single_player_uuid_setting", "parameters": [ { "description": "Player to get settings for", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player to get settings for" }, "name": "player_uuid", "in": "path" }, { "description": "Setting Type to get settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to get settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to get settings for", "required": true, "schema": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Key", "description": "Setting Key to get settings for" }, "name": "key", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingData" } } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `not_found` - The setting key was not found\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "settings" ], "summary": "Set Single Player Uuid Setting", "description": "Update the value of a single player setting.\n \nRequired Permissions: `setting:write` for any player. `setting:write:self` for the player of the access token.\n\nIf Legacy types are enabled, to maintain compatibility with legacy applications, the following settings have special-case handling:\n* Setting Type `case` - Version `1` - key `create` - creates a new case set and returns the new key and data in the response. \n* Setting Type `case` - Version `1` - key is integer - Modify an existing case set. If it does not exist, a 404 response with the `does_not_exist` error code. \n* Setting Type `loadout` - Version `1` - key `create` - creates a new loadout and returns the new key and data in the response. All items keys will be given a new key \n* Setting Type `loadout` - Version `1` - key is integer - Modify an existing loadout. If it does not exist, a 404 response with the `does_not_exist` error code. When modifying loadout items, item keys that convert into integers/longs are treated as updates (and will error the update if they are not valid), all others are treated as creates and will be given a new key.", "operationId": "set_single_player_uuid_setting", "parameters": [ { "description": "Player to update setting for", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player to update setting for" }, "name": "player_uuid", "in": "path" }, { "description": "Setting Type to update settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to update settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to update setting for. Must conform to the setting type key format", "required": true, "schema": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Key", "description": "Setting Key to update setting for. Must conform to the setting type key format" }, "name": "key", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetSinglePlayerSettingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "type": "object", "title": "Response Set Single Player Uuid Setting" } } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n- `setting_version_invalid` - Setting Version is not valid for the provided type\n- `update_not_enabled` - Setting Type Version has updates disabled\n- `setting_key_invalid` - Setting Key does not meet requirements for that type/version\n- `setting_value_invalid` - Setting value failed validation against the jsonschema defined for the type/version. See response description for more details\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `does_not_exist` - Setting Key(s) do not exist - This will only occur for legacy setting types.\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "\nError Codes:\n- `setting_type_version_schema_invalid` - Setting type/version jsonschema is invalid and could not be used to validate the setting value. See response description for more details.\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "settings" ], "summary": "Delete Single Player Uuid Setting", "description": "Delete a single player setting\n\nRequired Permissions: `setting:write` for any player. `setting:write:self` for the player of the access token.", "operationId": "delete_single_player_uuid_setting", "parameters": [ { "description": "Player to delete setting for", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player to delete setting for" }, "name": "player_uuid", "in": "path" }, { "description": "Setting Type to delete settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to delete settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to delete setting for", "required": true, "schema": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Key", "description": "Setting Key to delete setting for" }, "name": "key", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `does_not_exist` - Setting Key(s) do not exist\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/settings/v1/player/{player_id}/setting_type/{setting_type_id}/key/{key}": { "get": { "tags": [ "settings" ], "summary": "Get Single Player Id Setting", "description": "Get a single player setting\n\nRequired Permissions: `setting:read` for any player. `setting:read:self` for the player of the access token.\n\n**DEPRECATED** - Use v2 instead", "operationId": "get_single_player_id_setting", "parameters": [ { "description": "Player to get settings for", "required": true, "schema": { "type": "integer", "title": "Player Id", "description": "Player to get settings for" }, "name": "player_id", "in": "path" }, { "description": "Setting Type to get settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to get settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to get settings for", "required": true, "schema": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Key", "description": "Setting Key to get settings for" }, "name": "key", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingData" } } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `not_found` - The setting key was not found\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "settings" ], "summary": "Set Single Player Id Setting", "description": "Update the value of a single player setting.\n\nRequired Permissions: `setting:write` for any player. `setting:write:self` for the player of the access token.\n\nIf Legacy types are enabled, to maintain compatibility with legacy applications, the following settings have special-case handling:\n* Setting Type `case` - Version `1` - key `create` - creates a new case set and returns the new key and data in the response. \n* Setting Type `case` - Version `1` - key is integer - Modify an existing case set. If it does not exist, a 404 response with the `does_not_exist` error code. \n* Setting Type `loadout` - Version `1` - key `create` - creates a new loadout and returns the new key and data in the response. All items keys will be given a new key \n* Setting Type `loadout` - Version `1` - key is integer - Modify an existing loadout. If it does not exist, a 404 response with the `does_not_exist` error code. When modifying loadout items, item keys that convert into integers/longs are treated as updates (and will error the update if they are not valid), all others are treated as creates and will be given a new key. \n\n**DEPRECATED** - Use the v2 endpoint instead. This endpoint will be removed in a future release.", "operationId": "set_single_player_id_setting", "parameters": [ { "description": "Player to update setting for", "required": true, "schema": { "type": "integer", "title": "Player Id", "description": "Player to update setting for" }, "name": "player_id", "in": "path" }, { "description": "Setting Type to update settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to update settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to update setting for. Must conform to the setting type key format", "required": true, "schema": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Key", "description": "Setting Key to update setting for. Must conform to the setting type key format" }, "name": "key", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetSinglePlayerSettingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "type": "object", "title": "Response Set Single Player Id Setting" } } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n- `setting_version_invalid` - Setting Version is not valid for the provided type\n- `update_not_enabled` - Setting Type Version has updates disabled\n- `setting_key_invalid` - Setting Key does not meet requirements for that type/version\n- `setting_value_invalid` - Setting value failed validation against the jsonschema defined for the type/version. See response description for more details\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `does_not_exist` - Setting Key(s) do not exist - This will only occur for legacy setting types.\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "\nError Codes:\n- `setting_type_version_schema_invalid` - Setting type/version jsonschema is invalid and could not be used to validate the setting value. See response description for more details.\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "settings" ], "summary": "Delete Single Player Id Setting", "description": "Delete a single player setting\n \nRequired Permissions: `setting:write` for any player. `setting:write:self` for the player of the access token.\n \n**DEPRECATED** - Use v2 instead", "operationId": "delete_single_player_id_setting", "parameters": [ { "description": "Player to delete setting for", "required": true, "schema": { "type": "integer", "title": "Player Id", "description": "Player to delete setting for" }, "name": "player_id", "in": "path" }, { "description": "Setting Type to delete settings for. Must be one of the known setting types", "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id", "description": "Setting Type to delete settings for. Must be one of the known setting types" }, "name": "setting_type_id", "in": "path" }, { "description": "Setting Key to delete setting for", "required": true, "schema": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Key", "description": "Setting Key to delete setting for" }, "name": "key", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "\nError Codes:\n- `setting_type_not_supported` - The setting type is not supported at this time. Contact an administrator\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `does_not_exist` - Setting Key(s) do not exist\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/settings/v1/setting_type": { "get": { "tags": [ "settings" ], "summary": "Get Config For All Setting Types", "description": "Get all setting types and their configuration.\n \nRequired Permissions: `setting-config:read`", "operationId": "get_config_for_all_setting_types", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "$ref": "#/components/schemas/SettingType" }, "type": "object", "title": "Response Get Config For All Setting Types" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/settings/v1/setting_type/{setting_type_id}/v": { "get": { "tags": [ "settings" ], "summary": "Get Config For Single Setting Type All Versions", "description": "Get a configuration and all versions for a given setting type ID.\n \nRequired Permissions: `setting-config:read`", "operationId": "get_config_for_single_setting_type_all_versions", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id" }, "name": "setting_type_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "$ref": "#/components/schemas/SettingTypeVersion" }, "type": "object", "title": "Response Get Config For Single Setting Type All Versions" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/settings/v1/setting_type/{setting_type_id}/v/{setting_version_id}": { "get": { "tags": [ "settings" ], "summary": "Get Config For Single Setting Type And Version", "description": "Get a specific version of a specific setting type.", "operationId": "get_config_for_single_setting_type_and_version", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Setting Type Id" }, "name": "setting_type_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Setting Version Id" }, "name": "setting_version_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingTypeVersion" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `setting_type_id_not_found` - The setting type ID was not found\n- `setting_version_id_not_found` - The setting Version was not found for that type\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/verify": { "post": { "tags": [ "auth" ], "summary": "Verify", "operationId": "verify", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/login": { "post": { "tags": [ "auth" ], "summary": "Login", "description": "This endpoint is used to authenticate a user and retrieve an access token for use with other RallyHere APIs.\n \nThis endpoint supports user-based authentication for a variety of platforms.", "operationId": "login", "parameters": [ { "required": false, "schema": { "type": "string", "title": "User-Agent" }, "name": "user-agent", "in": "header" }, { "required": false, "schema": { "type": "string", "title": "X-Forwarded-For" }, "name": "x-forwarded-for", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginRequestV1" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginResult" } } } }, "403": { "description": "User authentication failed. See error code and description for further details.\n\nError Codes:\n- `internal_error` - An internal error occurred. The request may succeed if retried. If not, contact an administrator.\n- `no_redirects_configured` - No redirect urls setup for oauth.\n- `redirect_uri_does_not_match` - Redirect URI does not match a configured value.\n- `error_occurred_during_exchange` - An error occurred while exchanging a code for token.\n- `failed_to_verify_state` - Failed to verify the state associated with the request.\n- `failed_to_save_state` - Error occurred saving the state.\n- `failed_to_save_tokens` - Problem saving tokens. Contact an administrator\n- `too_many_users` - Account has too many users associated with it. Contact an administrator\n- `user_auth_restricted` - Authentication for this user has been restricted\n- `user_needs_agreements` - User has not accepted all required agreements. See response for list of agreements required\n- `error_retrieving_player_results` - Error retrieving player results\n- `failed_to_retrieve_roles` - Failed to retrieve roles\n- `client_credentials_invalid` - Client Credentials provided to authentication attempt were invalid\n- `authentication_limited` - Authentication is currently limited to accounts that are already logged in. Please try again later\n- `authentication_locked` - Authentication is currently locked. Please try again later\n- `invalid_grant_type` - Grant Type {grant_type} is not supported\n- `user_auth_disabled` - User authentication is not permitted for this policy\n- `client_auth_disabled` - Client authentication is not permitted for this policy\n- `amazon_disabled` - Amazon authentication is currently disabled\n- `amazon_token_empty` - Amazon access token is empty\n- `amazon_invalid_access_token` - Amazon access token is invalid\n- `amazon_token_exchange_failed` - Problem exchanging code for token with Amazon\n- `anon_disabled` - Anon authentication is currently disabled\n- `anon_token_empty` - Anon access token is empty\n- `apple_disabled` - Apple authentication is currently disabled\n- `apple_token_empty` - Apple access token is empty\n- `apple_failed_key_lookup` - Failed to retrieve keys from Apple\n- `apple_token_exchange_failed` - Problem exchanging code for token with Apple\n- `apple_token_key_not_valid` - public key not found\n- `apple_token_not_valid` - Apple access token is not valid\n- `authorization_code_not_found` - Authorization code not found or expired\n- `basic_disabled` - Basic authentication is currently disabled\n- `basic_token_empty` - Basic access token is empty\n- `basic_auth_incorrect_format` - Basic auth should be formatted like `USERNAME:PASSWORD`\n- `basic_auth_credentials_not_found` - Basic auth credentials not found\n- `developer_api_disabled` - Developer API authentication is currently disabled\n- `developer_api_token_empty` - Developer API access token is empty\n- `developer_api_token_invalid` - Developer API access token is invalid or expired\n- `epic_disabled` - Epic authentication is currently disabled\n- `epic_token_empty` - Epic access token is empty\n- `epic_v1_token_key_id_invalid` - Epic v1 token contains an invalid key id\n- `epic_v1_token_invalid` - Epic v1 token is invalid\n- `epic_v2_keys_not_available` - Epic v2 keys are not available. Please contact an administrator\n- `epic_v2_token_invalid` - Epic v2 token is invalid\n- `epic_oauth_token_exchange_failed` - Problem exchanging code for token with Epic\n- `google_disabled` - Google authentication is currently disabled\n- `google_token_empty` - Google access token is empty\n- `google_keys_not_available` - Google keys are not available. Please contact an administrator\n- `google_token_not_valid` - Google access token is not valid\n- `google_token_exchange_failed` - Problem exchanging code for token with Google\n- `nintendo_disabled` - Nintendo authentication is currently disabled\n- `nintendo_token_empty` - Nintendo access token is empty\n- `nintendo_env_credentials_not_found` - Nintendo environment credentials not found\n- `nintendo_access_token_not_valid` - Nintendo access token is not valid\n- `nintendo_no_environment_matches_env_id` - Nintendo environment not found for given environment ID\n- `nintendo_retrieve_client_credentials_failed` - Problem retrieving client credentials from Nintendo. This commonly occurs while converting between NAID and PPID.\n- `nintendo_ppid_conversion_failed` - error during PPID conversion\n- `nintendo_ppid_conversion_too_many_accounts_found` - too many accounts found during PPID conversion\n- `nintendo_ppid_conversion_no_accounts_found` - no accounts found during PPID conversion\n- `nintendo_ppid_missing` - PPID is missing for user\n- `nintendo_ppid_key_not_valid` - Nintendo access token key is not valid\n- `nintendo_service_key_url_not_found` - Nintendo service key url not found. This usually indicates that the corresponding Nintendo environment has a mismatch between Nintendo account URL and Nintendo Service Account URL.\n- `nintendo_service_access_token_not_valid` - Nintendo service access token is not valid\n- `nintendo_service_access_token_for_wrong_app` - Nintendo service access token is for the wrong app\n- `nintendo_oauth_env_not_found` - Nintendo oauth environment not found. Check that the environment is configured correctly.\n- `nintendo_token_exchange_failed` - Problem exchanging code for token with Nintendo\n- `ps4_v1_disabled` - PS4 v1 authentication is currently disabled\n- `ps4_v1_token_empty` - PS4 v1 access token is empty\n- `ps4_v1_token_expired` - PS4 v1 access token is expired\n- `ps4_v1_token_exchange_failed` - Problem exchanging code for token with PS4\n- `ps4_v1_id_token_request_failed` - Problem requesting id token from PS4\n- `ps4_v1_id_token_not_valid` - PS4 v1 id token is not valid\n- `ps4_v1_token_details_disabled` - PS4 v1 token details are disabled\n- `ps4_v1_token_details_request_failed` - Problem requesting token details from PS4\n- `ps4_v3_disabled` - PS4 v3 authentication is currently disabled\n- `ps4_v3_token_details_disabled` - PS4 v3 token details are disabled\n- `ps4_v3_token_empty` - PS4 v3 access token is empty\n- `ps4_v3_id_token_request_failed` - Problem requesting id token from PS4\n- `ps4_v3_id_token_not_valid` - PS4 v3 id token is not valid\n- `ps5_v3_disabled` - PS5 v3 authentication is currently disabled\n- `ps5_v3_token_details_disabled` - PS5 v3 token details are disabled\n- `ps5_v3_token_empty` - PS5 v3 access token is empty\n- `ps5_v3_id_token_request_failed` - Problem requesting id token from PS5\n- `ps5_v3_id_token_not_valid` - PS5 v3 id token is not valid\n- `psn_environment_permission_denied` - PSN Environment permission was denied. This usually means that the Client ID/Secret do not match. This error can also occur for `sp-int` or `prod-qa` if the environment is not whitelisted to access the PSN environment.\n- `refresh_disabled` - Refresh authentication is currently disabled\n- `refresh_token_empty` - Refresh token is empty\n- `refresh_token_not_found` - Refresh token was not found or has expired\n- `refresh_token_invalid_user` - Refresh token refrences invalid user\n- `refresh_token_client_id_mismatch` - Client ID for new token request did not match original token\n- `steam_disabled` - Steam authentication is currently disabled\n- `steam_token_empty` - Steam code (Ticket) is empty\n- `steam_token_exchange_failed` - Problem exchanging code (ticket) for token with Steam\n- `steam_user_vacbanned` - User is VAC banned\n- `steam_user_publisherbanned` - User is publisher banned\n- `steam_user_offline` - User is reporting offline to Steam, causing all Steam tickets to invalidate\n- `steam_token_invalid` - Steam code (Ticket) was reported as invalid by Steam\n- `steam_token_for_wrong_app` - Steam code (Ticket) is for a different Steam Application\n- `twitch_disabled` - Twitch authentication is currently disabled\n- `twitch_token_empty` - Twitch access token is empty\n- `twitch_token_invalid` - Twitch access token is not valid\n- `twitch_keys_not_available` - Twitch keys are not available. Please contact an administrator\n- `twitch_token_exchange_failed` - Problem exchanging code for token with Twitch\n- `xbox_disabled` - Xbox authentication is currently disabled\n- `xbox_xsts_token_empty` - Xbox XSTS token is empty\n- `xbox_xsts_token_invalid` - Xbox XSTS token is not valid\n- `xbox_xtoken_invalid` - Xbox XToken is not valid\n- `xbox_access_token_request_failed` - Problem requesting access token from Xbox\n- `xbox_xsts_token_exchange_failed` - Problem exchanging access token for XSTS token with Xbox\n- `xbox_xtoken_exchange_failed` - Problem exchanging XSTS token for XToken with Xbox\n\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgreementMessage" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "The service is currently unavailable. Please try again later.", "headers": { "Retry-After": { "description": "indicates how long the user agent should wait before making a follow-up request", "schema": { "type": "int" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBasic": [] } ] } }, "/users/v1/portaltoken/details": { "post": { "tags": [ "auth" ], "summary": "Get Portal Token Details", "operationId": "get_portal_token_details", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PortalTokenDetailsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Response Get Portal Token Details" } } } }, "403": { "description": "\nError Codes:\n- `internal_error` - An internal error occurred. The request may succeed if retried. If not, contact an administrator.\n- `no_redirects_configured` - No redirect urls setup for oauth.\n- `redirect_uri_does_not_match` - Redirect URI does not match a configured value.\n- `error_occurred_during_exchange` - An error occurred while exchanging a code for token.\n- `failed_to_verify_state` - Failed to verify the state associated with the request.\n- `failed_to_save_state` - Error occurred saving the state.\n- `failed_to_save_tokens` - Problem saving tokens. Contact an administrator\n- `too_many_users` - Account has too many users associated with it. Contact an administrator\n- `user_auth_restricted` - Authentication for this user has been restricted\n- `user_needs_agreements` - User has not accepted all required agreements. See response for list of agreements required\n- `error_retrieving_player_results` - Error retrieving player results\n- `failed_to_retrieve_roles` - Failed to retrieve roles\n- `client_credentials_invalid` - Client Credentials provided to authentication attempt were invalid\n- `authentication_limited` - Authentication is currently limited to accounts that are already logged in. Please try again later\n- `authentication_locked` - Authentication is currently locked. Please try again later\n- `invalid_grant_type` - Grant Type {grant_type} is not supported\n- `user_auth_disabled` - User authentication is not permitted for this policy\n- `client_auth_disabled` - Client authentication is not permitted for this policy\n- `amazon_disabled` - Amazon authentication is currently disabled\n- `amazon_token_empty` - Amazon access token is empty\n- `amazon_invalid_access_token` - Amazon access token is invalid\n- `amazon_token_exchange_failed` - Problem exchanging code for token with Amazon\n- `anon_disabled` - Anon authentication is currently disabled\n- `anon_token_empty` - Anon access token is empty\n- `apple_disabled` - Apple authentication is currently disabled\n- `apple_token_empty` - Apple access token is empty\n- `apple_failed_key_lookup` - Failed to retrieve keys from Apple\n- `apple_token_exchange_failed` - Problem exchanging code for token with Apple\n- `apple_token_key_not_valid` - public key not found\n- `apple_token_not_valid` - Apple access token is not valid\n- `authorization_code_not_found` - Authorization code not found or expired\n- `basic_disabled` - Basic authentication is currently disabled\n- `basic_token_empty` - Basic access token is empty\n- `basic_auth_incorrect_format` - Basic auth should be formatted like `USERNAME:PASSWORD`\n- `basic_auth_credentials_not_found` - Basic auth credentials not found\n- `developer_api_disabled` - Developer API authentication is currently disabled\n- `developer_api_token_empty` - Developer API access token is empty\n- `developer_api_token_invalid` - Developer API access token is invalid or expired\n- `epic_disabled` - Epic authentication is currently disabled\n- `epic_token_empty` - Epic access token is empty\n- `epic_v1_token_key_id_invalid` - Epic v1 token contains an invalid key id\n- `epic_v1_token_invalid` - Epic v1 token is invalid\n- `epic_v2_keys_not_available` - Epic v2 keys are not available. Please contact an administrator\n- `epic_v2_token_invalid` - Epic v2 token is invalid\n- `epic_oauth_token_exchange_failed` - Problem exchanging code for token with Epic\n- `google_disabled` - Google authentication is currently disabled\n- `google_token_empty` - Google access token is empty\n- `google_keys_not_available` - Google keys are not available. Please contact an administrator\n- `google_token_not_valid` - Google access token is not valid\n- `google_token_exchange_failed` - Problem exchanging code for token with Google\n- `nintendo_disabled` - Nintendo authentication is currently disabled\n- `nintendo_token_empty` - Nintendo access token is empty\n- `nintendo_env_credentials_not_found` - Nintendo environment credentials not found\n- `nintendo_access_token_not_valid` - Nintendo access token is not valid\n- `nintendo_no_environment_matches_env_id` - Nintendo environment not found for given environment ID\n- `nintendo_retrieve_client_credentials_failed` - Problem retrieving client credentials from Nintendo. This commonly occurs while converting between NAID and PPID.\n- `nintendo_ppid_conversion_failed` - error during PPID conversion\n- `nintendo_ppid_conversion_too_many_accounts_found` - too many accounts found during PPID conversion\n- `nintendo_ppid_conversion_no_accounts_found` - no accounts found during PPID conversion\n- `nintendo_ppid_missing` - PPID is missing for user\n- `nintendo_ppid_key_not_valid` - Nintendo access token key is not valid\n- `nintendo_service_key_url_not_found` - Nintendo service key url not found. This usually indicates that the corresponding Nintendo environment has a mismatch between Nintendo account URL and Nintendo Service Account URL.\n- `nintendo_service_access_token_not_valid` - Nintendo service access token is not valid\n- `nintendo_service_access_token_for_wrong_app` - Nintendo service access token is for the wrong app\n- `nintendo_oauth_env_not_found` - Nintendo oauth environment not found. Check that the environment is configured correctly.\n- `nintendo_token_exchange_failed` - Problem exchanging code for token with Nintendo\n- `ps4_v1_disabled` - PS4 v1 authentication is currently disabled\n- `ps4_v1_token_empty` - PS4 v1 access token is empty\n- `ps4_v1_token_expired` - PS4 v1 access token is expired\n- `ps4_v1_token_exchange_failed` - Problem exchanging code for token with PS4\n- `ps4_v1_id_token_request_failed` - Problem requesting id token from PS4\n- `ps4_v1_id_token_not_valid` - PS4 v1 id token is not valid\n- `ps4_v1_token_details_disabled` - PS4 v1 token details are disabled\n- `ps4_v1_token_details_request_failed` - Problem requesting token details from PS4\n- `ps4_v3_disabled` - PS4 v3 authentication is currently disabled\n- `ps4_v3_token_details_disabled` - PS4 v3 token details are disabled\n- `ps4_v3_token_empty` - PS4 v3 access token is empty\n- `ps4_v3_id_token_request_failed` - Problem requesting id token from PS4\n- `ps4_v3_id_token_not_valid` - PS4 v3 id token is not valid\n- `ps5_v3_disabled` - PS5 v3 authentication is currently disabled\n- `ps5_v3_token_details_disabled` - PS5 v3 token details are disabled\n- `ps5_v3_token_empty` - PS5 v3 access token is empty\n- `ps5_v3_id_token_request_failed` - Problem requesting id token from PS5\n- `ps5_v3_id_token_not_valid` - PS5 v3 id token is not valid\n- `psn_environment_permission_denied` - PSN Environment permission was denied. This usually means that the Client ID/Secret do not match. This error can also occur for `sp-int` or `prod-qa` if the environment is not whitelisted to access the PSN environment.\n- `refresh_disabled` - Refresh authentication is currently disabled\n- `refresh_token_empty` - Refresh token is empty\n- `refresh_token_not_found` - Refresh token was not found or has expired\n- `refresh_token_invalid_user` - Refresh token refrences invalid user\n- `refresh_token_client_id_mismatch` - Client ID for new token request did not match original token\n- `steam_disabled` - Steam authentication is currently disabled\n- `steam_token_empty` - Steam code (Ticket) is empty\n- `steam_token_exchange_failed` - Problem exchanging code (ticket) for token with Steam\n- `steam_user_vacbanned` - User is VAC banned\n- `steam_user_publisherbanned` - User is publisher banned\n- `steam_user_offline` - User is reporting offline to Steam, causing all Steam tickets to invalidate\n- `steam_token_invalid` - Steam code (Ticket) was reported as invalid by Steam\n- `steam_token_for_wrong_app` - Steam code (Ticket) is for a different Steam Application\n- `twitch_disabled` - Twitch authentication is currently disabled\n- `twitch_token_empty` - Twitch access token is empty\n- `twitch_token_invalid` - Twitch access token is not valid\n- `twitch_keys_not_available` - Twitch keys are not available. Please contact an administrator\n- `twitch_token_exchange_failed` - Problem exchanging code for token with Twitch\n- `xbox_disabled` - Xbox authentication is currently disabled\n- `xbox_xsts_token_empty` - Xbox XSTS token is empty\n- `xbox_xsts_token_invalid` - Xbox XSTS token is not valid\n- `xbox_xtoken_invalid` - Xbox XToken is not valid\n- `xbox_access_token_request_failed` - Problem requesting access token from Xbox\n- `xbox_xsts_token_exchange_failed` - Problem exchanging access token for XSTS token with Xbox\n- `xbox_xtoken_exchange_failed` - Problem exchanging XSTS token for XToken with Xbox\n\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/users/v1/logout": { "post": { "tags": [ "auth" ], "summary": "Logout", "operationId": "logout", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LogoutRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/users/v1/publickeys": { "get": { "tags": [ "auth" ], "summary": "Get All Public Keys", "description": "Get all the current public keys.\n\nIt is encouraged to get keys by id, rather than all at once (to more easily allow new keys to cycle though)", "operationId": "get_all_public_keys", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicKeyList" } } } } } } }, "/users/v1/publickeys/{key_id}": { "get": { "tags": [ "auth" ], "summary": "Get Public Key By Id", "operationId": "get_public_key_by_id", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Key Id" }, "name": "key_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicKey" } } } }, "404": { "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/users/v1/generateKey": { "post": { "tags": [ "auth" ], "summary": "Generate Key", "description": "Generate and return a new key that matches the configuration required for private keys.\n\nThis does NOT add the key to any internal list, and is purely for convenience for maintainers", "operationId": "generate_key", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "deprecated": true } }, "/users/v1/player/me/uuid": { "get": { "tags": [ "users" ], "summary": "Get Player Uuid From Player Id For Self", "description": "Get a player's uuid from their id for the active player on the access token.", "operationId": "get_player_uuid_from_player_id_for_self", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "string", "format": "uuid", "title": "Response Get Player Uuid From Player Id For Self" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/player/{player_id}/uuid": { "get": { "tags": [ "users" ], "summary": "Get Player Uuid From Player Id", "description": "Get a player's uuid from their id.", "operationId": "get_player_uuid_from_player_id", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "string", "format": "uuid", "title": "Response Get Player Uuid From Player Id" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v2/player/me/uuid": { "get": { "tags": [ "users" ], "summary": "Get Player Uuid From Player Id For Self V2", "description": "Get a player's uuid from their id for the active player on the access token.", "operationId": "get_player_uuid_from_player_id_for_self_v2", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerUuidFromId" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v2/player/{player_id}/uuid": { "get": { "tags": [ "users" ], "summary": "Get Player Uuid From Player Id V2", "description": "Get a player's uuid from their id.", "operationId": "get_player_uuid_from_player_id_v2", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerUuidFromId" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v2/player/me/id": { "get": { "tags": [ "users" ], "summary": "Get Player Id From Player Uuid For Self", "description": "Get a player's id from their uuid for the active player on the access token.", "operationId": "get_player_id_from_player_uuid_for_self", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerIdWrapper" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v2/player/{player_uuid}/id": { "get": { "tags": [ "users" ], "summary": "Get Player Id From Player Uuid", "description": "Get a player's id from their uuid.", "operationId": "get_player_id_from_player_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerIdWrapper" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v2/player/me/links": { "get": { "tags": [ "users" ], "summary": "Get Player Links For Self", "description": "Get a player's linked portals for the active player on the access token.", "operationId": "get_player_links_for_self", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerLinkedPortalsResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v2/player/{player_uuid}/links": { "get": { "tags": [ "users" ], "summary": "Get Player Links", "description": "Get a player's linked portals.", "operationId": "get_player_links", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerLinkedPortalsResponse" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/player/{player_id}/linked_portals": { "get": { "tags": [ "users" ], "summary": "Get Player Linked Portals", "description": "Get a player's linked portals.", "operationId": "get_player_linked_portals", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerLinkedPortalsResponse" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/platform-user": { "get": { "tags": [ "users" ], "summary": "Find Platform User By Id", "description": "Find an existing platform user with their platform identity.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `user:*`, `user:platform:read`", "operationId": "find_platform_user_by_id", "parameters": [ { "description": "Platform to search", "required": true, "schema": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform to search" }, "name": "platform", "in": "query" }, { "description": "Platform user ID to search for", "required": true, "schema": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "Platform user ID to search for" }, "name": "platform_user_id", "in": "query" } ], "responses": { "200": { "description": "Platform user was found successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUserResponse" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Failed to find platform user. See error code and description for further details.\n\n\nError Codes:\n- `user_not_found` - User not found\n\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "users" ], "summary": "Create Platform User By Id", "description": "Create a new platform user from a platform identity.\n\nWARNING: This endpoint does not validate that the provided user ID is valid, and should only be used after validating a user's identity.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `user:*`, `user:platform:create`", "operationId": "create_platform_user_by_id", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePlatformUserRequest" } } }, "required": true }, "responses": { "201": { "description": "Platform user was created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUserResponse" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Failed to create platform user. See error code and description for further details.\n\n\nError Codes:\n- `user_already_exists` - User already exists\n\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/player": { "get": { "tags": [ "users" ], "summary": "Lookup Player By Portal", "description": "Lookup players by various parameters. Note that this does NOT find the active player, or other metadata about the resulting players. It is suggested to call `/v1/player/{player_id}/linked_portals` for each player for that info, if necessary.", "operationId": "lookup_player_by_portal", "parameters": [ { "description": "Lookup players by display names", "required": false, "schema": { "items": { "type": "string", "maxLength": 256 }, "type": "array", "title": "Display Name", "description": "Lookup players by display names", "default": [] }, "name": "display_name", "in": "query" }, { "description": "Lookup players by their portal identity for this platform", "required": false, "deprecated": true, "schema": { "allOf": [ { "$ref": "#/components/schemas/fastapicommon__platforms__Portal" } ], "description": "Lookup players by their portal identity for this platform" }, "name": "identity_platform", "in": "query" }, { "description": "Lookup players by their platform identity. Will override identity_platform if set.", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Lookup players by their platform identity. Will override identity_platform if set." }, "name": "platform", "in": "query" }, { "description": "Lookup players by their Portal Identity", "required": false, "schema": { "items": { "type": "string", "maxLength": 2048 }, "type": "array", "title": "Identities", "description": "Lookup players by their Portal Identity", "default": [] }, "name": "identities", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LookupResults" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v2/player:iterate": { "get": { "tags": [ "users" ], "summary": "Get Players Paged", "description": "Iterate over all players. This is a paginated API, so you will need to call it multiple times to get all players.\nThere is no guaranteed ordering of players. So if you need to run multiple iterations for comparison, you will need to sort the results.", "operationId": "get_players_paged", "parameters": [ { "description": "cursor to continue iteration. Leaving this empty will begin a new query", "required": false, "schema": { "type": "string", "maxLength": 4096, "title": "Cursor", "description": "cursor to continue iteration. Leaving this empty will begin a new query", "default": "" }, "name": "cursor", "in": "query" }, { "description": "number of players to return", "required": false, "schema": { "type": "integer", "maximum": 1000, "minimum": 1, "title": "Page Size", "description": "number of players to return", "default": 100 }, "name": "page_size", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerIterateResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/person/me/info": { "get": { "tags": [ "users" ], "summary": "Get Person For Self", "description": "Get information for the person on the access token.", "operationId": "get_person_for_self", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonInfoResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "users" ], "summary": "Update Person For Self", "description": "Update information for the person on the access token.", "operationId": "update_person_for_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePersonInfoRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/person/{person_id}/info": { "get": { "tags": [ "users" ], "summary": "Get Person", "description": "Get information for a person.", "operationId": "get_person", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Person Id" }, "name": "person_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonInfoResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "users" ], "summary": "Update Person", "description": "Update the information for a person.", "operationId": "update_person", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Person Id" }, "name": "person_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePersonInfoRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/person/me/email/list": { "get": { "tags": [ "users" ], "summary": "Get Person Email List For Self", "description": "Get the email list ids for a person on the access token", "operationId": "get_person_email_list_for_self", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonEmailListResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "users" ], "summary": "Update Person Email List For Self", "description": "Update the email list for person on the access token. This is used to control which emails a person receives.", "operationId": "update_person_email_list_for_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonEmailListRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/person/{person_id}/email/list": { "get": { "tags": [ "users" ], "summary": "Get Person Email List", "description": "Get the email list ids for a person", "operationId": "get_person_email_list", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Person Id" }, "name": "person_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonEmailListResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "users" ], "summary": "Update Person Email List", "description": "Update the email list for a person. This is used to control which emails a person receives.", "operationId": "update_person_email_list", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Person Id" }, "name": "person_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonEmailListRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/person/me/purge": { "get": { "tags": [ "users" ], "summary": "Get Queue Purge Status For Me", "description": "Get the purge status for a person of the access token.", "operationId": "get_queue_purge_status_for_me", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PurgeResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "users" ], "summary": "Queue Me For Purge", "description": "Queue person on the access token for purging. This can occur up to a configured amount of time in the future or can occur immediately depending on `suggested_purge_time`.", "operationId": "queue_me_for_purge", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PurgeRequest" } } }, "required": true }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PurgeResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "users" ], "summary": "Dequeue Me For Purge", "description": "Dequeue the active person of the access token if they are queued to be purged. This will only work if the purge has not already begun.", "operationId": "dequeue_me_for_purge", "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/person/{person_id}/purge": { "get": { "tags": [ "users" ], "summary": "Get Queue Purge Status For Person", "description": "Get the purge status for a person. Requires permission: purge:person:admin", "operationId": "get_queue_purge_status_for_person", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Person Id" }, "name": "person_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PurgeResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "users" ], "summary": "Queue Person For Purge", "description": "Queue a person for purging. This can occur up to a configured amount of time in the future or can occur immediately depending on `suggested_purge_time`. Requires permission: purge:person:admin", "operationId": "queue_person_for_purge", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Person Id" }, "name": "person_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PurgeRequest" } } }, "required": true }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PurgeResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "users" ], "summary": "Dequeue Person For Purge", "description": "Dequeue a Person that is queued to be purged. This will only work if the purge has not already begun. Requires permission: purge:person:admin", "operationId": "dequeue_person_for_purge", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Person Id" }, "name": "person_id", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/oauth/login/{platform}": { "get": { "tags": [ "auth" ], "summary": "Oauth Login", "description": "This endpoint is used to initiate the OAuth authentication flow for a user.\n\nIf the platform has been configured correctly, this endpoint will redirect to the platform's login page. \nOnce the user has logged in, the platform should redirect them to the `/users/v1/oauth/response/{platform}` endpoint for the associated platform. \n\nErrors will be immediately redirected to the requested `redirect_uri` (or the first configured redirect URI, if the requested URI is not configured).", "operationId": "oauth_login", "parameters": [ { "description": "The platform to use for authentication", "required": true, "schema": { "allOf": [ { "$ref": "#/components/schemas/OAuthPortal" } ], "description": "The platform to use for authentication" }, "name": "platform", "in": "path" }, { "description": "A client state value to be forwarded with this request to the redirect URI.", "required": false, "schema": { "type": "string", "maxLength": 4096, "title": "State", "description": "A client state value to be forwarded with this request to the redirect URI." }, "name": "state", "in": "query" }, { "description": "The URI to redirect to after the OAuth flow is complete. If not provided, or does not match one of the preconfigured redirect URIs, the first configured redirect URI will be used.", "required": false, "schema": { "type": "string", "title": "Redirect Uri", "description": "The URI to redirect to after the OAuth flow is complete. If not provided, or does not match one of the preconfigured redirect URIs, the first configured redirect URI will be used." }, "name": "redirect_uri", "in": "query" }, { "required": false, "schema": { "type": "string", "title": "User-Agent" }, "name": "user-agent", "in": "header" }, { "required": false, "schema": { "type": "string", "title": "X-Forwarded-For" }, "name": "x-forwarded-for", "in": "header" } ], "responses": { "307": { "description": "Redirect to next step in OAuth flow", "headers": { "location": { "description": "\nURL that the user should be redirected to complete the next step of the OAuth flow.\n\nRedirects to the `redirect_uri` and may include the following query parameters:\n- `state`: The state value that was provided in the original request.\n- `error_code_v2`: The error code for the error that occurred during the OAuth flow. May (but is not guaranteed to) contain one of the following:\n - `internal_error` - An internal error occurred. The request may succeed if retried. If not, contact an administrator.\n - `no_redirects_configured` - No redirect urls setup for oauth.\n - `redirect_uri_does_not_match` - Redirect URI does not match a configured value.\n - `error_occurred_during_exchange` - An error occurred while exchanging a code for token.\n - `failed_to_verify_state` - Failed to verify the state associated with the request.\n - `failed_to_save_state` - Error occurred saving the state.\n - `failed_to_save_tokens` - Problem saving tokens. Contact an administrator\n - `too_many_users` - Account has too many users associated with it. Contact an administrator\n - `user_auth_restricted` - Authentication for this user has been restricted\n - `user_needs_agreements` - User has not accepted all required agreements. See response for list of agreements required\n - `error_retrieving_player_results` - Error retrieving player results\n - `failed_to_retrieve_roles` - Failed to retrieve roles\n - `client_credentials_invalid` - Client Credentials provided to authentication attempt were invalid\n - `authentication_limited` - Authentication is currently limited to accounts that are already logged in. Please try again later\n - `authentication_locked` - Authentication is currently locked. Please try again later\n - `invalid_grant_type` - Grant Type {grant_type} is not supported\n - `user_auth_disabled` - User authentication is not permitted for this policy\n - `client_auth_disabled` - Client authentication is not permitted for this policy\n - `amazon_disabled` - Amazon authentication is currently disabled\n - `amazon_token_empty` - Amazon access token is empty\n - `amazon_invalid_access_token` - Amazon access token is invalid\n - `amazon_token_exchange_failed` - Problem exchanging code for token with Amazon\n - `anon_disabled` - Anon authentication is currently disabled\n - `anon_token_empty` - Anon access token is empty\n - `apple_disabled` - Apple authentication is currently disabled\n - `apple_token_empty` - Apple access token is empty\n - `apple_failed_key_lookup` - Failed to retrieve keys from Apple\n - `apple_token_exchange_failed` - Problem exchanging code for token with Apple\n - `apple_token_key_not_valid` - public key not found\n - `apple_token_not_valid` - Apple access token is not valid\n - `authorization_code_not_found` - Authorization code not found or expired\n - `basic_disabled` - Basic authentication is currently disabled\n - `basic_token_empty` - Basic access token is empty\n - `basic_auth_incorrect_format` - Basic auth should be formatted like `USERNAME:PASSWORD`\n - `basic_auth_credentials_not_found` - Basic auth credentials not found\n - `developer_api_disabled` - Developer API authentication is currently disabled\n - `developer_api_token_empty` - Developer API access token is empty\n - `developer_api_token_invalid` - Developer API access token is invalid or expired\n - `epic_disabled` - Epic authentication is currently disabled\n - `epic_token_empty` - Epic access token is empty\n - `epic_v1_token_key_id_invalid` - Epic v1 token contains an invalid key id\n - `epic_v1_token_invalid` - Epic v1 token is invalid\n - `epic_v2_keys_not_available` - Epic v2 keys are not available. Please contact an administrator\n - `epic_v2_token_invalid` - Epic v2 token is invalid\n - `epic_oauth_token_exchange_failed` - Problem exchanging code for token with Epic\n - `google_disabled` - Google authentication is currently disabled\n - `google_token_empty` - Google access token is empty\n - `google_keys_not_available` - Google keys are not available. Please contact an administrator\n - `google_token_not_valid` - Google access token is not valid\n - `google_token_exchange_failed` - Problem exchanging code for token with Google\n - `nintendo_disabled` - Nintendo authentication is currently disabled\n - `nintendo_token_empty` - Nintendo access token is empty\n - `nintendo_env_credentials_not_found` - Nintendo environment credentials not found\n - `nintendo_access_token_not_valid` - Nintendo access token is not valid\n - `nintendo_no_environment_matches_env_id` - Nintendo environment not found for given environment ID\n - `nintendo_retrieve_client_credentials_failed` - Problem retrieving client credentials from Nintendo. This commonly occurs while converting between NAID and PPID.\n - `nintendo_ppid_conversion_failed` - error during PPID conversion\n - `nintendo_ppid_conversion_too_many_accounts_found` - too many accounts found during PPID conversion\n - `nintendo_ppid_conversion_no_accounts_found` - no accounts found during PPID conversion\n - `nintendo_ppid_missing` - PPID is missing for user\n - `nintendo_ppid_key_not_valid` - Nintendo access token key is not valid\n - `nintendo_service_key_url_not_found` - Nintendo service key url not found. This usually indicates that the corresponding Nintendo environment has a mismatch between Nintendo account URL and Nintendo Service Account URL.\n - `nintendo_service_access_token_not_valid` - Nintendo service access token is not valid\n - `nintendo_service_access_token_for_wrong_app` - Nintendo service access token is for the wrong app\n - `nintendo_oauth_env_not_found` - Nintendo oauth environment not found. Check that the environment is configured correctly.\n - `nintendo_token_exchange_failed` - Problem exchanging code for token with Nintendo\n - `ps4_v1_disabled` - PS4 v1 authentication is currently disabled\n - `ps4_v1_token_empty` - PS4 v1 access token is empty\n - `ps4_v1_token_expired` - PS4 v1 access token is expired\n - `ps4_v1_token_exchange_failed` - Problem exchanging code for token with PS4\n - `ps4_v1_id_token_request_failed` - Problem requesting id token from PS4\n - `ps4_v1_id_token_not_valid` - PS4 v1 id token is not valid\n - `ps4_v1_token_details_disabled` - PS4 v1 token details are disabled\n - `ps4_v1_token_details_request_failed` - Problem requesting token details from PS4\n - `ps4_v3_disabled` - PS4 v3 authentication is currently disabled\n - `ps4_v3_token_details_disabled` - PS4 v3 token details are disabled\n - `ps4_v3_token_empty` - PS4 v3 access token is empty\n - `ps4_v3_id_token_request_failed` - Problem requesting id token from PS4\n - `ps4_v3_id_token_not_valid` - PS4 v3 id token is not valid\n - `ps5_v3_disabled` - PS5 v3 authentication is currently disabled\n - `ps5_v3_token_details_disabled` - PS5 v3 token details are disabled\n - `ps5_v3_token_empty` - PS5 v3 access token is empty\n - `ps5_v3_id_token_request_failed` - Problem requesting id token from PS5\n - `ps5_v3_id_token_not_valid` - PS5 v3 id token is not valid\n - `psn_environment_permission_denied` - PSN Environment permission was denied. This usually means that the Client ID/Secret do not match. This error can also occur for `sp-int` or `prod-qa` if the environment is not whitelisted to access the PSN environment.\n - `refresh_disabled` - Refresh authentication is currently disabled\n - `refresh_token_empty` - Refresh token is empty\n - `refresh_token_not_found` - Refresh token was not found or has expired\n - `refresh_token_invalid_user` - Refresh token refrences invalid user\n - `refresh_token_client_id_mismatch` - Client ID for new token request did not match original token\n - `steam_disabled` - Steam authentication is currently disabled\n - `steam_token_empty` - Steam code (Ticket) is empty\n - `steam_token_exchange_failed` - Problem exchanging code (ticket) for token with Steam\n - `steam_user_vacbanned` - User is VAC banned\n - `steam_user_publisherbanned` - User is publisher banned\n - `steam_user_offline` - User is reporting offline to Steam, causing all Steam tickets to invalidate\n - `steam_token_invalid` - Steam code (Ticket) was reported as invalid by Steam\n - `steam_token_for_wrong_app` - Steam code (Ticket) is for a different Steam Application\n - `twitch_disabled` - Twitch authentication is currently disabled\n - `twitch_token_empty` - Twitch access token is empty\n - `twitch_token_invalid` - Twitch access token is not valid\n - `twitch_keys_not_available` - Twitch keys are not available. Please contact an administrator\n - `twitch_token_exchange_failed` - Problem exchanging code for token with Twitch\n - `xbox_disabled` - Xbox authentication is currently disabled\n - `xbox_xsts_token_empty` - Xbox XSTS token is empty\n - `xbox_xsts_token_invalid` - Xbox XSTS token is not valid\n - `xbox_xtoken_invalid` - Xbox XToken is not valid\n - `xbox_access_token_request_failed` - Problem requesting access token from Xbox\n - `xbox_xsts_token_exchange_failed` - Problem exchanging access token for XSTS token with Xbox\n - `xbox_xtoken_exchange_failed` - Problem exchanging XSTS token for XToken with Xbox\n\n- `error_description`: The description for the error that occurred during the OAuth flow.\n- `error_code`: ***DEPRECATED*** - Use `error_code_v2` instead. May (but is not guaranteed to) contain one of the following:\n - `NO_CODE_IN_REQUEST` - No code in request.\n - `NO_REDIRECTS_CONFIGURED` - No redirect urls setup for oauth.\n - `REDIRECT_URI_DOES_NOT_MATCH` - Redirect URI does not match a configured value.\n - `FAILED_TO_VERIFY_STATE` - Failed to verify the state associated with the request.\n - `FAILED_TO_SAVE_STATE` - Error occurred saving the state.\n - `FAILED_TO_SAVE_TOKENS` - Failed to save tokens.\n - `PORTAL_PROVIDER_DISABLED` - OAuth provider is disabled.\n - `ERROR_OCCURRED_DURING_EXCHANGE` - An error occurred while exchanging a code for token.\n\n", "schema": { "type": "string" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/users/v1/oauth/response/{platform}": { "get": { "tags": [ "auth" ], "summary": "Oauth Response", "description": "Handle OAuth response from the platform. Validates the response, and generates an authorization_code for the user. The authorization_code can be used with the `/users/v1/oauth/token` endpoint to get an access token for the user.", "operationId": "oauth_response", "parameters": [ { "description": "The platform to use for authentication", "required": true, "schema": { "allOf": [ { "$ref": "#/components/schemas/OAuthPortal" } ], "description": "The platform to use for authentication" }, "name": "platform", "in": "path" }, { "description": "The code or token from the platform that can be used to validate the user's identity", "required": false, "schema": { "type": "string", "title": "Code", "description": "The code or token from the platform that can be used to validate the user's identity", "default": "" }, "name": "code", "in": "query" }, { "description": "The state value sent to the platform provider that is used to continue with the oauth request.", "required": false, "schema": { "type": "string", "title": "State", "description": "The state value sent to the platform provider that is used to continue with the oauth request.", "default": "" }, "name": "state", "in": "query" }, { "required": false, "schema": { "type": "string", "title": "User-Agent" }, "name": "user-agent", "in": "header" }, { "required": false, "schema": { "type": "string", "title": "X-Forwarded-For" }, "name": "x-forwarded-for", "in": "header" } ], "responses": { "307": { "description": "Redirect to next step in OAuth flow", "headers": { "location": { "description": "\nURL that the user should be redirected to complete the next step of the OAuth flow.\n\nRedirects to the `redirect_uri` and may include the following query parameters:\n- `code`: The authorization_code that can be exchanged for an access token for the user.\n- `state`: The state value that was provided in the original request.\n- `error_code_v2`: The error code for the error that occurred during the OAuth flow. May (but is not guaranteed to) contain one of the following:\n - `internal_error` - An internal error occurred. The request may succeed if retried. If not, contact an administrator.\n - `no_redirects_configured` - No redirect urls setup for oauth.\n - `redirect_uri_does_not_match` - Redirect URI does not match a configured value.\n - `error_occurred_during_exchange` - An error occurred while exchanging a code for token.\n - `failed_to_verify_state` - Failed to verify the state associated with the request.\n - `failed_to_save_state` - Error occurred saving the state.\n - `failed_to_save_tokens` - Problem saving tokens. Contact an administrator\n - `too_many_users` - Account has too many users associated with it. Contact an administrator\n - `user_auth_restricted` - Authentication for this user has been restricted\n - `user_needs_agreements` - User has not accepted all required agreements. See response for list of agreements required\n - `error_retrieving_player_results` - Error retrieving player results\n - `failed_to_retrieve_roles` - Failed to retrieve roles\n - `client_credentials_invalid` - Client Credentials provided to authentication attempt were invalid\n - `authentication_limited` - Authentication is currently limited to accounts that are already logged in. Please try again later\n - `authentication_locked` - Authentication is currently locked. Please try again later\n - `invalid_grant_type` - Grant Type {grant_type} is not supported\n - `user_auth_disabled` - User authentication is not permitted for this policy\n - `client_auth_disabled` - Client authentication is not permitted for this policy\n - `amazon_disabled` - Amazon authentication is currently disabled\n - `amazon_token_empty` - Amazon access token is empty\n - `amazon_invalid_access_token` - Amazon access token is invalid\n - `amazon_token_exchange_failed` - Problem exchanging code for token with Amazon\n - `anon_disabled` - Anon authentication is currently disabled\n - `anon_token_empty` - Anon access token is empty\n - `apple_disabled` - Apple authentication is currently disabled\n - `apple_token_empty` - Apple access token is empty\n - `apple_failed_key_lookup` - Failed to retrieve keys from Apple\n - `apple_token_exchange_failed` - Problem exchanging code for token with Apple\n - `apple_token_key_not_valid` - public key not found\n - `apple_token_not_valid` - Apple access token is not valid\n - `authorization_code_not_found` - Authorization code not found or expired\n - `basic_disabled` - Basic authentication is currently disabled\n - `basic_token_empty` - Basic access token is empty\n - `basic_auth_incorrect_format` - Basic auth should be formatted like `USERNAME:PASSWORD`\n - `basic_auth_credentials_not_found` - Basic auth credentials not found\n - `developer_api_disabled` - Developer API authentication is currently disabled\n - `developer_api_token_empty` - Developer API access token is empty\n - `developer_api_token_invalid` - Developer API access token is invalid or expired\n - `epic_disabled` - Epic authentication is currently disabled\n - `epic_token_empty` - Epic access token is empty\n - `epic_v1_token_key_id_invalid` - Epic v1 token contains an invalid key id\n - `epic_v1_token_invalid` - Epic v1 token is invalid\n - `epic_v2_keys_not_available` - Epic v2 keys are not available. Please contact an administrator\n - `epic_v2_token_invalid` - Epic v2 token is invalid\n - `epic_oauth_token_exchange_failed` - Problem exchanging code for token with Epic\n - `google_disabled` - Google authentication is currently disabled\n - `google_token_empty` - Google access token is empty\n - `google_keys_not_available` - Google keys are not available. Please contact an administrator\n - `google_token_not_valid` - Google access token is not valid\n - `google_token_exchange_failed` - Problem exchanging code for token with Google\n - `nintendo_disabled` - Nintendo authentication is currently disabled\n - `nintendo_token_empty` - Nintendo access token is empty\n - `nintendo_env_credentials_not_found` - Nintendo environment credentials not found\n - `nintendo_access_token_not_valid` - Nintendo access token is not valid\n - `nintendo_no_environment_matches_env_id` - Nintendo environment not found for given environment ID\n - `nintendo_retrieve_client_credentials_failed` - Problem retrieving client credentials from Nintendo. This commonly occurs while converting between NAID and PPID.\n - `nintendo_ppid_conversion_failed` - error during PPID conversion\n - `nintendo_ppid_conversion_too_many_accounts_found` - too many accounts found during PPID conversion\n - `nintendo_ppid_conversion_no_accounts_found` - no accounts found during PPID conversion\n - `nintendo_ppid_missing` - PPID is missing for user\n - `nintendo_ppid_key_not_valid` - Nintendo access token key is not valid\n - `nintendo_service_key_url_not_found` - Nintendo service key url not found. This usually indicates that the corresponding Nintendo environment has a mismatch between Nintendo account URL and Nintendo Service Account URL.\n - `nintendo_service_access_token_not_valid` - Nintendo service access token is not valid\n - `nintendo_service_access_token_for_wrong_app` - Nintendo service access token is for the wrong app\n - `nintendo_oauth_env_not_found` - Nintendo oauth environment not found. Check that the environment is configured correctly.\n - `nintendo_token_exchange_failed` - Problem exchanging code for token with Nintendo\n - `ps4_v1_disabled` - PS4 v1 authentication is currently disabled\n - `ps4_v1_token_empty` - PS4 v1 access token is empty\n - `ps4_v1_token_expired` - PS4 v1 access token is expired\n - `ps4_v1_token_exchange_failed` - Problem exchanging code for token with PS4\n - `ps4_v1_id_token_request_failed` - Problem requesting id token from PS4\n - `ps4_v1_id_token_not_valid` - PS4 v1 id token is not valid\n - `ps4_v1_token_details_disabled` - PS4 v1 token details are disabled\n - `ps4_v1_token_details_request_failed` - Problem requesting token details from PS4\n - `ps4_v3_disabled` - PS4 v3 authentication is currently disabled\n - `ps4_v3_token_details_disabled` - PS4 v3 token details are disabled\n - `ps4_v3_token_empty` - PS4 v3 access token is empty\n - `ps4_v3_id_token_request_failed` - Problem requesting id token from PS4\n - `ps4_v3_id_token_not_valid` - PS4 v3 id token is not valid\n - `ps5_v3_disabled` - PS5 v3 authentication is currently disabled\n - `ps5_v3_token_details_disabled` - PS5 v3 token details are disabled\n - `ps5_v3_token_empty` - PS5 v3 access token is empty\n - `ps5_v3_id_token_request_failed` - Problem requesting id token from PS5\n - `ps5_v3_id_token_not_valid` - PS5 v3 id token is not valid\n - `psn_environment_permission_denied` - PSN Environment permission was denied. This usually means that the Client ID/Secret do not match. This error can also occur for `sp-int` or `prod-qa` if the environment is not whitelisted to access the PSN environment.\n - `refresh_disabled` - Refresh authentication is currently disabled\n - `refresh_token_empty` - Refresh token is empty\n - `refresh_token_not_found` - Refresh token was not found or has expired\n - `refresh_token_invalid_user` - Refresh token refrences invalid user\n - `refresh_token_client_id_mismatch` - Client ID for new token request did not match original token\n - `steam_disabled` - Steam authentication is currently disabled\n - `steam_token_empty` - Steam code (Ticket) is empty\n - `steam_token_exchange_failed` - Problem exchanging code (ticket) for token with Steam\n - `steam_user_vacbanned` - User is VAC banned\n - `steam_user_publisherbanned` - User is publisher banned\n - `steam_user_offline` - User is reporting offline to Steam, causing all Steam tickets to invalidate\n - `steam_token_invalid` - Steam code (Ticket) was reported as invalid by Steam\n - `steam_token_for_wrong_app` - Steam code (Ticket) is for a different Steam Application\n - `twitch_disabled` - Twitch authentication is currently disabled\n - `twitch_token_empty` - Twitch access token is empty\n - `twitch_token_invalid` - Twitch access token is not valid\n - `twitch_keys_not_available` - Twitch keys are not available. Please contact an administrator\n - `twitch_token_exchange_failed` - Problem exchanging code for token with Twitch\n - `xbox_disabled` - Xbox authentication is currently disabled\n - `xbox_xsts_token_empty` - Xbox XSTS token is empty\n - `xbox_xsts_token_invalid` - Xbox XSTS token is not valid\n - `xbox_xtoken_invalid` - Xbox XToken is not valid\n - `xbox_access_token_request_failed` - Problem requesting access token from Xbox\n - `xbox_xsts_token_exchange_failed` - Problem exchanging access token for XSTS token with Xbox\n - `xbox_xtoken_exchange_failed` - Problem exchanging XSTS token for XToken with Xbox\n\n- `error_description`: The description for the error that occurred during the OAuth flow.\n- `error_code`: ***DEPRECATED*** - Use `error_code_v2` instead. May (but is not guaranteed to) contain one of the following:\n - `NO_CODE_IN_REQUEST` - No code in request.\n - `NO_REDIRECTS_CONFIGURED` - No redirect urls setup for oauth.\n - `REDIRECT_URI_DOES_NOT_MATCH` - Redirect URI does not match a configured value.\n - `FAILED_TO_VERIFY_STATE` - Failed to verify the state associated with the request.\n - `FAILED_TO_SAVE_STATE` - Error occurred saving the state.\n - `FAILED_TO_SAVE_TOKENS` - Failed to save tokens.\n - `PORTAL_PROVIDER_DISABLED` - OAuth provider is disabled.\n - `ERROR_OCCURRED_DURING_EXCHANGE` - An error occurred while exchanging a code for token.\n\n", "schema": { "type": "string" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/users/v1/oauth/token": { "post": { "tags": [ "auth" ], "summary": "Oauth Token Exchange", "description": "Exchange an authorization_code from the `/users/v1/oauth/response/{platform}` endpoint for an access token and refresh token.", "operationId": "oauth_token_exchange", "parameters": [ { "required": false, "schema": { "type": "string", "title": "User-Agent" }, "name": "user-agent", "in": "header" }, { "required": false, "schema": { "type": "string", "title": "X-Forwarded-For" }, "name": "x-forwarded-for", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthTokenExchange" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthTokenResponse" } } } }, "403": { "description": "\nError Codes:\n- `authorization_code_not_found`: Authorization code not found or expired\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBasic": [] } ] } }, "/users/v2/oauth/token": { "post": { "tags": [ "auth" ], "summary": "Token", "description": "OAuth2 Token Endpoint. For more information see: Token Endpoint Spec.", "operationId": "token", "parameters": [ { "required": false, "schema": { "type": "string", "title": "User-Agent" }, "name": "user-agent", "in": "header" }, { "required": false, "schema": { "type": "string", "title": "X-Forwarded-For" }, "name": "x-forwarded-for", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBasic": [] } ] } }, "/users/v1/link": { "post": { "tags": [ "users" ], "summary": "Link", "description": "Link a follower platform user to a leader person.\n \nThe Leader person is found using the following priority:\n\n1. If the `leader_person_id` is provided directly\n2. If the `leader_platform` and `leader_platform_user_id` are provided, the `person_id` of that platform user is used.\n3. If the `scheme` and `credentials` are provided, the person_id of the platform user of credentials is used.\n\nThe Follower platform user is found using the following priority:\n\n1. If the `follower_platform` and `follower_platform_user_id` are provided directly.\n2. If the Authorization header contains a user token, the platform and platform user id from the token are used.\n\nFor leader selection 1,2 or follower selection 1, Required Permissions:\n\n- For any user (including themselves) any of: `user:*`, `user:modify:any`\n\n\n\nNOTE: Whenever you change the link or cross progression status of a user, it is recommended to \nrefresh their access token. Each token does container user information, which may be incorrect after a link or \ncross progression change. There is no guarantee that calling other endpoints will operate on the correct user\nuntil the token has been refreshed.", "operationId": "link", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PlatformUserLinkRequest" } ], "title": "Link Request", "default": {} } } } }, "responses": { "200": { "description": "Successful Response" }, "400": { "description": "Request inputs are not valid\n\n\nError Codes:\n- `account_not_found` - User Account not found\n- `cannot_link_same_player` - Cannot link a player to themselves\n- `follower_already_linked` - Follower is already linked to another person. They must be unlinked before they can be linked again.\n- `follower_has_cross_progression_enabled` - follower must disable cross progression before this operation\n- `follower_has_restrictions` - follower has restrictions that prevent this operation\n- `invalid_token_claims` - Token has missing/invalid claims. Are you using a non-user token on a user endpoint?\n- `leader_has_restrictions` - leader has restrictions that prevent this operation\n- `leader_not_found` - Desired user for the leader of the link was not found\n- `platform_already_linked` - Person is already linked to another user on this platform\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/unlink": { "post": { "tags": [ "users" ], "summary": "Unlink", "description": "Unlink a platform user from their current person. This will create a new person for the \nplatform user to be associated with.\n\nIf an identity is not provided, the identity in the token will be used.\n\nIf you are modifying a user outside of your person, Required Permissions:\n\n- For any user (including themselves) any of: `user:*`, `user:modify:any`\n\n\n\nNOTE: Whenever you change the link or cross progression status of a user, it is recommended to \nrefresh their access token. Each token does container user information, which may be incorrect after a link or \ncross progression change. There is no guarantee that calling other endpoints will operate on the correct user\nuntil the token has been refreshed.", "operationId": "unlink", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PlatformUserOperationRequest" } ], "title": "Platform Identity", "default": {} } } } }, "responses": { "200": { "description": "Successful Response" }, "400": { "description": "Request inputs are not valid\n\n\nError Codes:\n- `account_not_found` - User Account not found\n- `cannot_modify_person` - You have insufficient permissions to modify this person\n- `cannot_unlink_cross_progression_player` - Cannot unlink the cross progression player\n- `invalid_token_claims` - Token has missing/invalid claims. Are you using a non-user token on a user endpoint?\n- `player_not_linked` - Player is not linked\n- `user_has_restrictions` - user has restrictions that prevent this operation\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/cross-progression/enable": { "post": { "tags": [ "users" ], "summary": "Enable Cross Progression", "description": "Enable Cross Progression for the player associated with the platform identity. \nWhile cross progression is enabled, all linked users who login will receive a token for the player with cross \nprogression enabled (instead of a token for their platform user's player).\n\nIf an identity is not provided, the identity in the token will be used.\n\nIf you are modifying a user outside of your person, Required Permissions:\n\n- For any user (including themselves) any of: `user:*`, `user:modify:any`\n\n\n\nNOTE: Whenever you change the link or cross progression status of a user, it is recommended to \nrefresh their access token. Each token does container user information, which may be incorrect after a link or \ncross progression change. There is no guarantee that calling other endpoints will operate on the correct user\nuntil the token has been refreshed.", "operationId": "enable_cross_progression", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PlatformUserOperationRequest" } ], "title": "Platform Identity", "default": {} } } } }, "responses": { "200": { "description": "Successful Response" }, "400": { "description": "Request inputs are not valid\n\n\nError Codes:\n- `account_not_found` - User Account not found\n- `already_cross_progression_player` - Player is already the cross progression player\n- `cannot_modify_person` - You have insufficient permissions to modify this person\n- `invalid_token_claims` - Token has missing/invalid claims. Are you using a non-user token on a user endpoint?\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/cross-progression/disable": { "post": { "tags": [ "users" ], "summary": "Disable Cross Progression", "description": "Disable Cross Progression for a person. While cross progression is disabled, \nall linked users who login will receive a token for the player associated with their platform user.\n \nThe person is found using the following priority:\n\n1. If the `person_id` is provided directly\n2. If the `platform` and `platform_user_id` are provided, the `person_id` of that platform user is used.\n3. If the Authorization header contains a user token, the platform and platform user id from the token are used and the person associated with that user is used.\n\nIf you are modifying a user outside of your person, Required Permissions:\n\n- For any user (including themselves) any of: `user:*`, `user:modify:any`\n\n\n\nNOTE: Whenever you change the link or cross progression status of a user, it is recommended to \nrefresh their access token. Each token does container user information, which may be incorrect after a link or \ncross progression change. There is no guarantee that calling other endpoints will operate on the correct user\nuntil the token has been refreshed.", "operationId": "disable_cross_progression", "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PersonOperationRequest" } ], "title": "Person Info", "default": {} } } } }, "responses": { "200": { "description": "Successful Response" }, "400": { "description": "Request inputs are not valid\n\n\nError Codes:\n- `account_not_found` - User Account not found\n- `cannot_modify_person` - You have insufficient permissions to modify this person\n- `invalid_token_claims` - Token has missing/invalid claims. Are you using a non-user token on a user endpoint?\n- `not_cross_progression_player` - Player is not the cross progression player\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/sendinblue/contact": { "post": { "tags": [ "users" ], "summary": "Upsert Contact", "description": "Create or update a contact with SendInBlue, Requires permission: user:sendinblue:write", "operationId": "upsert_contact", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendInBlueContact" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageOnly" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/role": { "get": { "tags": [ "users" ], "summary": "Get All Roles", "description": "Get all current roles. Including their custom_data and login_loot_rewards.", "operationId": "get_all_roles", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Role" }, "type": "array", "title": "Response Get All Roles" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/history/login": { "get": { "tags": [ "users" ], "summary": "Get Login History", "description": "Get the Login history for a given user", "operationId": "get_login_history", "parameters": [ { "description": "The player UUID to audit", "required": false, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "The player UUID to audit" }, "name": "player_uuid", "in": "query" }, { "description": "The person ID to audit", "required": false, "schema": { "type": "string", "format": "uuid", "title": "Person Id", "description": "The person ID to audit" }, "name": "person_id", "in": "query" }, { "description": "The platform to audit", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "The platform to audit" }, "name": "platform", "in": "query" }, { "description": "The platform user ID to audit", "required": false, "schema": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "The platform user ID to audit" }, "name": "platform_user_id", "in": "query" }, { "description": "Token to retrieve the next page of results", "required": false, "schema": { "type": "string", "title": "Continuation Token", "description": "Token to retrieve the next page of results" }, "name": "continuation_token", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginHistoryPage" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/history/link": { "get": { "tags": [ "users" ], "summary": "Get Link History", "description": "Get the Link history for a given user", "operationId": "get_link_history", "parameters": [ { "description": "The player UUID to audit", "required": false, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "The player UUID to audit" }, "name": "player_uuid", "in": "query" }, { "description": "The person ID to audit", "required": false, "schema": { "type": "string", "format": "uuid", "title": "Person Id", "description": "The person ID to audit" }, "name": "person_id", "in": "query" }, { "description": "The platform to audit", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "The platform to audit" }, "name": "platform", "in": "query" }, { "description": "The platform user ID to audit", "required": false, "schema": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "The platform user ID to audit" }, "name": "platform_user_id", "in": "query" }, { "description": "Token to retrieve the next page of results", "required": false, "schema": { "type": "string", "title": "Continuation Token", "description": "Token to retrieve the next page of results" }, "name": "continuation_token", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserLinkHistory" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/template": { "get": { "tags": [ "Sessions" ], "summary": "Get All Session Templates", "description": "Get the config about all session templates\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Session Permissions: None", "operationId": "get_all_session_templates", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionTemplates" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/template/{session_type}": { "get": { "tags": [ "Sessions" ], "summary": "Get Session Template By Type", "description": "Get config about a session template by ID\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Session Permissions: None", "operationId": "get_session_template_by_type", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Session Type" }, "name": "session_type", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionTemplate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/browser": { "get": { "tags": [ "Sessions" ], "summary": "Get Browser Sessions By Type", "description": "Get all public sessions of a specific type\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:browser`\n\n\n\nRequired Permissions: None", "operationId": "get_browser_sessions_by_type", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Session Type" }, "name": "session_type", "in": "query" }, { "required": false, "schema": { "type": "integer", "minimum": 0, "title": "Cursor", "default": 0 }, "name": "cursor", "in": "query" }, { "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Page Size", "default": 50 }, "name": "page_size", "in": "query" }, { "required": false, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Region Id" }, "name": "region_id", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrowserResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session": { "post": { "tags": [ "Sessions" ], "summary": "Create Or Join Session", "description": "Join the first publicly available session of given type. If there is no public session, and the session type\npermits player made sessions, create a new session and put the player in it\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:create`\n\n\n\nRequired Session Permissions: None", "operationId": "create_or_join_session", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrJoinRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionJoinResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}": { "get": { "tags": [ "Sessions" ], "summary": "Get Session By Id", "description": "Get Session by ID. This request will return limited results for non-members of the session, such as excluding info for \nhow to connect to the instance. Elevated permissions can bypass that restriction\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:any`, `session:read:self`\n\n\n\nRequired Session Permissions: None for limited results. `SessionPermissions.active_in_session` to get complete results for users who do not have the `session:read:any` auth permission", "operationId": "get_session_by_id", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Session" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "patch": { "tags": [ "Sessions" ], "summary": "Update Session By Id", "description": "Update session info by session id\n\nFor all sessions:\n\n* Required auth permissions are any of: `session:*`, `session:update:any`\n\n* Required session permissions are None\n\nFor sessions you are actively in:\n\n* Required auth permissions are any of: `session:*`, `session:update:any`, `session:update:self`\n\n* Required session permissions are `SessionPermissions.session_admin`", "operationId": "update_session_by_id", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Session" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/team/{team_id}": { "patch": { "tags": [ "Sessions" ], "summary": "Update Team By Id", "description": "Update specific team info by session and team id\n\nFor all sessions:\n\n* Required auth permissions are any of: `session:*`, `session:update:any`\n\n* Required session permissions are None\n\nFor sessions you are actively in:\n\n* Required auth permissions are any of: `session:*`, `session:update:any`, `session:update:self`\n\n* Required session permissions are `SessionPermissions.session_admin`", "operationId": "update_team_by_id", "parameters": [ { "required": true, "schema": { "type": "integer", "minimum": 0, "title": "Team Id" }, "name": "team_id", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionTeam" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/allocation/{allocation_id}": { "get": { "tags": [ "Sessions" ], "summary": "Get Session By Allocation Id", "description": "Get session by allocation ID. Returns the same limited results as getting the session by session id\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:allocation`\n\n\n\nRequired Session Permissions: None", "operationId": "get_session_by_allocation_id", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Allocation Id" }, "name": "allocation_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Session" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/browser": { "post": { "tags": [ "Sessions" ], "summary": "Post Browser Info", "description": "Register session in the public browser\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update:browser`\n\n\n\nRequired Session Permissions: `SessionPermissions.session_admin` if user does not have the `session:*` auth permission", "operationId": "post_browser_info", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrowserInfo" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrowserInfo" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Delete Browser Info", "description": "Delete the session from the public browser\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update:browser`\n\n\n\nRequired Session Permissions: `SessionPermissions.session_admin` if user does not have the `session:*` auth permission", "operationId": "delete_browser_info", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "patch": { "tags": [ "Sessions" ], "summary": "Update Browser Info", "description": "Update the browser info for the session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update:browser`\n\n\n\nRequired Session Permissions: `SessionPermissions.session_admin` if user does not have the `session:*` auth permission", "operationId": "update_browser_info", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrowserInfo" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BrowserInfo" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/player/me": { "post": { "tags": [ "Sessions" ], "summary": "Join Session By Id Self", "description": "Join a session with currently authed player\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`\n\n- For the player themselves : `session:update-player:self`\n\nRequired Session Permissions: None", "operationId": "join_session_by_id_self", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SelfSessionPlayerUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionPlayerUpdateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Leave Session By Id Self", "description": "Leave a session with currently authed player\n\nRequired Permissions:\n\n- For any player (including themselves) : `session:*`\n\n- For the player themselves : `session:update:self`\n\nRequired Permissions: None", "operationId": "leave_session_by_id_self", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/player/{player_uuid}": { "post": { "tags": [ "Sessions" ], "summary": "Update Session Player By Uuid V2", "description": "Add or invite a player to the session, or change the status of a player already in the session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:promote:any`, `session:promote:self`\n\n\n\nRequired Session Permissions: None if session is publicly joinable or the player has been invited. \n`SessionPermissions.session_admin` for other operations", "operationId": "update_session_player_by_uuid_v2", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionPlayerUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionPlayerUpdateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Kick Player From Session By Uuid V2", "description": "Kick or Remove a player from a session, or cancel an invite for a player to the session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`\n\n- For the player themselves : `session:update-player:self`\n\nRequired Session Permissions: None for users operating on themselves. \n`SessionPermissions.session_admin` for operating on other players in your session", "operationId": "kick_player_from_session_by_uuid_v2", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "204": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/player/uuid/{player_uuid}": { "post": { "tags": [ "Sessions" ], "summary": "Update Session Player By Uuid", "description": "Add or invite a player to the session, or change the status of a player already in the session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:promote:any`, `session:promote:self`\n\n\n\nRequired Session Permissions: None if session is publicly joinable or the player has been invited. \n`SessionPermissions.session_admin` for other operations\n**DEPRECATED** - Use player/{player_uuid} endpoint instead", "operationId": "update_session_player_by_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionPlayerUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionPlayerUpdateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Kick Player From Session By Uuid", "description": "Kick or Remove a player from a session, or cancel an invite for a player to the session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`\n\n- For the player themselves : `session:update-player:self`\n\nRequired Session Permissions: None for users operating on themselves. \n`SessionPermissions.session_admin` for operating on other players in your session\n**DEPRECATED** - Use player/{player_uuid} endpoint instead", "operationId": "kick_player_from_session_by_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "204": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/player/id/{player_id}": { "post": { "tags": [ "Sessions" ], "summary": "Update Session Player By Id", "description": "Add or invite a player to the session, or change the status of a player already in the session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:promote:any`, `session:promote:self`\n\n\n\nRequired Session Permissions: None if session is publicly joinable or the player has been invited.\n`SessionPermissions.session_admin` for other operations\n\n**DEPRECATED** - Use the player endpoint instead", "operationId": "update_session_player_by_id", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionPlayerUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionPlayerUpdateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Kick Player From Session By Id", "description": "Kick or Remove a player from a session, or cancel an invite for a player to the session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`\n\n- For the player themselves : `session:update-player:self`\n\nRequired Session Permissions: None for players operating on themselves.\n`SessionPermissions.session_admin` for operating on other players in your session\n\n**DEPRECATED** - Use the player endpoint instead", "operationId": "kick_player_from_session_by_id", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/player/me/session": { "get": { "tags": [ "Sessions" ], "summary": "Get Player Sessions Self", "description": "Get Sessions associated the current player\n\nRequired Auth Permissions: `session:read-player:self`\n \nRequired Session Permissions: None", "operationId": "get_player_sessions_self", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerSessions" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/player/{player_uuid}/session": { "get": { "tags": [ "Sessions" ], "summary": "Get Player Sessions By Uuid V2", "description": "Get Sessions associated with a player by uuid\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read-player:any`\n\n- For the player themselves : `session:read-player:self`\n\nRequired Session Permissions: None", "operationId": "get_player_sessions_by_uuid_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerSessions" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/player/uuid/{player_uuid}/session": { "get": { "tags": [ "Sessions" ], "summary": "Get Player Sessions By Uuid", "description": "Get Sessions associated with a player by uuid\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read-player:any`\n\n- For the player themselves : `session:read-player:self`\n\nRequired Session Permissions: None\n**DEPRECATED** - Use player/{player_uuid} endpoint instead", "operationId": "get_player_sessions_by_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerSessions" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/player/id/{player_id}/session": { "get": { "tags": [ "Sessions" ], "summary": "Get Player Sessions", "description": "Get Sessions associated with a player by id\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read-player:any`\n\n- For the player themselves : `session:read-player:self`\n\nRequired Session Permissions: None\n\n**DEPRECATED** - Use player endpoint instead", "operationId": "get_player_sessions", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerSessions" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/connection-info": { "get": { "tags": [ "Sessions" ], "summary": "Get Connection Info Self", "description": "Get public connection info for self\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Permissions: None", "operationId": "get_connection_info_self", "parameters": [ { "required": false, "schema": { "type": "string", "title": "X-Forwarded-For", "default": "" }, "name": "x-forwarded-for", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConnectionInfo" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/queue": { "post": { "tags": [ "Sessions" ], "summary": "Join Queue", "description": "Add session to a matchmaking queue\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update:any`, `session:update:self`\n\n\n\nRequired Session Permissions: `SessionPermissions.session_admin`", "operationId": "join_queue", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QueueJoinRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QueueJoinResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Leave Queue", "description": "Remove session from a matchmaking queue\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update:any`, `session:update:self`\n\n\n \nRequired Session Permissions: `SessionPermissions.session_admin`", "operationId": "leave_queue", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/DeleteTicketReason" } ], "default": "left_queue" }, "name": "reason", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/instance": { "post": { "tags": [ "Sessions" ], "summary": "Create Instance Request", "description": "Request an instance be spawned for the session, or register self as a host of the instance\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update:any`, `session:update:self`\n\n\n\nRequired Session Permissions: `SessionPermissions.session_admin` if user does not have the `session:update:any` auth permission", "operationId": "create_instance_request", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceInfo" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "End Instance", "description": "Unregister the instance from the session.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update:any`, `session:update:self`\n\n\n\nRequired Session Permissions: `SessionPermissions.session_host` if user does not have the `session:update:any` auth permission", "operationId": "end_instance", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" } ], "responses": { "204": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "patch": { "tags": [ "Sessions" ], "summary": "Update Instance Info", "description": "Update info about the instance. If the instance was a result of the instance allocation system, then it will have an allocation id.\nAllocated instances must send their allocation id for updates to ensure they are still the proper allocation.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update:any`, `session:update:self`\n\n\n\nRequired Session Permissions: `SessionPermissions.session_host` if user does not have the `session:update:any` auth permission", "operationId": "update_instance_info", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceInfoUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceInfo" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/instance/health": { "post": { "tags": [ "Sessions" ], "summary": "Instance Health Check", "description": "Endpoint to post health status of an instance\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:instance:health`\n\n\n\nsession:instance:health", "operationId": "instance_health_check", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceHealthStatusUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceHealthStatusResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/instance/health/config": { "get": { "tags": [ "Sessions" ], "summary": "Instance Health Config", "description": "Get config about expected poll rates for instance health, and when instances will go missing/unhealthy\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`", "operationId": "instance_health_config", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceHealthSettingsResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/platform/{platform}/platform-session/{platform_session_id_base64}/session/{session_id}": { "post": { "tags": [ "Sessions" ], "summary": "Add Platform Session To Rally Here Session", "description": "Add a platform session to an existing RallyHere session. The requesting player will be added to the platform session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update:platform`\n\n\n\nRequired Session Permissions: `SessionPermissions.active_in_session` for users that do not have the `session:update:any` auth permission", "operationId": "add_platform_session_to_rally_here_session", "parameters": [ { "required": true, "schema": { "$ref": "#/components/schemas/Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Platform Session Id Base64" }, "name": "platform_session_id_base64", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformSession" } } } }, "403": { "description": "User is not authenticated, or does not have sufficient role access to perform request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Platform Session or Platform Player doesn't exist. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Service was unable to fulfill the request at this time and should be retried after the Retry-After wait time", "headers": { "Retry-After": { "description": "Number of seconds after which to retry the request", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Delete Platform Session From Rally Here Session", "description": "Remove a platform session from a Rally Here session\n \nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update:platform`\n\n\n\nRequired Session Permissions: `SessionPermissions.active_in_session` for users that do not have the `session:update:any` auth permission", "operationId": "delete_platform_session_from_rally_here_session", "parameters": [ { "required": true, "schema": { "$ref": "#/components/schemas/Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Platform Session Id Base64" }, "name": "platform_session_id_base64", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "User is not authenticated, or does not have sufficient role access to perform request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Platform Session or Platform Player doesn't exist. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Service was unable to fulfill the request at this time and should be retried after the Retry-After wait time", "headers": { "Retry-After": { "description": "Number of seconds after which to retry the request", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/platform/{platform}/platform-session/{platform_session_id_base64}": { "get": { "tags": [ "Sessions" ], "summary": "Get Platform Session Info", "description": "Get information about a platform session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:platform`\n\n\n\nRequired Session Permissions: `SessionPermissions.active_in_session` for users that do not have the `session:read:any` auth permission", "operationId": "get_platform_session_info", "parameters": [ { "required": true, "schema": { "$ref": "#/components/schemas/Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Platform Session Id Base64" }, "name": "platform_session_id_base64", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformSession" } } } }, "403": { "description": "User is not authenticated, or does not have sufficient role access to perform request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Platform Session or Platform Player doesn't exist. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/platform/{platform}/platform-session/{platform_session_id_base64}/player/me": { "post": { "tags": [ "Sessions" ], "summary": "Join Session By Platform Session Id Self", "description": "Join a platform session by ID, and the parent session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`\n\n- For the player themselves : `session:update-player:self`\n\nRequired Session Permissions: None", "operationId": "join_session_by_platform_session_id_self", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Platform Session Id Base64" }, "name": "platform_session_id_base64", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/Platform" }, "name": "platform", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SelfSessionPlayerUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Session" } } } }, "403": { "description": "User is not authenticated, or does not have sufficient role access to perform request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Platform Session or Platform Player doesn't exist. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Service was unable to fulfill the request at this time and should be retried after the Retry-After wait time", "headers": { "Retry-After": { "description": "Number of seconds after which to retry the request", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Leave Session By Platform Session Self", "description": "Leave a platform session by platform ID and parent platform session id\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`\n\n- For the player themselves : `session:update-player:self`\n\nRequired Session Permissions: None", "operationId": "leave_session_by_platform_session_self", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Platform Session Id Base64" }, "name": "platform_session_id_base64", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/Platform" }, "name": "platform", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "User is not authenticated, or does not have sufficient role access to perform request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Platform Session or Platform Player doesn't exist. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Service was unable to fulfill the request at this time and should be retried after the Retry-After wait time", "headers": { "Retry-After": { "description": "Number of seconds after which to retry the request", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/platform/{platform}/platform-session/{platform_session_id_base64}/player/{player_uuid}": { "post": { "tags": [ "Sessions" ], "summary": "Join Session By Platform Session By Uuid", "description": "Join a platform session by platform ID and parent platform session id\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`\n\n- For the player themselves : `session:update-player:self`\n\nRequired Session Permissions: None", "operationId": "join_session_by_platform_session_by_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Platform Session Id Base64" }, "name": "platform_session_id_base64", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/Platform" }, "name": "platform", "in": "path" }, { "required": false, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "query" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SelfSessionPlayerUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Session" } } } }, "403": { "description": "User is not authenticated, or does not have sufficient role access to perform request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Platform Session or Platform Player doesn't exist. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Service was unable to fulfill the request at this time and should be retried after the Retry-After wait time", "headers": { "Retry-After": { "description": "Number of seconds after which to retry the request", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Leave Session By Platform Session By Uuid", "description": "Leave a platform session by platform ID and parent platform session id\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`\n\n- For the player themselves : `session:update-player:self`\n\nRequired Session Permissions: None", "operationId": "leave_session_by_platform_session_by_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Platform Session Id Base64" }, "name": "platform_session_id_base64", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "User is not authenticated, or does not have sufficient role access to perform request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Platform Session or Platform Player doesn't exist. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Service was unable to fulfill the request at this time and should be retried after the Retry-After wait time", "headers": { "Retry-After": { "description": "Number of seconds after which to retry the request", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/backfill/config": { "get": { "tags": [ "Sessions" ], "summary": "Backfill Config", "description": "Get config about how often backfill heartbeats must be sent in order to prevent the backfill resource from being deleted\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`", "operationId": "backfill_config", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BackfillSettingsResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/backfill/session/{session_id}": { "post": { "tags": [ "Sessions" ], "summary": "Acknowledge Backfill Request", "description": "Acknowledge a backfill request, and keep it alive. If an acknowledgment is missed, open-match will delete the backfill object", "operationId": "acknowledge_backfill_request", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AcknowledgeBackfillRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AcknowledgeBackfillResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Backfill resource could not be found on the session, or in the open-match system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Delete Backfill Request", "description": "Manually delete the backfill associated with this session", "operationId": "delete_backfill_request", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BaseBackfillRequest" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Backfill resource could not be found on the session, or in the open-match system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "patch": { "tags": [ "Sessions" ], "summary": "Update Backfill Request", "description": "Update a existing backfill's search fields and extensions", "operationId": "update_backfill_request", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateBackfillRequest" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Backfill resource could not be found on the session, or in the open-match system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/invited-session/{invited_session_id}:invite": { "post": { "tags": [ "Sessions" ], "summary": "Invite Session To Session", "description": "Invite an entire session to a target session\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`\n\n to invite any session regardless of membership status\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`, `session:update-player:self`\n\n to invite a session you are part of\n\nRequired Session Permissions: None", "operationId": "invite_session_to_session", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Invited Session Id" }, "name": "invited_session_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionInviteRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionInviteResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/kicked-session/{kicked_session_id}": { "delete": { "tags": [ "Sessions" ], "summary": "Kick Session From Session", "description": "Remove players from a session, `{kicked_session_id}`, if they are also in the session `{session_id}`\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:update-player:any`\n\n to kick any session regardless of membership status\n\nRequired Permissions:\n\n- For any player (including themselves) : `session:update-player:as-leader`\n\n to invite a session you are part of\n\nRequired Session Permissions: `SessionPermissions.session_admin", "operationId": "kick_session_from_session", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Kicked Session Id" }, "name": "kicked_session_id", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist or Player is not a member of the session. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/queues": { "get": { "tags": [ "Queues" ], "summary": "Get All Queue Info", "description": "Get all the available and active queues that sessions can try to join\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Session Permissions: None\n**DEPRECATED** - Use the V2 endpoint instead", "operationId": "get_all_queue_info", "parameters": [ { "required": false, "schema": { "type": "integer", "minimum": 0, "title": "Cursor", "default": 0 }, "name": "cursor", "in": "query" }, { "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Page Size", "default": 50 }, "name": "page_size", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QueuesResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v2/queues": { "get": { "tags": [ "Queues" ], "summary": "Get All Queue Info V2", "description": "Get all the available and active queues that sessions can try to join\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Session Permissions: None", "operationId": "get_all_queue_info_v2", "parameters": [ { "required": false, "schema": { "type": "integer", "minimum": 0, "title": "Cursor", "default": 0 }, "name": "cursor", "in": "query" }, { "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Page Size", "default": 50 }, "name": "page_size", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QueuesResponseV2" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/instance-launch-templates/{instance_launch_template_id}": { "get": { "tags": [ "Queues" ], "summary": "Get All Map Game Info", "description": "Get the config used to launch an instance by the launch template id. Launch template ID can be found in\nMatchMakingProfiles that are return by the `/v1/match-making-templates/` endpoint\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Session Permissions: None\n**DEPRECATED** - Use the /v1/instance-request-template endpoint instead. This endpoint does not support loading data from the developer-portal", "operationId": "get_all_map_game_info", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Instance Launch Template Id" }, "name": "instance_launch_template_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceLaunchTemplate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/instance-request-template/{instance_request_template_id}": { "get": { "tags": [ "Queues" ], "summary": "Get Instance Request Template", "description": "Get the config used to request an instance by the InstanceRequestTemplate ID. This ID can be found in\nMatchMakingProfiles that are return by the `/v1/match-making-templates/` endpoint\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Session Permissions: None", "operationId": "get_instance_request_template", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Instance Request Template Id" }, "name": "instance_request_template_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstanceRequestTemplate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/match-making-templates/{template_group_id}": { "get": { "tags": [ "Queues" ], "summary": "Get Match Making Templates", "description": "Get match making templates, rules, and profiles for a template group. Groups can be found on the queue information\nfrom the `queues` config endpoints\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n \nRequired Session Permissions: None\n**DEPRECATED** Use the V2 endpoint instead", "operationId": "get_match_making_templates", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Template Group Id" }, "name": "template_group_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchMakingTemplateGroup" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/match-making-profile/{match_making_profile_id}": { "get": { "tags": [ "Queues" ], "summary": "Get Match Making Profile", "description": "Get info about a specific match making profile\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Session Permissions: None\n**DEPRECATED** Use the V2 endpoint instead", "operationId": "get_match_making_profile", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Match Making Profile Id" }, "name": "match_making_profile_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchMakingProfile" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v2/match-making-profile/{match_making_profile_id}": { "get": { "tags": [ "Queues" ], "summary": "Get Match Making Profile V2", "description": "Get info about a specific match making profile\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Session Permissions: None", "operationId": "get_match_making_profile_v2", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Match Making Profile Id" }, "name": "match_making_profile_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchMakingProfileV2" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v2/match-making-templates/{template_group_id}": { "get": { "tags": [ "Queues" ], "summary": "Get Match Making Templates V2", "description": "Get match making templates, rules, and profiles for a template group. Groups can be found on the queue information\nfrom the `queues` config endpoints\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Session Permissions: None\n**DEPRECATED** Use the V2 endpoint instead", "operationId": "get_match_making_templates_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Template Group Id" }, "name": "template_group_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be returned - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchMakingTemplateGroupV2" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/regions": { "get": { "tags": [ "Regions" ], "summary": "Get All Regions", "description": "Get all of the enabled regions and their configuration\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:read:config`\n\n\n\nRequired Session Permissions: None", "operationId": "get_all_regions", "parameters": [ { "required": false, "schema": { "type": "integer", "minimum": 0, "title": "Cursor", "default": 0 }, "name": "cursor", "in": "query" }, { "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Page Size", "default": 50 }, "name": "page_size", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegionsResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/audit": { "get": { "tags": [ "Session Audit" ], "summary": "Get Session Audit", "description": "Get all audit events for a specific session or player. Empty list means there is no audit history.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session-audit:read:all`, `session:*`\n\n for all sessions\n\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session-audit:read:self`, `session:*`\n\n for sessions you are a member of\n\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session-player-audit:read:all`, `session:*`\n\n to read audit information about any player\n\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session-player-audit:read:self`, `session:*`\n\n to read audit information about yourself", "operationId": "get_session_audit", "parameters": [ { "required": false, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "query" }, { "required": false, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "query" }, { "required": false, "schema": { "type": "integer", "minimum": 0, "title": "Page Num", "default": 0 }, "name": "page_num", "in": "query" }, { "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Page Size", "default": 50 }, "name": "page_size", "in": "query" }, { "required": false, "schema": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "name": "start_date", "in": "query" }, { "required": false, "schema": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "name": "end_date", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuditResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Session Audit" ], "summary": "Create Session Audit", "description": "Create an audit event in the log for this session.\nInternal session operations will create new events that are accessible from the get request.\n\nPlayer clients and instances are expected to create events here when something occurs on their clients that is\nrelevant. Customer created events will be prepended with 'customer.'\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session-audit:update:all`, `session:*`\n\n\n\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session-audit:update:self`, `session:*`\n\n for sessions you are a member of\n\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session-player-audit:update:all`, `session:*`\n\n to read audit information about any player\n\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session-player-audit:update:self`, `session:*`\n\n to read audit information about yourself", "operationId": "create_session_audit", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAuditRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Session doesn't exist. See error code for more info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/voip/vivox:login": { "get": { "tags": [ "VOIP" ], "summary": "Get Voip Login Token", "description": "Generate a token to login with vivox\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:vivox:login`", "operationId": "get_voip_login_token", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoipTokenResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/player/me/voip/vivox:{vivox_action}": { "get": { "tags": [ "VOIP" ], "summary": "Get Voip Action Token Me", "description": "Generate a token for one of the specific vivox actions except logging in\n\n`JOIN` Required Permissions:\n\n- For the player themselves : `session:vivox:join`\n\n`JOIN_MUTED` Required Permissions:\n\n- For the player themselves : `session:vivox:join_muted`\n\n`KICK` Required Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:vivox:kick:all`\n\n- For the player themselves : `session:vivox:kick:self`\n\nor be leader of session and have Required Permissions:\n\n- For any player (including themselves) : `session:vivox:kick:as-leader`\n\n\n\n`MUTE` Required Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:vivox:mute:all`\n\n- For the player themselves : `session:vivox:mute:self`\n\nor be leader of session and have Required Permissions:\n\n- For any player (including themselves) : `session:vivox:kick:as-leader`\n\n\n\n`TRANSCRIBE` Required Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:vivox:transcribe:any`\n\n- For the player themselves : `session:vivox:transcribe:as-member`", "operationId": "get_voip_action_token_me", "parameters": [ { "required": true, "schema": { "$ref": "#/components/schemas/VivoxSessionActionSingle" }, "name": "vivox_action", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/VoipSessionType" }, "name": "voip_session_type", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoipTokenResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/player/{player_uuid}/voip/vivox:{vivox_action}": { "get": { "tags": [ "VOIP" ], "summary": "Get Voip Action Token", "description": "Generate a token for one of the specific vivox actions except logging in\n\n`JOIN` Required Permissions:\n\n- For the player themselves : `session:vivox:join`\n\n`JOIN_MUTED` Required Permissions:\n\n- For the player themselves : `session:vivox:join_muted`\n\n`KICK` Required Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:vivox:kick:all`\n\n- For the player themselves : `session:vivox:kick:self`\n\nor be leader of session and have Required Permissions:\n\n- For any player (including themselves) : `session:vivox:kick:as-leader`\n\n\n\n`MUTE` Required Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:vivox:mute:all`\n\n- For the player themselves : `session:vivox:mute:self`\n\nor be leader of session and have Required Permissions:\n\n- For any player (including themselves) : `session:vivox:mute:as-leader`\n\n\n\n`TRANSCRIBE` Required Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:vivox:transcribe:any`\n\n- For the player themselves : `session:vivox:transcribe:as-member`", "operationId": "get_voip_action_token", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/VivoxSessionActionSingle" }, "name": "vivox_action", "in": "path" }, { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/VoipSessionType" }, "name": "voip_session_type", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoipTokenResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/deserter": { "get": { "tags": [ "Deserter" ], "summary": "Get All Deserter Configs", "description": "Get all deserter configs", "operationId": "get_all_deserter_configs", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeserterConfigResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/deserter/{deserter_id}": { "get": { "tags": [ "Deserter" ], "summary": "Get Specific Deserter Config", "description": "Get specific deserter configs", "operationId": "get_specific_deserter_config", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Deserter Id" }, "name": "deserter_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeserterConfig" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/player/{player_uuid}/deserter/{deserter_id}": { "get": { "tags": [ "Deserter" ], "summary": "Get Player Deserter", "description": "Get a specific player's deserter status", "operationId": "get_player_deserter", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Deserter Id" }, "name": "deserter_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerDeserterStatus" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "Deserter" ], "summary": "Put Player Deserter", "description": "Update a specific player's deserter status", "operationId": "put_player_deserter", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Deserter Id" }, "name": "deserter_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeserterUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerDeserterStatus" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Deserter" ], "summary": "Delete Player Deserter", "description": "Delete a single deserter status for a specific player", "operationId": "delete_player_deserter", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Deserter Id" }, "name": "deserter_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/player/{player_uuid}/deserter": { "get": { "tags": [ "Deserter" ], "summary": "Get All Player Deserters", "description": "Get a specific player's deserter status", "operationId": "get_all_player_deserters", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AllPlayerDeserterStatuses" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "delete": { "tags": [ "Deserter" ], "summary": "Delete All Player Deserter", "description": "Delete all of a player's deserter statuses", "operationId": "delete_all_player_deserter", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/deserter:clear": { "post": { "tags": [ "Deserter" ], "summary": "Clear All Deserter", "description": "Clear deserter status for all deserter ids", "operationId": "clear_all_deserter", "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/deserter/{deserter_id}:clear": { "post": { "tags": [ "Deserter" ], "summary": "Clear Specific Deserter", "description": "Clear deserter status for a specific deserter id", "operationId": "clear_specific_deserter", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Deserter Id" }, "name": "deserter_id", "in": "path" } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog All", "description": "Get the entire catalog.\n\nThis endpoint endpoint is generally discouraged outside of prototyping and early development. It's not that the endpoint won't function, but rather that it creates a pattern that may result in a poor end user experience. It has etag/if-none-match handling, but it is for the entire catalog. So if a single byte changes inside the catalog (e.g. turning on a loot record, adding a single new item, changing a price point, adjusting the threshold to hit level X in an XP Table), then the etag will change. If clients are re-requesting data from this endpoint, then those changes will result in them re-downloading, and re-parsing the entire catalog for that tiny modification.\n\nEarly on in a game's lifecycle, this doesn't matter much - since catalog data is pretty small. But as your game grows, and you create lots of things to receive/purchase/grant, the data will balloon in size. Parsing the response does occur on unreal's main thread, and with a sufficiently large catalog, you may see hitches. There will also be lots of data in there that may not even be necessary for your client to see at all (e.g. if you only grant the loot from the dedicated server or if an item is just a tracker, it doesn't necessarily need to be visible on the client).\n\nWe generally encourage having a well-known list of vendors to request from `/inventory/v1/catalog/vendor/{vendor_id}`, and then requesting the entire set of xp tables, price points, and bucket rulesets (as those are generally pretty small lists). That list of vendors could come from anywhere, it could be hardcoded, be set from an ini (if your client is unlikely to need arbitrary vendor additions, but you want to retain the ability to patch it) or it could come down in a kv.", "operationId": "get_catalog_all", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Catalog" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/xp": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Xp All", "description": "Get all XP Tables.", "operationId": "get_catalog_xp_all", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/XpTables" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/xp/{xp_table_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Xp Table", "description": "Get a specific XP Table.", "operationId": "get_catalog_xp_table", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Xp Table Id" }, "name": "xp_table_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/XpTable" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/portal-use-ruleset": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Portal Use Rulesets All", "description": "Get all Portal Use Rulesets.", "operationId": "get_catalog_portal_use_rulesets_all", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PortalUseRulesets" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/portal-use-ruleset/{portal_use_ruleset_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Portal Use Ruleset", "description": "Get a specific Portal Use Ruleset.", "operationId": "get_catalog_portal_use_ruleset", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Portal Use Ruleset Id" }, "name": "portal_use_ruleset_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PortalUseRuleset" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/inventory-bucket-use-rule-set": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Inventory Bucket Use Rule Sets All", "description": "Get all Inventory Bucket Use Rule Sets.", "operationId": "get_catalog_inventory_bucket_use_rule_sets_all", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryBucketUseRuleSets" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/inventory-bucket-use-rule-set/{inventory_bucket_use_ruleset_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Inventory Bucket Use Rule Set", "description": "Get a specific Inventory Bucket Use Rule Set.", "operationId": "get_catalog_inventory_bucket_use_rule_set", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Inventory Bucket Use Ruleset Id" }, "name": "inventory_bucket_use_ruleset_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryBucketUseRuleSet" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/price-point": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Price Points All", "description": "Get all Price Points.", "operationId": "get_catalog_price_points_all", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PricePoints" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/price-point/{price_point_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Price Point", "description": "Get a specific Price Point.", "operationId": "get_catalog_price_point", "parameters": [ { "required": true, "schema": { "type": "string", "minLength": 1, "title": "Price Point Id" }, "name": "price_point_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PricePoint" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/item": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Items All", "description": "Get all Items.", "operationId": "get_catalog_items_all", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Items" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/item/{item_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Item", "description": "Get a specific Item.", "operationId": "get_catalog_item", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Item Id" }, "name": "item_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Item" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/vendor": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Vendors All", "description": "Get all Vendors.", "operationId": "get_catalog_vendors_all", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Vendors" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/vendor/{vendor_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Vendor", "description": "Get a specific Vendor.", "operationId": "get_catalog_vendor", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Vendor Id" }, "name": "vendor_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Vendor" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/loot": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Loots All", "description": "Get all Loot.", "operationId": "get_catalog_loots_all", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Loots" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/loot/{loot_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Loot", "description": "Get a specific Loot.", "operationId": "get_catalog_loot", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Loot Id" }, "name": "loot_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Loot" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/time-frame": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Time Frames All", "description": "Get all Time Frames.", "operationId": "get_catalog_time_frames_all", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TimeFrames" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/time-frame/{time_frame_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Time Frame", "description": "Get a specific Time Frame.", "operationId": "get_catalog_time_frame", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Time Frame Id" }, "name": "time_frame_id", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TimeFrame" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/entitlement-sku": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Entitlement Sku All", "description": "Get all Entitlement SKUs.", "operationId": "get_catalog_entitlement_sku_all", "parameters": [ { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformSKUs" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/catalog/entitlement-sku/{platform}/{sku}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Entitlement Sku", "description": "Get a specific Entitlement SKU.", "operationId": "get_catalog_entitlement_sku", "parameters": [ { "required": true, "schema": { "$ref": "#/components/schemas/Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "title": "Sku" }, "name": "sku", "in": "path" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformSKU" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/me/inventory": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Inventory Uuid Self", "description": "Get the Inventory for the currently authenticated player.", "operationId": "get_player_inventory_uuid_self", "parameters": [ { "required": false, "schema": { "items": { "type": "integer" }, "type": "array", "title": "Item Ids", "default": [] }, "name": "item_ids", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryContextResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "Service was unable to fulfill the request at this time and should be retried after the Retry-After wait time", "headers": { "Retry-After": { "description": "Number of seconds after which to retry the request, when the server should have the resource available", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "Inventory" ], "summary": "Modify Many Player Inventory Uuid Self", "description": "Modify many Inventory records for the currently authenticated player.", "operationId": "modify_many_player_inventory_uuid_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequests" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create Player Inventory Uuid Self", "description": "Create Inventory for the currently authenticated player.", "operationId": "create_player_inventory_uuid_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInventoryRequests" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/{player_uuid}/inventory": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Inventory Uuid", "description": "Get the Inventory for the specified player.", "operationId": "get_player_inventory_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": false, "schema": { "items": { "type": "integer" }, "type": "array", "title": "Item Ids", "default": [] }, "name": "item_ids", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryContextResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "Service was unable to fulfill the request at this time and should be retried after the Retry-After wait time", "headers": { "Retry-After": { "description": "Number of seconds after which to retry the request, when the server should have the resource available", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "Inventory" ], "summary": "Modify Many Player Inventory Uuid", "description": "Modify many Inventory records for the specified player.", "operationId": "modify_many_player_inventory_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequests" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create Player Inventory Uuid", "description": "Create Inventory for the specified player.", "operationId": "create_player_inventory_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInventoryRequests" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/me/inventory": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Inventory Self", "description": "Get the Inventory for the currently authenticated player.", "operationId": "get_player_inventory_self", "parameters": [ { "required": false, "schema": { "items": { "type": "integer" }, "type": "array", "title": "Item Ids", "default": [] }, "name": "item_ids", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryContextResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "Service was unable to fulfill the request at this time and should be retried after the Retry-After wait time", "headers": { "Retry-After": { "description": "Number of seconds after which to retry the request, when the server should have the resource available", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "Inventory" ], "summary": "Modify Many Player Inventory Self", "description": "Modify many Inventory records for the currently authenticated player.", "operationId": "modify_many_player_inventory_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequests" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create Player Inventory Self", "description": "Create Inventory for the currently authenticated player.", "operationId": "create_player_inventory_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInventoryRequests" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/{player_id}/inventory": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Inventory", "description": "Get the Inventory for the specified player.", "operationId": "get_player_inventory", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": false, "schema": { "items": { "type": "integer" }, "type": "array", "title": "Item Ids", "default": [] }, "name": "item_ids", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryContextResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "Service was unable to fulfill the request at this time and should be retried after the Retry-After wait time", "headers": { "Retry-After": { "description": "Number of seconds after which to retry the request, when the server should have the resource available", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "put": { "tags": [ "Inventory" ], "summary": "Modify Many Player Inventory", "description": "Modify many Inventory records for the specified player.", "operationId": "modify_many_player_inventory", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequests" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create Player Inventory", "description": "Create Inventory for the specified player.", "operationId": "create_player_inventory", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInventoryRequests" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/me/inventory/{inventory_id}": { "put": { "tags": [ "Inventory" ], "summary": "Modify Player Inventory Uuid Self", "description": "Modify a single Inventory record for the currently authenticated player.", "operationId": "modify_player_inventory_uuid_self", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" }, "name": "inventory_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/{player_uuid}/inventory/{inventory_id}": { "put": { "tags": [ "Inventory" ], "summary": "Modify Player Inventory Uuid", "description": "Modify a single Inventory record for the specified player.", "operationId": "modify_player_inventory_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" }, "name": "inventory_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/me/inventory/{inventory_id}": { "put": { "tags": [ "Inventory" ], "summary": "Modify Player Inventory Self", "description": "Modify a single Inventory record for the currently authenticated player.", "operationId": "modify_player_inventory_self", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" }, "name": "inventory_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/{player_id}/inventory/{inventory_id}": { "put": { "tags": [ "Inventory" ], "summary": "Modify Player Inventory", "description": "Modify a single Inventory record for the specified player.", "operationId": "modify_player_inventory", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" }, "name": "inventory_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/me/session": { "get": { "tags": [ "Inventory" ], "summary": "Get Inventory Session Info By Player Uuid Self", "description": "Get an Inventory Session for the currently logged in player.", "operationId": "get_inventory_session_info_by_player_uuid_self", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySession" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create New Inventory Session By Player Uuid Self", "description": "Create a new Inventory Session for the currently logged in player.", "operationId": "create_new_inventory_session_by_player_uuid_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateRequest" } } }, "required": true }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/{player_uuid}/session": { "get": { "tags": [ "Inventory" ], "summary": "Get Inventory Session Info By Player Uuid", "description": "Get an Inventory Session for the specified player.", "operationId": "get_inventory_session_info_by_player_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySession" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create New Inventory Session By Player Uuid", "description": "Create a new Inventory Session for the specified player.", "operationId": "create_new_inventory_session_by_player_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateRequest" } } }, "required": true }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/me/session": { "get": { "tags": [ "Inventory" ], "summary": "Get Inventory Session Info Self", "description": "Get an Inventory Session for the currently logged in player.", "operationId": "get_inventory_session_info_self", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySession" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create New Inventory Session Self", "description": "Create a new Inventory Session for the currently logged in player.", "operationId": "create_new_inventory_session_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateRequest" } } }, "required": true }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/{player_id}/session": { "get": { "tags": [ "Inventory" ], "summary": "Get Inventory Session Info", "description": "Get an Inventory Session for the specified player.", "operationId": "get_inventory_session_info", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySession" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create New Inventory Session", "description": "Create a new Inventory Session for the specified player.", "operationId": "create_new_inventory_session", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateRequest" } } }, "required": true }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/me/entitlement": { "post": { "tags": [ "Entitlements" ], "summary": "Process Platform Entitlement For Me", "description": "Process platform entitlements, consuming from the platform inventory where possible and generating orders. \n\nNote that some orders may not be fulfilled at the completion of this request and need to be polled separately for results\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `inv:*`, `inv:platform_entitlements:any`\n\n- For the player themselves : `inv:platform_entitlements:self`", "operationId": "process_platform_entitlement_for_me", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementProcessRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementProcessResult" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/{player_uuid}/entitlement": { "post": { "tags": [ "Entitlements" ], "summary": "Process Platform Entitlements By Player Uuid", "description": "Process platform entitlements, consuming from the platform inventory where possible and generating orders. \n\nNote that some orders may not be fulfilled at the completion of this request and need to be polled separately for results\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `inv:*`, `inv:platform_entitlements:any`\n\n- For the player themselves : `inv:platform_entitlements:self`", "operationId": "process_platform_entitlements_by_player_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementProcessRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementProcessResult" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/me/entitlement/request/{request_id}": { "get": { "tags": [ "Entitlements" ], "summary": "Retrieve Entitlement Request For Me", "description": "Get the status of a platform entitlement request by request id.\n \n Required Permissions:\n\n- For any player (including themselves) any of: `inv:*`, `inv:platform_entitlements:any`\n\n- For the player themselves : `inv:platform_entitlements:self`", "operationId": "retrieve_entitlement_request_for_me", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Request Id" }, "name": "request_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementProcessResult" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/{player_uuid}/entitlement/request/{request_id}": { "get": { "tags": [ "Entitlements" ], "summary": "Retrieve Entitlement Request By Player Uuid", "description": "Get the status of a platform entitlement request by request id.\n \n Required Permissions:\n\n- For any player (including themselves) any of: `inv:*`, `inv:platform_entitlements:any`\n\n- For the player themselves : `inv:platform_entitlements:self`", "operationId": "retrieve_entitlement_request_by_player_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "title": "Request Id" }, "name": "request_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementProcessResult" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/entitlement-event": { "get": { "tags": [ "Entitlements" ], "summary": "Get Entitlement Events", "description": "Get entitlement events for a player. If no player is provided, all events will be returned.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `inv:*`, `inv:entitlement_event:read`", "operationId": "get_entitlement_events", "parameters": [ { "description": "Player to get entitlement events for", "required": false, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player to get entitlement events for" }, "name": "player_uuid", "in": "query" }, { "description": "Player to get entitlement events for. Will be ignored if player_uuid is provided", "required": false, "deprecated": true, "schema": { "type": "integer", "title": "Player Id", "description": "Player to get entitlement events for. Will be ignored if player_uuid is provided" }, "name": "player_id", "in": "query" }, { "description": "Cursor for pagination", "required": false, "schema": { "type": "string", "maxLength": 255, "title": "Cursor", "description": "Cursor for pagination" }, "name": "cursor", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntitlementEventList" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Entitlements" ], "summary": "Generate Entitlement Event", "description": "Create an entitlement event - this is used to bypass platform providers and grant entitlement events directly. \n\nRequired Permissions:\n\n- For any player (including themselves) any of: `inv:*`, `inv:entitlement_event:write`", "operationId": "generate_entitlement_event", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntitlementEventRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntitlementEvent" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/me/order": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Uuid Orders Self", "description": "Get recent player orders about a player. Empty results means there were no recent orders.If starting_position and cursor are given, starting_position will be ignored in favor of cursor", "operationId": "get_player_uuid_orders_self", "parameters": [ { "description": "Inclusive starting time for the first order", "required": false, "schema": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "name": "starting_position", "in": "query" }, { "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored", "required": false, "schema": { "type": "string", "title": "Cursor", "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored" }, "name": "cursor", "in": "query" }, { "description": "The direction to search.", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/SortOrder" } ], "description": "The direction to search.", "default": "asc" }, "name": "sort", "in": "query" }, { "description": "The number of Orders to return", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Limit", "description": "The number of Orders to return", "default": 10 }, "name": "limit", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrdersResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create New Player Uuid Order Self", "description": "Create a new Order for the current logged in player.\n\nNote that some orders may not be fulfilled at the completion of this request and need to be polled separately for results.", "operationId": "create_new_player_uuid_order_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/{player_uuid}/order": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Uuid Orders", "description": "Get recent player orders about a player. Empty results means there were no recent orders.If starting_position and cursor are given, starting_position will be ignored in favor of cursor", "operationId": "get_player_uuid_orders", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "description": "Inclusive starting time for the first order", "required": false, "schema": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "name": "starting_position", "in": "query" }, { "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored", "required": false, "schema": { "type": "string", "title": "Cursor", "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored" }, "name": "cursor", "in": "query" }, { "description": "The direction to search.", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/SortOrder" } ], "description": "The direction to search.", "default": "asc" }, "name": "sort", "in": "query" }, { "description": "The number of Orders to return", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Limit", "description": "The number of Orders to return", "default": 10 }, "name": "limit", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrdersResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create New Player Uuid Order", "description": "Create a new Order for a specific player.\n\nNote that some orders may not be fulfilled at the completion of this request and need to be polled separately for results.", "operationId": "create_new_player_uuid_order", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/me/order": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Orders Self", "description": "Get recent player orders about a player. Empty results means there were no recent orders.If starting_position and cursor are given, starting_position will be ignored in favor of cursor", "operationId": "get_player_orders_self", "parameters": [ { "description": "Inclusive starting time for the first order", "required": false, "schema": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "name": "starting_position", "in": "query" }, { "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored", "required": false, "schema": { "type": "string", "title": "Cursor", "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored" }, "name": "cursor", "in": "query" }, { "description": "The direction to search.", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/SortOrder" } ], "description": "The direction to search.", "default": "asc" }, "name": "sort", "in": "query" }, { "description": "The number of Orders to return", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Limit", "description": "The number of Orders to return", "default": 10 }, "name": "limit", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrdersResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create New Player Order Self", "description": "Create a new Order for the current logged in player.\n\nNote that some orders may not be fulfilled at the completion of this request and need to be polled separately for results.", "operationId": "create_new_player_order_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/{player_id}/order": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Orders", "description": "Get recent player orders about a player. Empty results means there were no recent orders.If starting_position and cursor are given, starting_position will be ignored in favor of cursor", "operationId": "get_player_orders", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "description": "Inclusive starting time for the first order", "required": false, "schema": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "name": "starting_position", "in": "query" }, { "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored", "required": false, "schema": { "type": "string", "title": "Cursor", "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored" }, "name": "cursor", "in": "query" }, { "description": "The direction to search.", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/SortOrder" } ], "description": "The direction to search.", "default": "asc" }, "name": "sort", "in": "query" }, { "description": "The number of Orders to return", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Limit", "description": "The number of Orders to return", "default": 10 }, "name": "limit", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrdersResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Inventory" ], "summary": "Create New Player Order", "description": "Create a new Order for a specific player.\n\nNote that some orders may not be fulfilled at the completion of this request and need to be polled separately for results.", "operationId": "create_new_player_order", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/me/order/{order_id}": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Uuid Order By Id Self", "description": "Get a single Order for a player by order id. This API only returns recent Orders for Players", "operationId": "get_player_uuid_order_by_id_self", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Order Id" }, "name": "order_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Order was not found for player", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/{player_uuid}/order/{order_id}": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Uuid Order By Id", "description": "Get a single Order for a player by order id. This API only returns recent Orders for Players", "operationId": "get_player_uuid_order_by_id", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "title": "Order Id" }, "name": "order_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Order was not found for player", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/me/order/{order_id}": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Order By Id Self", "description": "Get a single Order for a player by order id. This API only returns recent Orders for Players", "operationId": "get_player_order_by_id_self", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Order Id" }, "name": "order_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Order was not found for player", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/{player_id}/order/{order_id}": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Order By Id", "description": "Get a single Order for a player by order id. This API only returns recent Orders for Players", "operationId": "get_player_order_by_id", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "string", "title": "Order Id" }, "name": "order_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Order was not found for player", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/me/portal/{portal_id}/processKeyEntitlements": { "post": { "tags": [ "Key Entitlements" ], "summary": "Process Player Uuid Entitlements Self", "description": "Process entitlements for the current player with the given Platform. The end result will consume entitlements from the Platform and grant unclaimed Key Claims to the player.", "operationId": "process_player_uuid_entitlements_self", "parameters": [ { "required": true, "schema": { "$ref": "#/components/schemas/Portal" }, "name": "portal_id", "in": "path" } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/{player_uuid}/portal/{portal_id}/processKeyEntitlements": { "post": { "tags": [ "Key Entitlements" ], "summary": "Process Key Entitlements Player Uuid", "description": "Process entitlements for the given player with the given portal. The end result will consume entitlements from the Platform and grant unclaimed Key Claims to the player.", "operationId": "process_key_entitlements_player_uuid", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/Portal" }, "name": "portal_id", "in": "path" } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/me/portal/{portal_id}/processKeyEntitlements": { "post": { "tags": [ "Key Entitlements" ], "summary": "Process Key Entitlements Self", "description": "Process entitlements for the given player with the given portal. The end result will consume entitlements from the Platform and grant unclaimed Key Claims to the player.", "operationId": "process_key_entitlements_self", "parameters": [ { "required": true, "schema": { "$ref": "#/components/schemas/Portal" }, "name": "portal_id", "in": "path" } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/{player_id}/portal/{portal_id}/processKeyEntitlements": { "post": { "tags": [ "Key Entitlements" ], "summary": "Process Key Entitlements", "description": "Process entitlements for the given player with the given portal. The end result will consume entitlements from the Platform and grant unclaimed Key Claims to the player.", "operationId": "process_key_entitlements", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/Portal" }, "name": "portal_id", "in": "path" } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/me/keyClaim": { "get": { "tags": [ "Key Claims" ], "summary": "Get Key Claims For My Uuid", "description": "Get All Key Claims for all external Key campaigns for the current player.", "operationId": "get_key_claims_for_my_uuid", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaims" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/{player_uuid}/keyClaim": { "get": { "tags": [ "Key Claims" ], "summary": "Get Player Uuid Key Claims", "description": "Get All Key Claims for all external Key campaigns for the given player.", "operationId": "get_player_uuid_key_claims", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaims" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/me/keyClaim": { "get": { "tags": [ "Key Claims" ], "summary": "Get Key Claims For Me", "description": "Get All Key Claims for all external Key campaigns for the current player.", "operationId": "get_key_claims_for_me", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaims" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/{player_id}/keyClaim": { "get": { "tags": [ "Key Claims" ], "summary": "Get Key Claims", "description": "Get All Key Claims for all external Key campaigns for the given player.", "operationId": "get_key_claims", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaims" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/me/keyClaim/{key_claim_uuid}": { "get": { "tags": [ "Key Claims" ], "summary": "Get Player Uuid Key Claim Self", "description": "Get Key Claim by uuid for the current player.", "operationId": "get_player_uuid_key_claim_self", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" }, "name": "key_claim_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Key Claims" ], "summary": "Claim Player Uuid Unclaimed Key Claim For Me", "description": "Claim the Key Claim by uuid for the current player. The external_key will be set to a value if any key matching the external_key_type is available.", "operationId": "claim_player_uuid_unclaimed_key_claim_for_me", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" }, "name": "key_claim_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClaimKeyRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v2/player/{player_uuid}/keyClaim/{key_claim_uuid}": { "get": { "tags": [ "Key Claims" ], "summary": "Get Player Uuid Key Claim", "description": "Get Key Claim by uuid for the given player.", "operationId": "get_player_uuid_key_claim", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" }, "name": "key_claim_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Key Claims" ], "summary": "Claim Player Uuid Unclaimed Key Claim", "description": "Claim the Key Claim by uuid for the given player. The external_key will be set to a value if any key matching the external_key_type is available.", "operationId": "claim_player_uuid_unclaimed_key_claim", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" }, "name": "key_claim_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClaimKeyRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/me/keyClaim/{key_claim_uuid}": { "get": { "tags": [ "Key Claims" ], "summary": "Get Key Claim For Me", "description": "Get Key Claim by uuid for the current player.", "operationId": "get_key_claim_for_me", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" }, "name": "key_claim_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Key Claims" ], "summary": "Claim Unclaimed Key Claim For Me", "description": "Claim the Key Claim by uuid for the current player. The external_key will be set to a value if any key matching the external_key_type is available.", "operationId": "claim_unclaimed_key_claim_for_me", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" }, "name": "key_claim_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClaimKeyRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/player/{player_id}/keyClaim/{key_claim_uuid}": { "get": { "tags": [ "Key Claims" ], "summary": "Get Key Claim", "description": "Get Key Claim by uuid for the given player.", "operationId": "get_key_claim", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" }, "name": "key_claim_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "Key Claims" ], "summary": "Claim Unclaimed Key Claim", "description": "Claim the Key Claim by uuid for the given player. The external_key will be set to a value if any key matching the external_key_type is available.", "operationId": "claim_unclaimed_key_claim", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" }, "name": "key_claim_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClaimKeyRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/inventory/v1/marketing/campaign": { "get": { "tags": [ "Marketing" ], "summary": "Get Marketing Campaigns", "description": "Get all marketing campaigns. There is currently no way to add Market Campaigns via API. Reach out to your Rally Here representative to add a new campaign.", "operationId": "get_marketing_campaigns", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarketingCampaigns" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/player/me/presence": { "get": { "tags": [ "presence" ], "summary": "Get Player Presence Self", "description": "Get the player's presence information. The status reflects the true value and is not modified before it\nis returned.", "operationId": "get_player_presence_self", "parameters": [ { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerPresence" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "patch": { "tags": [ "presence" ], "summary": "Update Player Presence Self", "description": "Update the player's online status and other presence data.\nIf the player reports their online status as online or away, their \"last_seen\" presence info is updated.\nPlayer clients are expected to send requests to this endpoint on an interval of self_ping_interval_seconds.\nOtherwise they will be considered offline.", "operationId": "update_player_presence_self", "parameters": [ { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerPresenceUpdateSelf" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/player/uuid/{player_uuid}/presence": { "get": { "tags": [ "presence" ], "summary": "Get Player Presence Public By Uuid", "description": "Get the player's presence information. The status will be modified based on the following rules:\n- A status of invisible will be reported as offline\n- The status will become offline if older than the configured age", "operationId": "get_player_presence_public_by_uuid", "parameters": [ { "description": "A valid UUID identifying a player. Rejects integer player identification.", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "A valid UUID identifying a player. Rejects integer player identification." }, "name": "player_uuid", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerPresence" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/player/id/{player_id}/presence": { "get": { "tags": [ "presence" ], "summary": "Get Player Presence Public By Id", "description": "Get the player's presence information. The status will be modified based on the following rules:\n- A status of invisible will be reported as offline\n- The status will become offline if older than the configured age", "operationId": "get_player_presence_public_by_id", "parameters": [ { "description": "A valid integer identifying a player. Rejects UUID player identification.", "required": true, "schema": { "type": "integer", "title": "Player Id", "description": "A valid integer identifying a player. Rejects UUID player identification." }, "name": "player_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed.", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this resource, a 304 response will be return - indicating that the resource has not changed." }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerPresence" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/settings": { "get": { "tags": [ "presence" ], "summary": "Get Presence Settings", "description": "Settings which help tell the client how it should interact with this service.", "operationId": "get_presence_settings", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientVisibleSettings" } } } } } } }, "/presence/v1/admin/player/uuid/{player_uuid}/last_seen": { "patch": { "tags": [ "presence-admin" ], "summary": "Admin Update Player Last Seen", "description": "Forcibly update the player's last_seen with the specified values. This enables an admin to set the last_seen time\nto something specific for testing.", "operationId": "admin_update_player_last_seen", "parameters": [ { "description": "A valid UUID identifying a player. Rejects integer player identification.", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "A valid UUID identifying a player. Rejects integer player identification." }, "name": "player_uuid", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerLastSeenUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/player/id/{player_id}/last_seen": { "patch": { "tags": [ "presence-admin" ], "summary": "Admin Update Player Last Seen Id", "description": "Forcibly update the player's last_seen with the specified values. This enables an admin to set the last_seen time\nto something specific for testing.", "operationId": "admin_update_player_last_seen_id", "parameters": [ { "description": "A valid integer identifying a player. Rejects UUID player identification.", "required": true, "schema": { "type": "integer", "title": "Player Id", "description": "A valid integer identifying a player. Rejects UUID player identification." }, "name": "player_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerLastSeenUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/player/uuid/{player_uuid}/presence": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Player Presence", "description": "Get the player's presence information. The status reflects the true value and is not modified before it\nis returned.", "operationId": "admin_get_player_presence", "parameters": [ { "description": "A valid UUID identifying a player. Rejects integer player identification.", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "A valid UUID identifying a player. Rejects integer player identification." }, "name": "player_uuid", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerPresence" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/player/id/{player_id}/presence": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Player Presence Id", "description": "Get the player's presence information. The status reflects the true value and is not modified before it\nis returned.", "operationId": "admin_get_player_presence_id", "parameters": [ { "description": "A valid integer identifying a player. Rejects UUID player identification.", "required": true, "schema": { "type": "integer", "title": "Player Id", "description": "A valid integer identifying a player. Rejects UUID player identification." }, "name": "player_id", "in": "path" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerPresence" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/total/combined": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Total Ccu", "description": "Get the combined CCU over the requested time period. This call results in one number which should exclude most duplicates across the given time\nperiod. This stands in contrast to the individual request endpoint.\n\nFor example, if you request the CCU over an hour you'll receive one number in which players that were around over that time period will only be\ncounted once.", "operationId": "admin_get_total_ccu", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnionCCU" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/total/individual": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Total Ccu Individual", "description": "Get the individual CCU counts over the requested time period. This call results in a count per time period within the requested range. These\nvalues should not be combined directly unless you've accounted for duplicates in some other way. The combined endpoint allows you to combine\nthe values within a time range without counting the same player multiple times.", "operationId": "admin_get_total_ccu_individual", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IndividualCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/requesting/combined": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Requesting Ccu", "description": "Get the combined CCU for requesters over the requested time period. This call results in one number which should exclude most duplicates across\nthe given time period. This stands in contrast to the individual request endpoint.\n\nFor example, if you request the CCU over an hour you'll receive one number in which players that were around over that time period will only be\ncounted once.", "operationId": "admin_get_requesting_ccu", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnionCCU" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/requesting/individual": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Requesting Ccu Individual", "description": "Get the individual CCU counts for requesters over the requested time period. This call results in a count per time period within the requested\nrange. These values should not be combined directly unless you've accounted for duplicates in some other way. The combined endpoint allows you to\ncombine the values within a time range without counting the same player multiple times.", "operationId": "admin_get_requesting_ccu_individual", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IndividualCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/updating/combined": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Updating Ccu", "description": "Get the combined CCU for updaters over the requested time period. This call results in one number which should exclude most duplicates across\nthe given time period. This stands in contrast to the individual request endpoint.\n\nFor example, if you request the CCU over an hour you'll receive one number in which players that were around over that time period will only be\ncounted once.", "operationId": "admin_get_updating_ccu", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnionCCU" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/updating/individual": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Updating Ccu Individual", "description": "Get the individual CCU counts for updaters over the requested time period. This call results in a count per time period within the requested\nrange. These values should not be combined directly unless you've accounted for duplicates in some other way. The combined endpoint allows you to\ncombine the values within a time range without counting the same player multiple times.", "operationId": "admin_get_updating_ccu_individual", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IndividualCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/platforms": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Known Platforms", "description": "Get all of the platforms that presence has been told about by players updating their presence", "operationId": "admin_get_known_platforms", "parameters": [ { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Platforms" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/total/allplatforms/individual": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Total Ccu All Platform Individual", "operationId": "admin_get_total_ccu_all_platform_individual", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/total/allplatforms/combined": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Total Ccu All Platform Combined", "operationId": "admin_get_total_ccu_all_platform_combined", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/requesting/allplatforms/individual": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Requesting Ccu All Platform Individual", "operationId": "admin_get_requesting_ccu_all_platform_individual", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/requesting/allplatforms/combined": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Requesting Ccu All Platform Combined", "operationId": "admin_get_requesting_ccu_all_platform_combined", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/updating/allplatforms/individual": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Updating Ccu All Platform Individual", "operationId": "admin_get_updating_ccu_all_platform_individual", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/updating/allplatforms/combined": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Updating Ccu All Platform Combined", "operationId": "admin_get_updating_ccu_all_platform_combined", "parameters": [ { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/total/platform/{platform}/individual": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Total Ccu Platform Individual", "operationId": "admin_get_total_ccu_platform_individual", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/total/platform/{platform}/combined": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Total Ccu Platform Combined", "operationId": "admin_get_total_ccu_platform_combined", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/requesting/platform/{platform}/individual": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Requesting Ccu Platform Individual", "operationId": "admin_get_requesting_ccu_platform_individual", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/requesting/platform/{platform}/combined": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Requesting Ccu Platform Combined", "operationId": "admin_get_requesting_ccu_platform_combined", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/updating/platform/{platform}/individual": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Updating Ccu Platform Individual", "operationId": "admin_get_updating_ccu_platform_individual", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/presence/v1/admin/ccu/updating/platform/{platform}/combined": { "get": { "tags": [ "presence-admin" ], "summary": "Admin Get Updating Ccu Platform Combined", "operationId": "admin_get_updating_ccu_platform_combined", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Platform" }, "name": "platform", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "begin", "in": "query" }, { "required": true, "schema": { "type": "string", "format": "date-time", "title": "TZAware", "description": "A date-time with timezone data." }, "name": "end", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Use Cache", "default": true }, "name": "use_cache", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/playerid/me/stream/notification/lp": { "get": { "tags": [ "player-id-notification" ], "summary": "Long Poll For Notifications Self", "description": "This endpoint will return notifications newer than `exclude_before`. This endpoint returns notifications\nfrom older to newer, which is the opposite of the paging API. The returned `cursor` value can be used as\n`exclude_before` in subsequent polls to ensure you only receive new notifications.\n\nThis operation is a long-poll. That means we will keep the connection open until we get any notification\nor until the passed in deadline (to the best of our ability). Once one of these happens, we will return\nthe notifications found.\n\nRequired Permissions:\n\n- For any playerid (including themselves) any of: `notification:playerid:*`, `notification:playerid:read`, `notification:playerid:self:*`, `notification:playerid:self:read`", "operationId": "playerid_long_poll_for_notifications_self", "parameters": [ { "description": "Max number of entries to return at one time", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Max Page Size", "description": "Max number of entries to return at one time", "default": 10 }, "name": "max_page_size", "in": "query" }, { "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Exclude Before", "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "exclude_before", "in": "query" }, { "description": "When `exclude_before` is not found in the stream or not given, begin streaming messages from the earliest/latest message", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/OffsetReset" } ], "description": "When `exclude_before` is not found in the stream or not given, begin streaming messages from the earliest/latest message", "default": "latest" }, "name": "offset_reset_strategy", "in": "query" }, { "description": "We will try to the best of our ability to return by this deadline, even when we have no notifications. Value should be in seconds", "required": false, "schema": { "type": "integer", "maximum": 900, "minimum": 0, "title": "Deadline", "description": "We will try to the best of our ability to return by this deadline, even when we have no notifications. Value should be in seconds", "default": 30 }, "name": "deadline", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notifications" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/playerid/{player_id}/stream/notification/lp": { "get": { "tags": [ "player-id-notification" ], "summary": "Long Poll For Notifications", "description": "This endpoint will return notifications newer than `exclude_before`. This endpoint returns notifications\nfrom older to newer, which is the opposite of the paging API. The returned `cursor` value can be used as\n`exclude_before` in subsequent polls to ensure you only receive new notifications.\n\nThis operation is a long-poll. That means we will keep the connection open until we get any notification\nor until the passed in deadline (to the best of our ability). Once one of these happens, we will return\nthe notifications found.\n\nThis version can be used for any client provided its id (with proper permissions)\n\nRequired Permissions:\n\n- For any playerid (including themselves) any of: `notification:playerid:*`, `notification:playerid:read`\n\n- For the playerid themselves any of: `notification:playerid:self:*`, `notification:playerid:self:read`", "operationId": "playerid_long_poll_for_notifications", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "description": "Max number of entries to return at one time", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Max Page Size", "description": "Max number of entries to return at one time", "default": 10 }, "name": "max_page_size", "in": "query" }, { "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Exclude Before", "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "exclude_before", "in": "query" }, { "description": "When `exclude_before` is not found in the stream or not given, begin streaming messages from the earliest/latest message", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/OffsetReset" } ], "description": "When `exclude_before` is not found in the stream or not given, begin streaming messages from the earliest/latest message", "default": "latest" }, "name": "offset_reset_strategy", "in": "query" }, { "description": "We will try to the best of our ability to return by this deadline, even when we have no notifications. Value should be in seconds", "required": false, "schema": { "type": "integer", "maximum": 900, "minimum": 0, "title": "Deadline", "description": "We will try to the best of our ability to return by this deadline, even when we have no notifications. Value should be in seconds", "default": 30 }, "name": "deadline", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notifications" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/playerid/me/notification": { "get": { "tags": [ "player-id-notification" ], "summary": "Get Notifications Page Self", "description": "Get recent notifications ordered from the newest to the oldest.\n\nIt is important to stress that this endpoint returns notifications in reverse order compared to the streaming API.\nThe first notification returned from this will be the newest one we can find, and older ones will be further down\nthe page (or on later pages).\n\nThis API is useful for displaying a list of the most recent notifications to the user, only requesting further\npages when the user requests a bigger list.\n\nClient are expected to poll this endpoint regularly.\n\nRequired Permissions:\n\n- For any playerid (including themselves) any of: `notification:playerid:*`, `notification:playerid:read`, `notification:playerid:self:*`, `notification:playerid:self:read`", "operationId": "playerid_get_notifications_page_self", "parameters": [ { "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Page Size", "default": 10 }, "name": "page_size", "in": "query" }, { "description": "Return results starting at this index (inclusive). If none provided then will start at the latest notification. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Start At", "description": "Return results starting at this index (inclusive). If none provided then will start at the latest notification. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "start_at", "in": "query" }, { "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Exclude Before", "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "exclude_before", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed" }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notifications" } } } }, "304": { "description": "Not Modified" }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "player-id-notification" ], "summary": "Create Notification Self", "description": "Create new notification for client.\nRequired Permissions:\n\n- For any playerid (including themselves) any of: `notification:playerid:*`, `notification:playerid:self:*`, `notification:playerid:self:write`, `notification:playerid:write`", "operationId": "playerid_create_notification_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreates" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreateResult" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/playerid/{player_id}/notification": { "get": { "tags": [ "player-id-notification" ], "summary": "Get Notifications Page", "description": "Get recent notifications ordered from the newest to the oldest.\n\nIt is important to stress that this endpoint returns notifications in reverse order compared to the streaming API.\nThe first notification returned from this will be the newest one we can find, and older ones will be further down\nthe page (or on later pages).\n\nThis API is useful for displaying a list of the most recent notifications to the user, only requesting further\npages when the user requests a bigger list.\n\nClient are expected to poll this endpoint regularly.\n\nThis version can be used for any client provided its id (with proper permissions)\n\nRequired Permissions:\n\n- For any playerid (including themselves) any of: `notification:playerid:*`, `notification:playerid:read`\n\n- For the playerid themselves any of: `notification:playerid:self:*`, `notification:playerid:self:read`", "operationId": "playerid_get_notifications_page", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" }, { "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Page Size", "default": 10 }, "name": "page_size", "in": "query" }, { "description": "Return results starting at this index (inclusive). If none provided then will start at the latest notification. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Start At", "description": "Return results starting at this index (inclusive). If none provided then will start at the latest notification. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "start_at", "in": "query" }, { "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Exclude Before", "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "exclude_before", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed" }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notifications" } } } }, "304": { "description": "Not Modified" }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "player-id-notification" ], "summary": "Create Notification", "description": "Create new notification for client. Requires permission to create for a different client\n\nRequired Permissions:\n\n- For any playerid (including themselves) any of: `notification:playerid:*`, `notification:playerid:write`\n\n- For the playerid themselves any of: `notification:playerid:self:*`, `notification:playerid:self:write`", "operationId": "playerid_create_notification", "parameters": [ { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreates" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreateResult" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/playerid/me/notification/{notification_id}": { "get": { "tags": [ "player-id-notification" ], "summary": "Get Notification By Id Self", "description": "Retrieve a single notification by id\n\nRequired Permissions:\n\n- For any playerid (including themselves) any of: `notification:playerid:*`, `notification:playerid:read`, `notification:playerid:self:*`, `notification:playerid:self:read`", "operationId": "playerid_get_notification_by_id_self", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Notification Id" }, "name": "notification_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notification" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- resource_not_found - Notification could not be found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/playerid/{player_id}/notification/{notification_id}": { "get": { "tags": [ "player-id-notification" ], "summary": "Get Notification By Id", "description": "Retrieve a single notification by id\n\nThis version can be used for any client provided its id (with proper permissions)\n\nRequired Permissions:\n\n- For any playerid (including themselves) any of: `notification:playerid:*`, `notification:playerid:read`\n\n- For the playerid themselves any of: `notification:playerid:self:*`, `notification:playerid:self:read`", "operationId": "playerid_get_notification_by_id", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Notification Id" }, "name": "notification_id", "in": "path" }, { "required": true, "schema": { "type": "integer", "title": "Player Id" }, "name": "player_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notification" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- resource_not_found - Notification could not be found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/player/me/stream/notification/lp": { "get": { "tags": [ "player-notification" ], "summary": "Long Poll For Notifications Self", "description": "This endpoint will return notifications newer than `exclude_before`. This endpoint returns notifications\nfrom older to newer, which is the opposite of the paging API. The returned `cursor` value can be used as\n`exclude_before` in subsequent polls to ensure you only receive new notifications.\n\nThis operation is a long-poll. That means we will keep the connection open until we get any notification\nor until the passed in deadline (to the best of our ability). Once one of these happens, we will return\nthe notifications found.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `notification:player:*`, `notification:player:read`, `notification:player:self:*`, `notification:player:self:read`", "operationId": "player_long_poll_for_notifications_self", "parameters": [ { "description": "Max number of entries to return at one time", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Max Page Size", "description": "Max number of entries to return at one time", "default": 10 }, "name": "max_page_size", "in": "query" }, { "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Exclude Before", "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "exclude_before", "in": "query" }, { "description": "When `exclude_before` is not found in the stream or not given, begin streaming messages from the earliest/latest message", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/OffsetReset" } ], "description": "When `exclude_before` is not found in the stream or not given, begin streaming messages from the earliest/latest message", "default": "latest" }, "name": "offset_reset_strategy", "in": "query" }, { "description": "We will try to the best of our ability to return by this deadline, even when we have no notifications. Value should be in seconds", "required": false, "schema": { "type": "integer", "maximum": 900, "minimum": 0, "title": "Deadline", "description": "We will try to the best of our ability to return by this deadline, even when we have no notifications. Value should be in seconds", "default": 30 }, "name": "deadline", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notifications" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/player/{player_uuid}/stream/notification/lp": { "get": { "tags": [ "player-notification" ], "summary": "Long Poll For Notifications", "description": "This endpoint will return notifications newer than `exclude_before`. This endpoint returns notifications\nfrom older to newer, which is the opposite of the paging API. The returned `cursor` value can be used as\n`exclude_before` in subsequent polls to ensure you only receive new notifications.\n\nThis operation is a long-poll. That means we will keep the connection open until we get any notification\nor until the passed in deadline (to the best of our ability). Once one of these happens, we will return\nthe notifications found.\n\nThis version can be used for any client provided its id (with proper permissions)\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `notification:player:*`, `notification:player:read`\n\n- For the player themselves any of: `notification:player:self:*`, `notification:player:self:read`", "operationId": "player_long_poll_for_notifications", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "description": "Max number of entries to return at one time", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Max Page Size", "description": "Max number of entries to return at one time", "default": 10 }, "name": "max_page_size", "in": "query" }, { "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Exclude Before", "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "exclude_before", "in": "query" }, { "description": "When `exclude_before` is not found in the stream or not given, begin streaming messages from the earliest/latest message", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/OffsetReset" } ], "description": "When `exclude_before` is not found in the stream or not given, begin streaming messages from the earliest/latest message", "default": "latest" }, "name": "offset_reset_strategy", "in": "query" }, { "description": "We will try to the best of our ability to return by this deadline, even when we have no notifications. Value should be in seconds", "required": false, "schema": { "type": "integer", "maximum": 900, "minimum": 0, "title": "Deadline", "description": "We will try to the best of our ability to return by this deadline, even when we have no notifications. Value should be in seconds", "default": 30 }, "name": "deadline", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notifications" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/player/me/notification": { "get": { "tags": [ "player-notification" ], "summary": "Get Notifications Page Self", "description": "Get recent notifications ordered from the newest to the oldest.\n\nIt is important to stress that this endpoint returns notifications in reverse order compared to the streaming API.\nThe first notification returned from this will be the newest one we can find, and older ones will be further down\nthe page (or on later pages).\n\nThis API is useful for displaying a list of the most recent notifications to the user, only requesting further\npages when the user requests a bigger list.\n\nClient are expected to poll this endpoint regularly.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `notification:player:*`, `notification:player:read`, `notification:player:self:*`, `notification:player:self:read`", "operationId": "player_get_notifications_page_self", "parameters": [ { "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Page Size", "default": 10 }, "name": "page_size", "in": "query" }, { "description": "Return results starting at this index (inclusive). If none provided then will start at the latest notification. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Start At", "description": "Return results starting at this index (inclusive). If none provided then will start at the latest notification. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "start_at", "in": "query" }, { "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Exclude Before", "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "exclude_before", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed" }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notifications" } } } }, "304": { "description": "Not Modified" }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "player-notification" ], "summary": "Create Notification Self", "description": "Create new notification for client.\nRequired Permissions:\n\n- For any player (including themselves) any of: `notification:player:*`, `notification:player:self:*`, `notification:player:self:write`, `notification:player:write`", "operationId": "player_create_notification_self", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreates" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreateResult" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/player/{player_uuid}/notification": { "get": { "tags": [ "player-notification" ], "summary": "Get Notifications Page", "description": "Get recent notifications ordered from the newest to the oldest.\n\nIt is important to stress that this endpoint returns notifications in reverse order compared to the streaming API.\nThe first notification returned from this will be the newest one we can find, and older ones will be further down\nthe page (or on later pages).\n\nThis API is useful for displaying a list of the most recent notifications to the user, only requesting further\npages when the user requests a bigger list.\n\nClient are expected to poll this endpoint regularly.\n\nThis version can be used for any client provided its id (with proper permissions)\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `notification:player:*`, `notification:player:read`\n\n- For the player themselves any of: `notification:player:self:*`, `notification:player:self:read`", "operationId": "player_get_notifications_page", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Page Size", "default": 10 }, "name": "page_size", "in": "query" }, { "description": "Return results starting at this index (inclusive). If none provided then will start at the latest notification. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Start At", "description": "Return results starting at this index (inclusive). If none provided then will start at the latest notification. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "start_at", "in": "query" }, { "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Exclude Before", "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "exclude_before", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed" }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notifications" } } } }, "304": { "description": "Not Modified" }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "player-notification" ], "summary": "Create Notification", "description": "Create new notification for client. Requires permission to create for a different client\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `notification:player:*`, `notification:player:write`\n\n- For the player themselves any of: `notification:player:self:*`, `notification:player:self:write`", "operationId": "player_create_notification", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreates" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreateResult" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/player/me/notification/{notification_id}": { "get": { "tags": [ "player-notification" ], "summary": "Get Notification By Id Self", "description": "Retrieve a single notification by id\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `notification:player:*`, `notification:player:read`, `notification:player:self:*`, `notification:player:self:read`", "operationId": "player_get_notification_by_id_self", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Notification Id" }, "name": "notification_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notification" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- resource_not_found - Notification could not be found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/player/{player_uuid}/notification/{notification_id}": { "get": { "tags": [ "player-notification" ], "summary": "Get Notification By Id", "description": "Retrieve a single notification by id\n\nThis version can be used for any client provided its id (with proper permissions)\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `notification:player:*`, `notification:player:read`\n\n- For the player themselves any of: `notification:player:self:*`, `notification:player:self:read`", "operationId": "player_get_notification_by_id", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Notification Id" }, "name": "notification_id", "in": "path" }, { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notification" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- resource_not_found - Notification could not be found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/instance/{instance_id}/stream/notification/lp": { "get": { "tags": [ "instance-notification" ], "summary": "Long Poll For Notifications", "description": "This endpoint will return notifications newer than `exclude_before`. This endpoint returns notifications\nfrom older to newer, which is the opposite of the paging API. The returned `cursor` value can be used as\n`exclude_before` in subsequent polls to ensure you only receive new notifications.\n\nThis operation is a long-poll. That means we will keep the connection open until we get any notification\nor until the passed in deadline (to the best of our ability). Once one of these happens, we will return\nthe notifications found.\n\nThis version can be used for any client provided its id (with proper permissions)\n\nRequired Permissions:\n\n- For any instance (including themselves) any of: `notification:instance:*`, `notification:instance:read`\n\n- For the instance themselves any of: `notification:instance:self:*`, `notification:instance:self:read`", "operationId": "instance_long_poll_for_notifications", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Instance Id" }, "name": "instance_id", "in": "path" }, { "description": "Max number of entries to return at one time", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Max Page Size", "description": "Max number of entries to return at one time", "default": 10 }, "name": "max_page_size", "in": "query" }, { "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Exclude Before", "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "exclude_before", "in": "query" }, { "description": "When `exclude_before` is not found in the stream or not given, begin streaming messages from the earliest/latest message", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/OffsetReset" } ], "description": "When `exclude_before` is not found in the stream or not given, begin streaming messages from the earliest/latest message", "default": "latest" }, "name": "offset_reset_strategy", "in": "query" }, { "description": "We will try to the best of our ability to return by this deadline, even when we have no notifications. Value should be in seconds", "required": false, "schema": { "type": "integer", "maximum": 900, "minimum": 0, "title": "Deadline", "description": "We will try to the best of our ability to return by this deadline, even when we have no notifications. Value should be in seconds", "default": 30 }, "name": "deadline", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notifications" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/instance/{instance_id}/notification": { "get": { "tags": [ "instance-notification" ], "summary": "Get Notifications Page", "description": "Get recent notifications ordered from the newest to the oldest.\n\nIt is important to stress that this endpoint returns notifications in reverse order compared to the streaming API.\nThe first notification returned from this will be the newest one we can find, and older ones will be further down\nthe page (or on later pages).\n\nThis API is useful for displaying a list of the most recent notifications to the user, only requesting further\npages when the user requests a bigger list.\n\nClient are expected to poll this endpoint regularly.\n\nThis version can be used for any client provided its id (with proper permissions)\n\nRequired Permissions:\n\n- For any instance (including themselves) any of: `notification:instance:*`, `notification:instance:read`\n\n- For the instance themselves any of: `notification:instance:self:*`, `notification:instance:self:read`", "operationId": "instance_get_notifications_page", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Instance Id" }, "name": "instance_id", "in": "path" }, { "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Page Size", "default": 10 }, "name": "page_size", "in": "query" }, { "description": "Return results starting at this index (inclusive). If none provided then will start at the latest notification. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Start At", "description": "Return results starting at this index (inclusive). If none provided then will start at the latest notification. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "start_at", "in": "query" }, { "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque", "required": false, "schema": { "type": "string", "title": "Exclude Before", "description": "All notifications including and before this (chronologically) provided id will be ignored when returning results. You cannot depend on the format of this string, and it must be considered opaque" }, "name": "exclude_before", "in": "query" }, { "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed", "required": false, "schema": { "type": "string", "title": "If-None-Match", "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed" }, "name": "if-none-match", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notifications" } } } }, "304": { "description": "Not Modified" }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "instance-notification" ], "summary": "Create Notification", "description": "Create new notification for client. Requires permission to create for a different client\n\nRequired Permissions:\n\n- For any instance (including themselves) any of: `notification:instance:*`, `notification:instance:write`\n\n- For the instance themselves any of: `notification:instance:self:*`, `notification:instance:self:write`", "operationId": "instance_create_notification", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Instance Id" }, "name": "instance_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreates" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreateResult" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/notification/v1/instance/{instance_id}/notification/{notification_id}": { "get": { "tags": [ "instance-notification" ], "summary": "Get Notification By Id", "description": "Retrieve a single notification by id\n\nThis version can be used for any client provided its id (with proper permissions)\n\nRequired Permissions:\n\n- For any instance (including themselves) any of: `notification:instance:*`, `notification:instance:read`\n\n- For the instance themselves any of: `notification:instance:self:*`, `notification:instance:self:read`", "operationId": "instance_get_notification_by_id", "parameters": [ { "required": true, "schema": { "type": "string", "title": "Notification Id" }, "name": "notification_id", "in": "path" }, { "required": true, "schema": { "type": "string", "title": "Instance Id" }, "name": "instance_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Notification" } } } }, "400": { "description": "\nError Codes:\n- bad_id - Passed client id is not a valid id\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_format - Invalid Authorization - {}\n- auth_token_expired - Token is expired\n- insufficient_permissions - Insufficient Permissions\n- auth_token_unknown - Failed to parse token\n- auth_not_jwt - Invalid Authorization\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- resource_not_found - Notification could not be found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "409": { "description": "\nError Codes:\n- too_many_listening_to_single_client - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "503": { "description": "\nError Codes:\n- connection_limit_reached - An enumeration.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v1/rank:calculate": { "post": { "tags": [ "rank" ], "summary": "Update Rankings V1", "description": "Calculate and update on players and persist their new ranks\nRequires at least two teams, and the player's ranks before the last match was played\n\nRequired Permissions: `rank:update:any`\n**DEPRECATED** Use the v2 endpoint instead", "operationId": "update_rankings_v1", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RankUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankUpdateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v1/player/me/rank/{rank_id}": { "get": { "tags": [ "rank" ], "summary": "Get Player Uuid Rank Self", "description": "Get current player's rank for a specific rank id\n \nRequired Permissions: `rank:read:self`\n**DEPRECATED** Use the V2 endpoint", "operationId": "get_player_uuid_rank_self", "parameters": [ { "required": true, "schema": { "type": "integer", "minimum": 1, "title": "Rank Id" }, "name": "rank_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankRequestResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "rank" ], "summary": "Update Player Uuid Rank Self", "description": "Update current player's ranks to those that are provided. Ranks are taken as is \n\nRequired Permissions: `rank:update:self`\n**DEPRECATED** Use the V2 endpoint", "operationId": "update_player_uuid_rank_self", "parameters": [ { "required": true, "schema": { "type": "integer", "minimum": 1, "title": "Rank Id" }, "name": "rank_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankUpdateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v1/player/{player_uuid}/rank/{rank_id}": { "get": { "tags": [ "rank" ], "summary": "Get Player Uuid Rank", "description": "Get a specific player's rank for a specific rank id\n \nRequired Permissions: `rank:read:self` for players acting on themselves, \notherwise `rank:read:any`\n**DEPRECATED** Use the V2 endpoint", "operationId": "get_player_uuid_rank", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "integer", "minimum": 1, "title": "Rank Id" }, "name": "rank_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankRequestResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "rank" ], "summary": "Update Player Uuid Rank", "description": "Update a specific player's ranks to those that are provided. Ranks are taken as is\n\nRequired Permissions: `rank:update:self` for players acting on themselves, \notherwise `rank:update:any`\n**DEPRECATED** Use V2 endpoints", "operationId": "update_player_uuid_rank", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "integer", "minimum": 1, "title": "Rank Id" }, "name": "rank_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankUpdateResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v1/player/me/rank": { "get": { "tags": [ "rank" ], "summary": "Get All Player Uuid Ranks Self", "description": "Get all of current player's ranks\n\nRequired Permissions: `rank:read:self`\n**DEPRECATED** Use the V2 endpoints", "operationId": "get_all_player_uuid_ranks_self", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankRequestResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v1/player/{player_uuid}/rank": { "get": { "tags": [ "rank" ], "summary": "Get All Player Uuid Ranks", "description": "Get all of a specific player's ranks\n\nRequired Permissions: `rank:read:self` for players acting on themselves,\notherwise `rank:read:any`\n**DEPRECATED** Use the V2 endpoint", "operationId": "get_all_player_uuid_ranks", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankRequestResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v2/rank:calculate": { "post": { "tags": [ "rank" ], "summary": "Calculate V2 Ranks", "description": "Calculate a rank update on players and persist their new ranks\nRequires at least two teams, and the players' ranks before the last match was played\n\nRequired Permissions: `rank:update:any`", "operationId": "calculate_v2_ranks", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RankUpdateRequestV2" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankUpdateResponseV2" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v2/player/me/rank/{rank_id}": { "get": { "tags": [ "rank" ], "summary": "Get Player Uuid Rank Self V2", "description": "Get current player's rank for a specific rank id\n\nRequired Permissions: `rank:read:self`", "operationId": "get_player_uuid_rank_self_v2", "parameters": [ { "required": true, "schema": { "type": "string", "minLength": 1, "title": "Rank Id" }, "name": "rank_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankRequestResponseV2" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "rank" ], "summary": "Update Player Uuid Rank Self V2", "description": "Update current player's ranks to those that are provided. Ranks are taken as is \n\nRequired Permissions: `rank:update:self`", "operationId": "update_player_uuid_rank_self_v2", "parameters": [ { "required": true, "schema": { "type": "string", "minLength": 1, "title": "Rank Id" }, "name": "rank_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankUpdateResponseV2" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v2/player/{player_uuid}/rank/{rank_id}": { "get": { "tags": [ "rank" ], "summary": "Get Player Uuid Rank V2", "description": "Get a specific player's rank for a specific rank id\n\nRequired Permissions: `rank:read:self` for players acting on themselves, \notherwise `rank:read:any`", "operationId": "get_player_uuid_rank_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "minLength": 1, "title": "Rank Id" }, "name": "rank_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankRequestResponseV2" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] }, "post": { "tags": [ "rank" ], "summary": "Update Player Uuid Rank V2", "description": "Update a specific player's ranks to those that are provided. Ranks are taken as is\n\nRequired Permissions: `rank:update:self` for players acting on themselves, \notherwise `rank:update:any`", "operationId": "update_player_uuid_rank_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "required": true, "schema": { "type": "string", "minLength": 1, "title": "Rank Id" }, "name": "rank_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankUpdateResponseV2" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v2/player/me/rank": { "get": { "tags": [ "rank" ], "summary": "Get All Player Uuid Ranks Self V2", "description": "Get all of current player's ranks\n\nRequired Permissions: `rank:read:self`", "operationId": "get_all_player_uuid_ranks_self_v2", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankRequestResponseV2" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v2/player/{player_uuid}/rank": { "get": { "tags": [ "rank" ], "summary": "Get All Player Uuid Ranks V2", "description": "Get all of a specific player's ranks\n\nRequired Permissions: `rank:read:self` for players acting on themselves,\notherwise `rank:read:any`", "operationId": "get_all_player_uuid_ranks_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerRankRequestResponseV2" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v3/rank": { "get": { "tags": [ "rank" ], "summary": "Get All Rank Config V3", "description": "Get all rank configuration\n\nRequired Permissions: `rank:read:config`", "operationId": "get_all_rank_config_v3", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RankConfigRequestResponseV3" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v3/rank/{rank_id}": { "get": { "tags": [ "rank" ], "summary": "Get Rank Config V3", "description": "Get rank configuration for specific rank id\n\nRequired Permissions: `rank:read:config`", "operationId": "get_rank_config_v3", "parameters": [ { "required": true, "schema": { "type": "string", "minLength": 1, "title": "Rank Id" }, "name": "rank_id", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RankConfigRequestResponseV3" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/rank/v3/rank:calculate": { "post": { "tags": [ "rank" ], "summary": "Calculate V3 Ranks", "description": "Calculate a rank update on players and return the results without persisting them\nRequires at least two teams, the players' ranks before the last match was played, and parameters on how to calculate the rank changes\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `rank:*`, `rank:calculate`", "operationId": "calculate_v3_ranks", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CalculateRankRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CalculateRankResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/config/v1/app_settings/server": { "get": { "tags": [ "config" ], "summary": "Get App Settings Server", "description": "***DEPRECATED*** Please use /v2/kv instead. \n\nReturns app settings that are configured to be available to the server. \n\nRequired Permissions: : `config:app_settings:server:read`", "operationId": "get_app_settings_server", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "title": "If-None-Match" }, "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "If you provide the ETag that matches the current ETag for this content, will return a 412 response - indicating that the content has changed.", "title": "If-Match" }, "description": "If you provide the ETag that matches the current ETag for this content, will return a 412 response - indicating that the content has changed." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/KV_V1" }, "title": "Response Get App Settings Server" } } }, "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "412": { "description": "Content has changed since the ETag was provided" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/config/v1/app_settings/client": { "get": { "tags": [ "config" ], "summary": "Get App Settings Client", "description": "***DEPRECATED*** Please use /v2/kv instead. \n\nReturns app settings that are configured to be available to the client.", "operationId": "get_app_settings_client", "deprecated": true, "parameters": [ { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "title": "If-None-Match" }, "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "If you provide the ETag that matches the current ETag for this content, will return a 412 response - indicating that the content has changed.", "title": "If-Match" }, "description": "If you provide the ETag that matches the current ETag for this content, will return a 412 response - indicating that the content has changed." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/KV_V1" }, "title": "Response Get App Settings Client" } } }, "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "412": { "description": "Content has changed since the ETag was provided" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/config/v1/kv": { "get": { "tags": [ "config" ], "summary": "Get App Settings All", "description": "***DEPRECATED*** Please use /v2/kv instead. \n\nIf authenticated and with correct permissions, will return all KVs. Otherwise it will only return non secret KVs.", "operationId": "get_app_settings_all", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "keys_to_include", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "If specified, will only return the KVs with the specified keys", "title": "Keys To Include" }, "description": "If specified, will only return the KVs with the specified keys" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "title": "If-None-Match" }, "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "If you provide the ETag that matches the current ETag for this content, will return a 412 response - indicating that the content has changed.", "title": "If-Match" }, "description": "If you provide the ETag that matches the current ETag for this content, will return a 412 response - indicating that the content has changed." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KVsResponseV1" } } }, "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "412": { "description": "Content has changed since the ETag was provided" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/config/v2/kv": { "get": { "tags": [ "config" ], "summary": "Get Kvs V2", "description": "Get All KVs and Secret KVs. Regular KVs are always returned.\n\nRequired permissions for secret KVs: : `config:secret_kvs:read`", "operationId": "get_kvs_v2", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "keys_to_include", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "If specified, will only return the KVs with the specified keys", "title": "Keys To Include" }, "description": "If specified, will only return the KVs with the specified keys" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed.", "title": "If-None-Match" }, "description": "If you provide the ETag that matches the current ETag for this content, will return a 304 response - indicating that the content has not changed." }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "If you provide the ETag that matches the current ETag for this content, will return a 412 response - indicating that the content has changed.", "title": "If-Match" }, "description": "If you provide the ETag that matches the current ETag for this content, will return a 412 response - indicating that the content has changed." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KVsResponseV2" } } }, "headers": { "ETag": { "description": "Used to identify this version of the content. Provide with a get request to avoid downloading the same data multiple times.", "schema": { "type": "string" } } } }, "304": { "description": "Content still has the same etag and has not changed" }, "412": { "description": "Content has changed since the ETag was provided" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/config/v1/time/utc": { "get": { "tags": [ "time" ], "summary": "Get Utc Time", "description": "Returns the current UTC time for use by the game client. Allows a game client with a incorrect local time to compare against the API's time and create a offset to act upon.", "operationId": "get_utc_time", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "string", "format": "date-time", "title": "Response Get Utc Time" } } } } } } }, "/config/v1/environment": { "get": { "tags": [ "environment" ], "summary": "Get Environment Id", "description": "Returns the Environment configuration.", "operationId": "get_environment_id", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnvironmentConfig" } } } } } } }, "/custom/v1/custom/{endpoint_id}": { "post": { "tags": [ "custom" ], "summary": "Custom Endpoint Send", "description": "Hit a predetermined URL specified by the passed in endpoint_id, the response from that URL is returned here.", "operationId": "custom_endpoint_send", "parameters": [ { "description": "The endpoint id", "required": true, "schema": { "type": "string", "title": "Endpoint Id", "description": "The endpoint id" }, "name": "endpoint_id", "in": "path" }, { "required": false, "schema": { "type": "string", "title": "Content-Type", "default": "application/json" }, "name": "content-type", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "title": "Body", "description": "The body of the request" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/events/v1/events": { "post": { "tags": [ "Events" ], "summary": "Receive Events V1", "description": "Post game events, return number of events being posted to Event Hub", "operationId": "receive_events_v1", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventList" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PostGameEventsResponse" } } } }, "207": { "description": "\nError Codes:\n- `events_multi_results` - Some of the events from the request failed to process, and uploaded to deadletter blob storage\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "400": { "description": "\nError Codes:\n- `event_denied` - Events of that name are currently denied\n- `event_duplicated` - Event has the same event_uuid as an event already received\n- `event_lists_invalid` - The input eventLists is invalid, failed pydantic validation\n- `event_params_invalid` - The event_params failed validation against the jsonschema defined for the type/version. See response description for more details. \n- `event_unsupported` - Event name is not known\n- `events_all_failed` - All of events from the request failed to process, and uploaded to deadletter blob storage\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `event_schema_invalid` - event_params jsonschema is empty, failed to load from developer-api\n- `event_schema_not_found` - The jsonschema is invalid and could not be used to validate the event_params value. See response description for more details.\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/events/v1/event-params-schema": { "get": { "tags": [ "Events" ], "summary": "Get All Event Schema", "description": "get all rh standard event and custom event params schema", "operationId": "get_all_event_schema", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventParamsSchemaResponse" } } } } } } }, "/match/v1/match": { "get": { "tags": [ "match" ], "summary": "Get Matches", "description": "Get pages of matches", "operationId": "get_matches", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer", "maximum": 100, "minimum": 1 }, { "type": "null" } ], "description": "The maximum number of elements to be returned per call", "default": 50, "title": "Page Size" }, "description": "The maximum number of elements to be returned per call" }, { "name": "instance_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instance Id" } }, { "name": "allocation_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id" } }, { "name": "session_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Id" } }, { "name": "host_player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Host Player Uuid" } }, { "name": "region_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id" } }, { "name": "player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Player Uuid" } }, { "name": "include_segments", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Include Segments" } }, { "name": "include_players", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Include Players" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PagedMatchResponse" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "match" ], "summary": "Create Match", "description": "Create match by match_id", "operationId": "create_match", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchWithPlayers" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/match/{match_id}": { "get": { "tags": [ "match" ], "summary": "Get Match", "description": "Get match by match_id", "operationId": "get_match", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchWithPlayers" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "match" ], "summary": "Update Match", "description": "Update match by match_id", "operationId": "update_match", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchWithPlayers" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "match" ], "summary": "Patch Match", "description": "Update match by match_id only with provided fields", "operationId": "patch_match", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchWithPlayers" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "match" ], "summary": "Delete Match", "description": "Delete match by match_id", "operationId": "delete_match", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } } ], "responses": { "200": { "description": "Successful Response" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/player/me/match": { "get": { "tags": [ "match" ], "summary": "Get Player Matches Self", "description": "Get all matches for self", "operationId": "get_player_matches_self", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "description": "The maximum number of elements to be returned per call", "default": 50, "title": "Page Size" }, "description": "The maximum number of elements to be returned per call" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PagedPlayerMatchResponse" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/player/{player_uuid}/match": { "get": { "tags": [ "match" ], "summary": "Get Players Matches", "description": "Get All matches for a provided player_uuid", "operationId": "get_players_matches", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "description": "The maximum number of elements to be returned per call", "default": 50, "title": "Page Size" }, "description": "The maximum number of elements to be returned per call" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PagedPlayerMatchResponse" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/player/{player_uuid}/match/{match_id}": { "get": { "tags": [ "match" ], "summary": "Get Match Player", "description": "Get a player match record for the provided player_uuid and match_id", "operationId": "get_match_player", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchPlayerWithMatch" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "match" ], "summary": "Create Match Player", "description": "Create player match record for the provided player_uuid and match_id", "operationId": "create_match_player", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchPlayerRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchPlayerWithMatch" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "match" ], "summary": "Update Match Player", "description": "Update player match record for the provided player_uuid and match_id", "operationId": "update_match_player", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchPlayerRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchPlayerWithMatch" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "match" ], "summary": "Patch Match Player", "description": "Update player match record for the provided player_uuid and match_id only with provided fields", "operationId": "patch_match_player", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchPlayerRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchPlayerWithMatch" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "match" ], "summary": "Delete Match Player", "description": "Delete player by player_uuid and match_id", "operationId": "delete_match_player", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } } ], "responses": { "200": { "description": "Successful Response" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/sanctions/v2/player/{player_uuid}/reports": { "post": { "tags": [ "reports" ], "summary": "Create Report For Target Player Uuid", "description": "Create a new report for a target player\nRequired Permissions:\nIf `source_player_uuid` is not provided, or is the same as the active player: any of: `sanction:report:create:self`, `sanction:report:create:any`, `sanction:*`\nOtherwise: any of: `sanction:report:create:any`, `sanction:*`", "operationId": "create_report_for_target_player_uuid", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerReportCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerReport" } } } }, "400": { "description": "\nError Codes:\n- source_player_required - Source Player must be provided in request or with a user token\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "403": { "description": "\nError Codes:\n- insufficient_permissions - Insufficient Permissions\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_token_format - Invalid Authorization - {}\n- auth_not_jwt - Invalid Authorization\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_expired - Token is expired\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_unknown - Failed to parse token\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- player_not_found - Player {id} not found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "reports" ], "summary": "Get Reports For Target Player Uuid", "description": "Get reports for a target player\nRequired Permissions:\n\n- For any player (including themselves) any of: `sanction:report:read:target-any`, `sanction:*`\n\n- For the player themselves : `sanction:report:read:target-self`\n\nSource players will be empty without the Required Permissions:\n\n- For any player (including themselves) any of: `sanction:report:read:source-any`, `sanction:*`\n\n- For the player themselves : `sanction:report:read:source-self`", "operationId": "get_reports_for_target_player_uuid", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "minLength": 1, "maxLength": 1024 }, { "type": "null" } ], "description": "Pass this on subsequent calls to iterate forwards. Null/missing value indicates the first page", "title": "Cursor" }, "description": "Pass this on subsequent calls to iterate forwards. Null/missing value indicates the first page" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Page Size" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerReportList" } } } }, "403": { "description": "\nError Codes:\n- insufficient_permissions - Insufficient Permissions\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_token_format - Invalid Authorization - {}\n- auth_not_jwt - Invalid Authorization\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_expired - Token is expired\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_unknown - Failed to parse token\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- player_not_found - Player {id} not found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/sanctions/v2/player/me/reports": { "get": { "tags": [ "reports" ], "summary": "Get Reports For Target Player Uuid Self", "description": "Get reports for a target player\nRequired Permissions:\n\n- For any player (including themselves) any of: `sanction:report:read:target-any`, `sanction:*`\n\n- For the player themselves : `sanction:report:read:target-self`\n\nSource players will be empty without the Required Permissions:\n\n- For any player (including themselves) any of: `sanction:report:read:source-any`, `sanction:*`\n\n- For the player themselves : `sanction:report:read:source-self`", "operationId": "get_reports_for_target_player_uuid_self", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "minLength": 1, "maxLength": 1024 }, { "type": "null" } ], "description": "Pass this on subsequent calls to iterate forwards. Null/missing value indicates the first page", "title": "Cursor" }, "description": "Pass this on subsequent calls to iterate forwards. Null/missing value indicates the first page" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Page Size" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerReportList" } } } }, "403": { "description": "\nError Codes:\n- insufficient_permissions - Insufficient Permissions\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_token_format - Invalid Authorization - {}\n- auth_not_jwt - Invalid Authorization\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_expired - Token is expired\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_unknown - Failed to parse token\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- player_not_found - Player {id} not found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/sanctions/v2/player/me/sent-reports": { "get": { "tags": [ "reports" ], "summary": "Get Reports From Source Player Uuid Self", "description": "Get reports from a source player\nRequired Permissions:\n\n- For any player (including themselves) any of: `sanction:report:read:source-any`, `sanction:*`\n\n- For the player themselves : `sanction:report:read:source-self`", "operationId": "get_reports_from_source_player_uuid_self", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "minLength": 1, "maxLength": 1024 }, { "type": "null" } ], "description": "Pass this on subsequent calls to iterate forwards. Null/missing value indicates the first page", "title": "Cursor" }, "description": "Pass this on subsequent calls to iterate forwards. Null/missing value indicates the first page" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Page Size" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerReportList" } } } }, "403": { "description": "\nError Codes:\n- insufficient_permissions - Insufficient Permissions\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_token_format - Invalid Authorization - {}\n- auth_not_jwt - Invalid Authorization\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_expired - Token is expired\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_unknown - Failed to parse token\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- player_not_found - Player {id} not found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/sanctions/v2/player/{player_uuid}/sent-reports": { "get": { "tags": [ "reports" ], "summary": "Get Reports From Source Player Uuid", "description": "Get reports from a source player\nRequired Permissions:\n\n- For any player (including themselves) any of: `sanction:report:read:source-any`, `sanction:*`\n\n- For the player themselves : `sanction:report:read:source-self`", "operationId": "get_reports_from_source_player_uuid", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "minLength": 1, "maxLength": 1024 }, { "type": "null" } ], "description": "Pass this on subsequent calls to iterate forwards. Null/missing value indicates the first page", "title": "Cursor" }, "description": "Pass this on subsequent calls to iterate forwards. Null/missing value indicates the first page" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Page Size" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerReportList" } } } }, "403": { "description": "\nError Codes:\n- insufficient_permissions - Insufficient Permissions\n- auth_malformed_access - Invalid Authorization - malformed access token\n- auth_invalid_key_id - Invalid Authorization - Invalid Key ID in Access Token\n- auth_token_format - Invalid Authorization - {}\n- auth_not_jwt - Invalid Authorization\n- auth_invalid_version - Invalid Authorization - version\n- auth_token_expired - Token is expired\n- auth_token_sig_invalid - Token Signature is invalid\n- auth_token_unknown - Failed to parse token\n- auth_token_invalid_claim - Token contained invalid claim value: {}\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- player_not_found - Player {id} not found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/file/v1/{file_type}/{entity_type}": { "get": { "tags": [ "file" ], "summary": "Get Entity Directory Information", "description": "Get information about a entity types storage container. Very resource intensive, use sparingly.", "operationId": "get_entity_directory_information", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "file_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/FileType" } }, { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/EntityType" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StorageInformation" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "file" ], "summary": "Delete Entity Directory", "operationId": "delete_entity_directory", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "file_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/FileType" } }, { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/EntityType" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/file/v1/{file_type}/{entity_type}/{entity_id}/{file_name}": { "put": { "tags": [ "file" ], "summary": "Create Entity Directory File", "description": "Upload a file to entity storage for provided entity_id", "operationId": "create_entity_directory_file", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "file_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/FileType" } }, { "name": "file_name", "in": "path", "required": true, "schema": { "type": "string", "title": "File Name" } }, { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/EntityType" } }, { "name": "entity_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Id" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_create_entity_directory_file" } } } }, "responses": { "204": { "description": "Successful Response" }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "file" ], "summary": "Download Entity Directory File", "operationId": "download_entity_directory_file", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/EntityType" } }, { "name": "entity_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Id" } }, { "name": "file_name", "in": "path", "required": true, "schema": { "type": "string", "title": "File Name" } }, { "name": "file_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/FileType" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/octet-stream": { "schema": { "type": "string" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "404": { "description": "\nError Codes:\n- `file_not_found` - File not found.\n", "content": { "application/octet-stream": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "file" ], "summary": "Delete Entity Directory File", "operationId": "delete_entity_directory_file", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/EntityType" } }, { "name": "entity_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Id" } }, { "name": "file_name", "in": "path", "required": true, "schema": { "type": "string", "title": "File Name" } }, { "name": "file_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/FileType" } } ], "responses": { "204": { "description": "Successful Response" }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/file/v1/{file_type}/{entity_type}/{entity_id}": { "get": { "tags": [ "file" ], "summary": "List Entity Directory Files", "operationId": "list_entity_directory_files", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/EntityType" } }, { "name": "entity_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Id" } }, { "name": "file_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/FileType" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileListResponse" } } } }, "403": { "description": "\nError Codes:\n- `auth_invalid_key_id` - Invalid Authorization - Invalid Key ID in Access Token\n- `auth_invalid_version` - Invalid Authorization - version\n- `auth_malformed_access` - Invalid Authorization - malformed access token\n- `auth_not_jwt` - Invalid Authorization\n- `auth_token_expired` - Token is expired\n- `auth_token_format` - Invalid Authorization - {}\n- `auth_token_invalid_claim` - Token contained invalid claim value: {}\n- `auth_token_sig_invalid` - Token Signature is invalid\n- `auth_token_unknown` - Failed to parse token\n- `insufficient_permissions` - Insufficient Permissions\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } } }, "components": { "securitySchemes": { "HTTPBearerHeadersOrCookie": { "type": "http", "scheme": "bearer" }, "HTTPBasic": { "type": "http", "scheme": "basic" } }, "schemas": { "AdOpportunities": { "properties": { "opportunities": { "items": { "$ref": "#/components/schemas/AdOpportunity" }, "type": "array", "title": "Opportunities" } }, "type": "object", "required": [ "opportunities" ], "title": "AdOpportunities" }, "AdOpportunity": { "properties": { "ad_url": { "type": "string", "title": "Ad Url", "description": "The URL to the ad" }, "seconds": { "type": "integer", "minimum": 0, "title": "Seconds", "description": "The number of seconds the ad is" }, "opportunity_id": { "type": "string", "minLength": 1, "title": "Opportunity Id", "description": "The ID of the ad opportunity" } }, "type": "object", "required": [ "ad_url", "seconds", "opportunity_id" ], "title": "AdOpportunity" }, "Body_begin_new_session": { "properties": { "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "title": "Country Code", "description": "[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code for the user" }, "device_id": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Device Id", "description": "Unique Identifier for the device a session is started on. E.g should be the same for multiple users on the same device." } }, "type": "object", "required": [ "country_code" ], "title": "Body_begin_new_session" }, "Body_find_opportunities": { "properties": { "screen_pixel_width": { "type": "integer", "title": "Screen Pixel Width", "description": "Width of the screen in pixels" }, "screen_pixel_height": { "type": "integer", "title": "Screen Pixel Height", "description": "Height of the screen in pixels" }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "title": "Country Code", "description": "[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code for the user" }, "language_code": { "type": "string", "maxLength": 3, "minLength": 2, "title": "Language Code", "description": "[ISO 639-2](https://www.loc.gov/standards/iso639-2/php/code_list.php) language code" }, "device_id": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Device Id", "description": "Unique Identifier for the device a session is started on. E.g should be the same for multiple users on the same device." } }, "type": "object", "required": [ "country_code", "language_code" ], "title": "Body_find_opportunities" }, "Body_update_opportunity_by_id": { "properties": { "state": { "allOf": [ { "$ref": "#/components/schemas/OpportunityState" } ], "description": "State of the opportunity" }, "abort_reason": { "allOf": [ { "$ref": "#/components/schemas/OpportunityAbortReason" } ], "description": "Reason for aborting the opportunity" }, "abort_seconds": { "type": "integer", "minimum": 0, "title": "Abort Seconds", "description": "Number of seconds into the video when the abort happened" } }, "type": "object", "required": [ "state" ], "title": "Body_update_opportunity_by_id" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "HzApiErrorModel": { "properties": { "auth_success": { "type": "boolean", "title": "Auth Success", "default": true }, "error_code": { "type": "string", "title": "Error Code" }, "desc": { "type": "string", "title": "Desc" } }, "type": "object", "required": [ "error_code", "desc" ], "title": "HzApiErrorModel" }, "OpportunityAbortReason": { "type": "string", "enum": [ "cancel", "other" ], "title": "OpportunityAbortReason", "description": "An enumeration.", "x-enum-varnames": [ "CANCEL", "OTHER" ], "x-enum-descriptions": [ "Ad was closed by the user", "Ad was closed from a misc cause" ] }, "OpportunityState": { "type": "string", "enum": [ "start", "complete", "abort" ], "title": "OpportunityState", "description": "An enumeration.", "x-enum-varnames": [ "START", "COMPLETE", "ABORT" ], "x-enum-descriptions": [ "User started watching the ad", "User finished watching the ad", "User stopped watching the ad partway through" ] }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" }, "BlockedList": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player's UUID" }, "blocked": { "items": { "$ref": "#/components/schemas/BlockedPlayer" }, "type": "array", "title": "Player's Block list" }, "page": { "$ref": "#/components/schemas/PageMeta" } }, "type": "object", "required": [ "player_uuid", "blocked", "page" ], "title": "BlockedList", "description": "The list of players that is blocked." }, "BlockedListV1": { "properties": { "player_id": { "type": "integer", "title": "Player's ID" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player's UUID" }, "blocked": { "items": { "$ref": "#/components/schemas/BlockedPlayerV1" }, "type": "array", "title": "Player's Block list" }, "page": { "$ref": "#/components/schemas/PageMeta" } }, "type": "object", "required": [ "player_id", "player_uuid", "blocked", "page" ], "title": "BlockedListV1", "description": "The list of players that is blocked. V1 includes player_id and player_uuid." }, "BlockedPlayer": { "properties": { "blocked_player_uuid": { "type": "string", "format": "uuid", "title": "Player UUID of Blocked Player" }, "last_modified_on": { "type": "string", "format": "date-time", "title": "The time when the friends relationship was last modified" } }, "type": "object", "required": [ "blocked_player_uuid", "last_modified_on" ], "title": "BlockedPlayer", "description": "The player that is being blocked." }, "BlockedPlayerV1": { "properties": { "blocked_player_id": { "type": "integer", "title": "Blocked Player's ID", "default": 0 }, "blocked_player_uuid": { "type": "string", "format": "uuid", "title": "Friend's Player ID" }, "last_modified_on": { "type": "string", "format": "date-time", "title": "The time when the friends relationship was last modified" } }, "type": "object", "required": [ "blocked_player_uuid", "last_modified_on" ], "title": "BlockedPlayerV1", "description": "The player that is being blocked. V1 includes player_id and player_uuid." }, "FriendRelationship": { "properties": { "friends_player_uuid": { "type": "string", "format": "uuid", "title": "Player UUID of Friend" }, "status": { "allOf": [ { "$ref": "#/components/schemas/FriendshipStatus" } ], "title": "The status of the friendship" }, "notes": { "type": "string", "title": "Player's notes about the other player" }, "last_modified_on": { "type": "string", "format": "date-time", "title": "The time when the friends relationship was last modified" } }, "type": "object", "required": [ "friends_player_uuid", "status", "last_modified_on" ], "title": "FriendRelationship", "description": "Represents the relationship with a potential friend." }, "FriendRelationshipV1": { "properties": { "friends_player_uuid": { "type": "string", "format": "uuid", "title": "Player UUID of Friend" }, "friends_player_id": { "type": "integer", "title": "Player ID of Friend", "default": 0 }, "status": { "allOf": [ { "$ref": "#/components/schemas/FriendshipStatus" } ], "title": "The status of the friendship" }, "notes": { "type": "string", "title": "Player's notes about the other player" }, "last_modified_on": { "type": "string", "format": "date-time", "title": "The time when the friends relationship was last modified" } }, "type": "object", "required": [ "friends_player_uuid", "status", "last_modified_on" ], "title": "FriendRelationshipV1", "description": "Represents the relationship with a potential friend. V1 includes player_id and player_uuid." }, "Friends": { "properties": { "friends": { "items": { "type": "string", "format": "uuid" }, "type": "array", "maxItems": 50, "minItems": 1, "title": "List of Player UUIDs to operate on" } }, "type": "object", "required": [ "friends" ], "title": "Friends", "description": "List of player_uuids to operate on." }, "FriendsApiConfig": { "properties": { "friend_limit": { "type": "integer", "title": "Friend Limit", "description": "Maximum number of friends a user can have", "default": 10000 }, "block_limit": { "type": "integer", "title": "Block Limit", "description": "Maximum number of blocked users a user can have", "default": 10000 } }, "type": "object", "title": "FriendsApiConfig" }, "FriendsList": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player's UUID" }, "friends": { "items": { "$ref": "#/components/schemas/FriendRelationship" }, "type": "array", "title": "Players Friend list" }, "page": { "$ref": "#/components/schemas/PageMeta" } }, "type": "object", "required": [ "player_uuid", "friends", "page" ], "title": "FriendsList", "description": "List of the player's friends. Includes sent friend requests and received friends requests." }, "FriendsListV1": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player's UUID" }, "player_id": { "type": "integer", "title": "Player's ID" }, "friends": { "items": { "$ref": "#/components/schemas/FriendRelationshipV1" }, "type": "array", "title": "Players Friend list" }, "page": { "$ref": "#/components/schemas/PageMeta" } }, "type": "object", "required": [ "player_uuid", "player_id", "friends", "page" ], "title": "FriendsListV1", "description": "List of the player's friends. Includes sent friend requests and received friends requests." }, "FriendsV1": { "properties": { "friends": { "items": { "type": "integer" }, "type": "array", "maxItems": 50, "minItems": 1, "title": "List of Player IDs to operate on" } }, "type": "object", "required": [ "friends" ], "title": "FriendsV1", "description": "List of player_ids to operate on." }, "FriendshipStatus": { "type": "string", "enum": [ "NONE", "FRIENDS", "FRIEND_REQUEST_SENT", "FRIEND_REQUEST_PENDING", "FRIEND_REQUEST_DECLINED_BY_OTHER" ], "title": "FriendshipStatus", "description": "An enumeration." }, "Notes": { "properties": { "notes": { "type": "string", "maxLength": 4000, "minLength": 1, "title": "Notes to set for the Player's friend. If you don't want to modify notes, no not include a body when adding a friend." } }, "type": "object", "title": "Notes", "description": "Notes to set for the Player's friend. If you don't want to modify notes, no not include in body when adding a friend." }, "PageMeta": { "properties": { "page": { "type": "integer", "title": "Requested page" }, "limit": { "type": "integer", "title": "Page size" }, "total": { "type": "integer", "title": "Total collection size" } }, "type": "object", "required": [ "page", "limit", "total" ], "title": "PageMeta" }, "SetSinglePlayerSettingRequest": { "properties": { "v": { "type": "integer", "title": "V", "description": "Setting Type Version to update setting for. Must be a valid version for the setting type" }, "value": { "title": "Value", "description": "New value for the setting. Must conform to the jsonschema defined for the setting type+version" } }, "type": "object", "required": [ "v", "value" ], "title": "SetSinglePlayerSettingRequest", "description": "Updatable contents of a setting for a player" }, "SettingData": { "properties": { "v": { "type": "integer", "title": "V", "description": "Setting Version" }, "value": { "title": "Value", "description": "Setting Value document" } }, "type": "object", "required": [ "v" ], "title": "SettingData", "description": "Setting version/value data from a specific setting type/key for a player" }, "SettingType": { "properties": { "versions": { "additionalProperties": { "$ref": "#/components/schemas/SettingTypeVersion" }, "type": "object", "title": "Versions", "description": "Map of setting type version ids to the version" } }, "type": "object", "required": [ "versions" ], "title": "SettingType" }, "SettingTypeVersion": { "properties": { "allow_update": { "type": "boolean", "title": "Allow Update", "description": "Are players allowed to set/update keys to this version of the setting type? Does not affect getting or deleting existing settings.", "default": true }, "key_regex": { "type": "string", "title": "Key Regex", "description": "Regex that is used to verify keys at assignment time", "default": "^.+$" }, "value_jsonschema": { "type": "object", "title": "Value Jsonschema", "description": "[jsonschema](https://json-schema.org/understanding-json-schema/index.html) that is used to verify values at assignment time" }, "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom data that was provided when the setting type was created", "default": {} } }, "type": "object", "required": [ "value_jsonschema" ], "title": "SettingTypeVersion" }, "AgreementMessage": { "properties": { "auth_success": { "type": "boolean", "title": "Auth Success", "default": true }, "error_code": { "type": "string", "title": "Error Code" }, "desc": { "type": "string", "title": "Desc" }, "needs_eula": { "type": "boolean", "title": "Needs Eula", "description": "Whether the user needs to accept the End User License Agreement", "default": false }, "needs_tos": { "type": "boolean", "title": "Needs Tos", "description": "Whether the user needs to accept the Terms of Service", "default": false }, "needs_privacy_policy": { "type": "boolean", "title": "Needs Privacy Policy", "description": "Whether the user needs to accept the Privacy Policy", "default": false } }, "type": "object", "required": [ "error_code", "desc" ], "title": "AgreementMessage", "description": "Error message for when a user has not agreed to the EULA, TOS, or Privacy Policy" }, "CreatePlatformUserRequest": { "properties": { "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform to create with" }, "platform_user_id": { "type": "string", "maxLength": 2048, "minLength": 1, "title": "Platform User Id", "description": "Platform user ID to create with" }, "display_name": { "type": "string", "maxLength": 256, "title": "Display Name", "description": "Display name used when creating a new player" } }, "type": "object", "required": [ "platform", "platform_user_id" ], "title": "CreatePlatformUserRequest", "description": "Request parameters to create a user exists" }, "GrantType": { "type": "string", "enum": [ "anon", "google", "apple", "refresh", "epic", "xboxlive", "ps4_v1", "ps4_v3", "ps5_v3", "nintendo", "nintendo_switch", "steam", "basic", "rallyhere", "client_credentials" ], "title": "GrantType", "description": "Supported grant types for V1 Login Flow", "x-enum-varnames": [ "ANON", "GOOGLE", "APPLE", "REFRESH", "EPIC", "XBOXLIVE", "PS4_V1", "PS4_V3", "PS5_V3", "NINTENDO", "NINTENDO_SWITCH", "STEAM", "BASIC", "RALLYHERE", "CLIENT_CREDENTIALS" ], "x-enum-descriptions": [ "Anonymous authentication", "Google authentication", "Apple authentication", "Refresh Token authentication", "Epic Online Services authentication", "Xbox Live authentication", "Playstation Network v1 authentication using the configured PS4 credentials", "Playstation Network v3 authentication using the configured PS5 credentials", "Playstation Network v3 authentication using the configured PS5 credentials", "Nintendo Account authentication", "Nintendo Service Account (for Nintendo Switch) authentication", "Steam authentication", "Basic Username/Password authentication", "RallyHere Developer authentication", "Authentication that doesn't require user credentials, only a Client ID/Secret in the Authorization header." ] }, "LinkAction": { "type": "string", "enum": [ "link", "unlink", "new_person", "xprog_enable", "xprog_disable" ], "title": "LinkAction", "description": "An enumeration.", "x-enum-varnames": [ "link", "unlink", "new_person", "xprog_enable", "xprog_disable" ], "x-enum-descriptions": [ "Linked a player to an existing person", "Unlinked a player from a person", "Player was associated with a new person", "Active player was set for person, enabling cross-progression for all of the person's players", "Active player was cleared for person, disabling cross-progression for all of the person's players" ] }, "LoginHistoryEntry": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "player UUID" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "platform" }, "platform_user_id": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "platform user ID" }, "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "person ID" }, "user_agent": { "type": "string", "title": "User Agent", "description": "user agent string" }, "ip": { "type": "string", "title": "Ip", "description": "IP address" }, "client_id": { "type": "string", "title": "Client Id", "description": "client ID" }, "timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" } }, "type": "object", "title": "LoginHistoryEntry", "description": "Entry in a users's login history. Some fields may be missing if the data is not available." }, "LoginHistoryPage": { "properties": { "entries": { "items": { "$ref": "#/components/schemas/LoginHistoryEntry" }, "type": "array", "title": "Entries", "description": "The login history entries" }, "continuation_token": { "type": "string", "title": "Continuation Token", "description": "Token to retrieve the next page of results" } }, "type": "object", "required": [ "entries" ], "title": "LoginHistoryPage" }, "LoginLootReward": { "properties": { "loot_id": { "type": "string", "title": "Loot Id", "description": "Loot ID" }, "legacy_loot_id": { "type": "integer", "title": "Legacy Loot Id", "description": "Legacy Loot ID" } }, "type": "object", "required": [ "legacy_loot_id" ], "title": "LoginLootReward", "description": "Login loot reward" }, "LoginRequestV1": { "properties": { "grant_type": { "allOf": [ { "$ref": "#/components/schemas/GrantType" } ], "description": "The grant type to use for authentication" }, "portal_access_token": { "type": "string", "title": "Portal Access Token", "description": "Token or secret used to authenticate the provided grant type", "default": "" }, "portal_display_name": { "type": "string", "title": "Portal Display Name", "description": "Some grant types support client-provided names", "default": "" }, "portal_parent_access_token": { "type": "string", "title": "Portal Parent Access Token", "description": "Some grant types have 2 tier authentication and require a second token/secret", "default": "" }, "portal_parent_display_name": { "type": "string", "title": "Portal Parent Display Name", "description": "Some grant types have 2 tier authentication and support a second display name", "default": "" }, "include_refresh": { "type": "boolean", "title": "Include Refresh", "description": "Indicates if the client wants a refresh token returned", "default": false }, "accept_eula": { "type": "boolean", "title": "Accept Eula", "description": "If true, the user has accepted the EULA", "default": false }, "accept_tos": { "type": "boolean", "title": "Accept Tos", "description": "If true, the user has accepted the Terms of Service", "default": false }, "accept_privacy_policy": { "type": "boolean", "title": "Accept Privacy Policy", "description": "If true, the user has accepted the Privacy Policy", "default": false } }, "type": "object", "required": [ "grant_type" ], "title": "LoginRequestV1" }, "LoginResult": { "properties": { "portal_parent_auth_result": { "allOf": [ { "$ref": "#/components/schemas/PortalUserInfo" } ], "title": "Portal Parent Auth Result", "description": "Parent portal auth result" }, "permissions": { "items": { "type": "string" }, "type": "array", "title": "Permissions", "description": "List of permissions for this user.", "default": [] }, "restrictions": { "items": { "$ref": "#/components/schemas/Restriction" }, "type": "array", "title": "Restrictions", "description": "List of restrictions on this player", "default": [] }, "active_player_id": { "type": "integer", "title": "Active Player Id", "description": "Active player ID. *DEPRECATED* use `active_player_uuid` instead", "deprecated": true }, "active_player_uuid": { "type": "string", "format": "uuid", "title": "Active Player Uuid", "description": "Active player UUID" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform" }, "portal_id": { "type": "integer", "title": "Portal Id", "description": "Portal ID *DEPRECATED* use `platform` instead", "deprecated": true }, "portal_user_id": { "type": "string", "title": "Portal User Id", "description": "Portal user ID" }, "display_name": { "type": "string", "title": "Display Name", "description": "Display name" }, "role_id": { "type": "integer", "title": "Role Id", "description": "Role ID" }, "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "Person ID" }, "access_token": { "type": "string", "title": "Access Token", "description": "Access token that can be used for future requests", "default": "" }, "refresh_token": { "type": "string", "title": "Refresh Token", "description": "Refresh token that can be used to refresh authentication for a new access token" }, "publisher_uuid": { "type": "string", "format": "uuid", "title": "Publisher Uuid", "description": "Publisher UUID", "deprecated": true }, "tenant_uuid": { "type": "string", "format": "uuid", "title": "Tenant Uuid", "description": "Tenant UUID", "deprecated": true }, "config_elector_uuid": { "type": "string", "format": "uuid", "title": "Config Elector Uuid", "description": "Config elector UUID", "deprecated": true }, "client_uuid": { "type": "string", "format": "uuid", "title": "Client Uuid", "description": "Client UUID", "deprecated": true }, "client_id": { "type": "string", "title": "Client Id", "description": "Client ID" }, "token_type": { "type": "string", "title": "Token Type", "description": "Token type" }, "expires_in": { "type": "integer", "title": "Expires In", "description": "Result access token expiration time in seconds" } }, "type": "object", "required": [ "publisher_uuid", "tenant_uuid", "config_elector_uuid", "client_uuid", "client_id", "token_type" ], "title": "LoginResult", "description": "Login result" }, "LogoutRequest": { "properties": { "refresh_token": { "type": "string", "minLength": 1, "title": "Refresh Token", "description": "Refresh token to be invalidated" } }, "type": "object", "required": [ "refresh_token" ], "title": "LogoutRequest", "description": "Logout request" }, "LookupResults": { "properties": { "display_names": { "items": { "additionalProperties": { "items": { "$ref": "#/components/schemas/PlayerResponse" }, "type": "array" }, "type": "object" }, "type": "array", "title": "Display Names", "description": "List of display names and the players that match that display name", "default": [] }, "identity_platforms": { "additionalProperties": { "items": { "$ref": "#/components/schemas/PlatformIdentityLookupResults" }, "type": "array" }, "type": "object", "title": "Identity Platforms", "description": "*DEPRECATED* Use `identity_platforms_by_platform` instead. List of platforms and the players that match that platform user id", "default": {}, "deprecated": true }, "identity_platforms_by_platform": { "additionalProperties": { "items": { "$ref": "#/components/schemas/PlatformIdentityLookupResults" }, "type": "array" }, "type": "object", "title": "Identity Platforms By Platform", "description": "List of platforms and the players that match that platform user id", "default": {} } }, "type": "object", "title": "LookupResults", "description": "Lookup results for a player query" }, "MessageOnly": { "properties": { "message": { "type": "string", "title": "Message", "description": "Message" } }, "type": "object", "required": [ "message" ], "title": "MessageOnly", "description": "Message only response" }, "OAuthGrantType": { "type": "string", "enum": [ "client_credentials" ], "title": "OAuthGrantType", "description": "Supported OAuth2 grant types", "x-enum-varnames": [ "CLIENT_CREDENTIALS" ], "x-enum-descriptions": [ "The OAuth2 client credentials grant type" ] }, "OAuthPortal": { "type": "string", "enum": [ "google", "apple", "epic", "xbox", "psn", "nintendo", "steam", "amazon", "twitch" ], "title": "OAuthPortal", "description": "Supported OAuth portals for V1 Login Flow", "x-enum-varnames": [ "GOOGLE", "APPLE", "EPIC", "XBOX", "PSN", "NINTENDO", "STEAM", "AMAZON", "TWITCH" ], "x-enum-descriptions": [ "Google OAuth Portal", "Apple OAuth Portal", "Epic OAuth Portal", "Xbox OAuth Portal", "Playstation Network OAuth Portal", "Nintendo OAuth Portal", "Steam OAuth Portal", "Amazon OAuth Portal", "Twitch OAuth Portal" ] }, "OAuthTokenEchangeGrantType": { "type": "string", "enum": [ "authorization_code" ], "title": "OAuthTokenEchangeGrantType", "description": "Supported grant types for OAuth Token Exchange process", "x-enum-varnames": [ "authorization_code" ], "x-enum-descriptions": [ "Authorization code grant type for OAuth token exchange." ] }, "OAuthTokenExchange": { "properties": { "grant_type": { "allOf": [ { "$ref": "#/components/schemas/OAuthTokenEchangeGrantType" } ], "description": "Grant type for the OAuth exchange." }, "code": { "type": "string", "minLength": 1, "title": "Code", "description": "authorization_code for the OAuth exchange." }, "accepted_eula": { "type": "boolean", "title": "Accepted Eula", "description": "If true, the user has accepted the EULA.", "default": false }, "accepted_tos": { "type": "boolean", "title": "Accepted Tos", "description": "If true, the user has accepted the TOS.", "default": false }, "accepted_privacy_policy": { "type": "boolean", "title": "Accepted Privacy Policy", "description": "If true, the user has accepted the Privacy Policy.", "default": false } }, "type": "object", "required": [ "grant_type", "code" ], "title": "OAuthTokenExchange", "description": "OAuth token exchange request." }, "OAuthTokenResponse": { "properties": { "access_token": { "type": "string", "title": "Access Token", "description": "Access token for the user." }, "refresh_token": { "type": "string", "title": "Refresh Token", "description": "Refresh token for the user." }, "needs_eula": { "type": "boolean", "title": "Needs Eula", "description": "If true, the user must accept the EULA before a token can be generated.", "default": false }, "needs_tos": { "type": "boolean", "title": "Needs Tos", "description": "If true, the user must accept the TOS before a token can be generated.", "default": false }, "needs_privacy_policy": { "type": "boolean", "title": "Needs Privacy Policy", "description": "If true, the user must accept the Privacy Policy before a token can be generated.", "default": false }, "regenerated_code": { "type": "string", "title": "Regenerated Code", "description": "If present, a new code was generated and can be used after the user accepts the required agreements." }, "error_message": { "type": "string", "title": "Error Message", "description": "Error message if an error occurred." } }, "type": "object", "title": "OAuthTokenResponse", "description": "OAuth token exchange response. Successful response will contain an access_token and refresh_token.\n\nIf the user has not accepted all required agreements, the response will contain the appropriate\nneeds_* flags and a regenerated_code. The regenerated_code is an authorization_code that can be used\nafter the user has accepted the required agreements." }, "PersonEmailListRequest": { "properties": { "email_list_ids": { "items": { "type": "integer" }, "type": "array", "title": "Email List Ids", "description": "List of all email list ids the user is subscribed to, even if already subscribed before request", "default": [] } }, "type": "object", "title": "PersonEmailListRequest", "description": "Request to update a person's email list subscriptions" }, "PersonEmailListResponse": { "properties": { "email_list_ids": { "items": { "type": "integer" }, "type": "array", "title": "Email List Ids", "description": "List of all email list ids the user is subscribed to" } }, "type": "object", "required": [ "email_list_ids" ], "title": "PersonEmailListResponse", "description": "Response for updating a person's email list subscriptions" }, "PersonInfoResponse": { "properties": { "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "Person ID" }, "active_player_id": { "type": "integer", "title": "Active Player Id", "description": "Active player ID, if the person has an active player." }, "email": { "type": "string", "title": "Email", "description": "Email address" } }, "type": "object", "title": "PersonInfoResponse", "description": "Response for getting a person's info" }, "PersonOperationRequest": { "properties": { "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "Person ID" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform ID" }, "platform_user_id": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "Platform User ID" } }, "type": "object", "title": "PersonOperationRequest", "description": "Model for doing operations on a specific person. If person information is not provided, the information from the token claims will be used instead.\n\nPriority for finding the person ID:\n\n1. If the `person_id` is provided directly\n2. If the `platform` and `platform_user_id` are provided, the `person_id` of that platform user is used.\n3. If the Authorization header contains a user token, the platform and platform user id from the token are used to find the `person_id`." }, "Platform": { "type": "string", "enum": [ "Anon", "Basic", "XboxLive", "PSN", "NintendoNAID", "NintendoSwitch", "NintendoPPID", "Google", "GooglePlay", "Apple", "Epic", "Steam", "Amazon", "Twitch", "RallyHere", "LegacyName" ], "title": "Platform", "description": "An enumeration.", "x-enum-descriptions": [ "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration." ], "x-enum-varnames": [ "ANON", "BASIC", "XBOX_LIVE", "PSN", "NINTENDO_NAID", "NINTENDO_SWITCH", "NINTENDO_PPID", "GOOGLE", "GOOGLE_PLAY", "APPLE", "EPIC", "STEAM", "AMAZON", "TWITCH", "RALLYHERE", "LEGACYNAME" ] }, "PlatformIdentityLookupResults": { "properties": { "identity": { "additionalProperties": { "$ref": "#/components/schemas/PlayerResponse" }, "type": "object", "title": "Identity", "description": "List of platform user ids and the players that match that platform user id", "default": {} } }, "type": "object", "title": "PlatformIdentityLookupResults", "description": "Lookup results for a platform user id" }, "PlatformUserLinkRequest": { "properties": { "leader_person_id": { "type": "string", "format": "uuid", "title": "Leader Person Id", "description": "Person ID of the leader to link to. If not provided, the person will be found from the `leader_platform` and `leader_platform_user_id`" }, "leader_platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform of the leader to link to. If not provided, the leader will be found from the `scheme` and `credentials`" }, "leader_platform_user_id": { "type": "string", "maxLength": 2048, "title": "Leader Platform User Id", "description": "Platform user ID of the leader to link to. If not provided, the leader will be found from the `scheme` and `credentials`" }, "follower_platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform of the follower to link. If not provided, the follower will be found from the Authorization header's token" }, "follower_platform_user_id": { "type": "string", "maxLength": 2048, "title": "Follower Platform User Id", "description": "Platform user ID of the follower to link. If not provided, the follower will be found from the Authorization header's token" }, "scheme": { "type": "string", "title": "Scheme", "description": "Scheme to use for the leader. For most tokens, this will be `Bearer`" }, "credentials": { "type": "string", "title": "Credentials", "description": "Credentials to use for the leader. For most tokens, this will be the token itself." } }, "type": "object", "title": "PlatformUserLinkRequest", "description": "Model for linking a platform user to the person of another platform user.\n\nThis is used to determine the \"leader\" person_id that will be the assigned to a \"follower\" platform user.\n\nThe Leader person is found using the following priority:\n\n1. If the `leader_person_id` is provided directly\n2. If the `leader_platform` and `leader_platform_user_id` are provided, the `person_id` of that platform user is used.\n3. If the `scheme` and `credentials` are provided, the person_id of the platform user of credentials is used.\n\nThe Follower platform user is found using the following priority:\n\n1. If the `follower_platform` and `follower_platform_user_id` are provided directly.\n2. If the Authorization header contains a user token, the platform and platform user id from the token are used." }, "PlatformUserOperationRequest": { "properties": { "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform ID" }, "platform_user_id": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "Platform User ID" } }, "type": "object", "title": "PlatformUserOperationRequest", "description": "Model for doing operations on a specific platform user. If platform/userid information is not provided, the information from the token claims will be used instead." }, "PlatformUserResponse": { "properties": { "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform to search/create with" }, "platform_user_id": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "Platform user ID to search/create with" }, "display_name": { "type": "string", "title": "Display Name", "description": "Platform Display name" }, "player_id": { "type": "integer", "title": "Player Id", "description": "Player ID *DEPRECATED* use `player_uuid` instead", "deprecated": true }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID" }, "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "Person ID" }, "active_player_id": { "type": "integer", "title": "Active Player Id", "description": "*DEPRECATED* use `active_player_uuid` instead. Active player ID, if the player has an active player.", "deprecated": true }, "active_player_uuid": { "type": "string", "format": "uuid", "title": "Active Player Uuid", "description": "Active player UUID, if the player has an active player." } }, "type": "object", "required": [ "platform", "platform_user_id", "player_id", "player_uuid", "person_id" ], "title": "PlatformUserResponse", "description": "Response for successfully creating a platform user" }, "PlayerIdWrapper": { "properties": { "player_id": { "type": "integer", "title": "Player Id", "description": "Player ID" } }, "type": "object", "required": [ "player_id" ], "title": "PlayerIdWrapper", "description": "Model for getting a player ID from a player UUID" }, "PlayerIterateResponse": { "properties": { "players": { "items": { "$ref": "#/components/schemas/PlayerResponse" }, "type": "array", "title": "Players", "description": "List of players. An empty list means iteration is complete", "default": [] }, "cursor": { "type": "string", "title": "Cursor", "description": "Cursor to continue iteration", "default": "" } }, "type": "object", "title": "PlayerIterateResponse", "description": "Response from the player iteration API" }, "PlayerLinkedPortalsResponse": { "properties": { "player": { "allOf": [ { "$ref": "#/components/schemas/PlayerPersonResponse" } ], "title": "Player", "description": "Player info" }, "linked_portals": { "items": { "$ref": "#/components/schemas/PortalUserResponse" }, "type": "array", "title": "Linked Portals", "description": "List of linked portals" } }, "type": "object", "required": [ "player", "linked_portals" ], "title": "PlayerLinkedPortalsResponse", "description": "Response for getting a player's linked portals" }, "PlayerPersonResponse": { "properties": { "player_id": { "type": "integer", "title": "Player Id", "description": "Player ID *DEPRECATED* use `player_uuid` instead", "deprecated": true }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID" }, "active_player_id": { "type": "integer", "title": "Active Player Id", "description": "*DEPRECATED* use `active_player_uuid` instead. Active player ID, if the player has an active player.", "deprecated": true }, "active_player_uuid": { "type": "string", "format": "uuid", "title": "Active Player Uuid", "description": "Active player UUID, if the player has an active player." }, "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "Person ID" } }, "type": "object", "required": [ "player_id", "player_uuid", "person_id" ], "title": "PlayerPersonResponse", "description": "Response for getting a player's info" }, "PlayerResponse": { "properties": { "player_id": { "type": "integer", "title": "Player Id", "description": "Player ID *DEPRECATED* use `player_uuid` instead", "deprecated": true }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID" } }, "type": "object", "required": [ "player_id", "player_uuid" ], "title": "PlayerResponse", "description": "Response for getting a player's info" }, "PlayerUuidFromId": { "properties": { "uuid": { "type": "string", "format": "uuid", "title": "Uuid", "description": "Player UUID" } }, "type": "object", "required": [ "uuid" ], "title": "PlayerUuidFromId", "description": "Model for getting a player UUID from a player ID" }, "PortalTokenDetailsGrantType": { "type": "string", "enum": [ "ps4_v1", "ps4_v3", "ps5_v3" ], "title": "PortalTokenDetailsGrantType", "description": "The grant type used to authenticate the portal tokens", "x-enum-varnames": [ "PS4_V1", "PS4_V3", "PS5_V3" ], "x-enum-descriptions": [ "Playstation Network v1 auth token validated using the configured PS4 credentials", "Playstation Network v3 auth token validated using the configured PS4 credentials", "Playstation Network v3 auth token validated using the configured PS5 credentials" ] }, "PortalTokenDetailsRequest": { "properties": { "grant_type": { "$ref": "#/components/schemas/PortalTokenDetailsGrantType" }, "portal_access_token": { "type": "string", "title": "Portal Access Token", "description": "Token or secret used to authenticate the provided grant type" } }, "type": "object", "required": [ "grant_type", "portal_access_token" ], "title": "PortalTokenDetailsRequest" }, "PortalUserInfo": { "properties": { "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform for the user" }, "portal_id": { "allOf": [ { "$ref": "#/components/schemas/dependencies__schemas__Portal" } ], "description": "Portal ID. *DEPRECATED* use `platform` instead", "deprecated": true }, "portal_user_id": { "type": "string", "title": "Portal User Id", "description": "Platform User ID" }, "display_name": { "type": "string", "title": "Display Name", "description": "Display name" } }, "type": "object", "required": [ "platform", "portal_id", "portal_user_id", "display_name" ], "title": "PortalUserInfo", "description": "Portal user info" }, "PortalUserResponse": { "properties": { "portal_user_id": { "type": "string", "title": "Portal User Id", "description": "Portal user ID" }, "portal_id": { "type": "integer", "title": "Portal Id", "description": "Portal ID *DEPRECATED* use `platform` instead", "deprecated": true }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform" }, "display_name": { "type": "string", "title": "Display Name", "description": "Display name" }, "player_id": { "type": "integer", "title": "Player Id", "description": "Player ID *DEPRECATED* use `player_uuid` instead", "deprecated": true }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID" } }, "type": "object", "required": [ "portal_id", "platform", "player_id", "player_uuid" ], "title": "PortalUserResponse" }, "PublicKey": { "properties": { "kid": { "type": "string", "title": "Kid", "description": "Key ID - see https://datatracker.ietf.org/doc/html/rfc7517#section-4.5" }, "kty": { "type": "string", "title": "Kty", "description": "Key Type - see https://datatracker.ietf.org/doc/html/rfc7517#section-4.1" }, "n": { "type": "string", "title": "N", "description": "Modulus - see https://www.rfc-editor.org/rfc/rfc7518.html#section-6.3.1" }, "e": { "type": "string", "title": "E", "description": "Exponent - see https://www.rfc-editor.org/rfc/rfc7518.html#section-6.3.1" } }, "type": "object", "required": [ "kid", "kty", "n", "e" ], "title": "PublicKey", "description": "Public key for verifying Access Token JWTs\n\nThis is in the JWK format as defined in https://datatracker.ietf.org/doc/html/rfc7517#section-4" }, "PublicKeyList": { "properties": { "keys": { "items": { "$ref": "#/components/schemas/PublicKey" }, "type": "array", "title": "Keys", "description": "List of public keys for verifying Access Token JWTs" } }, "type": "object", "required": [ "keys" ], "title": "PublicKeyList", "description": "List of public keys for verifying Access Token JWTs.\n\nThis is in the JWK Set format as defined in https://datatracker.ietf.org/doc/html/rfc7517#section-5" }, "PurgeRequest": { "properties": { "suggested_purge_time": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" } }, "type": "object", "title": "PurgeRequest", "description": "Purge request to purge a person from the system. This will remove all data about that player from the system." }, "PurgeResponse": { "properties": { "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "Person ID that will be purged" }, "purge_on": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "created_on": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "last_modified_on": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "status": { "type": "string", "title": "Status", "description": "Status of the purge request" } }, "type": "object", "required": [ "person_id", "purge_on", "created_on", "last_modified_on", "status" ], "title": "PurgeResponse", "description": "Purge response from a purge request" }, "Restriction": { "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/RestrictionType" } ], "description": "Type of restriction" }, "reason": { "type": "string", "title": "Reason", "description": "Reason the restriction was applied" }, "expiration": { "type": "string", "format": "date-time", "title": "Expiration", "description": "Date the restriction expires. Null means the restriction is permanent" } }, "type": "object", "required": [ "type" ], "title": "Restriction", "description": "Restriction applied to a player" }, "RestrictionType": { "type": "string", "enum": [ "account_ban", "account_lockout", "account_pending_deletion", "account_deny_auth" ], "title": "RestrictionType", "description": "Restrictions that can be applied to a player. Resitrictions are applied to a player by an admin and often types indicates that the player is banned.", "x-enum-varnames": [ "ACCOUNT_BAN", "ACCOUNT_LOCKOUT", "ACCOUNT_PENDING_DELETION", "ACCOUNT_DENY_AUTH" ], "x-enum-descriptions": [ "Account is banned", "Account is locked out", "Account is pending deletion and will be deleted in the future", "Account has been banned from authentication" ] }, "Role": { "properties": { "role_id": { "type": "string", "title": "Role Id", "description": "Unique Role ID" }, "legacy_role_id": { "type": "integer", "title": "Legacy Role Id", "description": "Legacy role ID", "default": 0 }, "custom_data": { "type": "object", "title": "Custom Data", "description": "Custom data for the role", "default": {} }, "auth_bypass": { "allOf": [ { "$ref": "#/components/schemas/RoleAuthBypass" } ], "description": "Level of auth bypass for limited/locked modes", "default": "none" }, "login_loot_rewards": { "items": { "$ref": "#/components/schemas/LoginLootReward" }, "type": "array", "title": "Login Loot Rewards", "description": "List of loot ids that are fulfilled for the player when they begin a new inventory session", "default": [] } }, "type": "object", "required": [ "role_id" ], "title": "Role", "description": "Role object that is used to define a role for a player" }, "RoleAuthBypass": { "type": "string", "enum": [ "none", "limited", "locked" ], "title": "RoleAuthBypass", "description": "Role auth bypass options", "x-enum-varnames": [ "NONE", "LIMITED", "LOCKED" ], "x-enum-descriptions": [ "Does not bypass any auth states", "Allow bypass of the limited auth state", "Auth bypass for the limited and locked auth states" ] }, "SendInBlueContact": { "properties": { "email": { "type": "string", "title": "Email", "description": "Email address" }, "attributes": { "type": "object", "title": "Attributes", "description": "Attributes" }, "emailBlacklisted": { "type": "boolean", "title": "Emailblacklisted", "description": "Email blacklisted" }, "listIds": { "items": { "type": "integer" }, "type": "array", "title": "Listids", "description": "List IDs" }, "unlinkListIds": { "items": { "type": "integer" }, "type": "array", "title": "Unlinklistids", "description": "Unlink list IDs" }, "updateEnabled": { "type": "boolean", "title": "Updateenabled", "description": "Update enabled" } }, "type": "object", "required": [ "email" ], "title": "SendInBlueContact", "description": "SendInBlue contact" }, "TokenRequest": { "properties": { "grant_type": { "allOf": [ { "$ref": "#/components/schemas/OAuthGrantType" } ], "description": "OAuth2 grant type" } }, "type": "object", "required": [ "grant_type" ], "title": "TokenRequest", "description": "OAuth2 Token Request" }, "TokenResponse": { "properties": { "access_token": { "type": "string", "title": "Access Token", "description": "Result access token" }, "token_type": { "type": "string", "title": "Token Type", "description": "Result token type" }, "refresh_token": { "type": "string", "title": "Refresh Token", "description": "Result refresh token that can be used to get new access tokens" }, "expires_in": { "type": "integer", "title": "Expires In", "description": "Result access token expiration time in seconds" } }, "type": "object", "required": [ "access_token", "token_type", "expires_in" ], "title": "TokenResponse", "description": "OAuth2 Token Response" }, "UpdatePersonInfoRequest": { "properties": { "email": { "type": "string", "title": "Email", "description": "Email address to update to" } }, "type": "object", "required": [ "email" ], "title": "UpdatePersonInfoRequest", "description": "Request to update a person's info" }, "UserLinkHistory": { "properties": { "entries": { "items": { "$ref": "#/components/schemas/UserLinkHistoryEntry" }, "type": "array", "title": "Entries", "description": "The link history entries" }, "continuation_token": { "type": "string", "title": "Continuation Token", "description": "Token to retrieve the next page of results" } }, "type": "object", "required": [ "entries" ], "title": "UserLinkHistory" }, "UserLinkHistoryEntry": { "properties": { "entry_id": { "type": "string", "title": "Entry Id", "description": "entry ID" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "player UUID" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "platform" }, "platform_user_id": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "platform user ID" }, "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "person ID" }, "active_player_uuid": { "type": "string", "format": "uuid", "title": "Active Player Uuid", "description": "active player UUID" }, "action": { "allOf": [ { "$ref": "#/components/schemas/LinkAction" } ], "description": "action" }, "timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" } }, "type": "object", "required": [ "action" ], "title": "UserLinkHistoryEntry" }, "dependencies__schemas__Portal": { "type": "integer", "enum": [ 2, 4, 5, 9, 10, 11, 13, 14, 16, 22, 24, 26, 27, 28, 33 ], "title": "Portal", "description": "Portals a.k.a platforms that a player can be linked/authenticated with", "x-enum-varnames": [ "ANON", "AMAZON", "STEAM", "PSN", "XBOXLIVE", "BASIC", "GOOGLE", "RALLYHERE", "TWITCH", "NINTENDO_SWITCH", "APPLE", "NINTENDO", "LEGACYNAME", "EPIC", "NINTENDO_PPID" ], "x-enum-descriptions": [ "Anonymous portal used for testing. This is not intended to be used by real players.", "Amazon portal", "Steam portal", "Playstation Network portal", "Xbox Live portal", "Basic portal", "Google portal", "RallyHere Developer portal", "Twitch portal", "Nintendo Switch portal", "Apple portal", "Nintendo portal", "Legacy name portal", "Epic portal", "Nintendo PPID portal" ] }, "fastapicommon__platforms__Portal": { "type": "integer", "enum": [ -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 ], "title": "Portal", "description": "An enumeration.", "x-enum-varnames": [ "FREE", "SWEAT", "UNKNOWN", "STANDARD", "ANON", "KONGREGATE", "AMAZON", "STEAM", "TCLS", "LEVELUP_LATAM", "LEVELUP_BRA", "PSN", "XBOX_LIVE", "BASIC", "FACEBOOK", "GOOGLE", "RALLYHERE", "RIVALS_MOBILE", "TWITCH", "PALADINS_STRIKE", "SMITE_BLITZ", "FACEBOOK_SMITE", "FACEBOOK_PALADINS", "FACEBOOK_HOTG", "NINTENDO_SWITCH", "TUNE", "APPLE", "DISCORD", "NINTENDO", "LEGACYNAME", "EPIC", "FORTE", "SIMULMEDIA", "LUNA", "GOOGLE_PLAY", "NINTENDO_PPID" ], "x-enum-descriptions": [ "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration." ] }, "AcknowledgeBackfillRequest": { "properties": { "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "The instance ID for this backfill request" }, "extensions": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Extensions", "description": "Additional extensions to add to the Assignment for the backfill resource associated with the session" }, "overflow_action": { "allOf": [ { "$ref": "#/components/schemas/TeamOverflowAction" } ], "description": "How to handle backfills that return too many players for a team", "default": "fail" } }, "type": "object", "required": [ "instance_id" ], "title": "AcknowledgeBackfillRequest" }, "AcknowledgeBackfillResponse": { "properties": { "backfilled_players": { "items": { "$ref": "#/components/schemas/SessionPlayer" }, "type": "array", "title": "Backfilled Players", "description": "List of players that were backfilled. If empty, no players were backfilled", "default": [] } }, "type": "object", "title": "AcknowledgeBackfillResponse" }, "AdditionalJoinParams": { "properties": { "double_args": { "additionalProperties": { "type": "number" }, "type": "object", "title": "Double Args", "description": "Additional double arguments to add to the matchmaking ticket", "default": {} }, "string_args": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "String Args", "description": "Additional string arguments to add to the matchmaking ticket", "default": {} }, "tags": { "items": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "array", "title": "Tags", "description": "Additional tags to add to the matchmaking ticket", "default": [] }, "extensions": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Extensions", "description": "Additional extensions to add to the matchmaking ticket. Value is a base64 string representation of the protobuf binary data. The data will be converted back to binary before being put on the ticket", "default": {} } }, "type": "object", "title": "AdditionalJoinParams", "description": "Additional parameters to apply to a matchmaking ticket" }, "AllPlayerDeserterStatuses": { "properties": { "deserter_statuses": { "items": { "$ref": "#/components/schemas/PlayerDeserterStatus" }, "type": "array", "title": "Deserter Statuses", "description": "List of all of a player's deserter statuses." } }, "type": "object", "required": [ "deserter_statuses" ], "title": "AllPlayerDeserterStatuses" }, "AuditEvent": { "properties": { "event_name": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Event Name", "description": "Name of the audit event you are creating. Customer created events will be prepended with 'customer.'" }, "session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id", "description": "ID of the session this event occurred in" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data for this audit request" }, "session_type": { "type": "string", "title": "Session Type", "description": "Type of the session this event occurred in" }, "region_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Region Id", "description": "Region ID for this event" }, "joinable": { "type": "boolean", "title": "Joinable", "description": "Whether or not the session is publicly joinable" }, "updated_teams": { "items": { "$ref": "#/components/schemas/TeamUpdate" }, "type": "array", "maxItems": 50, "title": "Updated Teams", "description": "Updated team numbers and sizes" }, "source": { "allOf": [ { "$ref": "#/components/schemas/InviteSource" } ], "description": "The source of an invite" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "UUID of a specific player being effected in this event" }, "team_id": { "type": "integer", "minimum": 0, "title": "Team Id", "description": "ID of the team being effected in this event" }, "invited_session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Invited Session Id", "description": "ID of the session being invited in this event" }, "removed_session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Removed Session Id", "description": "ID of the session being removed in this event" }, "version": { "type": "string", "title": "Version", "description": "Version updated in this event" }, "client_settings": { "allOf": [ { "$ref": "#/components/schemas/ClientSettings" } ], "title": "Client Settings", "description": "Client settings updated as part of this event" }, "crossplay_preferences": { "allOf": [ { "$ref": "#/components/schemas/CrossplayPreferences" } ], "title": "Crossplay Preferences", "description": "Crossplay preferences updated as part of this event" }, "player_status": { "allOf": [ { "$ref": "#/components/schemas/SessionPlayerStatus" } ], "description": "Player's status updated as part of this event" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform updated as part of this event" }, "platform_session_id": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Platform Session Id", "description": "ID of the platform session being effected in this event" }, "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "ID of the instance being effected in this event" }, "host_type": { "allOf": [ { "$ref": "#/components/schemas/HostType" } ], "description": "Type of the host being effected in this event" }, "host_player_uuid": { "type": "string", "format": "uuid", "title": "Host Player Uuid", "description": "UUID of the player hosting during this event" }, "instance_request_template": { "type": "string", "format": "uuid", "title": "Instance Request Template", "description": "ID of the instance request template being used in this event" }, "map": { "type": "string", "title": "Map", "description": "Map being used in this event" }, "mode": { "type": "string", "title": "Mode", "description": "Mode being used in this event" }, "allocation_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Allocation Id", "description": "Allocation ID of instance in this event" }, "join_status": { "allOf": [ { "$ref": "#/components/schemas/InstanceJoinableStatus" } ], "description": "Instance's joinability status" }, "join_params": { "allOf": [ { "$ref": "#/components/schemas/JoinParams" } ], "title": "Join Params", "description": "Instance's join parameters for this event" }, "instance_health": { "allOf": [ { "$ref": "#/components/schemas/InstanceHealthStatus" } ], "description": "Instance's health status for this event" }, "queue_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Queue Id", "description": "ID for the queue in this event" }, "ticket_id": { "type": "string", "title": "Ticket Id", "description": "Matchmaking ticket id in this event" }, "additional_params": { "allOf": [ { "$ref": "#/components/schemas/AdditionalJoinParams" } ], "title": "Additional Params", "description": "Additional matchmaking parameters in this event" }, "map_preferences": { "items": { "type": "string" }, "type": "array", "title": "Map Preferences", "description": "Map preferences in this event" }, "queued_session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Queued Session Id", "description": "ID of the session that was/is in a matchmaking queue for this event" }, "match_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Match Id", "description": "ID of a match that was associated with this session" }, "requesting_user_uuid": { "type": "string", "format": "uuid", "title": "Requesting User Uuid" }, "event_datetime": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" } }, "type": "object", "required": [ "event_name", "session_id", "event_datetime" ], "title": "AuditEvent" }, "AuditResponse": { "properties": { "events": { "items": { "$ref": "#/components/schemas/AuditEvent" }, "type": "array", "title": "Events", "description": "List of audit events", "default": [] } }, "type": "object", "title": "AuditResponse" }, "BackfillInfo": { "properties": { "backfill_id": { "type": "string", "minLength": 1, "title": "Backfill Id", "description": "Unique ID for the backfill object" }, "extensions": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Extensions", "description": "Optional additional extensions used when acknowledging backfill requests" } }, "type": "object", "required": [ "backfill_id" ], "title": "BackfillInfo", "description": "Info about the open-match backfill object in a session" }, "BackfillSettingsResponse": { "properties": { "timeout": { "type": "number", "format": "time-delta", "title": "Timeout", "description": "How often we expect backfill heartbeats to occur" } }, "type": "object", "required": [ "timeout" ], "title": "BackfillSettingsResponse" }, "BackfillTeam": { "properties": { "players_required": { "type": "integer", "minimum": 0, "title": "Players Required", "description": "The number of players we want to backfill" }, "team_id": { "type": "integer", "minimum": 0, "title": "Team Id", "description": "Id for the team that requires backfilled players" } }, "type": "object", "required": [ "players_required", "team_id" ], "title": "BackfillTeam" }, "BaseBackfillRequest": { "properties": { "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "The instance ID for this backfill request" } }, "type": "object", "required": [ "instance_id" ], "title": "BaseBackfillRequest" }, "BrowserInfo": { "properties": { "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data with the listing of the instance in the Session browser", "default": {} } }, "type": "object", "title": "BrowserInfo", "description": "Information about the browser resource in a session" }, "BrowserResponse": { "properties": { "cursor": { "type": "integer", "minimum": 0, "title": "Cursor", "description": "Cursor to continue iterating through browser sessions. 0 means we have returned the last entry" }, "browser_sessions": { "items": { "$ref": "#/components/schemas/BrowserSessionInfo" }, "type": "array", "title": "Browser Sessions", "description": "List of sessions in the browser" } }, "type": "object", "required": [ "cursor", "browser_sessions" ], "title": "BrowserResponse", "description": "A response with a list of browsers, and a cursor to continue iterating through them" }, "BrowserSessionInfo": { "properties": { "session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id", "description": "ID for the session" }, "player_count": { "type": "integer", "minimum": 0, "title": "Player Count", "description": "Number of players actively in this session" }, "max_player_count": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Max Player Count", "description": "Maximum number of players that can be in this session" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data with the listing of the instance in the Session browser" } }, "type": "object", "required": [ "session_id" ], "title": "BrowserSessionInfo", "description": "Information about a session listed in a browser" }, "ClientSettings": { "properties": { "platform_id": { "allOf": [ { "$ref": "#/components/schemas/PlatformID" } ], "description": "DEPRECATED. Use 'platform' instead. Id for which platform this client is on. ID will be ignored if 'platform' is given. At least one of the two is required" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Which platform this client is on. If one is not provided, will get the platform from the 'platform_id'. At least one of the two is required" }, "input": { "allOf": [ { "$ref": "#/components/schemas/Input" } ], "description": "Which input type this client is using" } }, "type": "object", "required": [ "input" ], "title": "ClientSettings", "description": "A player's platform and input settings" }, "ConnectionInfo": { "properties": { "ip": { "type": "string", "title": "Ip", "description": "IP that sent the request" } }, "type": "object", "required": [ "ip" ], "title": "ConnectionInfo", "description": "Connection info about the requesting client" }, "CreateAuditRequest": { "properties": { "event_name": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Event Name", "description": "Name of the audit event you are creating. Customer created events will be prepended with 'customer.'" }, "session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id", "description": "ID of the session this event occurred in" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data for this audit request" }, "session_type": { "type": "string", "title": "Session Type", "description": "Type of the session this event occurred in" }, "region_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Region Id", "description": "Region ID for this event" }, "joinable": { "type": "boolean", "title": "Joinable", "description": "Whether or not the session is publicly joinable" }, "updated_teams": { "items": { "$ref": "#/components/schemas/TeamUpdate" }, "type": "array", "maxItems": 50, "title": "Updated Teams", "description": "Updated team numbers and sizes" }, "source": { "allOf": [ { "$ref": "#/components/schemas/InviteSource" } ], "description": "The source of an invite" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "UUID of a specific player being effected in this event" }, "team_id": { "type": "integer", "minimum": 0, "title": "Team Id", "description": "ID of the team being effected in this event" }, "invited_session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Invited Session Id", "description": "ID of the session being invited in this event" }, "removed_session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Removed Session Id", "description": "ID of the session being removed in this event" }, "version": { "type": "string", "title": "Version", "description": "Version updated in this event" }, "client_settings": { "allOf": [ { "$ref": "#/components/schemas/ClientSettings" } ], "title": "Client Settings", "description": "Client settings updated as part of this event" }, "crossplay_preferences": { "allOf": [ { "$ref": "#/components/schemas/CrossplayPreferences" } ], "title": "Crossplay Preferences", "description": "Crossplay preferences updated as part of this event" }, "player_status": { "allOf": [ { "$ref": "#/components/schemas/SessionPlayerStatus" } ], "description": "Player's status updated as part of this event" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform updated as part of this event" }, "platform_session_id": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Platform Session Id", "description": "ID of the platform session being effected in this event" }, "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "ID of the instance being effected in this event" }, "host_type": { "allOf": [ { "$ref": "#/components/schemas/HostType" } ], "description": "Type of the host being effected in this event" }, "host_player_uuid": { "type": "string", "format": "uuid", "title": "Host Player Uuid", "description": "UUID of the player hosting during this event" }, "instance_request_template": { "type": "string", "format": "uuid", "title": "Instance Request Template", "description": "ID of the instance request template being used in this event" }, "map": { "type": "string", "title": "Map", "description": "Map being used in this event" }, "mode": { "type": "string", "title": "Mode", "description": "Mode being used in this event" }, "allocation_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Allocation Id", "description": "Allocation ID of instance in this event" }, "join_status": { "allOf": [ { "$ref": "#/components/schemas/InstanceJoinableStatus" } ], "description": "Instance's joinability status" }, "join_params": { "allOf": [ { "$ref": "#/components/schemas/JoinParams" } ], "title": "Join Params", "description": "Instance's join parameters for this event" }, "instance_health": { "allOf": [ { "$ref": "#/components/schemas/InstanceHealthStatus" } ], "description": "Instance's health status for this event" }, "queue_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Queue Id", "description": "ID for the queue in this event" }, "ticket_id": { "type": "string", "title": "Ticket Id", "description": "Matchmaking ticket id in this event" }, "additional_params": { "allOf": [ { "$ref": "#/components/schemas/AdditionalJoinParams" } ], "title": "Additional Params", "description": "Additional matchmaking parameters in this event" }, "map_preferences": { "items": { "type": "string" }, "type": "array", "title": "Map Preferences", "description": "Map preferences in this event" }, "queued_session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Queued Session Id", "description": "ID of the session that was/is in a matchmaking queue for this event" }, "match_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Match Id", "description": "ID of a match that was associated with this session" }, "players": { "items": { "type": "string", "format": "uuid" }, "type": "array", "title": "Players", "description": "List of players uuids that were effected in this event. Each player will get a unique event" } }, "type": "object", "required": [ "event_name", "session_id" ], "title": "CreateAuditRequest" }, "CreateOrJoinRequest": { "properties": { "client_version": { "type": "string", "title": "Client Version", "description": "String representation of semver for client" }, "client_settings": { "allOf": [ { "$ref": "#/components/schemas/ClientSettings" } ], "title": "Client Settings", "description": "Which input type and platform the client is using" }, "crossplay_preferences": { "allOf": [ { "$ref": "#/components/schemas/CrossplayPreferences" } ], "title": "Crossplay Preferences", "description": "Client's desired crossplay settings to determine which other clients it can play with. If not defined, assumed to be as permissive as possible" }, "session_type": { "type": "string", "title": "Session Type", "description": "Type of session client is creating or joining" }, "region_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Region Id", "description": "Preferred region for the instance and match to take place in" }, "player": { "allOf": [ { "$ref": "#/components/schemas/SelfSessionPlayerUpdateRequest" } ], "title": "Player", "description": "Optional information about player in order to join the new/existing session. V2 version of CreateOrJoin will require this" } }, "type": "object", "required": [ "client_version", "client_settings", "session_type" ], "title": "CreateOrJoinRequest", "description": "A request body for a player to join a session" }, "CrossplayInput": { "type": "string", "enum": [ "desired_inputs_any", "desired_inputs_keyboardandmouse", "desired_inputs_gamepad", "desired_inputs_touch" ], "title": "CrossplayInput", "description": "Crossplay input preferences. Used to determine whether players can queue together, and the pools of players that are used to generate matches", "x-enum-descriptions": [ "No crossplay input preferences. Can play with players using any input", "Can only play with players using a keyboard and mouse", "Can only player with players using a gamepad/controller", "Can only player with players using a touch screen" ], "x-enum-varnames": [ "ANY", "KBM", "GAMEPAD", "TOUCH" ] }, "CrossplayPlatform": { "type": "string", "enum": [ "desired_platforms_any", "desired_platforms_xboxlike", "desired_platforms_playstationlike" ], "title": "CrossplayPlatform", "description": "Crossplay platform preferences. Used to determine whether players can queue together, and the pools of players that are used to generate matches", "x-enum-descriptions": [ "No crossplay platform preferences. Can play with players any platforms", "Can only play with players on xbox-like platforms (xbox-one, xsx etc.)", "Can only play with players on playstation-like platform (ps4, ps5 etc.)" ], "x-enum-varnames": [ "ANY", "XBOX", "PLAYSTATION" ] }, "CrossplayPreferences": { "properties": { "permitted_platform": { "allOf": [ { "$ref": "#/components/schemas/CrossplayPlatform" } ], "description": "The platform type that the client is allowed to play with (any, xbox-like only, playstation-like only etc.)" }, "permitted_input": { "allOf": [ { "$ref": "#/components/schemas/CrossplayInput" } ], "description": "The input type that the client is allowed to play with (keyboard and mouse, gamepad, touch input etc.)" } }, "type": "object", "required": [ "permitted_platform", "permitted_input" ], "title": "CrossplayPreferences", "description": "A session's or player's preferences around crossplay platforms and inputs. Permitted platforms and inputs will be checked when new players attempt to join a session" }, "DeleteTicketReason": { "type": "string", "enum": [ "assigned", "left_queue", "timeout", "party_changed" ], "title": "DeleteTicketReason", "description": "An enumeration.", "x-enum-descriptions": [ "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration." ], "x-enum-varnames": [ "assigned", "left_queue", "timeout", "party_changed" ] }, "DeserterConfig": { "properties": { "deserter_id": { "type": "string", "format": "uuid", "title": "Deserter Id", "description": "Unique id for this set of deserter config" }, "last_cleared_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" } }, "type": "object", "required": [ "deserter_id" ], "title": "DeserterConfig" }, "DeserterConfigResponse": { "properties": { "deserter_configs": { "items": { "$ref": "#/components/schemas/DeserterConfig" }, "type": "array", "title": "Deserter Configs", "description": "List of desertion config objects" } }, "type": "object", "required": [ "deserter_configs" ], "title": "DeserterConfigResponse" }, "DeserterUpdateRequest": { "properties": { "deserter_expiration": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "deserter_count": { "type": "integer", "minimum": 0, "title": "Deserter Count", "description": "The number of times a player has deserted before the expiration" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data about a players desertion status" } }, "type": "object", "required": [ "deserter_expiration", "deserter_count" ], "title": "DeserterUpdateRequest" }, "Determiner": { "type": "string", "enum": [ "allOf", "anyOf", "oneOf", "noneOf" ], "title": "Determiner", "description": "Determiner for how many rules must be satisfied in order to satisfy the ruleset", "x-enum-descriptions": [ "All rules must be satisfied", "At least one rule must be satisfied", "Exactly one rule must be satisfied", "All rules must not be satisfied" ], "x-enum-varnames": [ "ALL", "ANY", "ONE", "NONE" ] }, "HostType": { "type": "string", "enum": [ "dedicated", "player" ], "title": "HostType", "description": "Whether the host is another player, or a dedicated instance", "x-enum-descriptions": [ "A dedicated, standalone instance", "A player hosted instance" ], "x-enum-varnames": [ "dedicated", "player" ] }, "Input": { "type": "string", "enum": [ "keyboardandmouse", "gamepad", "touch" ], "title": "Input", "description": "The different input types that players can use", "x-enum-descriptions": [ "Input for players using a keyboard and mouse", "Input for players using a gamepad/controller", "Input for players using a touch screen" ], "x-enum-varnames": [ "KBM", "GAMEPAD", "TOUCH" ] }, "InstanceHealthSettingsResponse": { "properties": { "cadence_seconds": { "type": "integer", "exclusiveMinimum": true, "title": "Cadence Seconds", "description": "How often we expect instance health checks to occur", "minimum": 0 }, "unhealthy_health_check_percentage": { "type": "number", "exclusiveMinimum": true, "title": "Unhealthy Health Check Percentage", "description": "What percentage of health checks must be missing before an instance's status becomes unhealthy", "minimum": 0 }, "missed_checks_before_unknown": { "type": "integer", "exclusiveMinimum": true, "title": "Missed Checks Before Unknown", "description": "How many health checks we must miss in a row before an instance's status becomes unknown", "minimum": 0 } }, "type": "object", "required": [ "cadence_seconds", "unhealthy_health_check_percentage", "missed_checks_before_unknown" ], "title": "InstanceHealthSettingsResponse" }, "InstanceHealthStatus": { "type": "string", "enum": [ "healthy", "unhealthy", "degraded", "unknown" ], "title": "InstanceHealthStatus", "description": "An enumeration.", "x-enum-descriptions": [ "Instance is in a healthy state", "Instance is in an unhealthy state and cannot handle connections", "Instance performance is degraded, and may be unable to handle new or existing connections", "Instance health checks have stopped, and instance status is unknown" ], "x-enum-varnames": [ "HEALTHY", "UNHEALTHY", "DEGRADED", "UNKNOWN" ] }, "InstanceHealthStatusResponse": { "properties": { "updated_instance_health": { "allOf": [ { "$ref": "#/components/schemas/InstanceHealthStatus" } ], "description": "The new health status of the instance. It may not match the status sent up if too few health checks are being recieved" } }, "type": "object", "required": [ "updated_instance_health" ], "title": "InstanceHealthStatusResponse", "description": "Response body for an instance health check" }, "InstanceHealthStatusUpdate": { "properties": { "instance_health": { "allOf": [ { "$ref": "#/components/schemas/InstanceHealthStatus" } ], "description": "The health status of the instance" }, "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "The instance ID for the instance whose health you are reporting" } }, "type": "object", "required": [ "instance_health", "instance_id" ], "title": "InstanceHealthStatusUpdate", "description": "A request body for an instances health check" }, "InstanceInfo": { "properties": { "allocation_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Allocation Id", "description": "Allocation ID for instance that's been spun up" }, "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "Unique ID for the host/session relationship" }, "host_type": { "allOf": [ { "$ref": "#/components/schemas/HostType" } ], "description": "Type of the host" }, "host_player_id": { "type": "integer", "title": "Host Player Id", "description": "Player ID of the host, if the host type is player" }, "host_player_uuid": { "type": "string", "format": "uuid", "title": "Host Player Uuid", "description": "Player UUID of the host, if the host type is player" }, "host_dedicated_process_id": { "type": "string", "title": "Host Dedicated Process Id", "description": "Unique ID for the process that is running this instance" }, "host_dedicated_server_id": { "type": "string", "title": "Host Dedicated Server Id", "description": "Unique ID for the machine running the instance" }, "join_status": { "allOf": [ { "$ref": "#/components/schemas/InstanceJoinableStatus" } ], "description": "Is the instance joinable at this time?" }, "join_params": { "allOf": [ { "$ref": "#/components/schemas/JoinParams" } ], "title": "Join Params", "description": "Parameters to join the instance" }, "instance_startup_params": { "allOf": [ { "$ref": "#/components/schemas/InstanceStartupParams" } ], "title": "Instance Startup Params", "description": "Parameters used by the host to startup. For UE5 this will contain the map and gamemode" }, "version": { "type": "string", "format": "semver", "title": "Version", "description": "Product Client Version number. Used for compatibility checking with players", "example": "21.3.15-beta+12345" }, "created": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "instance-defined custom data", "default": {} }, "instance_health": { "allOf": [ { "$ref": "#/components/schemas/InstanceHealthStatus" } ], "description": "The current status of the instance" }, "match_making_profile_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Match Making Profile Id", "description": "The profile id that this instance was spawned from" } }, "type": "object", "required": [ "instance_id", "host_type", "join_status", "created" ], "title": "InstanceInfo", "description": "Information about the instance resource in a session" }, "InstanceInfoUpdate": { "properties": { "allocation_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Allocation Id", "description": "Allocation ID for instance that's been spun up" }, "join_status": { "allOf": [ { "$ref": "#/components/schemas/InstanceJoinableStatus" } ], "description": "Is the instance joinable at this time?" }, "join_params": { "allOf": [ { "$ref": "#/components/schemas/JoinParams" } ], "title": "Join Params", "description": "Parameters to join the instance" }, "version": { "type": "string", "format": "semver", "title": "Version", "description": "Product Client Version number. Used for compatibility checking with players. Must be compatible with all players to spawn", "example": "21.3.15-beta+12345" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "instance-defined custom data", "default": {} } }, "type": "object", "title": "InstanceInfoUpdate", "description": "A request body to update the instance resource in a session" }, "InstanceJoinableStatus": { "type": "string", "enum": [ "requested", "allocated", "pending", "joinable", "unjoinable", "closed" ], "title": "InstanceJoinableStatus", "description": "What state the instance is currently in", "x-enum-descriptions": [ "Searching for a host", "Host has been found, and is loading its session information", "Host has arrived and is loading", "Host is ready to accept players", "Host has marked itself as no longer ready to accept players, but may transition back to joinable", "Host has left, been timed out, or could not be found" ], "x-enum-varnames": [ "requested", "allocated", "pending", "joinable", "unjoinable", "closed" ] }, "InstanceLaunchTemplate": { "properties": { "instance_launch_template_id": { "type": "string", "format": "uuid", "title": "Instance Launch Template Id", "description": "ID to uniquely identify this instance launch template" }, "map_selection_list": { "allOf": [ { "$ref": "#/components/schemas/MapSelectionList" } ], "title": "Map Selection List", "description": "A selection list of maps that can be chosen to launch into" }, "default_host_type": { "allOf": [ { "$ref": "#/components/schemas/HostType" } ], "description": "Default host type for this template. Can be overriden in instance requests" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data that will be passed to the session during the instance launch request", "default": {} } }, "type": "object", "required": [ "instance_launch_template_id", "map_selection_list", "default_host_type" ], "title": "InstanceLaunchTemplate", "description": "**DEPRECATED** Configuration about how an instance should behave when it's allocated" }, "InstanceRequest": { "properties": { "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "Unique ID for the instance, a new one will be generated if not provided" }, "instance_startup_params": { "allOf": [ { "$ref": "#/components/schemas/InstanceStartupParams" } ], "title": "Instance Startup Params", "description": "Parameters used by the host to startup. For UE5 this will contain the map and gamemode" }, "host_type": { "allOf": [ { "$ref": "#/components/schemas/HostType" } ], "description": "Type of the host", "default": "dedicated" }, "instance_request_template_id": { "type": "string", "format": "uuid", "title": "Instance Request Template Id", "description": "Which instance request template should be used to request this instance. Takes priority over instance_startup_params and host_type" }, "host_player_uuid": { "type": "string", "format": "uuid", "title": "Host Player Uuid", "description": "Player UUID of the host, if the host type is player" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "instance-defined custom data", "default": {} } }, "type": "object", "title": "InstanceRequest", "description": "A request body to create an instance resource in a session" }, "InstanceRequestTemplate": { "properties": { "instance_request_template_id": { "type": "string", "format": "uuid", "title": "Instance Request Template Id", "description": "ID to uniquely identify this instance launch template" }, "map_selection_list": { "allOf": [ { "$ref": "#/components/schemas/MapSelectionListV2" } ], "title": "Map Selection List", "description": "A selection list of maps that can be chosen to launch into" }, "default_host_type": { "allOf": [ { "$ref": "#/components/schemas/HostType" } ], "description": "Default host type for this template. Can be overriden in instance requests" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data that will be passed to the session during the instance launch request", "default": {} } }, "type": "object", "required": [ "instance_request_template_id", "map_selection_list", "default_host_type" ], "title": "InstanceRequestTemplate", "description": "Configuration about how an instance should behave when it's allocated" }, "InstanceStartupParams": { "properties": { "map": { "type": "string", "title": "Map", "description": "Name of the map for the instance to spawn with" }, "mode": { "type": "string", "title": "Mode", "description": "Game mode for the instance to spawn in" }, "misc_params": { "type": "string", "title": "Misc Params", "description": "Additional commandline parameters for the instance" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data to pass through to the instance", "default": {} } }, "type": "object", "required": [ "map", "misc_params" ], "title": "InstanceStartupParams", "description": "Parameters given to an instance to change what map and mode it loads, and other gameplay behavior" }, "InviteSource": { "type": "string", "enum": [ "BACKFILL", "MATCHMAKING", "PLAYER" ], "title": "InviteSource", "description": "An enumeration.", "x-enum-descriptions": [ "An enumeration.", "An enumeration.", "An enumeration." ], "x-enum-varnames": [ "BACKFILL", "MATCHMAKING", "PLAYER" ] }, "JoinParams": { "properties": { "public_conn_str": { "type": "string", "title": "Public Conn Str", "description": "Public connection string for instance" }, "private_conn_str": { "type": "string", "title": "Private Conn Str", "description": "Private connection string for instance" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data to join a instance", "default": {} } }, "type": "object", "required": [ "public_conn_str", "private_conn_str" ], "title": "JoinParams", "description": "Parameters provided by the allocation system or an instance on how to connect" }, "MMRGroupingMethod": { "type": "string", "enum": [ "worst", "best", "avg_weighted_by_sigma", "avg" ], "title": "MMRGroupingMethod", "description": "What method should be used to determine a linking's group MMR based on the individuals", "x-enum-descriptions": [ "Use the lowest MMR of any player in the linking", "Use the highest MMR of any player in the linking", "Use the arithmetic mean of the players' skill multiplied by their variance. This is the sum of each player's skill times variance divided by the number of players", "Use the arithmetic mean of the players' skill. This is the sum of each player's skill divided by the number of players" ], "x-enum-varnames": [ "WORST", "BEST", "AVERAGE_BY_VARIANCE", "AVERAGE" ] }, "MapConfig": { "properties": { "map_game_id": { "type": "integer", "minimum": 0, "title": "Map Game Id", "description": "ID to uniquely identify this map game", "default": 0 }, "map_name": { "type": "string", "title": "Map Name", "description": "Name of the map the instance should load into" }, "mode": { "type": "string", "title": "Mode", "description": "Game mode for the instance to spawn in" }, "selection_chance": { "type": "number", "maximum": 100, "minimum": 0, "title": "Selection Chance", "description": "Chance that this map will get selected in a rotation list", "default": 0 }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data to pass through to the instance", "default": {} } }, "type": "object", "required": [ "map_name" ], "title": "MapConfig", "description": "DEPRECATED Configuration about a specific map for an instance to load into" }, "MapConfigV2": { "properties": { "map_id": { "type": "string", "title": "Map Id", "description": "ID to uniquely identify this map game" }, "map_name": { "type": "string", "title": "Map Name", "description": "Name of the map the instance should load into" }, "mode": { "type": "string", "title": "Mode", "description": "Game mode for the instance to spawn in" }, "map_weight": { "type": "number", "maximum": 100, "minimum": 0, "title": "Map Weight", "description": "Chance that this map will get selected in a rotation list" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data to pass through to the instance", "default": {} }, "name": { "type": "string", "title": "Name", "description": "Human readable name for this map" }, "description": { "type": "string", "title": "Description", "description": "Description of the map" } }, "type": "object", "required": [ "map_id", "map_name", "map_weight" ], "title": "MapConfigV2", "description": "Configuration about a specific map for an instance to load into" }, "MapSelectionList": { "properties": { "map_selection_list_id": { "type": "string", "title": "Map Selection List Id", "description": "ID to uniquely identify this map selection list" }, "maps": { "items": { "$ref": "#/components/schemas/MapConfig" }, "type": "array", "title": "Maps", "description": "List of maps that can be chosen in this selection list" } }, "type": "object", "required": [ "map_selection_list_id", "maps" ], "title": "MapSelectionList", "description": "DEPRECATED A list of maps that can be chosen from when an instance is launching" }, "MapSelectionListV2": { "properties": { "map_selection_list_id": { "type": "string", "title": "Map Selection List Id", "description": "ID to uniquely identify this map selection list" }, "maps": { "items": { "$ref": "#/components/schemas/MapConfigV2" }, "type": "array", "title": "Maps", "description": "List of maps that can be chosen in this selection list" } }, "type": "object", "required": [ "map_selection_list_id", "maps" ], "title": "MapSelectionListV2" }, "MatchInfo": { "properties": { "match_id": { "type": "string", "title": "Match Id", "description": "Unique ID" }, "created": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "instance-defined custom data", "default": {} }, "ticket_ids": { "items": { "type": "string" }, "type": "array", "title": "Ticket Ids", "description": "List of tickets that were assigned to this match if created by matchmaking", "default": [] } }, "type": "object", "required": [ "match_id", "created" ], "title": "MatchInfo", "description": "DEPRECATED Information about a match" }, "MatchMakingProfile": { "properties": { "profile_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Profile Id", "description": "ID of the matchmaking profile to join" }, "join_mode": { "allOf": [ { "$ref": "#/components/schemas/ProfileJoinMode" } ], "description": "What mode to set on the matchmaking profile (normal, backfill etc)", "default": "normal" }, "instance_launch_template_id": { "type": "string", "format": "uuid", "title": "Instance Launch Template Id", "description": "Which instance template to use when launching a match in this profile" }, "rank_id": { "type": "string", "title": "Rank Id", "description": "Which rank this profile should use MMR from to make matches from, and update at the end of match (1v1 MMR or 2v2 MMR for example)" }, "num_sides": { "type": "integer", "title": "Num Sides", "description": "The number of sides a game in this profile will have (2 in a 1v1 and 3 in a 1v1v1 for example" }, "max_players_per_side": { "type": "integer", "title": "Max Players Per Side", "description": "The maximum number of players that can be on each team" }, "min_players_per_side": { "type": "integer", "title": "Min Players Per Side", "description": "The minimum number of players that can be on each team" }, "deserter_id": { "type": "string", "title": "Deserter Id", "description": "Unused in the legacy profile. Must use V2 for deserter functionality. Which deserter this profile should check before allowing players to join matchmaking" }, "legacy_config": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Legacy Config", "description": "Legacy config to help migrate clients", "default": {} } }, "type": "object", "required": [ "profile_id", "instance_launch_template_id" ], "title": "MatchMakingProfile", "description": "DEPRECATED A profile that describes what pools of players a session will be a part of when matchmaking" }, "MatchMakingProfileV2": { "properties": { "match_making_profile_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Match Making Profile Id", "description": "ID of the matchmaking profile to join" }, "join_mode": { "allOf": [ { "$ref": "#/components/schemas/ProfileJoinMode" } ], "description": "What mode to set on the matchmaking profile (normal, backfill etc)", "default": "normal" }, "instance_request_template_id": { "type": "string", "format": "uuid", "title": "Instance Request Template Id", "description": "Which instance template to use when launching a match in this profile" }, "rank_id": { "type": "string", "title": "Rank Id", "description": "Which rank this profile should use MMR from to make matches from, and update at the end of match (1v1 MMR or 2v2 MMR for example)" }, "num_sides": { "type": "integer", "title": "Num Sides", "description": "The number of sides a game in this profile will have (2 in a 1v1 and 3 in a 1v1v1 for example" }, "max_players_per_side": { "type": "integer", "title": "Max Players Per Side", "description": "The maximum number of players that can be on each team" }, "min_players_per_side": { "type": "integer", "title": "Min Players Per Side", "description": "The minimum number of players that can be on each team" }, "legacy_config": { "type": "object", "title": "Legacy Config", "description": "Legacy config to help migrate clients" }, "deserter_id": { "type": "string", "title": "Deserter Id", "description": "Which deserter this profile should check before allowing players to join matchmaking" }, "session_template_id": { "type": "string", "format": "uuid", "title": "Session Template Id", "description": "What type of session should result from matchmaking on this profile" } }, "type": "object", "required": [ "match_making_profile_id", "instance_request_template_id" ], "title": "MatchMakingProfileV2", "description": "A profile that describes what pools of players a session will be a part of when matchmaking" }, "MatchMakingRuleset": { "properties": { "rules": { "items": { "$ref": "#/components/schemas/Rule" }, "type": "array", "title": "Rules", "description": "A list of the rules to be checked for this ruleset", "default": [] }, "determiner": { "allOf": [ { "$ref": "#/components/schemas/Determiner" } ], "description": "Determiner of how many rules must be satisfied in this rulest (all, any, one, none)", "default": "allOf" } }, "type": "object", "title": "MatchMakingRuleset", "description": "A collection of rules that are used to determine whether a MatchMakingTemplate should be used" }, "MatchMakingTemplate": { "properties": { "match_making_template_id": { "type": "string", "format": "uuid", "title": "Match Making Template Id", "description": "ID for this unique MatchMakingTemplate" }, "mmr_grouping_method": { "allOf": [ { "$ref": "#/components/schemas/MMRGroupingMethod" } ], "description": "What method should be used to calculate a group's MMR based on the individual player's ranks" }, "ruleset": { "allOf": [ { "$ref": "#/components/schemas/MatchMakingRuleset" } ], "title": "Ruleset", "description": "A set of rules that determine whether or not this matchmaking config should be used." }, "profiles": { "items": { "$ref": "#/components/schemas/MatchMakingProfile" }, "type": "array", "title": "Profiles", "description": "A list of which match making profiles are going to be created on the ticket" } }, "type": "object", "required": [ "mmr_grouping_method", "profiles" ], "title": "MatchMakingTemplate", "description": "DEPRECATED Configuration about what rules must be satisfied to use this template, and what matchmaking profiles the ticket will be a part of" }, "MatchMakingTemplateGroup": { "properties": { "template_group_id": { "type": "string", "format": "uuid", "title": "Template Group Id", "description": "ID for this set of potential matchmaking templates" }, "template_options": { "items": { "$ref": "#/components/schemas/MatchMakingTemplate" }, "type": "array", "title": "Template Options", "description": "List of the different matchmaking templates that could be used. The config is chosen based on a set of rules in each MatchMakingTemplate object. If there are no rules, it's the default template" }, "required_item_ids": { "items": { "type": "integer" }, "type": "array", "uniqueItems": true, "title": "Required Item Ids", "description": "Set of all the item ids that are required to validate every rule contained in this template group", "default": [] } }, "type": "object", "required": [ "template_group_id", "template_options" ], "title": "MatchMakingTemplateGroup", "description": "DEPRECATED A collection of MatchMakingTemplates that may be used when a session enters a queue. The first template that satisfies the necessary rules will be used" }, "MatchMakingTemplateGroupV2": { "properties": { "match_making_template_group_id": { "type": "string", "format": "uuid", "title": "Match Making Template Group Id", "description": "ID for this set of potential matchmaking templates" }, "template_options": { "items": { "$ref": "#/components/schemas/MatchMakingTemplateV2" }, "type": "array", "title": "Template Options", "description": "List of the different matchmaking templates that could be used. The config is chosen based on a set of rules in each MatchMakingTemplate object. If there are no rules, it's the default template" }, "required_item_ids": { "items": { "type": "integer" }, "type": "array", "uniqueItems": true, "title": "Required Item Ids", "description": "Set of all the item ids that are required to validate every rule contained in this template group", "default": [] } }, "type": "object", "required": [ "match_making_template_group_id", "template_options" ], "title": "MatchMakingTemplateGroupV2", "description": "A collection of MatchMakingTemplates that may be used when a session enters a queue. The first template that satisfies the necessary rules will be used" }, "MatchMakingTemplateV2": { "properties": { "match_making_template_id": { "type": "string", "format": "uuid", "title": "Match Making Template Id", "description": "ID for this unique MatchMakingTemplate" }, "mmr_grouping_method": { "allOf": [ { "$ref": "#/components/schemas/MMRGroupingMethod" } ], "description": "What method should be used to calculate a group's MMR based on the individual player's ranks" }, "ruleset": { "allOf": [ { "$ref": "#/components/schemas/MatchMakingRuleset" } ], "title": "Ruleset", "description": "A set of rules that determine whether or not this matchmaking config should be used." }, "profiles": { "items": { "$ref": "#/components/schemas/MatchMakingProfileV2" }, "type": "array", "title": "Profiles", "description": "A list of which match making profiles are going to be created on the ticket" } }, "type": "object", "required": [ "mmr_grouping_method", "profiles" ], "title": "MatchMakingTemplateV2", "description": "Configuration about what rules must be satisfied to use this template, and what matchmaking profiles the ticket will be a part of" }, "MatchmakingInfo": { "properties": { "ticket_id": { "type": "string", "title": "Ticket Id", "description": "Unique ID for this attempt at matchmaking" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "session-defined custom data", "default": {} }, "queue_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Queue Id", "description": "Unique ID for the joined queue" } }, "type": "object", "required": [ "ticket_id" ], "title": "MatchmakingInfo", "description": "Info about the matchmaking status in a session" }, "MatchmakingResults": { "properties": { "match_making_id": { "type": "string", "title": "Match Making Id", "description": "Unique ID" }, "created": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "MMF defined custom data", "default": {} }, "ticket_ids": { "items": { "type": "string" }, "type": "array", "title": "Ticket Ids", "description": "List of tickets that were assigned to this match if created by matchmaking", "default": [] }, "tickets_assigned": { "type": "boolean", "title": "Tickets Assigned", "description": "Whether or not the tickets from these results have been assigned", "default": false } }, "type": "object", "required": [ "match_making_id", "created" ], "title": "MatchmakingResults" }, "Operation": { "type": "string", "enum": [ "eq", "ne", "lt", "le", "gt", "ge" ], "title": "Operation", "description": "What comparison operation should be used when evaluating a rule", "x-enum-descriptions": [ "The two values must be equal", "The two values must not be equal", "Value A must be less than value B", "Value A must be less than or equal to value B", "Value A must be greater than value B", "Value A must be greater than or equal to value B" ], "x-enum-varnames": [ "EQUAL", "NOT_EQUAL", "LESS_THAN", "LESS_THAN_EQUAL", "GREATER_THAN", "GREATER_THAN_EQUAL" ] }, "PlatformID": { "type": "integer", "enum": [ 2, 4, 5, 9, 10, 11, 13, 16, 22, 24, 26, 28 ], "title": "PlatformID", "description": "DEPRECATED. Use Platform instead. Unique ids for different client platforms", "x-enum-descriptions": [ "DEPRECATED. Use platform instead. ID for the platform Anon", "DEPRECATED. Use platform instead. ID for the platform Amazon", "DEPRECATED. Use platform instead. ID for the platform Steam", "DEPRECATED. Use platform instead. ID for the platform PSN", "DEPRECATED. Use platform instead. ID for the platform XboxLive", "DEPRECATED. Use platform instead. ID for the platform Basic", "DEPRECATED. Use platform instead. ID for the platform Google", "DEPRECATED. Use platform instead. ID for the platform Twitch", "DEPRECATED. Use platform instead. ID for the platform NintendoSwitch", "DEPRECATED. Use platform instead. ID for the platform Apple", "DEPRECATED. Use platform instead. ID for the platform NintendoNAID", "DEPRECATED. Use platform instead. ID for the platform Epic" ], "x-enum-varnames": [ "ANON", "AMAZON", "STEAM", "PSN", "XBOX_LIVE", "BASIC", "GOOGLE", "TWITCH", "NINTENDO_SWITCH", "APPLE", "NINTENDO", "EPIC" ] }, "PlatformSession": { "properties": { "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform that this session is for" }, "platform_session_type": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Platform Session Type", "description": "Platform-Specific Identifier for the Platform's template" }, "platform_session_id_base64": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Platform Session Id Base64", "description": "Platform session's unique identifier" }, "players": { "items": { "$ref": "#/components/schemas/PlatformSessionPlayer" }, "type": "array", "title": "Players", "description": "DEPRECATED. PlatformSessions no longer keep tracking of players. Players in the platform session" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Product defined custom data fields about the platform session", "default": {} } }, "type": "object", "required": [ "platform", "platform_session_type", "platform_session_id_base64", "players" ], "title": "PlatformSession", "description": "A platform session resource in a RallyHere session" }, "PlatformSessionPlayer": { "properties": { "player_id": { "type": "integer", "title": "Player Id", "description": "Player ID representing the current player" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID representing the current player" }, "leader": { "type": "boolean", "title": "Leader", "description": "Is this player the leader of the platform session? When setting up the parent session, if all players are from the same platform session, leadership is coordinated", "default": false } }, "type": "object", "required": [ "player_uuid" ], "title": "PlatformSessionPlayer", "description": "A platform player resource in a platform session" }, "PlatformSessionTemplate": { "properties": { "platform_id": { "allOf": [ { "$ref": "#/components/schemas/PlatformID" } ], "description": "DEPRECATED. ID for the platform type for this template. Use 'platform' instead" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform" }, "platform_session_type": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Platform Session Type", "description": "Platform-Specific Identifier for the Platform's template" }, "max_players": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Max Players", "description": "The maximum number of players that can be a part of this platform session" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Product-defined custom data", "default": {} } }, "type": "object", "required": [ "platform_id", "platform", "platform_session_type" ], "title": "PlatformSessionTemplate", "description": "Template used to create new platform sessions for a specific type of platform. Configurable in the developer portal" }, "PlayerDeserterStatus": { "properties": { "deserter_id": { "type": "string", "title": "Deserter Id", "description": "ID for which type of deserter this is" }, "deserter_status": { "type": "boolean", "title": "Deserter Status", "description": "Flag of whether or not the player is a deserter" }, "deserter_expiration": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "deserter_count": { "type": "integer", "minimum": 0, "title": "Deserter Count", "description": "The number of times a player has deserted before the expiration", "default": 0 }, "last_updated": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data about a players desertion status" } }, "type": "object", "required": [ "deserter_id", "deserter_status" ], "title": "PlayerDeserterStatus" }, "PlayerSession": { "properties": { "type": { "type": "string", "title": "Type", "description": "template type" }, "session_ids": { "items": { "type": "string", "maxLength": 128, "minLength": 1 }, "type": "array", "uniqueItems": true, "title": "Session Ids", "description": "Sessions the player is currently a part of for this session type, if any.", "default": [] }, "pending_invites": { "additionalProperties": { "$ref": "#/components/schemas/PlayerSessionInvite" }, "type": "object", "title": "Pending Invites", "description": "Pending invites, if any, for the current player in this session type", "default": {} }, "reserved_sessions": { "items": { "type": "string", "maxLength": 128, "minLength": 1 }, "type": "array", "uniqueItems": true, "title": "Reserved Sessions", "description": "Sessions that the player has a reserved place in, but has not yet been invited", "default": [] } }, "type": "object", "required": [ "type" ], "title": "PlayerSession", "description": "Information about the sessions of a specific type that a player is currently a member of, or invited to" }, "PlayerSessionInvite": { "properties": { "session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id", "description": "Session ID for the invite" }, "inviting_player_uuid": { "type": "string", "format": "uuid", "title": "Inviting Player Uuid", "description": "Player who sent the invite" } }, "type": "object", "required": [ "session_id" ], "title": "PlayerSessionInvite", "description": "Information about an invite to a session that a player received" }, "PlayerSessions": { "properties": { "sessions": { "additionalProperties": { "$ref": "#/components/schemas/PlayerSession" }, "type": "object", "title": "Sessions", "description": "Session associated with this player, and any pending invites", "default": {} }, "last_updated_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" } }, "type": "object", "title": "PlayerSessions", "description": "Information about all sessions that a player is currently a member of, or invited to" }, "ProfileJoinMode": { "type": "string", "enum": [ "normal", "backfill", "created_before" ], "title": "ProfileJoinMode", "description": "Mode that determines what types of match requests the ticket will appear in", "x-enum-descriptions": [ "Ticket will be used to fulfill normal requests (players joining queue regularly to find games)", "Ticket will be used to fulfill backfill requests", "Ticket will be used in normal requests only after a specified amount of time. This makes tickets wait before having their linkings considered" ], "x-enum-varnames": [ "NORMAL", "BACKFILL", "CREATED_BEFORE" ] }, "QueueConfig": { "properties": { "queue_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Queue Id", "description": "ID to uniquely identify this queue" }, "active": { "type": "boolean", "title": "Active", "description": "Flag for whether or not the queue is active, and can be joined or sessions created from it" }, "ranking_type": { "type": "integer", "title": "Ranking Type", "description": "Which rank this queue should use MMR from to make matches from, and update at the end of match (1v1 MMR or 2v2 MMR for example)" }, "num_sides": { "type": "integer", "title": "Num Sides", "description": "The number of sides a game in this queue will have (2 in a 1v1 and 3 in a 1v1v1 for example" }, "max_players_per_side": { "type": "integer", "title": "Max Players Per Side", "description": "The maximum number of players that can be on each team" }, "min_players_per_side": { "type": "integer", "title": "Min Players Per Side", "description": "The minimum number of players that can be on each team" }, "max_queue_group_size": { "type": "integer", "title": "Max Queue Group Size", "description": "The maximum size of a group that can join this queue" }, "match_making_template_group_id": { "type": "string", "format": "uuid", "title": "Match Making Template Group Id", "description": "ID for which group of matchmaking templates/rules will be used when joining this queue" } }, "type": "object", "required": [ "queue_id", "active", "ranking_type", "num_sides", "max_players_per_side", "min_players_per_side", "max_queue_group_size", "match_making_template_group_id" ], "title": "QueueConfig", "description": "DEPRECATED - V1 Configuration about a specific queue" }, "QueueConfigV2": { "properties": { "queue_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Queue Id", "description": "ID to uniquely identify this queue" }, "active": { "type": "boolean", "title": "Active", "description": "Flag for whether or not the queue is active, and can be joined or sessions created from it" }, "max_queue_group_size": { "type": "integer", "title": "Max Queue Group Size", "description": "The maximum size of a group that can join this queue" }, "match_making_template_group_id": { "type": "string", "format": "uuid", "title": "Match Making Template Group Id", "description": "ID for which group of matchmaking templates/rules will be used when joining this queue" }, "legacy_config": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Legacy Config", "description": "Legacy config to help migrate clients", "default": {} } }, "type": "object", "required": [ "queue_id", "active", "max_queue_group_size", "match_making_template_group_id" ], "title": "QueueConfigV2", "description": "V2 Configuration about a specific queue" }, "QueueJoinRequest": { "properties": { "queue_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Queue Id", "description": "ID of the queue to join" }, "additional_join_params": { "allOf": [ { "$ref": "#/components/schemas/AdditionalJoinParams" } ], "title": "Additional Join Params", "description": "Additional fields put on the matchmaking ticket for open match to search with (see https://openmatch.dev/site/docs/reference/api/#searchfields)" }, "map_preferences": { "items": { "type": "string" }, "type": "array", "title": "Map Preferences", "description": "List of map preferences in order from most desired, to least desired", "default": [] }, "passed_queue_time_seconds": { "type": "integer", "minimum": 0, "title": "Passed Queue Time Seconds", "description": "Argument to artifcially add queue time to a ticket. Older tickets are considered for lower quaulity matches. This can be used to get faster matches at the expense of quality, or to restore a session's place in queue after a failure", "default": 0 } }, "type": "object", "required": [ "queue_id" ], "title": "QueueJoinRequest", "description": "A request body to enter into a matchmaking queue" }, "QueueJoinResponse": { "properties": { "ticket_id": { "type": "string", "title": "Ticket Id", "description": "ID for the newly created match making ticket" } }, "type": "object", "required": [ "ticket_id" ], "title": "QueueJoinResponse", "description": "A response for successfully joining a matchmaking queue" }, "QueuesResponse": { "properties": { "queues": { "items": { "$ref": "#/components/schemas/QueueConfig" }, "type": "array", "title": "Queues", "description": "List of queues" } }, "type": "object", "required": [ "queues" ], "title": "QueuesResponse", "description": "DEPRECATED - A list of configuration about queues" }, "QueuesResponseV2": { "properties": { "queues": { "items": { "$ref": "#/components/schemas/QueueConfigV2" }, "type": "array", "title": "Queues", "description": "List of queues" } }, "type": "object", "required": [ "queues" ], "title": "QueuesResponseV2", "description": "A list of configuration about queues" }, "Region": { "properties": { "region_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Region Id", "description": "ID for this region" }, "sort_order": { "type": "integer", "minimum": 0, "title": "Sort Order", "description": "The sorting priority order for this region" }, "custom_only": { "type": "boolean", "title": "Custom Only", "description": "Indicates if the region is for custom games only" }, "description": { "type": "string", "maxLength": 256, "minLength": 1, "title": "Description", "description": "Text description of the region" } }, "type": "object", "required": [ "region_id", "sort_order", "custom_only" ], "title": "Region", "description": "Information about a specific region" }, "RegionsResponse": { "properties": { "regions": { "items": { "$ref": "#/components/schemas/Region" }, "type": "array", "title": "Regions", "description": "List of all regions" }, "cursor": { "type": "integer", "minimum": 0, "title": "Cursor", "description": "Cursor to continue iterating through enabled regions. Non 0 cursor in the response means there are more regions. Pass the returned cursor up on a subsequent call to continue. A 0 cursor in the response means you have reached the end" } }, "type": "object", "required": [ "regions", "cursor" ], "title": "RegionsResponse", "description": "A list of regions and a cursor to continue iterating" }, "Rule": { "properties": { "rule_type": { "allOf": [ { "$ref": "#/components/schemas/RuleType" } ], "description": "What type of rule this is" }, "item_id": { "type": "integer", "title": "Item Id", "description": "Id of the item we are comparing if this is an inventory rule" }, "comparison_operation": { "allOf": [ { "$ref": "#/components/schemas/Operation" } ], "description": "Comparison operation to be performed" }, "comparison_value": { "type": "integer", "title": "Comparison Value", "description": "Value to compare to" } }, "type": "object", "required": [ "rule_type", "comparison_operation", "comparison_value" ], "title": "Rule", "description": "A rule to determine which MatchMakingTemplate should be used on a session entering matchmaking" }, "RuleType": { "type": "string", "enum": [ "Inventory", "LinkingSize", "JoiningSessionSize" ], "title": "RuleType", "description": "What type of rule is being evaluated", "x-enum-descriptions": [ "Comparing the count of a specific item that a player owns", "Comparing the size of the linking (the number of players) in the session to be queued", "Comparing the size of the linking (the number of players) in the session to be queued" ], "x-enum-varnames": [ "INVENTORY", "LINKING_SIZE", "JOINING_SESSION_SIZE" ] }, "SelfSessionPlayerUpdateRequest": { "properties": { "status": { "allOf": [ { "$ref": "#/components/schemas/SessionPlayerStatus" } ], "description": "Status that the player would like after the request is complete. Note that some join operations may promote the player from `member` to `leader`", "default": "member" }, "client_version": { "type": "string", "title": "Client Version", "description": "Semver for updated client" }, "client_settings": { "allOf": [ { "$ref": "#/components/schemas/ClientSettings" } ], "title": "Client Settings", "description": "Which input type and platform the client is using" }, "team_id": { "type": "integer", "minimum": 0, "title": "Team Id", "description": "Which team the player is one" }, "crossplay_preferences": { "allOf": [ { "$ref": "#/components/schemas/CrossplayPreferences" } ], "title": "Crossplay Preferences", "description": "Client's desired crossplay settings to determine which other clients it can play with. If not defined, assumed to be as permissive as possible" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "player-defined custom data", "default": {} } }, "type": "object", "required": [ "client_version", "client_settings", "team_id" ], "title": "SelfSessionPlayerUpdateRequest", "description": "A request body for a player updating information about themselves" }, "Session": { "properties": { "type": { "type": "string", "title": "Type", "description": "template type" }, "session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id", "description": "unique ID for this session within its type" }, "instance": { "allOf": [ { "$ref": "#/components/schemas/InstanceInfo" } ], "title": "Instance", "description": "Info about the current active instance for the session" }, "match": { "allOf": [ { "$ref": "#/components/schemas/MatchInfo" } ], "title": "Match", "description": "DEPRECATED Info about the current match in the instance", "deprecated": true }, "matchmaking_results": { "allOf": [ { "$ref": "#/components/schemas/MatchmakingResults" } ], "title": "Matchmaking Results", "description": "Info about the matchmaking results that resulted in this session" }, "matchmaking": { "allOf": [ { "$ref": "#/components/schemas/MatchmakingInfo" } ], "title": "Matchmaking", "description": "Info about the matchmaking state of the session, if it is in the process of matchmaking" }, "backfill": { "allOf": [ { "$ref": "#/components/schemas/BackfillInfo" } ], "title": "Backfill", "description": "Info about the open-match backfill object for the session" }, "browser": { "allOf": [ { "$ref": "#/components/schemas/BrowserInfo" } ], "title": "Browser", "description": "Info about the browser state of the session" }, "joinable": { "type": "boolean", "title": "Joinable", "description": "Is this session freely joinable by players without an invite?" }, "teams": { "items": { "$ref": "#/components/schemas/SessionTeam" }, "type": "array", "title": "Teams", "description": "List of teams of players currently in the session" }, "platform_session": { "items": { "$ref": "#/components/schemas/PlatformSession" }, "type": "array", "title": "Platform Session", "description": "Child Platform Sessions for this session. A player joining one of the child platform sessions implicitly joins the parent session", "default": [] }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Leader Player or instance defined custom data about this session", "default": {} }, "created": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "region_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Region Id", "description": "Preferred region for the instance and match to take place in" }, "created_by_matchmaking": { "type": "boolean", "title": "Created By Matchmaking", "description": "Flag of whether or not this session was created by matchmaking or not", "default": false } }, "type": "object", "required": [ "type", "session_id", "joinable", "teams", "created" ], "title": "Session", "description": "A session resource" }, "SessionInviteRequest": { "properties": { "team_id": { "type": "integer", "minimum": 0, "title": "Team Id", "description": "Which team the players in the source session should be on" }, "overflow_action": { "allOf": [ { "$ref": "#/components/schemas/TeamOverflowAction" } ], "description": "How we should handle too many players being invited to the chosen team", "default": "fail" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data for all players being invited", "default": {} } }, "type": "object", "title": "SessionInviteRequest" }, "SessionInviteResponse": { "properties": { "players": { "items": { "$ref": "#/components/schemas/SessionPlayerUpdateResponse" }, "type": "array", "title": "Players", "description": "List of players that were updated" } }, "type": "object", "required": [ "players" ], "title": "SessionInviteResponse", "description": "Response to a request to update a session cohort" }, "SessionJoinResponse": { "properties": { "session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id", "description": "Session ID the player is now a part of" } }, "type": "object", "required": [ "session_id" ], "title": "SessionJoinResponse", "description": "Response when a player successfully joins a session" }, "SessionPlayer": { "properties": { "player_id": { "type": "integer", "title": "Player Id", "description": "Legacy id for this player" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "UUID for this player" }, "status": { "allOf": [ { "$ref": "#/components/schemas/SessionPlayerStatus" } ], "description": "Status of the player in the session" }, "inviting_player_uuid": { "type": "string", "format": "uuid", "title": "Inviting Player Uuid", "description": "UUID of the player who sent this players invite, if any" }, "source_session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Source Session Id", "description": "The UUID of the session that this player was invited from" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "player-defined custom data", "default": {} }, "version": { "type": "string", "format": "semver", "title": "Version", "description": "Product Client Version number. Used for compatibility checking with other players and instances", "example": "21.3.15-beta+12345" }, "client_settings": { "allOf": [ { "$ref": "#/components/schemas/ClientSettings" } ], "title": "Client Settings", "description": "Which input type and platform the client is using" }, "crossplay_preferences": { "allOf": [ { "$ref": "#/components/schemas/CrossplayPreferences" } ], "title": "Crossplay Preferences", "description": "Client's desired crossplay settings to determine which other clients it can play with. If not defined, assumed to be as permissive as possible" }, "invited": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "joined": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" } }, "type": "object", "required": [ "player_uuid", "status" ], "title": "SessionPlayer", "description": "A player resource in a session" }, "SessionPlayerStatus": { "type": "string", "enum": [ "leader", "member", "invited", "reserved" ], "title": "SessionPlayerStatus", "description": "What membership state players have in a session", "x-enum-descriptions": [ "Player is the leader of the session. Is allowed to perform admin actions on the session", "Player is an active member of the session. Is allowed basic actions on the session", "Player has been invited to the session, but has not accepted or declined", "Player's spot has been reserved on the session, but the player has not yet been notified" ], "x-enum-varnames": [ "leader", "member", "invited", "reserved" ] }, "SessionPlayerUpdateRequest": { "properties": { "status": { "allOf": [ { "$ref": "#/components/schemas/SessionPlayerStatus" } ], "description": "Status that the player would like after the request is complete. Note that some join operations may promote the player from `member` to `leader`", "default": "member" }, "team_id": { "type": "integer", "minimum": 0, "title": "Team Id", "description": "Which team the player should be on" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "player-defined custom data", "default": {} }, "overflow_action": { "allOf": [ { "$ref": "#/components/schemas/TeamOverflowAction" } ], "description": "How we should handle too many players being invited to the chosen team", "default": "fail" } }, "type": "object", "required": [ "team_id" ], "title": "SessionPlayerUpdateRequest", "description": "A request body to update information about a player in a session" }, "SessionPlayerUpdateResponse": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID of the player updated" }, "status": { "allOf": [ { "$ref": "#/components/schemas/SessionPlayerStatus" } ], "description": "Status of the player after the request is completed" }, "team_id": { "type": "integer", "minimum": 0, "title": "Team Id", "description": "Which team the player joined" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Resulting custom data about the player", "default": {} } }, "type": "object", "required": [ "status", "team_id" ], "title": "SessionPlayerUpdateResponse", "description": "Response to a request to update a player in a session" }, "SessionTeam": { "properties": { "players": { "items": { "$ref": "#/components/schemas/SessionPlayer" }, "type": "array", "title": "Players", "description": "Players currently on this team" }, "max_size": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Max Size", "description": "Maximum number of players allowed on this team" }, "team_id": { "type": "integer", "minimum": 0, "title": "Team Id", "description": "Which team this is" }, "ticket_ids": { "items": { "type": "string" }, "type": "array", "title": "Ticket Ids", "description": "Matchmaking tickets that were assigned to this team" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data about this team" } }, "type": "object", "required": [ "players", "max_size" ], "title": "SessionTeam", "description": "A team of SessionPlayers in a session" }, "SessionTemplate": { "properties": { "session_type": { "type": "string", "title": "Session Type", "description": "unique name for this template" }, "engine_session_type": { "type": "string", "title": "Engine Session Type", "description": "Engine identifier for sessions of this type. For UE, this is commonly `Party` or `Game`.", "default": "Game" }, "can_join_matchmaking": { "type": "boolean", "title": "Can Join Matchmaking", "description": "Are sessions of this type allowed to join matchmaking?", "default": false }, "can_be_created_by_players_directly": { "type": "boolean", "title": "Can Be Created By Players Directly", "description": "Are players allowed to create sessions of this type?", "default": false }, "joinable": { "type": "boolean", "title": "Joinable", "description": "DEPRECATED. Use 'attempt_auto_join' instead. Should players join existing sessions of this type before creating a new one", "default": false }, "attempt_auto_join": { "type": "boolean", "title": "Attempt Auto Join", "description": "Should players join existing sessions of this type before creating a new one", "default": false }, "default_public": { "type": "boolean", "title": "Default Public", "description": "Should sessions of this type should be publicly joinable by default", "default": false }, "auto_add_to_browser": { "type": "boolean", "title": "Auto Add To Browser", "description": "Should session be automatically added to the browser list", "default": false }, "auto_browser_params": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Auto Browser Params", "description": "Browser parameters that can be used to filter results", "default": {} }, "can_be_added_to_server_browser": { "type": "boolean", "title": "Can Be Added To Server Browser", "description": "Are sessions of this type able to be added to the server browser by players?", "default": false }, "keep_alive_on_empty": { "type": "boolean", "title": "Keep Alive On Empty", "description": "Should the session stay around, or be destroyed when the last player leaves it?", "default": false }, "platform_templates": { "additionalProperties": { "$ref": "#/components/schemas/PlatformSessionTemplate" }, "type": "object", "title": "Platform Templates", "description": "Platform-Specific session mappings that are used to coordinate Rally Here sessions with OnlineSubsystem sessions", "default": {} }, "auto_startup_params": { "allOf": [ { "$ref": "#/components/schemas/InstanceStartupParams" } ], "title": "Auto Startup Params", "description": "Parameters used to start an instance for this session when it is created. Has lower priority than auto_startup_instance_template_id" }, "auto_startup_instance_template_id": { "type": "string", "format": "uuid", "title": "Auto Startup Instance Template Id", "description": "ID of instance request template to be used to automatically request an instance on creation of a session of this type. Takes priority over auto_startup_params" }, "min_session_count": { "type": "integer", "title": "Min Session Count", "description": "Minimum number of this type of session to be running at any given time per region.", "default": 0 }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Product-defined custom data about this session type", "default": {} }, "num_teams": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Num Teams", "description": "The number of teams this session type can have", "default": 1 }, "players_per_team": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Players Per Team", "description": "The number of players that can be on each team", "default": 4 }, "can_change_own_team": { "type": "boolean", "title": "Can Change Own Team", "description": "Whether or not a player can change which team they are on. If true, they are able to. If False, they player's team can only be changed by an admin", "default": true }, "notify_on_reservation": { "type": "boolean", "title": "Notify On Reservation", "description": "If players should be notified when they are reserved in this type of session instead of waiting until they're invited", "default": true } }, "type": "object", "required": [ "session_type" ], "title": "SessionTemplate", "description": "Template used to create new RallyHere sessions of a specific type. Configurable in the developer portal" }, "SessionTemplates": { "properties": { "templates": { "additionalProperties": { "$ref": "#/components/schemas/SessionTemplate" }, "type": "object", "title": "Templates", "description": "Dictionary of SessionTemplates keyed on their template type", "default": {} } }, "type": "object", "title": "SessionTemplates", "description": "A mapping of RallyHere session template types to the templates" }, "SessionUpdate": { "properties": { "region_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Region Id", "description": "Preferred region for the instance and match to take place in" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Leader Player or instance defined custom data about this session" }, "joinable": { "type": "boolean", "title": "Joinable", "description": "Flag for if players can freely join this session without an invite" }, "teams": { "items": { "$ref": "#/components/schemas/TeamUpdate" }, "type": "array", "maxItems": 50, "title": "Teams", "description": "List of team size updates for this session. The length of the list represents the number of desired teams" } }, "type": "object", "title": "SessionUpdate", "description": "A request body to update information about a session resource" }, "TeamOverflowAction": { "type": "string", "enum": [ "fail", "allow_overflow", "partial_with_overflow", "partial_without_overflow", "overfill" ], "title": "TeamOverflowAction", "description": "How too many players being invited to a single team should be handled", "x-enum-descriptions": [ "Raise an error when too many players are invited to the same team", "Attempt to fill other teams when too many players are invited to one team. Will return an error if there is not enough room for all players", "Invite as many players as possible, and allow them to overflow onto other teams if necessary. Some players may not get invited. Will return an error if no players are invited", "Invite as many players as possible to the chosen team, and do not allow them to overflow. Some players may not get invited. Will return an error if no players are invited", "Overfill the specific team (ex. allow 6 players on a team that normally only allows 5)" ], "x-enum-varnames": [ "fail", "allow_overflow", "partial_with_overflow", "partial_without_overflow", "overfill" ] }, "TeamUpdate": { "properties": { "max_size": { "type": "integer", "maximum": 100, "minimum": 1, "title": "Max Size", "description": "Maximum number of players for this team" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data about this team" } }, "type": "object", "title": "TeamUpdate", "description": "An update to a specific team's number of max players" }, "UpdateBackfillRequest": { "properties": { "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "The instance ID for this backfill request" }, "additional_join_params": { "allOf": [ { "$ref": "#/components/schemas/AdditionalJoinParams" } ], "title": "Additional Join Params", "description": "Additional fields put on the matchmaking ticket for open match to search with (see https://openmatch.dev/site/docs/reference/api/#searchfields)" }, "teams": { "items": { "$ref": "#/components/schemas/BackfillTeam" }, "type": "array", "title": "Teams", "description": "The teams and number of players that need to be backfilled. Leaving this out (or supplying an empty list) is treated as no players are currently required", "default": [] } }, "type": "object", "required": [ "instance_id" ], "title": "UpdateBackfillRequest" }, "VivoxSessionActionSingle": { "type": "string", "enum": [ "join", "join_muted", "kick", "mute", "trxn" ], "title": "VivoxSessionActionSingle", "description": "An enumeration.", "x-enum-descriptions": [ "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration." ], "x-enum-varnames": [ "JOIN", "JOIN_MUTED", "KICK", "MUTE", "TRANSCRIBE" ] }, "VoipSessionType": { "type": "string", "enum": [ "session", "team" ], "title": "VoipSessionType", "description": "An enumeration.", "x-enum-descriptions": [ "An enumeration.", "An enumeration." ], "x-enum-varnames": [ "SESSION", "TEAM" ] }, "VoipTokenResponse": { "properties": { "token": { "type": "string", "title": "Token", "description": "Signed auth voip login token for a specific client" }, "issuer": { "type": "string", "title": "Issuer", "description": "Issuer for client's login token" }, "server": { "type": "string", "title": "Server", "description": "Server for voip login" }, "channel_name": { "type": "string", "title": "Channel Name", "description": "Channel name for the generated token if relevant" } }, "type": "object", "required": [ "token", "issuer", "server" ], "title": "VoipTokenResponse" }, "CacheInfo": { "properties": { "etag": { "type": "string", "minLength": 1, "title": "Etag" }, "str_rep": { "type": "string", "title": "Str Rep" } }, "type": "object", "required": [ "etag" ], "title": "CacheInfo", "description": "Cache information for the resource it is attached to. The etag value can be used with the If-None-Match and If-Match headers" }, "Catalog": { "properties": { "xp_tables": { "allOf": [ { "$ref": "#/components/schemas/XpTables" } ], "title": "Xp Tables", "description": "The XP Tables." }, "portal_use_rulesets": { "allOf": [ { "$ref": "#/components/schemas/PortalUseRulesets" } ], "title": "Portal Use Rulesets", "description": "The Portal Use Rulesets. Use Inventory Bucket Use Rule Sets instead.", "deprecated": true }, "inventory_bucket_use_rule_sets": { "allOf": [ { "$ref": "#/components/schemas/InventoryBucketUseRuleSets" } ], "title": "Inventory Bucket Use Rule Sets", "description": "The rules on how to use Inventory Buckets." }, "vendors": { "allOf": [ { "$ref": "#/components/schemas/Vendors" } ], "title": "Vendors", "description": "The Vendors." }, "loot": { "allOf": [ { "$ref": "#/components/schemas/Loots" } ], "title": "Loot", "description": "The Loots." }, "items": { "allOf": [ { "$ref": "#/components/schemas/Items" } ], "title": "Items", "description": "The Items." }, "price_points": { "allOf": [ { "$ref": "#/components/schemas/PricePoints" } ], "title": "Price Points", "description": "The Price Points." }, "time_frames": { "allOf": [ { "$ref": "#/components/schemas/TimeFrames" } ], "title": "Time Frames", "description": "The Time Frames." }, "skus": { "allOf": [ { "$ref": "#/components/schemas/PlatformSKUs" } ], "title": "Skus", "description": "The Platform SKUs." }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache info for the Catalog." } }, "type": "object", "title": "Catalog", "description": "Full list of all loaded objects for the catalog. Organized in a normalized model" }, "ClaimKeyRequest": { "properties": { "external_key_type": { "type": "string", "title": "External Key Type", "default": "Type of the External Key" } }, "type": "object", "title": "ClaimKeyRequest", "description": "Attempt to claim a Key Claim from a Marketing Campaign." }, "ClientType": { "type": "string", "enum": [ "UNKNOWN", "WIN", "MAC", "XBOXONE", "PS4", "SWITCH", "ANDROID", "IOS", "PS5", "LINUX", "XSX" ], "title": "ClientType", "description": "Client type for Entitlements", "x-enum-descriptions": [ "Unknown client type", "Windows client type", "Mac client type", "XboxOne client type", "Playstation 4 client type", "Nintendo Switch client type", "Android client type", "iOS client type", "Playstation 5 client type", "Linux client type", "XSX client type" ], "x-enum-varnames": [ "UNKNOWN", "WIN", "MAC", "XBOXONE", "PS4", "SWITCH", "ANDROID", "IOS", "PS5", "LINUX", "XSX" ] }, "CreateInventoryRequest": { "properties": { "bucket": { "allOf": [ { "$ref": "#/components/schemas/InventoryBucket" } ], "description": "Inventory Bucket for this Inventory Operation.", "default": "none" }, "count": { "type": "integer", "title": "Count", "description": "Count for this Inventory Operation.", "default": 1 }, "expires": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Arbitrary data map that can be set to add additional data to Inventory." }, "item_id": { "type": "integer", "title": "Item Id" }, "type": { "allOf": [ { "$ref": "#/components/schemas/CreateInventoryType" } ], "default": "persistent" } }, "type": "object", "required": [ "item_id" ], "title": "CreateInventoryRequest", "description": "Request to Create a new Inventory." }, "CreateInventoryRequests": { "properties": { "source": { "allOf": [ { "$ref": "#/components/schemas/Source" } ], "description": "Source of this Inventory Operation.", "default": "CLIENT" }, "client_order_ref_id": { "type": "string", "format": "uuid", "title": "Client Order Ref Id", "description": "Arbitrary UUID that can be used by clients to correlate Order requests with Order responses." }, "inventory": { "items": { "$ref": "#/components/schemas/CreateInventoryRequest" }, "type": "array", "minItems": 1, "title": "Inventory" } }, "type": "object", "required": [ "inventory" ], "title": "CreateInventoryRequests", "description": "Collection of Create Inventory Requests. This will create new Inventory for each request. Each individual entry will be processed in the order they are specified in the collection.\n\nNote: Partial success is possible as each request is processed individually." }, "CreateInventoryType": { "type": "string", "enum": [ "persistent", "transient" ], "title": "CreateInventoryType", "description": "An enumeration.", "x-enum-descriptions": [ "Inventory that persists between Inventory Sessions.", "Inventory that does not persist between Inventory Sessions." ], "x-enum-varnames": [ "PERSISTENT", "TRANSIENT" ] }, "EntitlementActionType": { "type": "string", "enum": [ "grant", "refund", "chargeback", "chargeback_reversal" ], "title": "EntitlementActionType", "description": "Action to take for the Entitlement on a user", "x-enum-descriptions": [ "Event for granting an Entitlement to the user", "Event for refunding an Entitlement to the user", "Event for refunding an Entitlement to the user due to a chargeback to the original payment", "Event for re-granting an Entitlement to the user after a chargeback was reversed" ], "x-enum-varnames": [ "grant", "refund", "chargeback", "chargeback_reversal" ] }, "EntitlementErrorCode": { "type": "string", "enum": [ "none", "auth_token_failure", "missing_information", "failed_to_consume", "no_sku_found", "wrong_sku_type_provided", "durable_authority_type_not_valid", "durable_single_use_authority_type_not_valid", "consumable_authority_type_not_valid", "unknown_sku_type_provided", "failed_to_submit_order", "already_applied_durable_single_use", "quantity_zero", "previously_applied" ], "title": "EntitlementErrorCode", "description": "Error codes for Entitlements", "x-enum-descriptions": [ "No error occured", "Failed to find or validate the auth token", "Missing information in the request", "Failed to consume the entitlement", "No SKU found for this entitlement on the backend", "Entitlement is defined with a different SKU type than the one provided", "Durable entitlements are not allowed by this platform", "Durable single use entitlements are not allowed by this platform", "Consumable entitlements are not allowed by this platform", "Unknown SKU type provided", "Failed to submit the order to the backend", "Durable single use entitlement has already been applied", "Quantity was zero, nothing to apply", "Entitlement was previously applied" ], "x-enum-varnames": [ "NONE", "AUTH_TOKEN_FAILURE", "MISSING_INFORMATION", "FAILED_TO_CONSUME", "NO_SKU_FOUND", "WRONG_SKU_TYPE_PROVIDED", "DURABLE_AUTHORITY_TYPE_NOT_VALID", "DURABLE_SINGLE_USE_AUTHORITY_TYPE_NOT_VALID", "CONSUMABLE_AUTHORITY_TYPE_NOT_VALID", "UNKNOWN_SKU_TYPE_PROVIDED", "FAILED_TO_SUBMIT_ORDER", "ALREADY_APPLIED_DURABLE_SINGLE_USE", "QUANTITY_ZERO", "PREVIOUSLY_APPLIED" ] }, "EntitlementEvent": { "properties": { "event_id": { "type": "string", "title": "Event Id", "description": "The unique identifier for the event" }, "action_type": { "allOf": [ { "$ref": "#/components/schemas/EntitlementActionType" } ], "description": "The type of the event" }, "entitlement_type": { "allOf": [ { "$ref": "#/components/schemas/EntitlementType" } ], "description": "The type of entitlement when the event occurred" }, "status": { "allOf": [ { "$ref": "#/components/schemas/EntitlementEventStatus" } ], "description": "The status of the event" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "The player UUID for the event" }, "player_id": { "type": "integer", "title": "Player Id", "description": "The player ID for the event", "deprecated": true }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "The platform for the event" }, "platform_user_id": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "The platform user ID for the event" }, "sku": { "type": "string", "maxLength": 2048, "title": "Sku", "description": "The SKU for the event" }, "quantity": { "type": "integer", "title": "Quantity", "description": "The quantity for the event" }, "platform_transaction_id": { "type": "string", "maxLength": 4096, "title": "Platform Transaction Id", "description": "The external transaction ID for the event" }, "platform_data": { "type": "object", "title": "Platform Data", "description": "The platform specific data for the event" }, "order_id": { "type": "string", "title": "Order Id", "description": "The order ID for the event" }, "loot_id": { "type": "integer", "title": "Loot Id", "description": "The loot ID for the event" }, "key_claim_uuid": { "type": "string", "format": "uuid", "title": "Key Claim Uuid", "description": "The portal user key claim id" }, "created": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "last_modified": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" } }, "type": "object", "required": [ "event_id", "action_type", "status", "player_uuid", "platform", "platform_user_id", "sku", "quantity", "created", "last_modified" ], "title": "EntitlementEvent" }, "EntitlementEventList": { "properties": { "events": { "items": { "$ref": "#/components/schemas/EntitlementEvent" }, "type": "array", "title": "Events", "description": "The list of events" }, "cursor": { "type": "string", "title": "Cursor", "description": "The cursor for the next page of events" } }, "type": "object", "required": [ "events" ], "title": "EntitlementEventList" }, "EntitlementEventRequest": { "properties": { "action_type": { "allOf": [ { "$ref": "#/components/schemas/EntitlementActionType" } ], "description": "The type of the event" }, "status": { "allOf": [ { "$ref": "#/components/schemas/EntitlementEventStatus" } ], "description": "The status of the event" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Override the player UUID for the event. If not provided, the active player for the platform user will be used" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "The platform for the event" }, "platform_user_id": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "The platform user ID for the event" }, "sku": { "type": "string", "maxLength": 2048, "title": "Sku", "description": "The SKU for the event" }, "quantity": { "type": "integer", "title": "Quantity", "description": "The quantity for the event", "default": 1 }, "platform_transaction_id": { "type": "string", "maxLength": 4096, "title": "Platform Transaction Id", "description": "The external transaction ID for the event" }, "platform_data": { "type": "object", "title": "Platform Data", "description": "The platform specific data for the event" } }, "type": "object", "required": [ "action_type", "platform", "platform_user_id", "sku", "platform_transaction_id" ], "title": "EntitlementEventRequest" }, "EntitlementEventStatus": { "type": "string", "enum": [ "success", "sku_not_found", "not_implemented", "player_not_found" ], "title": "EntitlementEventStatus", "description": "An enumeration.", "x-enum-descriptions": [ "The event was successful", "The SKU was not found", "The requested operation is not implemented yet", "The player was not found" ], "x-enum-varnames": [ "success", "sku_not_found", "not_implemented", "player_not_found" ] }, "EntitlementStatus": { "type": "string", "enum": [ "UNKNOWN", "SUBMITTED", "FULFILLED", "FAILED", "PREVIOUSLY_APPLIED" ], "title": "EntitlementStatus", "description": "Status of an Entitlement", "x-enum-descriptions": [ "Entitlement status is unknown", "Entitlement has been submitted to the backend", "Entitlement has been fulfilled", "Entitlement has failed, check error_code for more information", "Entitlement was previously applied" ], "x-enum-varnames": [ "UNKNOWN", "SUBMITTED", "FULFILLED", "FAILED", "PREVIOUSLY_APPLIED" ] }, "EntitlementType": { "type": "string", "enum": [ "consumable", "durable", "durable_single_use" ], "title": "EntitlementType", "description": "The method of granting a Platform Entitlement SKU", "x-enum-descriptions": [ "Consumable entitlements are removed from the platform's record keeping system when used.", "Durable entitlements stay in the platform's recorded keeping system and is granted to the Player each time entitlements are granted.", "Durable single use entitlements stay in the platform's recorded keeping system and is granted to the Player only once." ], "x-enum-varnames": [ "consumable", "durable", "durable_single_use" ] }, "ExternalKeyEntitlement": { "properties": { "external_key_campaign_id": { "type": "string", "format": "uuid", "title": "External Key Campaign Id", "description": "The External Key Campaign ID" }, "quantity": { "type": "integer", "exclusiveMinimum": true, "title": "Quantity", "description": "The quantity of the External Key Entitlement", "minimum": 0 } }, "type": "object", "required": [ "external_key_campaign_id", "quantity" ], "title": "ExternalKeyEntitlement" }, "Inventory": { "properties": { "items": { "additionalProperties": { "$ref": "#/components/schemas/ItemInventory" }, "type": "object", "title": "Items", "description": "Item Inventories for this Inventory.", "default": {} }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache Info for this Inventory." } }, "type": "object", "title": "Inventory", "description": "Inventory for a Player organized by Item ID." }, "InventoryBucket": { "type": "string", "enum": [ "free", "sweat", "none", "anon", "amazon", "steam", "psn", "xbox_live", "google", "twitch", "nintendo_switch", "apple", "nintendo", "epic", "google_play", "nintendo_ppid" ], "title": "InventoryBucket", "description": "Grouping of Inventory Items. Inventory items are grouped into different buckets as each Platform that is supported has different requirements on how Inventory can be used on their Platform and other Platforms.", "x-enum-descriptions": [ "Inventory given away for free.", "Inventory earned by players through in game activities.", "Inventory that doesn't belong to any known platform.", "Inventory assigned to the anonymous platform.", "Inventory assigned to the amazon platform.", "Inventory assigned to the steam platform.", "Inventory assigned to the playstation platform.", "Inventory assigned to the Xbox platform.", "Inventory assigned to the Google platform.", "Inventory assigned to the Twitch platform.", "Inventory assigned to the Nintendo Switch platform.", "Inventory assigned to the Apple platform.", "Inventory assigned to the Nintendo platform.", "Inventory assigned to the Epic platform.", "Inventory assigned to the Google Play platform.", "Inventory assigned to the Nintendo PPID platform." ], "x-enum-varnames": [ "FREE", "SWEAT", "NONE", "ANON", "AMAZON", "STEAM", "PSN", "XBOX_LIVE", "GOOGLE", "TWITCH", "NINTENDO_SWITCH", "APPLE", "NINTENDO", "EPIC", "GOOGLE_PLAY", "NINTENDO_PPID" ] }, "InventoryBucketUseRuleSet": { "properties": { "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom data associated with the resource", "default": {} }, "rules": { "additionalProperties": { "items": { "$ref": "#/components/schemas/InventoryBucket" }, "type": "array" }, "type": "object", "title": "Rules", "default": {} }, "cache_info": { "$ref": "#/components/schemas/CacheInfo" } }, "type": "object", "title": "InventoryBucketUseRuleSet", "description": "A collection of Inventory Bucket Use Rules." }, "InventoryBucketUseRuleSets": { "properties": { "rule_sets": { "additionalProperties": { "$ref": "#/components/schemas/InventoryBucketUseRuleSet" }, "type": "object", "title": "Rule Sets", "default": {} }, "cache_info": { "$ref": "#/components/schemas/CacheInfo" } }, "type": "object", "title": "InventoryBucketUseRuleSets", "description": "A collection of Inventory Bucket Use Rule Sets. A rule set determine how item can be used across buckets." }, "InventoryContextResponse": { "properties": { "inventory": { "allOf": [ { "$ref": "#/components/schemas/Inventory" } ], "title": "Inventory", "description": "Inventory Context for a Player.", "default": { "items": {} } } }, "type": "object", "title": "InventoryContextResponse", "description": "Inventory Context for a Player." }, "InventoryOperation": { "type": "string", "enum": [ "invalid", "add", "subtract", "set", "check_greater_than_or_equal", "check_less_than", "check_greater_than_or_equal_and_subtract" ], "title": "InventoryOperation", "description": "Determines how the Inventory Quantity will be acted upon and the sort order of Loot in a Vendor.\n\nSort Order:\n1. check_greater_then_or_equal/check_less_than\n2. check_greater_than_or_equal_and_subtract/subtract\n3. add/set", "x-enum-descriptions": [ "Invalid Inventory Operation.", "Add the quantity or expiration of the Inventory.", "Subtract the quantity or expiration of the Inventory.", "Set the quantity or expiration of the Inventory.", "Check if the quantity or expiration of the Inventory is greater than or equal to the value.", "Check if the quantity or expiration of the Inventory is less than the value.", "Check if the quantity or expiration of the Inventory is greater than or equal to the value and subtract the value from the quantity or expiration." ], "x-enum-varnames": [ "invalid", "add", "subtract", "set", "check_greater_than_or_equal", "check_less_than", "check_greater_than_or_equal_and_subtract" ] }, "InventoryRecord": { "properties": { "inventory_id": { "type": "string", "format": "uuid", "title": "Inventory Id", "description": "Unique ID for this Inventory Record." }, "type": { "allOf": [ { "$ref": "#/components/schemas/InventoryType" } ], "description": "Type of Inventory Record." }, "legacy_inventory_id": { "type": "integer", "format": "int64", "title": "Legacy Inventory Id", "description": "Legacy Inventory ID." }, "bucket": { "allOf": [ { "$ref": "#/components/schemas/InventoryBucket" } ], "description": "Bucket for this Inventory Record.", "default": "none" }, "count": { "type": "integer", "title": "Count", "description": "Instance count for this Inventory Record." }, "acquired": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "expires": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Arbitrary map of data for this Inventory Record." } }, "type": "object", "required": [ "inventory_id", "type", "count", "acquired" ], "title": "InventoryRecord", "description": "Inventory Record for a Player" }, "InventorySelector": { "type": "string", "enum": [ "invalid", "own", "rent", "rent_timeframe_locked", "own_transient", "inherit_entitlement_inventory" ], "title": "InventorySelector", "description": "Determines way Inventory Selected and to be modified.", "x-enum-descriptions": [ "Invalid Inventory Selector.", "The Inventory will be stored across Inventory Sessions.", "The Inventory will be stored across Inventory Sessions but will expire after a period of time. Quantity modification will modify the Inventory's expiration time.", "The Inventory will be stored across Inventory Sessions by will expire after a period of time. Quantity modification will not modify the Inventory's expiration time but instead the quantity of the Inventory.", "The Inventory will by fulfilled as transient Inventory and will not persist across Inventory Sessions.", "Loot fulfilled will look for a parent Entitlement and then grant the Loot as transient Inventory with the rental expiration as the parent." ], "x-enum-varnames": [ "invalid", "own", "rent", "rent_timeframe_locked", "own_transient", "inherit_entitlement_inventory" ] }, "InventorySession": { "properties": { "session_id": { "type": "string", "title": "Session Id", "description": "Unique ID for this Inventory Session." }, "session_platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform for this Inventory Session." }, "applied_durable_loot": { "items": { "type": "integer" }, "type": "array", "title": "Applied Durable Loot", "description": "Durable Loot that has been applied when this Inventory Session was created.", "default": [] } }, "type": "object", "required": [ "session_id" ], "title": "InventorySession", "description": "Inventory Session for a Player." }, "InventorySessionCreateRequest": { "properties": { "session_platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "The platform for the session." } }, "type": "object", "title": "InventorySessionCreateRequest", "description": "Request body for creating a new Inventory Session." }, "InventorySessionCreateResponse": { "properties": { "session_id": { "type": "string", "title": "Session Id", "description": "The ID of the session." }, "session_platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "The platform for the session." }, "order_id": { "type": "string", "title": "Order Id", "description": "The ID of the Order generated for any Loot given during the creation of the Inventory Session." } }, "type": "object", "required": [ "session_id" ], "title": "InventorySessionCreateResponse", "description": "Response body for creating a new Inventory Session." }, "InventoryType": { "type": "string", "enum": [ "persistent", "transient", "always_owned" ], "title": "InventoryType", "description": "An enumeration.", "x-enum-descriptions": [ "Inventory that persists between Inventory Sessions.", "Stays around for the length of the Inventory Sessions.", "Items that are given to all Players and cannot be modified." ], "x-enum-varnames": [ "PERSISTENT", "TRANSIENT", "ALWAYS_OWNED" ] }, "Item": { "properties": { "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom data associated with the resource", "default": {} }, "item_uuid": { "type": "string", "format": "uuid", "title": "Item Uuid", "description": "The Item UUID" }, "type": { "allOf": [ { "$ref": "#/components/schemas/ItemType" } ], "description": "The type of item.", "default": "unit" }, "legacy_type": { "type": "integer", "title": "Legacy Type", "default": 0, "deprecated": true }, "legacy_subtype": { "type": "integer", "title": "Legacy Subtype", "default": 0, "deprecated": true }, "ref_item_id": { "type": "integer", "title": "Ref Item Id", "default": 0, "deprecated": true }, "availability_flags": { "type": "integer", "title": "Availability Flags", "default": 0, "deprecated": true }, "entitled_loot_uuid": { "type": "string", "format": "uuid", "title": "Entitled Loot Uuid", "description": "This is only valid for an entitlement Item. When this item is granted and Inventory Session creation, this is the Loot that will be fulfilled." }, "entitled_loot_id": { "type": "integer", "title": "Entitled Loot Id", "description": "This is only valid for an entitlement Item. When this item is granted and Inventory Session creation, this is the Loot ID that will be fulfilled.", "default": 0 }, "level_xp_table_uuid": { "type": "string", "format": "uuid", "title": "Level Xp Table Uuid", "description": "The XP Table that is used to determine the Player's level for this XP. The level increase occurs when the quantity of this Item increases above the minimum XP of an XP Level. This is only valid for an unit Item." }, "level_xp_table_id": { "type": "integer", "title": "Level Xp Table Id", "description": "The XP Table that is used to determine the Player's level for this XP. The level increase occurs when the quantity of this Item increases above the minimum XP of an XP Level. This is only valid for an unit Item.", "default": 0 }, "level_vendor_uuid": { "type": "string", "format": "uuid", "title": "Level Vendor Uuid", "description": "The Vendor that is used filfill level up rewards for this item. The level of the Player is used as the index into the Vendor's Loot table. This is only valid for an unit Item." }, "level_vendor_id": { "type": "integer", "title": "Level Vendor Id", "description": "The Vendor that is used filfill level up rewards for this item. The level of the Player is used as the index into the Vendor's Loot table. This is only valid for an unit Item.", "default": 0 }, "coupon_discount_currency_item_uuid": { "type": "integer", "title": "Coupon Discount Currency Item Uuid", "description": "The item of the currency used by this coupon. This is only valid for an unit Item." }, "coupon_discount_currency_item_id": { "type": "integer", "title": "Coupon Discount Currency Item Id", "description": "The item of the currency used by this coupon. This is only valid for an unit Item.", "default": 0 }, "coupon_discount_percentage": { "type": "number", "maximum": 1, "minimum": 0, "title": "Coupon Discount Percentage", "description": "The percentage of the discount. This is only valid for an unit Item.", "default": 0 }, "coupon_consume_on_use": { "type": "boolean", "title": "Coupon Consume On Use", "description": "If true, the coupon will be consumed when used; reducing the Player's Inventory quantity by 1. This is only valid for an unit Item.", "default": false }, "item_portal_use_ruleset_id": { "type": "integer", "title": "Item Portal Use Ruleset Id", "default": 0, "deprecated": true }, "inventory_bucket_use_rule_set_id": { "type": "string", "title": "Inventory Bucket Use Rule Set Id", "description": "The Inventory Bucket Use Rule Set ID that determines how this item can be used across buckets." }, "coupon_discount_loot": { "items": { "type": "integer" }, "type": "array", "title": "Coupon Discount Loot", "description": "List of Loot IDs this item can discount", "default": [] }, "coupon_discount_loot_uuid": { "items": { "type": "string", "format": "uuid" }, "type": "array", "title": "Coupon Discount Loot Uuid", "description": "List of Loot this item can discount", "default": [] }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache information for this item." } }, "type": "object", "title": "Item", "description": "An Item. Item come in a couple of different flavors; determined by the `type` field.\n`Unit` items are stored in a player's inventory.\n`Recipe` items are not stored in a player's inventory and are used to fulfill SubVendor Loot.\n`RecipeWithPriceReduction` items are not stored in a player's inventory and are used to fulfill SubVendor Loot but at a reduced cost if the Player owns some of the Loot.\n`Entitlement` items are stored in a player's inventory and are fulfilled to the player each time an Inventory Session is created and when the Entitlement is fulfilled to the Player." }, "ItemInventory": { "properties": { "records": { "additionalProperties": { "$ref": "#/components/schemas/InventoryRecord" }, "type": "object", "title": "Records", "description": "Inventory Records for this Item Inventory.", "default": {} }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache Info for this Item Inventory." } }, "type": "object", "title": "ItemInventory", "description": "Inventory of a particular Item for a Player organized by Inventory ID." }, "ItemType": { "type": "string", "enum": [ "unit", "recipe", "recipe_with_price_reduction", "entitlement", "dynamic_bundle" ], "title": "ItemType", "description": "The type of item.", "x-enum-descriptions": [ "An item that is stored in a player's inventory.", "A Loot with the ItemType receipt will fulfill SubVendor Loot and will not stored in a player's inventory.", "The same as `ItemType.recipe` but will reduce the price based on whether or not the player owns items in the SubVendor's Loot table.", "An entitlement is a special item that is stored in a player's inventory and is fulfilled to the player each time an Inventory Session is created and when the Entitlement is fulfilled to the Player.", "Not support at this time." ], "x-enum-varnames": [ "unit", "recipe", "recipe_with_price_reduction", "entitlement", "dynamic_bundle" ] }, "Items": { "properties": { "items": { "additionalProperties": { "$ref": "#/components/schemas/Item" }, "type": "object", "title": "Items", "description": "A collection of Items by Item ID", "default": {} }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Item's cache information." } }, "type": "object", "title": "Items", "description": "A collections of Items by Item ID." }, "KeyClaim": { "properties": { "portal_id": { "allOf": [ { "$ref": "#/components/schemas/Portal" } ], "description": "Platform the player is on" }, "portal_user_id": { "type": "string", "title": "Portal User Id", "description": "The Platform's unique identifier for the player" }, "key_claim_uuid": { "type": "string", "format": "uuid", "title": "Key Claim Uuid", "description": "The unique identifier for the KeyClaim" }, "claimed": { "type": "boolean", "title": "Claimed", "description": "Whether the KeyClaim has been claimed", "default": false }, "external_key": { "type": "string", "title": "External Key", "description": "The external key that was been claimed by the player. This is only filled out once the KeyClaim has been claimed" }, "external_key_campaign_uuid": { "type": "string", "format": "uuid", "title": "External Key Campaign Uuid", "description": "The unique identifier for the MarketingCampaign that the external key was claimed from" }, "external_key_type": { "type": "string", "title": "External Key Type", "description": "This can be used to allow the player to claim different types based on their preferrence. While we don't have requirement for what should contain, it must match a key type assigned to the external campaign." }, "created_on": { "type": "string", "title": "Created On", "description": "The time the KeyClaim was created" }, "last_modified_on": { "type": "string", "title": "Last Modified On", "description": "The time the KeyClaim was last modified" } }, "type": "object", "required": [ "key_claim_uuid" ], "title": "KeyClaim", "description": "A KeyClaim is a reward a player for fulfilling requirements of an eternal marketing campaign. Once the player has completed the requirements of the campaign and have been assigned a sku of the campaign by the Platform, invoke Process Key Entitlements to consume the sku from the Platform for a Key Claim." }, "KeyClaims": { "properties": { "claims": { "items": { "$ref": "#/components/schemas/KeyClaim" }, "type": "array", "title": "Claims", "description": "List of Key Claims available to the Player" } }, "type": "object", "required": [ "claims" ], "title": "KeyClaims", "description": "List of Key Claims available to the player." }, "KeyType": { "properties": { "type": { "type": "string", "title": "Type", "description": "The type of key" } }, "type": "object", "required": [ "type" ], "title": "KeyType", "description": "A Key Type is a type of key that can be claimed from a Marketing Campaign." }, "Loot": { "properties": { "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom data associated with the resource", "default": {} }, "loot_uuid": { "type": "string", "format": "uuid", "title": "Loot Uuid", "description": "The Loot UUID" }, "loot_id": { "type": "integer", "title": "Loot Id", "description": "The Loot ID" }, "vendor_id": { "type": "integer", "title": "Vendor Id", "description": "The Vendor ID" }, "vendor_uuid": { "type": "string", "format": "uuid", "title": "Vendor Uuid", "description": "The Vendor UUID" }, "item_id": { "type": "integer", "title": "Item Id", "description": "The Item ID. Optional Item that will be granted to the player if Sub Vendor ID is not specified." }, "item_uuid": { "type": "string", "format": "uuid", "title": "Item Uuid", "description": "The Item UUID. Optional Item that will be granted to the player if Sub Vendor ID is not specified." }, "item": { "allOf": [ { "$ref": "#/components/schemas/Item" } ], "title": "Item", "description": "In-line Item definition. Optional Item that will be granted to the player if Sub Vendor ID is not specified." }, "sub_vendor_id": { "type": "integer", "title": "Sub Vendor Id", "description": "The Sub Vendor ID. Optional Vendor ID that will be used to fulfill the Loot instead of granting the Item." }, "sub_vendor_uuid": { "type": "string", "format": "uuid", "title": "Sub Vendor Uuid", "description": "The Sub Vendor UUID. Optional Vendor ID that will be used to fulfill the Loot instead of granting the Item." }, "quantity": { "type": "integer", "title": "Quantity", "description": "The quantity of the Item or Sub Vendor to fulfill. This will be multiplied by the quantity of fulfilled Loot and the parent Loot if quantity_type is relative.", "default": 0 }, "inventory_selector_type": { "allOf": [ { "$ref": "#/components/schemas/InventorySelector" } ], "description": "The Inventory Selector Type. Determine how the Inventory is selected and quantity is modified.", "default": "invalid" }, "inventory_operation": { "allOf": [ { "$ref": "#/components/schemas/InventoryOperation" } ], "description": "The Inventory Operation. Determine how the Loot quantity is modified based on the context it is fulfilled in. This also determines the order Loot will be fulfilled in when sort_order is the same.", "default": "invalid" }, "active": { "type": "boolean", "title": "Active", "description": "Determines if the Loot is active. Inactive Loot will not be fulfilled.", "default": false }, "sort_order": { "type": "integer", "title": "Sort Order", "description": "The sort order of the Loot. Lower sort order will be fulfilled first. Inventory Operation is used as a tie breaker when sort_order is the same.", "default": 0 }, "drop_weight": { "type": "integer", "title": "Drop Weight", "description": "The drop weight of the Loot. Higher drop weight will be more likely to be fulfilled.", "default": 0 }, "fill_in_new_order": { "type": "boolean", "title": "Fill In New Order", "description": "When dropped in a randomly sampled vendor, will this create a new order or fill inline?. The primary use case for this is when you want the same loot to be dropped multiple times in a randomly sampled vendor.", "default": false }, "allow_partial_bundles": { "type": "boolean", "title": "Allow Partial Bundles", "description": "When dropped in a randomly sampled vendor, will the sub vendor allow dropping part of the the bundle? False means it will only drop if the entire sub vendor can be given to the player", "default": true }, "required_item_id": { "type": "integer", "title": "Required Item Id", "description": "Item required to be owned/rented to drop this Loot in a randomly sampled vendor" }, "required_item_uuid": { "type": "string", "format": "uuid", "title": "Required Item Uuid", "description": "Item required to be owned/rented to drop this Loot in a randomly sampled vendor" }, "required_item_count": { "type": "integer", "title": "Required Item Count", "description": "Amount of the required_item_id to be owned/rented to drop this Loot in a randomly sampled vendor", "default": 0 }, "stack_limit": { "type": "integer", "title": "Stack Limit", "description": "Amount of owned/rented of this Loot's item that will prevent this Loot from dropping in a randomly sampled vendor", "default": 0 }, "ui_hint": { "type": "integer", "title": "Ui Hint", "default": 0, "deprecated": true }, "effective_from": { "type": "string", "format": "date-time", "title": "Effective From", "deprecated": true }, "quantity_type": { "allOf": [ { "$ref": "#/components/schemas/QuantityType" } ], "description": "Determines how the quantity is modified in the context it is fulfilled in.", "default": "relative" }, "quantity_mult_inventory_item_id": { "type": "integer", "title": "Quantity Mult Inventory Item Id", "description": "When fulfilling Loot if this is set the quantity will be multiplied by the quantity of this Item in the Player's Inventory." }, "quantity_mult_inventory_item_uuid": { "type": "string", "format": "uuid", "title": "Quantity Mult Inventory Item Uuid", "description": "When fulfilling Loot if this is set the quantity will be multiplied by the quantity of this Item in the Player's Inventory." }, "is_claimable_by_client": { "type": "boolean", "title": "Is Claimable By Client", "description": "Determines if the Loot can be claimed by the client. This is dangerous without the correct loot confiuration as a client could claim Loot multiple times.", "default": false }, "time_frame_id": { "type": "integer", "title": "Time Frame Id", "description": "The Time Frame ID. Optional Time Frame ID that will be used the expiration of Loot when it is fulfilled." }, "use_inventory_bucket": { "allOf": [ { "$ref": "#/components/schemas/InventoryBucket" } ], "description": "Inventory Bucket to use for this Loot." }, "xp_quantity_transform_type": { "allOf": [ { "$ref": "#/components/schemas/XpQuantityTransform" } ], "description": "Allows treating quantity as additional levels to grant to the Player.", "default": "none" }, "current_price_point_guid": { "type": "string", "minLength": 1, "title": "Current Price Point Guid", "description": "The current price point guid. Optional Price Point ID that will be used to determine the price of the Loot when it is fulfilled." }, "pre_sale_price_point_guid": { "type": "string", "minLength": 1, "title": "Pre Sale Price Point Guid", "description": "The pre sale price point guid. Optional Price Point ID that will be used to show the previous price of the Loot." }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache info for the Loot." }, "hard_quantity_maximum": { "type": "integer", "title": "Hard Quantity Maximum", "description": "Hard cap on quantity of an item this Loot can give. Disabled with 0", "default": 0 } }, "type": "object", "required": [ "loot_id", "vendor_id" ], "title": "Loot", "description": "Loot determines how an Item fulfilled. When Loot is fulfilled, the Item is granted to the player or the Sub Vendor is fulfilled but not both." }, "LootEntitlement": { "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/EntitlementType" } ], "description": "The action taken on the platform when granting this SKU" }, "loot_id": { "type": "integer", "title": "Loot Id", "description": "The Loot ID that will be granted to the player" }, "refund_loot_id": { "type": "integer", "title": "Refund Loot Id", "description": "The Loot ID that will be granted to the player when the SKU is refunded" }, "chargeback_loot_id": { "type": "integer", "title": "Chargeback Loot Id", "description": "The Loot ID that will be granted to the player when the SKU is charged back" }, "chargeback_reversal_loot_id": { "type": "integer", "title": "Chargeback Reversal Loot Id", "description": "The Loot ID that will be granted to the player when the SKU is charged back is reversed" } }, "type": "object", "required": [ "type", "loot_id" ], "title": "LootEntitlement", "description": "How a Platform SKU will be converted into Loot for a player" }, "Loots": { "properties": { "loot": { "additionalProperties": { "$ref": "#/components/schemas/Loot" }, "type": "object", "title": "Loot", "default": {} }, "cache_info": { "$ref": "#/components/schemas/CacheInfo" } }, "type": "object", "title": "Loots", "description": "A collection of Loot by Loot ID." }, "MarketingCampaign": { "properties": { "uuid": { "type": "string", "format": "uuid", "title": "Uuid", "description": "The unique identifier for the Marketing Campaign" }, "name": { "type": "string", "title": "Name", "description": "The name of the Marketing Campaign" }, "portal_id": { "allOf": [ { "$ref": "#/components/schemas/Portal" } ], "description": "Platform for the Marketing Campaign" }, "key_types": { "items": { "$ref": "#/components/schemas/KeyType" }, "type": "array", "title": "Key Types", "description": "The types of keys that can be claimed from this campaign" }, "created_on": { "type": "string", "title": "Created On", "description": "The time the MarketingCampaign was created" }, "last_modified_on": { "type": "string", "title": "Last Modified On", "description": "The time the MarketingCampaign was last modified" } }, "type": "object", "required": [ "uuid", "name", "key_types" ], "title": "MarketingCampaign", "description": "A Marketing Campaign is a set of external keys that can be claimed by players.The key claims are assigned to the player based on" }, "MarketingCampaigns": { "properties": { "campaigns": { "items": { "$ref": "#/components/schemas/MarketingCampaign" }, "type": "array", "title": "Campaigns", "description": "List of external Marketing Campaigns" } }, "type": "object", "required": [ "campaigns" ], "title": "MarketingCampaigns", "description": "List of external Marketing Campaigns." }, "InventoryPageMeta": { "properties": { "starting_position": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "cursor": { "type": "string", "title": "Cursor", "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored" }, "sort": { "allOf": [ { "$ref": "#/components/schemas/SortOrder" } ], "description": "The direction to search.", "default": "asc" }, "limit": { "type": "integer", "maximum": 50, "minimum": 1, "title": "Limit", "description": "The number of Orders to return", "default": 10 } }, "type": "object", "title": "PageMeta", "description": "Metadata about the page of results" }, "PlatformEntitlement": { "properties": { "platform_sku": { "type": "string", "title": "Platform Sku", "description": "platform identifier for this purchase type" }, "platform_entitlement_id": { "type": "string", "title": "Platform Entitlement Id", "description": "unique identifier for this purchased item (instance owned by this user)" }, "quantity": { "type": "integer", "minimum": 0, "title": "Quantity", "description": "number purchased", "default": 1 }, "status": { "allOf": [ { "$ref": "#/components/schemas/EntitlementStatus" } ], "description": "status of this entitlement", "default": "UNKNOWN" }, "error_code": { "allOf": [ { "$ref": "#/components/schemas/EntitlementErrorCode" } ], "description": "Error code for this entitlement", "default": "none" }, "order_id": { "type": "string", "title": "Order Id", "description": "Order ID for this entitlement" } }, "type": "object", "required": [ "platform_sku", "platform_entitlement_id" ], "title": "PlatformEntitlement", "description": "Entitlement for a platform. This takes in a sku and platform entitlement id and checks to see if the user has the entitlement on the platform" }, "PlatformEntitlementProcessRequest": { "properties": { "transaction_id": { "type": "string", "title": "Transaction Id", "description": "unique id for this transaction on the platform" }, "platform_token": { "type": "string", "title": "Platform Token", "description": "Platform token that can be used to verify the identity of the user" }, "platform_id": { "type": "string", "title": "Platform Id", "description": "Platform this entitlement was purchased was made on" }, "platform_region": { "allOf": [ { "$ref": "#/components/schemas/PlatformRegion" } ], "description": "region this purchase was made in" }, "client_type": { "allOf": [ { "$ref": "#/components/schemas/ClientType" } ], "description": "client type this purchase was made on" }, "entitlements": { "items": { "$ref": "#/components/schemas/PlatformEntitlement" }, "type": "array", "title": "Entitlements", "description": "Platform entitlements to process", "default": [] } }, "type": "object", "required": [ "transaction_id", "platform_token", "platform_id", "platform_region", "client_type" ], "title": "PlatformEntitlementProcessRequest", "description": "Request to process a platform entitlement" }, "PlatformEntitlementProcessResult": { "properties": { "request_id": { "type": "string", "title": "Request Id", "description": "unique id to allow tracking the request" }, "client_type": { "allOf": [ { "$ref": "#/components/schemas/ClientType" } ], "description": "client type this purchase was made on" }, "transaction_id": { "type": "string", "title": "Transaction Id", "description": "unique id for this transaction on the platform" }, "platform_region": { "allOf": [ { "$ref": "#/components/schemas/PlatformRegion" } ], "description": "region this purchase was made in" }, "status": { "type": "string", "title": "Status", "description": "status of this result", "default": "SUBMITTED" }, "error_code": { "type": "string", "title": "Error Code", "description": "Error code for failures not associated with a specific entitlement" }, "client_entitlements": { "items": { "$ref": "#/components/schemas/PlatformEntitlement" }, "type": "array", "title": "Client Entitlements", "description": "Client entitlements that have been processed", "default": [] }, "server_entitlements": { "items": { "$ref": "#/components/schemas/PlatformEntitlement" }, "type": "array", "title": "Server Entitlements", "description": "Server entitlements that have been processed", "default": [] }, "platform_id": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform these transactions were processed on" }, "platform_user_id": { "type": "string", "title": "Platform User Id", "description": "Unique identifier for the platform user that processed this entitlement" }, "skipped_server_entitlements": { "type": "boolean", "title": "Skipped Server Entitlements", "description": "True if the server entitlements were skipped", "default": false } }, "type": "object", "required": [ "request_id", "client_type", "transaction_id", "platform_region", "platform_id", "platform_user_id" ], "title": "PlatformEntitlementProcessResult", "description": "Result of processing a platform entitlement" }, "PlatformRegion": { "type": "string", "enum": [ "Unknown", "NA", "EU" ], "title": "PlatformRegion", "description": "Region for Entitlements", "x-enum-descriptions": [ "Unknown region", "North America region", "Europe Union region" ], "x-enum-varnames": [ "UNKNOWN", "NA", "EU" ] }, "PlatformSKU": { "properties": { "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom data associated with the resource", "default": {} }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "The platform of the SKU" }, "sku": { "type": "string", "title": "Sku", "description": "The SKU of the platform" }, "loot_entitlement": { "allOf": [ { "$ref": "#/components/schemas/LootEntitlement" } ], "title": "Loot Entitlement", "description": "The Loot that will be granted to the player" }, "external_key_entitlement": { "allOf": [ { "$ref": "#/components/schemas/ExternalKeyEntitlement" } ], "title": "External Key Entitlement", "description": "The External Key Entitlement" }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache info for the Platform SKUs." } }, "type": "object", "required": [ "platform", "sku" ], "title": "PlatformSKU", "description": "Platform SKU that can be converted to inventory or keys" }, "PlatformSKUs": { "properties": { "skus": { "items": { "$ref": "#/components/schemas/PlatformSKU" }, "type": "array", "title": "Skus", "description": "A collection of SKUs", "default": [] }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache info for the Platform SKUs." } }, "type": "object", "title": "PlatformSKUs", "description": "A collection of SKUs." }, "PlayerInventoryChange": { "properties": { "before_item_id": { "type": "integer", "title": "Before Item Id", "description": "The Item ID of the Item before the change." }, "after_item_id": { "type": "integer", "title": "After Item Id", "description": "The Item ID of the Item after the change." }, "before": { "allOf": [ { "$ref": "#/components/schemas/InventoryRecord" } ], "title": "Before", "description": "The Inventory Record before the change." }, "after": { "allOf": [ { "$ref": "#/components/schemas/InventoryRecord" } ], "title": "After", "description": "The Inventory Record after the change." } }, "type": "object", "title": "PlayerInventoryChange", "description": "Represents the change that occurred to an entry in the Player's Inventory. The before fields contain the state before the change, after fields contain the state after the change." }, "PlayerOrder": { "properties": { "source": { "allOf": [ { "$ref": "#/components/schemas/Source" } ], "description": "The source of the Player Order.", "default": "CLIENT" }, "client_order_ref_id": { "type": "string", "format": "uuid", "title": "Client Order Ref Id", "description": "Arbitrary UUID clients can use to track Orders between request to response." }, "portal_id": { "allOf": [ { "$ref": "#/components/schemas/Portal" } ], "description": "Portal of the Portal User the Player Order belongs to.", "deprecated": true }, "portal_user_id": { "type": "string", "title": "Portal User Id", "description": "Portal User Id for the Player this Player Order belongs to." }, "instance_id": { "type": "string", "title": "Instance Id", "description": "Instance Id for the Instance who submits the Player Order." }, "match_id": { "type": "string", "title": "Match Id", "description": "Match Id for the Match that generated the Player Order." }, "is_transaction": { "type": "boolean", "title": "Is Transaction", "description": "If an order is a transaction, any failed entries will roll back changes from all other entries.", "default": false }, "order_id": { "type": "string", "title": "Order Id", "description": "Unique Identifier for the Order." }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID of the Player this Player Order belongs to." }, "created_time": { "type": "string", "format": "date-time", "title": "Created Time", "description": "Time the Player Order was created." }, "entries": { "items": { "$ref": "#/components/schemas/PlayerOrderEntry" }, "type": "array", "title": "Entries", "description": "List of Player Order Entries for the Player Order." } }, "type": "object", "required": [ "order_id", "player_uuid", "created_time", "entries" ], "title": "PlayerOrder", "description": "Represents a Player Order." }, "PlayerOrderCreate": { "properties": { "source": { "allOf": [ { "$ref": "#/components/schemas/Source" } ], "description": "The source of the Player Order.", "default": "CLIENT" }, "client_order_ref_id": { "type": "string", "format": "uuid", "title": "Client Order Ref Id", "description": "Arbitrary UUID clients can use to track Orders between request to response." }, "portal_id": { "allOf": [ { "$ref": "#/components/schemas/Portal" } ], "description": "Portal of the Portal User the Player Order belongs to.", "deprecated": true }, "portal_user_id": { "type": "string", "title": "Portal User Id", "description": "Portal User Id for the Player this Player Order belongs to." }, "instance_id": { "type": "string", "title": "Instance Id", "description": "Instance Id for the Instance who submits the Player Order." }, "match_id": { "type": "string", "title": "Match Id", "description": "Match Id for the Match that generated the Player Order." }, "is_transaction": { "type": "boolean", "title": "Is Transaction", "description": "If an order is a transaction, any failed entries will roll back changes from all other entries.", "default": false }, "order_id": { "type": "string", "title": "Order Id", "description": "Unique Identifier for the Order." }, "entries": { "items": { "$ref": "#/components/schemas/PlayerOrderEntryCreate" }, "type": "array", "title": "Entries", "description": "List of Player Order Entries for the Player Order." } }, "type": "object", "required": [ "entries" ], "title": "PlayerOrderCreate", "description": "Create a new Player Order.\n\nNote: `use_inventory_bucket` will be ignored on the PlayerOrderEntryCreate if the `source` equals `CLIENT`." }, "PlayerOrderDetail": { "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/PlayerOrderDetailType" } ], "description": "The type of detail." }, "loot_id": { "type": "integer", "title": "Loot Id", "description": "The Loot ID." }, "inv_change": { "allOf": [ { "$ref": "#/components/schemas/PlayerInventoryChange" } ], "title": "Inv Change", "description": "The Inventory change that occurred as part of this detail." }, "order": { "allOf": [ { "$ref": "#/components/schemas/PlayerOrderCreate" } ], "title": "Order", "description": "Reference to the Player Order that this detail belongs to." } }, "type": "object", "required": [ "type" ], "title": "PlayerOrderDetail", "description": "Represents details of what occurred in a Player Order Entry." }, "PlayerOrderDetailType": { "type": "string", "enum": [ "unknown", "inventory_change", "dynamic_bundle_lti", "claim_promo_code", "return_promo_code", "new_order" ], "title": "PlayerOrderDetailType", "description": "Player Order Detail Type.", "x-enum-descriptions": [ "Unknown.", "Inventory change.", "Dynamic Bundle LTI.", "Claim Promo Code.", "Return Promo Code.", "New Order." ], "x-enum-varnames": [ "UNKNOWN", "INVENTORY_CHANGE", "DYNAMIC_BUNDLE_LTI", "CLAIM_PROMO_CODE", "RETURN_PROMO_CODE", "NEW_ORDER" ] }, "PlayerOrderEntry": { "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/PlayerOrderEntryType" } ], "description": "The type of entry." }, "loot_id": { "type": "integer", "title": "Loot Id", "description": "Unique Identifier for the Loot" }, "quantity": { "type": "integer", "title": "Quantity", "description": "Quantity of Inventory" }, "vendor_version": { "type": "integer", "format": "int64", "title": "Vendor Version", "description": "Legacy version for the vendor owning the loot_id. Use `vendor_etag` instead.", "deprecated": true }, "vendor_etag": { "type": "string", "title": "Vendor Etag", "description": "etag for the vendor owning the loot_id. Will fail the fulfillment if they do not match" }, "dynamic_bundle_loot_ids": { "items": { "type": "integer" }, "type": "array", "title": "Dynamic Bundle Loot Ids", "description": "List of Loot IDs for the dynamic bundle." }, "purchase_price": { "allOf": [ { "$ref": "#/components/schemas/PurchasePrice" } ], "title": "Purchase Price", "description": "The purchase price of the Loot. Deprecated. Use the purchase_prices field instead", "deprecated": true }, "external_tran_id": { "type": "string", "title": "External Tran Id", "description": "External Transaction Id for source of the acquisition or a promotion code to claim. Required for [PROMOTION_CODE] types" }, "external_item_sku": { "type": "string", "title": "External Item Sku", "description": "External item SKU for the Order Entry." }, "use_inventory_bucket": { "allOf": [ { "$ref": "#/components/schemas/InventoryBucket" } ], "description": "Inventory Bucket to use for the Order Entry." }, "player_portal_event_id": { "type": "integer", "format": "int64", "title": "Player Portal Event Id", "description": "Player Portal Event Id for the Order Entry." }, "inventory_id": { "type": "string", "format": "uuid", "title": "Inventory Id", "description": "Unique Identifier for the Inventory" }, "legacy_inventory_id": { "type": "integer", "format": "int64", "title": "Legacy Inventory Id", "description": "Legacy Inventory Id. This is only used when type equals [UPDATE_EXISTING_PERSISTENT_INVENTORY, UPDATE_EXISTING_TRANSIENT_INVENTORY]" }, "item_id": { "type": "integer", "title": "Item Id", "description": "Item Id used create or update Inventory directly. This is only used when type equals [CREATE_NEW_PERSISTENT_INVENTORY, CREATE_NEW_TRANSIENT_INVENTORY]" }, "expires": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom Data Attributes for the Inventory. This is only used when type equals [CREATE_NEW_PERSISTENT_INVENTORY, UPDATE_EXISTING_PERSISTENT_INVENTORY, CREATE_NEW_TRANSIENT_INVENTORY, UPDATE_EXISTING_TRANSIENT_INVENTORY, UPDATE_INVENTORY]" }, "entry_id": { "type": "string", "title": "Entry Id", "description": "Unique Identifier for the Order Entry." }, "result": { "allOf": [ { "$ref": "#/components/schemas/PlayerOrderEntryResult" } ], "description": "Entry result type." }, "details": { "items": { "$ref": "#/components/schemas/PlayerOrderDetail" }, "type": "array", "title": "Details", "description": "Details for the Order Entry.", "default": [] } }, "type": "object", "required": [ "type", "quantity", "entry_id" ], "title": "PlayerOrderEntry", "description": "Represents a line item in the Player Order and the results of the line item." }, "PlayerOrderEntryCreate": { "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/PlayerOrderEntryType" } ], "description": "The type of entry." }, "loot_id": { "type": "integer", "title": "Loot Id", "description": "Unique Identifier for the Loot" }, "quantity": { "type": "integer", "title": "Quantity", "description": "Quantity of Inventory" }, "vendor_version": { "type": "integer", "format": "int64", "title": "Vendor Version", "description": "Legacy version for the vendor owning the loot_id. Use `vendor_etag` instead.", "deprecated": true }, "vendor_etag": { "type": "string", "title": "Vendor Etag", "description": "etag for the vendor owning the loot_id. Will fail the fulfillment if they do not match" }, "dynamic_bundle_loot_ids": { "items": { "type": "integer" }, "type": "array", "title": "Dynamic Bundle Loot Ids", "description": "List of Loot IDs for the dynamic bundle." }, "purchase_price": { "allOf": [ { "$ref": "#/components/schemas/PurchasePrice" } ], "title": "Purchase Price", "description": "The purchase price of the Loot. Deprecated. Use the purchase_prices field instead", "deprecated": true }, "external_tran_id": { "type": "string", "title": "External Tran Id", "description": "External Transaction Id for source of the acquisition or a promotion code to claim. Required for [PROMOTION_CODE] types" }, "external_item_sku": { "type": "string", "title": "External Item Sku", "description": "External item SKU for the Order Entry." }, "use_inventory_bucket": { "allOf": [ { "$ref": "#/components/schemas/InventoryBucket" } ], "description": "Inventory Bucket to use for the Order Entry." }, "player_portal_event_id": { "type": "integer", "format": "int64", "title": "Player Portal Event Id", "description": "Player Portal Event Id for the Order Entry." }, "inventory_id": { "type": "string", "format": "uuid", "title": "Inventory Id", "description": "Unique Identifier for the Inventory" }, "legacy_inventory_id": { "type": "integer", "format": "int64", "title": "Legacy Inventory Id", "description": "Legacy Inventory Id. This is only used when type equals [UPDATE_EXISTING_PERSISTENT_INVENTORY, UPDATE_EXISTING_TRANSIENT_INVENTORY]" }, "item_id": { "type": "integer", "title": "Item Id", "description": "Item Id used create or update Inventory directly. This is only used when type equals [CREATE_NEW_PERSISTENT_INVENTORY, CREATE_NEW_TRANSIENT_INVENTORY]" }, "expires": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom Data Attributes for the Inventory. This is only used when type equals [CREATE_NEW_PERSISTENT_INVENTORY, UPDATE_EXISTING_PERSISTENT_INVENTORY, CREATE_NEW_TRANSIENT_INVENTORY, UPDATE_EXISTING_TRANSIENT_INVENTORY, UPDATE_INVENTORY]" }, "entry_id": { "type": "string", "title": "Entry Id", "description": "Unique Identifier for the Order Entry." } }, "type": "object", "required": [ "type", "quantity" ], "title": "PlayerOrderEntryCreate", "description": "Request to create a Player Order Entry." }, "PlayerOrderEntryResult": { "type": "string", "enum": [ "success", "internal_error", "invalid_entry_type", "not_allowed_on_current_portal", "loot_not_found", "loot_not_active", "price_item_not_found", "price_not_allowed", "dynamic_bundle_invalid", "too_many_requests", "price_does_not_match", "vendor_version_does_not_match", "dynamic_bundle_ltis_do_not_match", "cannot_afford_price", "cannot_afford_coupon", "failed_to_spend_price", "failed_to_spend_coupon", "loot_not_for_sale_with_price_item", "coupons_disabled", "coupon_item_not_found", "coupon_item_not_active", "coupon_item_not_applicable_for_quantity", "coupon_item_not_applicable_for_price_item", "coupon_item_not_applicable_for_loot", "quantity_not_allowed", "promotion_expired", "promotion_not_found", "promotion_no_uses_left", "promotion_not_available", "promotion_claimed_already", "dynamic_bundles_not_available", "transient_single_loot_already_applied", "loot_not_fillable_from_client", "permission_denied", "failed_to_find_any_sub_loot", "failed_to_fill_any_sub_loot", "cannot_meet_loot_blocker", "cannot_meet_loot_required", "failed_to_consume_loot_required", "failed_to_submit_new_order", "failed_to_modify_inventory", "inventory_not_found", "item_not_found", "item_not_active", "too_many_inv_custom_attributes", "always_owned_inventory_cannot_be_modified", "available_until_is_in_past", "rollback", "not_started" ], "title": "PlayerOrderEntryResult", "description": "Result of a Player Order Entry.", "x-enum-descriptions": [ "The Order Entry was successful.", "An internal error occurred when processing Order Entry.", "Order Entry type is invalid.", "Order Entry is not allowed on the current platform.", "The Loot was not found.", "The Loot was not active at the time of processing.", "The Item was configured as the Price was not found.", "The Price is not allowed for the given Loot.", "The given Dynamic Bundle was invalid.", "Too many requests were made in during the evaluation window.", "Given Price does not match the expected Price.", "Vendor version does not match the expected version.", "Dynamic Bundle Loot does not match expected Loot.", "Player cannot afford the given Price.", "Player cannot afford the given Coupon.", "Failed to spend the given Price.", "Failed to spend the given Coupon.", "The given Loot is not for sale with the given Price Item.", "Coupons are disabled.", "The Item configured for the Coupon was not found.", "The Coupon Item is not active.", "Coupon Item is not applicable for the given quantity.", "Coupon Item is not applicable for the given Price Item.", "Coupon Item is not applicable for the given Loot.", "Quantity is not allowed for the given Loot.", "Promotion has expired.", "Promotion was not found.", "Promotion has no uses left.", "Promotion is not available.", "Promotion has already been claimed.", "Dynamic Bundles are not available.", "Transient Single Loot has already been applied.", "Loot is not claimable from the client.", "Permission denied.", "Failed to find any sub loot.", "Failed to fill any sub loot.", "Loot fulfillment failed because the player failed a `check_less_than` Inventory Operation. This means the Players Inventory Quantity is equal or greater than Loot's quantity.", "Loot fulfillment failed because the player failed a `check_greater_than_or_equal` or `check_greater_than_or_equal_and_subtract` Inventory Operation. This means the player has less than the Loot's required quantity.", "Failed to consume the given Loot required.", "Failed to submit a new order.", "Failed to modify inventory.", "Inventory was not found.", "Item was not found.", "Item is not active.", "Too many inventory custom attributes provided.", "Always owned inventory cannot be modified.", "Available until is in the past.", "Order Entry was successfully fulfilled, but was rolled back.", "Order Entry fulfillment has not started." ], "x-enum-varnames": [ "SUCCESS", "INTERNAL_ERROR", "INVALID_ENTRY_TYPE", "NOT_ALLOWED_ON_CURRENT_PORTAL", "LOOT_NOT_FOUND", "LOOT_NOT_ACTIVE", "PRICE_ITEM_NOT_FOUND", "PRICE_NOT_ALLOWED", "DYNAMIC_BUNDLE_INVALID", "TOO_MANY_REQUESTS", "PRICE_DOES_NOT_MATCH", "VENDOR_VERSION_DOES_NOT_MATCH", "DYNAMIC_BUNDLE_LTIS_DO_NOT_MATCH", "CANNOT_AFFORD_PRICE", "CANNOT_AFFORD_COUPON", "FAILED_TO_SPEND_PRICE", "FAILED_TO_SPEND_COUPON", "LOOT_NOT_FOR_SALE_WITH_PRICE_ITEM", "COUPONS_DISABLED", "COUPON_ITEM_NOT_FOUND", "COUPON_ITEM_NOT_ACTIVE", "COUPON_ITEM_NOT_APPLICABLE_FOR_QUANTITY", "COUPON_ITEM_NOT_APPLICABLE_FOR_PRICE_ITEM", "COUPON_ITEM_NOT_APPLICABLE_FOR_LOOT", "QUANTITY_NOT_ALLOWED", "PROMOTION_EXPIRED", "PROMOTION_NOT_FOUND", "PROMOTION_NO_USES_LEFT", "PROMOTION_NOT_AVAILABLE", "PROMOTION_CLAIMED_ALREADY", "DYNAMIC_BUNDLES_NOT_AVAILABLE", "TRANSIENT_SINGLE_LOOT_ALREADY_APPLIED", "LOOT_NOT_FILLABLE_FROM_CLIENT", "PERMISSION_DENIED", "FAILED_TO_FIND_ANY_SUB_LOOT", "FAILED_TO_FILL_ANY_SUB_LOOT", "CANNOT_MEET_LOOT_BLOCKER", "CANNOT_MEET_LOOT_REQUIRED", "FAILED_TO_CONSUME_LOOT_REQUIRED", "FAILED_TO_SUBMIT_NEW_ORDER", "FAILED_TO_MODIFY_INVENTORY", "INVENTORY_NOT_FOUND", "ITEM_NOT_FOUND", "ITEM_NOT_ACTIVE", "TOO_MANY_INV_CUSTOM_ATTRIBUTES", "ALWAYS_OWNED_INVENTORY_CANNOT_BE_MODIFIED", "AVAILABLE_UNTIL_IS_IN_PAST", "ROLLBACK", "NOT_STARTED" ] }, "PlayerOrderEntryType": { "type": "string", "enum": [ "fill_loot", "purchase_loot", "purchase_dynamic_bundle", "promotion_code", "fill_loot_single_transient", "fill_entitled_loot", "create_new_persistent_inventory", "update_existing_persistent_inventory", "create_new_transient_inventory", "update_existing_transient_inventory", "update_inventory" ], "title": "PlayerOrderEntryType", "description": "Player Order Entry Type.", "x-enum-descriptions": [ "Fill a loot item.", "Purchase a loot item.", "Purchase a dynamic bundle.", "Claim a promotion code.", "Fill a transient loot item.", "Fill an loot entitlement.", "Create persistent Inventory.", "Deprecated. Use update_inventory instead.", "Create transient Inventory.", "Deprecated. Use update_inventory instead.", "Update existing Inventory." ], "x-enum-varnames": [ "FILL_LOOT", "PURCHASE_LOOT", "PURCHASE_DYNAMIC_BUNDLE", "PROMOTION_CODE", "FILL_LOOT_SINGLE_TRANSIENT", "FILL_ENTITLED_LOOT", "CREATE_NEW_PERSISTENT_INVENTORY", "UPDATE_EXISTING_PERSISTENT_INVENTORY", "CREATE_NEW_TRANSIENT_INVENTORY", "UPDATE_EXISTING_TRANSIENT_INVENTORY", "UPDATE_INVENTORY" ] }, "PlayerOrdersResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/PlayerOrder" }, "type": "array", "title": "Data", "description": "A collection of Player Orders.", "default": [] }, "page": { "allOf": [ { "$ref": "#/components/schemas/InventoryPageMeta" } ], "title": "Page", "description": "Page metadata for the Player Orders." } }, "type": "object", "required": [ "page" ], "title": "PlayerOrdersResponse", "description": "A collection of Player Orders." }, "Portal": { "type": "integer", "enum": [ -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 ], "title": "Portal", "description": "An enumeration.", "x-enum-descriptions": [ "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration.", "An enumeration." ], "x-enum-varnames": [ "FREE", "SWEAT", "UNKNOWN", "STANDARD", "ANON", "KONGREGATE", "AMAZON", "STEAM", "TCLS", "LEVELUP_LATAM", "LEVELUP_BRA", "PSN", "XBOX_LIVE", "BASIC", "FACEBOOK", "GOOGLE", "UNUSED_14", "RIVALS_MOBILE", "TWITCH", "PALADINS_STRIKE", "SMITE_BLITZ", "FACEBOOK_SMITE", "FACEBOOK_PALADINS", "FACEBOOK_HOTG", "NINTENDO_SWITCH", "TUNE", "APPLE", "DISCORD", "NINTENDO", "UNUSED_27", "EPIC", "FORTE", "SIMULMEDIA", "LUNA", "GOOGLE_PLAY", "NINTENDO_PPID" ] }, "PortalUseRuleset": { "properties": { "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom data associated with the resource", "default": {} }, "rules": { "additionalProperties": { "items": { "$ref": "#/components/schemas/Portal" }, "type": "array" }, "type": "object", "title": "Rules", "default": {} }, "cache_info": { "$ref": "#/components/schemas/CacheInfo" } }, "type": "object", "title": "PortalUseRuleset", "description": "A collection of Portal Use Rules." }, "PortalUseRulesets": { "properties": { "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom data associated with the resource", "default": {} }, "rulesets": { "additionalProperties": { "$ref": "#/components/schemas/PortalUseRuleset" }, "type": "object", "title": "Rulesets", "default": {} }, "cache_info": { "$ref": "#/components/schemas/CacheInfo" } }, "type": "object", "title": "PortalUseRulesets", "description": "A collection of Portal Use Rulesets. A ruleset determine how item can be used across portals." }, "PriceBreakPointCurrency": { "properties": { "price_item_id": { "type": "integer", "title": "Price Item Id", "description": "The Item used as the currency for the purchase." }, "price": { "type": "integer", "title": "Price", "description": "The price of the Item." } }, "type": "object", "required": [ "price_item_id", "price" ], "title": "PriceBreakPointCurrency", "description": "The currencies of a Price Breakpoint." }, "PriceBreakpoint": { "properties": { "price_item_id": { "type": "integer", "title": "Price Item Id", "description": "Deprecated. Use the currencies field instead.", "deprecated": true }, "quantity": { "type": "integer", "title": "Quantity" }, "price": { "type": "integer", "title": "Price", "description": "Deprecated. Use the currencies field instead.", "deprecated": true }, "currencies": { "items": { "$ref": "#/components/schemas/PriceBreakPointCurrency" }, "type": "array", "title": "Currencies", "description": "List of currencies for this break point" } }, "type": "object", "required": [ "quantity" ], "title": "PriceBreakpoint", "description": "Price based on quantity and the Item ID of the currency used." }, "PricePoint": { "properties": { "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom data associated with the resource", "default": {} }, "name": { "type": "string", "title": "Name", "description": "The name of the Price Point." }, "strict_flag": { "type": "boolean", "title": "Strict Flag", "description": "Forces the quantity to be equal to a quantity on a Price Breakpoint.", "default": false }, "cap_flag": { "type": "boolean", "title": "Cap Flag", "description": "Only allows quantity to be fulfilled up the highest quantity on the Price Breakpoints", "default": false }, "current_breakpoints": { "items": { "$ref": "#/components/schemas/PriceBreakpoint" }, "type": "array", "title": "Current Breakpoints", "description": "Current Price Breakpoints.", "default": [] }, "pre_sale_breakpoints": { "items": { "$ref": "#/components/schemas/PriceBreakpoint" }, "type": "array", "title": "Pre Sale Breakpoints", "description": "Previous Price Breakpoints.", "default": [] }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache info for the Price Point." } }, "type": "object", "title": "PricePoint", "description": "A collection of Price Breakpoints (volume pricing)." }, "PricePoints": { "properties": { "price_points": { "additionalProperties": { "$ref": "#/components/schemas/PricePoint" }, "type": "object", "title": "Price Points", "description": "Price Points mapped by Price Point ID.", "default": {} }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache info for the Price Points." } }, "type": "object", "title": "PricePoints", "description": "A collection of Price Points by Price Point ID." }, "PurchasePrice": { "properties": { "price_item_id": { "type": "integer", "title": "Price Item Id", "description": "The Item used as the currency for the purchase. Deprecated. Use currencies instead", "deprecated": true }, "price": { "type": "integer", "title": "Price", "description": "The price of the Item. Deprecated. Use currencies instead", "deprecated": true }, "price_coupon_item_id": { "type": "integer", "title": "Price Coupon Item Id", "description": "The Item used as the coupon for the purchase." }, "currencies": { "items": { "$ref": "#/components/schemas/PurchasePriceCurrency" }, "type": "array", "title": "Currencies", "description": "List of currencies for this purchase price" } }, "type": "object", "title": "PurchasePrice", "description": "The purchase price of an Item." }, "PurchasePriceCurrency": { "properties": { "price_item_id": { "type": "integer", "title": "Price Item Id", "description": "The Item used as the currency for the purchase." }, "price": { "type": "integer", "title": "Price", "description": "The price of the Item." } }, "type": "object", "required": [ "price_item_id", "price" ], "title": "PurchasePriceCurrency", "description": "The purchase price currencies of an Item." }, "QuantityType": { "type": "string", "enum": [ "relative", "absolute" ], "title": "QuantityType", "description": "Determines how the quantity is to be modified.\n\nRelative looks at the context in which is fulfilled; e.g. If Loot A has a quantity of 2 and 5 is being fulfill, the resulting quantity modification will be 10.\n\nAbsolute ignores the context in which it is fulfilled; e.g. If Loot B has a quantity of 3 and 5 is being fulfill 5, the resulting quantity modification will be 3.", "x-enum-descriptions": [ "The quantity will be modified relative to the context in which it is fulfilled.", "The quantity will be modified regardless of the context in which it is fulfilled." ], "x-enum-varnames": [ "relative", "absolute" ] }, "SortOrder": { "type": "string", "enum": [ "asc", "desc" ], "title": "SortOrder", "description": "Determine the direction of the sort", "x-enum-descriptions": [ "Sort in ascending order", "Sort in descending order" ], "x-enum-varnames": [ "ASCENDING", "DESCENDING" ] }, "Source": { "type": "string", "enum": [ "UNKNOWN", "WEB_ORDER_REPAIR", "IN_GAME", "WEB_SITE", "NO_SALE", "SUPPORT", "ACTIVITY", "REFUND", "SYSTEM", "REWARDS", "ESPORTS", "TREASURE", "CONSOLE", "ODYSSEY", "STEAM", "RETURN", "JSON_GATE", "SEND_GIFT", "RECEIVE_GIFT", "STEAM_DLC", "TWITCH_MILESTONE", "TWITCH_PRIME", "PSN", "XBOX", "PTS_GRANT", "INSTANCE", "ACCOUNT_TRANSFER", "PROMOCODE", "TRIUMPH_SYSTEM", "LOGIN_GRANT", "EOM_UNCAPPED", "EOM_CAPPED", "FACEBOOK_DROP", "DATABASE_SCRIPT", "ACCOUNT_LINKING", "CLAN", "CONVERSION", "APPLE", "GOOGLE", "GOOGLE_PLAY", "PORTAL_DURABLE", "PARTNER_ACHIEVEMENT", "MIXER_DROP", "NINTENDO", "STREAM_VIEWING_PROGRESS", "DISCORD", "FIRST_LOGIN_GRANT", "TWITCH_FUEL", "DISCORD_DLC", "NETEASE", "EPIC_GAMES", "FORTE", "FACEBOOK", "HIREZ", "DAILY_REWARD", "ADD_ACCOUNT_EMAIL_REWARD", "CLIENT_CLAIM", "CLIENT", "ENTITLEMENTS", "AMAZON", "SIMULMEDIA", "LUNA" ], "title": "Source", "description": "The source of Player Orders.", "x-enum-descriptions": [ "Unknown source.", "Repair Order send from the Web to fix up Inventory mistakes.", "Order granted in-game.", "Order send from the Web site.", "No sale.", "Order granted by Support.", "Order granted by an activity.", "Order granted by a refund.", "Order granted by the system.", "Order granted by as a reward.", "Order granted by Esports.", "Order granted by Treasure.", "Order granted by Console.", "Order granted by Odyssey.", "Order granted by Steam.", "Order granted by a return.", "Order granted by the JSON gate.", "Order granted by sending a gift.", "Order granted by receiving a gift.", "Order granted by Steam DLC.", "Order granted by hitting a Twitch milestone.", "Order granted by Twitch Prime.", "Order granted by PSN.", "Order granted by Xbox.", "Order granted by PTS.", "Order granted by an instance.", "Order granted by an account transfer.", "Order granted by a promocode.", "Order granted by the Triumph system.", "Order granted by logging in.", "Order granted by an uncapped EOM .", "Order granted by a capped EOM reward.", "Order granted by a Facebook drop.", "Order granted by a database script.", "Order granted by account linking.", "Order granted by a clan.", "Order granted by a conversion.", "Order granted by Apple.", "Order granted by Google.", "Order granted by Google Play.", "Order granted by a portal durable.", "Order granted by a partner achievement.", "Order granted by a Mixer drop.", "Order granted by Nintendo.", "Order granted by stream viewing progress.", "Order granted by Discord.", "Order granted by first login.", "Order granted by Twitch Fuel.", "Order granted by Discord DLC.", "Order granted by NetEase.", "Order granted by Epic Games.", "Order granted by Forte.", "Order granted by Facebook.", "Order granted by Hi-Rez.", "Order granted by a daily reward.", "Order granted by adding an account email.", "Order granted by a client claim.", "Order granted by the client.", "Order granted by entitlements.", "Order granted by Amazon.", "Order granted by Simulmedia.", "Order granted by Luna." ], "x-enum-varnames": [ "UNKNOWN", "WEB_ORDER_REPAIR", "IN_GAME", "WEB_SITE", "NO_SALE", "SUPPORT", "ACTIVITY", "REFUND", "SYSTEM", "REWARDS", "ESPORTS", "TREASURE", "CONSOLE", "ODYSSEY", "STEAM", "RETURN", "JSON_GATE", "SEND_GIFT", "RECEIVE_GIFT", "STEAM_DLC", "TWITCH_MILESTONE", "TWITCH_PRIME", "PSN", "XBOX", "PTS_GRANT", "INSTANCE", "ACCOUNT_TRANSFER", "PROMOCODE", "TRIUMPH_SYSTEM", "LOGIN_GRANT", "EOM_UNCAPPED", "EOM_CAPPED", "FACEBOOK_DROP", "DATABASE_SCRIPT", "ACCOUNT_LINKING", "CLAN", "CONVERSION", "APPLE", "GOOGLE", "GOOGLE_PLAY", "PORTAL_DURABLE", "PARTNER_ACHIEVEMENT", "MIXER_DROP", "NINTENDO", "STREAM_VIEWING_PROGRESS", "DISCORD", "FIRST_LOGIN_GRANT", "TWITCH_FUEL", "DISCORD_DLC", "NETEASE", "EPIC_GAMES", "FORTE", "FACEBOOK", "HIREZ", "DAILY_REWARD", "ADD_ACCOUNT_EMAIL_REWARD", "CLIENT_CLAIM", "CLIENT", "ENTITLEMENTS", "AMAZON", "SIMULMEDIA", "LUNA" ] }, "TimeFrame": { "properties": { "name": { "type": "string", "title": "Name", "description": "The name of the Time Frame." }, "active": { "type": "boolean", "title": "Active", "description": "Whether or not the Time Frame is active.", "default": false }, "episode": { "type": "integer", "title": "Episode", "default": 0, "deprecated": true }, "episode_type": { "type": "integer", "title": "Episode Type", "default": 0, "deprecated": true }, "hour_interval": { "type": "integer", "title": "Hour Interval", "description": "Number of hours that this time frame lasts until restarting.0 interval means no repeating.", "default": 0 }, "start": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "end": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache info for the Time Frame." } }, "type": "object", "required": [ "start", "end" ], "title": "TimeFrame", "description": "Time Frames are used to calculate the expiration of Inventory" }, "TimeFrames": { "properties": { "time_frames": { "additionalProperties": { "$ref": "#/components/schemas/TimeFrame" }, "type": "object", "title": "Time Frames", "description": "Time Frames mapped by Time Frame ID.", "default": {} }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache info for the Time Frames." } }, "type": "object", "title": "TimeFrames", "description": "A collection of Time Frames by Time Frame ID." }, "UpdateInventoryRequest": { "properties": { "source": { "allOf": [ { "$ref": "#/components/schemas/Source" } ], "description": "Source of this Inventory Operation.", "default": "CLIENT" }, "client_order_ref_id": { "type": "string", "format": "uuid", "title": "Client Order Ref Id", "description": "Arbitrary UUID that can be used by clients to correlate Order requests with Order responses." }, "bucket": { "allOf": [ { "$ref": "#/components/schemas/InventoryBucket" } ], "description": "Inventory Bucket for this Inventory Operation.", "default": "none" }, "count": { "type": "integer", "title": "Count", "description": "Count for this Inventory Operation.", "default": 1 }, "expires": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Arbitrary data map that can be set to add additional data to Inventory." }, "item_id": { "type": "integer", "title": "Item Id", "description": "Item ID for this Inventory Operation. If the Item ID is not set during an Update Inventory Request, then the Item ID will not be modified on the existing Inventory Record." } }, "type": "object", "title": "UpdateInventoryRequest", "description": "Request to Update an existing Inventory entry. If the Inventory entry does not exist, then the request will fail." }, "UpdateInventoryRequestById": { "properties": { "bucket": { "allOf": [ { "$ref": "#/components/schemas/InventoryBucket" } ], "description": "Inventory Bucket for this Inventory Operation.", "default": "none" }, "count": { "type": "integer", "title": "Count", "description": "Count for this Inventory Operation.", "default": 1 }, "expires": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone" }, "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Arbitrary data map that can be set to add additional data to Inventory." }, "item_id": { "type": "integer", "title": "Item Id", "description": "Item ID for this Inventory Operation. If the Item ID is not set during an Update Inventory Request, then the Item ID will not be modified on the existing Inventory Record." }, "inventory_id": { "type": "string", "format": "uuid", "title": "Inventory Id", "description": "Inventory ID for this Inventory Operation." } }, "type": "object", "required": [ "inventory_id" ], "title": "UpdateInventoryRequestById", "description": "Request to Update Inventory by an existing Inventory ID. If the Inventory entry does not exist, then the request will fail." }, "UpdateInventoryRequests": { "properties": { "source": { "allOf": [ { "$ref": "#/components/schemas/Source" } ], "description": "Source of this Inventory Operation.", "default": "CLIENT" }, "client_order_ref_id": { "type": "string", "format": "uuid", "title": "Client Order Ref Id", "description": "Arbitrary UUID that can be used by clients to correlate Order requests with Order responses." }, "inventory": { "items": { "$ref": "#/components/schemas/UpdateInventoryRequestById" }, "type": "array", "minItems": 1, "title": "Inventory", "description": "Collection of Update Inventory Requests." } }, "type": "object", "required": [ "inventory" ], "title": "UpdateInventoryRequests", "description": "Collection of Update Inventory Requests. The Inventory referenced in the Update Inventory Requests must exist otherwise the request will fail. Each individual entry will be processed in the order they are specified in the collection.\n\nNote: Partial success is possible as each request is processed individually." }, "Vendor": { "properties": { "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom data associated with the resource", "default": {} }, "vendor_uuid": { "type": "string", "format": "uuid", "title": "Vendor Uuid", "description": "The Vendor UUID" }, "type": { "allOf": [ { "$ref": "#/components/schemas/VendorType" } ], "description": "Determines how the Vendor fulfills the loot", "default": "recipe" }, "legacy_type": { "type": "integer", "title": "Legacy Type", "default": 0, "deprecated": true }, "legacy_config_version": { "type": "integer", "title": "Legacy Config Version", "default": 0, "deprecated": true }, "loot": { "additionalProperties": { "$ref": "#/components/schemas/Loot" }, "type": "object", "title": "Loot", "description": "The Loot the Vendor will fulfill mapped by Loot ID.", "default": {} }, "cache_info": { "allOf": [ { "$ref": "#/components/schemas/CacheInfo" } ], "title": "Cache Info", "description": "Cache info for the Vendor." } }, "type": "object", "title": "Vendor", "description": "A collection of Loot and how to fulfill them." }, "VendorType": { "type": "string", "enum": [ "recipe", "randomly_sampled" ], "title": "VendorType", "description": "Determines how the Vendor fulfills the loot.", "x-enum-descriptions": [ "A Vendor that will always drop all of the Loot in the Loot table.", "A Vendor that will only fulfill one of the Loot in the Loot table based on the drop weights of the Loot." ], "x-enum-varnames": [ "recipe", "randomly_sampled" ] }, "Vendors": { "properties": { "vendors": { "additionalProperties": { "$ref": "#/components/schemas/Vendor" }, "type": "object", "title": "Vendors", "default": {} }, "cache_info": { "$ref": "#/components/schemas/CacheInfo" } }, "type": "object", "title": "Vendors", "description": "A collection of Vendors by Vendor ID." }, "XpQuantityTransform": { "type": "string", "enum": [ "none", "from_current_xp_to_target_additional_level_min_xp", "from_current_level_min_xp_to_target_additional_level_min_xp", "from_zero_to_target_exact_level_min_xp" ], "title": "XpQuantityTransform", "description": "Allows granting xp levels as Loot. If the player is already max level, the Loot will not be fulfilled. Requires the Item assigned to the Loot to have an XP Table ID.\n\nThe following examples assume the player is level 3 with 150 total xp. The quantity configured on the Loot being fulfilled is 1. The XP Table is configured like so:\n1: 20\n2: 50\n3: 100\n4: 200\n5: 400\n\nfrom_current_xp_to_target_additional_level_min_xp - The Loot will grant the player enough xp to reach min xp of the next level.\nExample 1: fulfill quantity 1\n Player will be level 4 with 200 total xp.\nExample 2: fulfill quantity 2\n Player will be level 5 with 400 total xp.\nExample 3: fulfill quantity 3\n Player will be level 5 with 400 total xp.\n\nfrom_current_level_min_xp_to_target_additional_level_min_xp - The Loot will grant the player the amount of xp required to reach the min xp of the next level from the min xp of the current level.\nExample 1: fulfill quantity 1\n Player will be level 4 with 250 total xp.\nExample 2: fulfill quantity 2\n Player will be level 5 with 450 total xp.\nExample 3: fulfill quantity 3\n Player will be level 5 with 450 total xp.\n\nfrom_zero_to_target_exact_level_min_xp - The Loot will grant the player the amount of xp required to reach the min xp of the target level from zero xp.\nExample 1: fulfill quantity 1\n Player will be level 3 with 170 total xp.\nExample 2: fulfill quantity 2\n Player will be level 4 with 200 total xp.\nExample 3: fulfill quantity 3\n Player will be level 4 with 250 total xp.", "x-enum-descriptions": [ "Quantity will be treated as XP and will not be transformed.", "Quantity will be treated as level to fulfill and will be transformed to the amount of XP required to reach the min xp of the fulfilled levels.", "Quantity will be treated as levels to fulfill and will be transformed to the amount of XP required to reach the min xp of the fulfilled levels from the min xp of the current level.", "Quantity will be treated as levels to fulfill and will be transformed to the amount of XP required to reach the min xp of the fulfilled levels from zero xp." ], "x-enum-varnames": [ "none", "from_current_xp_to_target_additional_level_min_xp", "from_current_level_min_xp_to_target_additional_level_min_xp", "from_zero_to_target_exact_level_min_xp" ] }, "XpTable": { "properties": { "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Custom data associated with the resource", "default": {} }, "xp_uuid": { "type": "string", "format": "uuid", "title": "Xp Uuid", "description": "The XP Table UUID" }, "xp_entries": { "additionalProperties": { "type": "integer", "minimum": 0 }, "type": "object", "title": "Xp Entries", "default": {} }, "cache_info": { "$ref": "#/components/schemas/CacheInfo" } }, "type": "object", "title": "XpTable", "description": "A collection of XP Levels from 1 to N. Each level has a minimum XP value." }, "XpTables": { "properties": { "xp_tables": { "additionalProperties": { "$ref": "#/components/schemas/XpTable" }, "type": "object", "title": "Xp Tables", "default": {} }, "cache_info": { "$ref": "#/components/schemas/CacheInfo" } }, "type": "object", "title": "XpTables", "description": "A collection of XP Tables. Each table is a collection of XP Levels from 1 to N. Each level has a minimum XP value." }, "ClientVisibleSettings": { "properties": { "self_ping_interval_seconds": { "type": "integer", "title": "Self Ping Interval Seconds", "description": "How frequently the client should tell this service that it's online.", "default": 30 }, "last_seen_age_considered_offline_seconds": { "type": "integer", "title": "Last Seen Age Considered Offline Seconds", "description": "If a client hasn't said that it's online within this time period, it will be treated as offline when others query its presence.", "default": 60 } }, "type": "object", "title": "ClientVisibleSettings" }, "IndividualCCUs": { "properties": { "ccus": { "additionalProperties": { "type": "integer" }, "type": "object", "title": "Ccus" } }, "type": "object", "required": [ "ccus" ], "title": "IndividualCCUs" }, "OnlineStatus": { "type": "string", "enum": [ "online", "away", "invisible", "offline" ], "title": "OnlineStatus", "description": "An enumeration.", "x-enum-descriptions": [ "Player is current online", "Player is current online, but away. Functionally identical to online", "Player will appear offline to other players", "Player is offline" ], "x-enum-varnames": [ "online", "away", "invisible", "offline" ] }, "PlatformIndividualCCUs": { "properties": { "platform_ccus": { "additionalProperties": { "$ref": "#/components/schemas/IndividualCCUs" }, "type": "object", "title": "Platform Ccus" } }, "type": "object", "required": [ "platform_ccus" ], "title": "PlatformIndividualCCUs" }, "PlatformUnionCCUs": { "properties": { "platform_counts": { "additionalProperties": { "$ref": "#/components/schemas/UnionCCU" }, "type": "object", "title": "Platform Counts" } }, "type": "object", "required": [ "platform_counts" ], "title": "PlatformUnionCCUs" }, "Platforms": { "properties": { "platforms": { "items": { "type": "string" }, "type": "array", "title": "Platforms" } }, "type": "object", "required": [ "platforms" ], "title": "Platforms" }, "PlayerLastSeenUpdate": { "properties": { "time": { "type": "string", "format": "date-time", "title": "Time", "description": "Last time this player reported their online status" }, "platform": { "type": "string", "title": "Platform", "description": "Platform the user was online in" }, "display_name": { "type": "string", "title": "Display Name", "description": "Player Display Name" } }, "type": "object", "required": [ "time" ], "title": "PlayerLastSeenUpdate" }, "PlayerPresence": { "properties": { "status": { "allOf": [ { "$ref": "#/components/schemas/OnlineStatus" } ], "description": "Is the player currently online?", "default": "offline" }, "message": { "type": "string", "maxLength": 256, "title": "Message", "description": "Optional custom message to display alongside the user's online status", "default": "" }, "platform": { "type": "string", "title": "Platform", "description": "Platform the user was online in" }, "display_name": { "type": "string", "title": "Display Name", "description": "Player Display Name" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "custom fields for the player to update about their presence", "default": {} }, "player_id": { "type": "integer", "title": "Player Id", "description": "Player ID for the player if it was provided as part of the request" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "UUID of the player whose presence this represents" }, "do_not_disturb": { "type": "boolean", "title": "Do Not Disturb", "description": "Disables notifications and invites. Only set for self or admin." }, "last_seen": { "type": "string", "format": "date-time", "title": "Last Seen", "description": "Info about the player the last time they reported their status. Only set for self or admin" } }, "type": "object", "required": [ "platform", "display_name", "player_uuid" ], "title": "PlayerPresence" }, "PlayerPresenceUpdateSelf": { "properties": { "status": { "allOf": [ { "$ref": "#/components/schemas/OnlineStatus" } ], "description": "Is the player currently online?" }, "message": { "type": "string", "maxLength": 256, "title": "Message", "description": "Optional custom message to display alongside the user's online status. Leaving this unset will not change the value." }, "do_not_disturb": { "type": "boolean", "title": "Do Not Disturb", "description": "Disables notifications and invites. Leaving this unset will not change the value." }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "custom fields for the player to update about their presence. Custom data with a null value will be removed" } }, "type": "object", "title": "PlayerPresenceUpdateSelf" }, "UnionCCU": { "properties": { "count": { "type": "integer", "title": "Count" }, "timestamps": { "items": { "type": "string", "format": "date-time" }, "type": "array", "title": "Timestamps" } }, "type": "object", "required": [ "count", "timestamps" ], "title": "UnionCCU" }, "Notification": { "properties": { "message": { "type": "string", "maxLength": 4096, "title": "Message", "description": "Base Message for the notification" }, "rh_url": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Rh Url", "description": "Path to get additional data about this notification" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom values for the notification", "default": {} }, "etag": { "type": "string", "minLength": 1, "title": "Etag", "description": "ETag for the resource at rh_url at the time of this notification" }, "notification_id": { "type": "string", "title": "Notification Id", "description": "Unique Identifier for the notification. You cannot depend on the format of this string, and it must be considered opaque" }, "created": { "type": "string", "format": "date-time", "title": "Created", "description": "When this notification was added" } }, "type": "object", "required": [ "message", "notification_id", "created" ], "title": "Notification" }, "NotificationCreate": { "properties": { "message": { "type": "string", "maxLength": 4096, "title": "Message", "description": "Base Message for the notification" }, "rh_url": { "type": "string", "maxLength": 4096, "minLength": 1, "title": "Rh Url", "description": "Path to get additional data about this notification" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom values for the notification", "default": {} }, "etag": { "type": "string", "minLength": 1, "title": "Etag", "description": "ETag for the resource at rh_url at the time of this notification" } }, "type": "object", "required": [ "message" ], "title": "NotificationCreate" }, "NotificationCreateResult": { "properties": { "notification_id": { "type": "string", "title": "Notification Id", "description": "Unique Identifier for the last notification created. You cannot depend on the format of this string, and it must be considered opaque" } }, "type": "object", "required": [ "notification_id" ], "title": "NotificationCreateResult" }, "NotificationCreates": { "properties": { "notifications": { "items": { "$ref": "#/components/schemas/NotificationCreate" }, "type": "array", "maxItems": 100, "minItems": 1, "title": "Notifications", "description": "List of notifications creation requests" } }, "type": "object", "required": [ "notifications" ], "title": "NotificationCreates" }, "Notifications": { "properties": { "notifications": { "items": { "$ref": "#/components/schemas/Notification" }, "type": "array", "title": "Notifications", "description": "List of notifications", "default": [] }, "cursor": { "type": "string", "title": "Cursor", "description": "Cursor to use for the next request" } }, "type": "object", "required": [ "cursor" ], "title": "Notifications" }, "OffsetReset": { "type": "string", "enum": [ "latest", "earliest" ], "title": "OffsetReset", "description": "An enumeration.", "x-enum-varnames": [ "latest", "earliest" ], "x-enum-descriptions": [ "An enumeration.", "An enumeration." ] }, "CalculateRankConfig": { "properties": { "max_mu": { "type": "number", "title": "Max Mu", "description": "The maximum mu value achievable. Any attempts to update a rank value to be higher than this get clamped to the maximum" }, "min_mu": { "type": "number", "title": "Min Mu", "description": "The minimum mu value achievable. Any attempts to update a rank value to be lower than this get clamped to the minimum" }, "min_sigma": { "type": "number", "minimum": 2, "title": "Min Sigma", "description": "The minimum sigma allowed. Any attempts to update sigma to be lower than this get clamped to the minimum" }, "beta": { "type": "number", "title": "Beta", "description": "The distance between skill ranks that yields ~76% chance of winning. Recommended value is half the default sigma" }, "default_mu": { "type": "number", "title": "Default Mu", "description": "The default mu value for this rank id. Will be used when players do not have any rank history" }, "default_sigma": { "type": "number", "minimum": 2, "title": "Default Sigma", "description": "The default sigma for this rank id. Will be used when players do not have any rank history" }, "draw_probability": { "type": "number", "maximum": 1, "minimum": 0, "title": "Draw Probability", "description": "The percent probability of a draw occuring in the game. Must be in [0, 1)" }, "tau": { "type": "number", "title": "Tau", "description": "Factor that determines how quickly a player's sigma is adjusted. A larger tau will result in more volatile in ranks. Recommended value is is (default_sigma * .01)" } }, "type": "object", "required": [ "max_mu", "min_mu", "min_sigma", "default_mu", "default_sigma" ], "title": "CalculateRankConfig", "description": "Config about how to recalculate ranks" }, "CalculateRankRequest": { "properties": { "match_length_seconds": { "type": "integer", "minimum": 0, "title": "Match Length Seconds", "description": "How many seconds the match lasted" }, "teams": { "items": { "$ref": "#/components/schemas/RankedTeam" }, "type": "array", "title": "Teams", "description": "List of teams that participated in this match" }, "rank_config": { "allOf": [ { "$ref": "#/components/schemas/CalculateRankConfig" } ], "title": "Rank Config", "description": "Configs about how to recalculate and clamp newly calculated ranks" } }, "type": "object", "required": [ "match_length_seconds", "teams", "rank_config" ], "title": "CalculateRankRequest", "description": "A request body to calculate players' rankings, and return the results. Player ranks will not be updated" }, "CalculateRankResponse": { "properties": { "updated_players": { "items": { "$ref": "#/components/schemas/PlayerRank" }, "type": "array", "title": "Updated Players", "description": "List of players and their updated ranks" } }, "type": "object", "required": [ "updated_players" ], "title": "CalculateRankResponse", "description": "A response to recalculating players' ranks" }, "CalculatedRank": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "UUID for this specific player" }, "rank": { "allOf": [ { "$ref": "#/components/schemas/RankData" } ], "title": "Rank", "description": "Current rank info about player" }, "seconds_in_match": { "type": "integer", "minimum": 0, "title": "Seconds In Match", "description": "How many seconds this player was in the match" } }, "type": "object", "required": [ "player_uuid", "rank", "seconds_in_match" ], "title": "CalculatedRank", "description": "Additional data about a specific player's rank and previous match in order to make rank calculations" }, "PlayerRank": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "UUID for this specific player" }, "rank": { "allOf": [ { "$ref": "#/components/schemas/RankData" } ], "title": "Rank", "description": "Current rank info about player" } }, "type": "object", "required": [ "player_uuid", "rank" ], "title": "PlayerRank", "description": "Rank data about a specific player" }, "PlayerRankRequestResponse": { "properties": { "player_ranks": { "items": { "$ref": "#/components/schemas/PlayerRankResponse" }, "type": "array", "title": "Player Ranks", "description": "List of player's ranks" } }, "type": "object", "required": [ "player_ranks" ], "title": "PlayerRankRequestResponse", "description": "DEPRECATED Response to successfully requesting all of a player's ranks" }, "PlayerRankRequestResponseV2": { "properties": { "player_ranks": { "items": { "$ref": "#/components/schemas/PlayerRankResponseV2" }, "type": "array", "title": "Player Ranks", "description": "List of player's ranks" } }, "type": "object", "required": [ "player_ranks" ], "title": "PlayerRankRequestResponseV2", "description": "Response to successfully requesting all of a player's ranks" }, "PlayerRankResponse": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "UUID for this specific player" }, "rank": { "allOf": [ { "$ref": "#/components/schemas/RankData" } ], "title": "Rank", "description": "Current rank info about player" }, "rank_id": { "type": "integer", "minimum": 1, "title": "Rank Id", "description": "ID for this rank" } }, "type": "object", "required": [ "player_uuid", "rank", "rank_id" ], "title": "PlayerRankResponse", "description": "DEPRECATED Response to successfully requesting a player's rank" }, "PlayerRankResponseV2": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "UUID for this specific player" }, "rank": { "allOf": [ { "$ref": "#/components/schemas/RankData" } ], "title": "Rank", "description": "Current rank info about player" }, "rank_id": { "type": "string", "minLength": 1, "title": "Rank Id", "description": "ID for this rank" } }, "type": "object", "required": [ "player_uuid", "rank", "rank_id" ], "title": "PlayerRankResponseV2", "description": "Response to successfully requesting a player's rank" }, "PlayerRankUpdateRequest": { "properties": { "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "ID for the instance the match took place on" }, "rank": { "allOf": [ { "$ref": "#/components/schemas/RankData" } ], "title": "Rank", "description": "Current rank info about player" } }, "type": "object", "required": [ "rank" ], "title": "PlayerRankUpdateRequest", "description": "Request body to update generic rank data" }, "PlayerRankUpdateResponse": { "properties": { "updated_players": { "items": { "$ref": "#/components/schemas/PlayerRankResponse" }, "type": "array", "title": "Updated Players", "description": "List of players and their updated ranks" } }, "type": "object", "required": [ "updated_players" ], "title": "PlayerRankUpdateResponse", "description": "DEPRECATED Response to successfully updating players' ranks" }, "PlayerRankUpdateResponseV2": { "properties": { "updated_players": { "items": { "$ref": "#/components/schemas/PlayerRankResponseV2" }, "type": "array", "title": "Updated Players", "description": "List of players and their updated ranks" } }, "type": "object", "required": [ "updated_players" ], "title": "PlayerRankUpdateResponseV2", "description": "Response to successfully updating players' ranks" }, "RankConfigRequestResponseV3": { "properties": { "rank_configs": { "items": { "$ref": "#/components/schemas/RankConfigV3" }, "type": "array", "title": "Rank Configs", "description": "List of rank configurations" } }, "type": "object", "required": [ "rank_configs" ], "title": "RankConfigRequestResponseV3", "description": "Response to successfully requesting all rank config" }, "RankConfigV3": { "properties": { "name": { "type": "string", "title": "Name", "description": "Human readable name for this rank" }, "description": { "type": "string", "title": "Description", "description": "Description of this rank" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data about this rank" }, "max_mu": { "type": "number", "title": "Max Mu", "description": "The maximum mu value achievable. Any attempts to update a rank value to be higher than this get clamped to the maximum" }, "min_mu": { "type": "number", "title": "Min Mu", "description": "The minimum mu value achievable. Any attempts to update a rank value to be lower than this get clamped to the minimum" }, "min_sigma": { "type": "number", "minimum": 2, "title": "Min Sigma", "description": "The minimum sigma allowed. Any attempts to update sigma to be lower than this get clamped to the minimum" }, "beta": { "type": "number", "title": "Beta", "description": "The distance between skill ranks that yields ~76% chance of winning. Recommended value is half the default sigma" }, "default_mu": { "type": "number", "title": "Default Mu", "description": "The default mu value for this rank id. Will be used when players do not have any rank history" }, "default_sigma": { "type": "number", "minimum": 2, "title": "Default Sigma", "description": "The default sigma for this rank id. Will be used when players do not have any rank history" }, "draw_probability": { "type": "number", "maximum": 1, "minimum": 0, "title": "Draw Probability", "description": "The percent probability of a draw occuring in the game. Must be in [0, 1)" }, "tau": { "type": "number", "title": "Tau", "description": "Factor that determines how quickly a player's sigma is adjusted. A larger tau will result in more volatile in ranks. Recommended value is is (default_sigma * .01)" }, "rank_id": { "type": "string", "minLength": 1, "title": "Rank Id", "description": "ID for this rank type" } }, "type": "object", "required": [ "max_mu", "min_mu", "min_sigma", "default_mu", "default_sigma", "rank_id" ], "title": "RankConfigV3", "description": "Configuration about a specific rank type" }, "RankData": { "properties": { "mu": { "type": "number", "title": "Mu", "description": "A measure of perceived skill in a player" }, "sigma": { "type": "number", "minimum": 2, "title": "Sigma", "description": "A measure of how confident we are in the perceived skill (high sigma means low confidence)" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom key-value player rank data", "default": {} } }, "type": "object", "required": [ "mu", "sigma" ], "title": "RankData", "description": "Ranked data about a player's skill and confidence levels" }, "RankUpdateRequest": { "properties": { "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "ID for the instance the match took place on" }, "rank_id": { "type": "integer", "minimum": 1, "title": "Rank Id", "description": "ID for the rank type used in this match" }, "match_length_seconds": { "type": "integer", "minimum": 0, "title": "Match Length Seconds", "description": "How many seconds the match lasted" }, "teams": { "items": { "$ref": "#/components/schemas/RankedTeam" }, "type": "array", "title": "Teams", "description": "List of teams that participated in this match" } }, "type": "object", "required": [ "rank_id", "match_length_seconds", "teams" ], "title": "RankUpdateRequest", "description": "DEPRECATED A request body to calculate and update players' ratings from a match" }, "RankUpdateRequestV2": { "properties": { "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Instance Id", "description": "ID for the instance the match took place on" }, "rank_id": { "type": "string", "minLength": 1, "title": "Rank Id", "description": "ID for the rank type used in this match" }, "match_length_seconds": { "type": "integer", "minimum": 0, "title": "Match Length Seconds", "description": "How many seconds the match lasted" }, "teams": { "items": { "$ref": "#/components/schemas/RankedTeam" }, "type": "array", "title": "Teams", "description": "List of teams that participated in this match" } }, "type": "object", "required": [ "rank_id", "match_length_seconds", "teams" ], "title": "RankUpdateRequestV2", "description": "A request body to calculate and update players' ratings from a match" }, "RankedTeam": { "properties": { "players": { "items": { "$ref": "#/components/schemas/CalculatedRank" }, "type": "array", "title": "Players", "description": "List of CalculatedRank objects that give stats about a specific player from the match" }, "team_rank": { "type": "integer", "minimum": 1, "title": "Team Rank", "description": "What rank this team came in. 1 indicates victory, and higher values are placements. Matching ranks indicate draws" } }, "type": "object", "required": [ "players", "team_rank" ], "title": "RankedTeam", "description": "One team of players from a match along with their placement in the match, and previous rank data about all of the players" }, "EnvironmentConfig": { "properties": { "org_id": { "type": "string", "format": "uuid", "title": "Org Id" }, "product_id": { "type": "string", "format": "uuid", "title": "Product Id" }, "environment_id": { "type": "string", "format": "uuid", "title": "Environment Id" }, "sandbox_id": { "type": "string", "format": "uuid", "title": "Sandbox Id" } }, "type": "object", "required": [ "org_id", "product_id", "environment_id", "sandbox_id" ], "title": "EnvironmentConfig" }, "KV_V1": { "properties": { "key": { "type": "string", "title": "Key", "description": "The key for the setting" }, "value": { "type": "string", "title": "Value", "description": "The value for the setting" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes", "description": "Notes to describe the key value pair" } }, "type": "object", "required": [ "key", "value" ], "title": "KV_V1", "description": "A key/value pair that represents a setting to be used by the client." }, "KVsResponseV1": { "properties": { "kvs": { "items": { "$ref": "#/components/schemas/KV_V1" }, "type": "array", "title": "Kvs", "description": "The list of key/value pairs", "default": [] }, "secret_kvs": { "items": { "$ref": "#/components/schemas/KV_V1" }, "type": "array", "title": "Secret Kvs", "description": "The list of secret key/value pairs", "default": [] } }, "type": "object", "title": "KVsResponseV1" }, "KVsResponseV2": { "properties": { "kvs": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Kvs", "description": "The list of key/value pairs", "default": {} }, "secret_kvs": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Secret Kvs", "description": "*DEPRECATED* The list of permissioned key/value pairs", "default": {}, "deprecated": true }, "kick_before_hint": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Kick Before Hint", "description": "Hint to game clients currently logged into the environment, that they should log themselves out if their login was created before this time. \n\nThis is NOT enforced by the environment's API, but relies on well-behaved clients handling it correctly. This is intentionally left as a hint to game clients, so game teams can decide how to interact with it. For example, some games will want to allow clients that are currently playing a match to continue until it is completed, while others will want to kick them immediately. \n\nIt is recommended to only set this value to a past/current timestamp, as future timestamps will cause odd login/logout behavior" } }, "type": "object", "title": "KVsResponseV2" }, "EventList": { "properties": { "event_list": { "items": { "$ref": "#/components/schemas/RallyHereEvent" }, "type": "array", "title": "Event List", "description": "List of events" } }, "type": "object", "required": [ "event_list" ], "title": "EventList" }, "EventParamsSchemaResponse": { "properties": { "event_param_schemas": { "type": "object", "title": "Event Param Schemas", "description": "Dictionary contains event name and Json schema definition for its event_params parameter" } }, "type": "object", "required": [ "event_param_schemas" ], "title": "EventParamsSchemaResponse" }, "PostGameEventsResponse": { "properties": { "posted_events": { "type": "integer", "title": "Posted Events", "description": "Number of events successfully posted to Event Hub" }, "errors": { "items": {}, "type": "array", "title": "Errors", "description": "list of validation failure for each event." } }, "type": "object", "required": [ "posted_events" ], "title": "PostGameEventsResponse" }, "RallyHereEvent": { "properties": { "event_uuid": { "type": "string", "format": "uuid", "title": "Event Uuid", "description": "Unique Event ID for this instance of the event" }, "event_name": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Event Name", "description": "Type of event to process this as." }, "event_timestamp": { "type": "string", "format": "date-time", "title": "Event Timestamp", "description": "Time the event was triggered" }, "event_params": { "type": "object", "title": "Event Params", "description": "Event specific parameters" }, "custom_data": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Data", "description": "Event custom data" }, "user_id": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "User Id", "description": "User who submitted the event" }, "session_id": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Session Id", "description": "Session ID to associate the event with" }, "correlation_id": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Correlation Id", "description": "Correlation ID to associate the event with" } }, "additionalProperties": false, "type": "object", "required": [ "event_uuid", "event_name", "event_timestamp", "event_params" ], "title": "RallyHereEvent" }, "MatchHostType": { "type": "string", "enum": [ "dedicated", "player" ], "title": "HostType", "description": "Whether the host is another player, or a dedicated instance" }, "MatchAllocation": { "properties": { "allocation_id": { "type": "string", "title": "Allocation Id", "description": "Allocation ID" } }, "type": "object", "required": [ "allocation_id" ], "title": "MatchAllocation" }, "MatchInstance": { "properties": { "instance_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instance Id", "description": "Instance ID" }, "host_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Host Player Uuid", "description": "Player UUID of the host" }, "region_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id", "description": "Region ID the instance is in" }, "instance_request_template_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instance Request Template Id", "description": "Launch request template ID" }, "map": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map", "description": "Map the instance is on" }, "game_mode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode", "description": "Game mode the instance is in" }, "host_type": { "anyOf": [ { "$ref": "#/components/schemas/MatchHostType" }, { "type": "null" } ], "description": "Type of host" } }, "type": "object", "title": "MatchInstance" }, "MatchPlayerRequest": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id", "description": "Team ID the player was on" }, "party_session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Party Session Id", "description": "Party session ID the player was in" }, "placement": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Placement", "description": "Placement of the player in the match" }, "joined_match_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Joined Match Timestamp", "description": "Time the player joined the match" }, "left_match_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Left Match Timestamp", "description": "Time the player left the match" }, "duration_seconds": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Seconds", "description": "Duration in seconds the player was in the match" }, "starting_rank": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Starting Rank", "description": "Starting rank of the player in the match" }, "finishing_rank": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Finishing Rank", "description": "Finishing rank of the player in the match" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data for the player" } }, "type": "object", "title": "MatchPlayerRequest" }, "MatchPlayerResponse": { "properties": { "last_modified_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Timestamp of when the resource was last modified", "example": "2023-01-23T21:07:02.000000+00:00" }, "created_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Timestamp of when the resource was created", "example": "2023-01-23T21:07:02.000000+00:00" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id", "description": "Team ID the player was on" }, "party_session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Party Session Id", "description": "Party session ID the player was in" }, "placement": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Placement", "description": "Placement of the player in the match" }, "joined_match_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Joined Match Timestamp", "description": "Time the player joined the match" }, "left_match_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Left Match Timestamp", "description": "Time the player left the match" }, "duration_seconds": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Seconds", "description": "Duration in seconds the player was in the match" }, "starting_rank": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Starting Rank", "description": "Starting rank of the player in the match" }, "finishing_rank": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Finishing Rank", "description": "Finishing rank of the player in the match" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data for the player" } }, "type": "object", "title": "MatchPlayerResponse" }, "MatchPlayerWithMatch": { "properties": { "last_modified_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Timestamp of when the resource was last modified", "example": "2023-01-23T21:07:02.000000+00:00" }, "created_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Timestamp of when the resource was created", "example": "2023-01-23T21:07:02.000000+00:00" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id", "description": "Team ID the player was on" }, "party_session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Party Session Id", "description": "Party session ID the player was in" }, "placement": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Placement", "description": "Placement of the player in the match" }, "joined_match_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Joined Match Timestamp", "description": "Time the player joined the match" }, "left_match_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Left Match Timestamp", "description": "Time the player left the match" }, "duration_seconds": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Seconds", "description": "Duration in seconds the player was in the match" }, "starting_rank": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Starting Rank", "description": "Starting rank of the player in the match" }, "finishing_rank": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Finishing Rank", "description": "Finishing rank of the player in the match" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data for the player" }, "match": { "allOf": [ { "$ref": "#/components/schemas/MatchValuesOnly" } ], "description": "Match the player was in" } }, "type": "object", "required": [ "match" ], "title": "MatchPlayerWithMatch" }, "MatchRequest": { "properties": { "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type", "description": "Type of match" }, "state": { "anyOf": [ { "$ref": "#/components/schemas/MatchState" }, { "type": "null" } ], "description": "State of the match" }, "start_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Start Timestamp", "description": "Start time of the match" }, "end_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "End Timestamp", "description": "End time of the match" }, "duration_seconds": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Seconds", "description": "Duration in seconds of the match" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data for the match" }, "correlation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correlation Id", "description": "Correlation ID for the match" }, "sessions": { "items": { "$ref": "#/components/schemas/MatchSession" }, "type": "array", "title": "Sessions", "description": "List of session IDs for the match", "default": [] }, "instances": { "items": { "$ref": "#/components/schemas/MatchInstance" }, "type": "array", "title": "Instances", "description": "List of MatchInstances for the match", "default": [] }, "allocations": { "items": { "$ref": "#/components/schemas/MatchAllocation" }, "type": "array", "title": "Allocations", "description": "List of allocation IDs for the match", "default": [] }, "players": { "items": { "$ref": "#/components/schemas/MatchPlayerRequest" }, "type": "array", "title": "Players", "description": "List of players in the match", "default": [] }, "segments": { "items": { "$ref": "#/components/schemas/MatchSegmentRequest" }, "type": "array", "title": "Segments", "description": "List of segments for the match", "default": [] } }, "type": "object", "title": "MatchRequest" }, "MatchSegmentRequest": { "properties": { "match_segment": { "type": "string", "maxLength": 16, "minLength": 1, "title": "Match Segment", "description": "Segment ID of the match" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type", "description": "Type of match" }, "state": { "anyOf": [ { "$ref": "#/components/schemas/MatchState" }, { "type": "null" } ], "description": "State of the match" }, "start_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Start Timestamp", "description": "Start time of the match" }, "end_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "End Timestamp", "description": "End time of the match" }, "duration_seconds": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Seconds", "description": "Duration in seconds of the match" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data for the match" }, "correlation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correlation Id", "description": "Correlation ID for the match" }, "sessions": { "items": { "$ref": "#/components/schemas/MatchSession" }, "type": "array", "title": "Sessions", "description": "List of session IDs for the match", "default": [] }, "instances": { "items": { "$ref": "#/components/schemas/MatchInstance" }, "type": "array", "title": "Instances", "description": "List of MatchInstances for the match", "default": [] }, "allocations": { "items": { "$ref": "#/components/schemas/MatchAllocation" }, "type": "array", "title": "Allocations", "description": "List of allocation IDs for the match", "default": [] }, "players": { "items": { "$ref": "#/components/schemas/MatchPlayerRequest" }, "type": "array", "title": "Players", "description": "List of players in the match", "default": [] } }, "type": "object", "required": [ "match_segment" ], "title": "MatchSegmentRequest" }, "MatchSegmentWithPlayers": { "properties": { "last_modified_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Timestamp of when the resource was last modified", "example": "2023-01-23T21:07:02.000000+00:00" }, "created_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Timestamp of when the resource was created", "example": "2023-01-23T21:07:02.000000+00:00" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type", "description": "Type of match" }, "state": { "anyOf": [ { "$ref": "#/components/schemas/MatchState" }, { "type": "null" } ], "description": "State of the match" }, "start_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Start Timestamp", "description": "Start time of the match" }, "end_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "End Timestamp", "description": "End time of the match" }, "duration_seconds": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Seconds", "description": "Duration in seconds of the match" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data for the match" }, "correlation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correlation Id", "description": "Correlation ID for the match" }, "sessions": { "items": { "$ref": "#/components/schemas/MatchSession" }, "type": "array", "title": "Sessions", "description": "List of session IDs for the match", "default": [] }, "instances": { "items": { "$ref": "#/components/schemas/MatchInstance" }, "type": "array", "title": "Instances", "description": "List of MatchInstances for the match", "default": [] }, "allocations": { "items": { "$ref": "#/components/schemas/MatchAllocation" }, "type": "array", "title": "Allocations", "description": "List of allocation IDs for the match", "default": [] }, "match_segment": { "type": "string", "maxLength": 16, "minLength": 1, "title": "Match Segment", "description": "Segment ID of the match" }, "match_id": { "type": "string", "title": "Match Id" }, "players": { "items": { "$ref": "#/components/schemas/MatchPlayerResponse" }, "type": "array", "title": "Players", "description": "List of players in the match", "default": [] } }, "type": "object", "required": [ "match_segment" ], "title": "MatchSegmentWithPlayers" }, "MatchSession": { "properties": { "session_id": { "type": "string", "title": "Session Id", "description": "Session ID" }, "matchmaking_profile_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id", "description": "Profile ID" } }, "type": "object", "required": [ "session_id" ], "title": "MatchSession" }, "MatchState": { "type": "string", "enum": [ "pending", "closed" ], "title": "MatchState", "description": "Match States." }, "MatchValuesOnly": { "properties": { "last_modified_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Timestamp of when the resource was last modified", "example": "2023-01-23T21:07:02.000000+00:00" }, "created_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Timestamp of when the resource was created", "example": "2023-01-23T21:07:02.000000+00:00" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type", "description": "Type of match" }, "state": { "anyOf": [ { "$ref": "#/components/schemas/MatchState" }, { "type": "null" } ], "description": "State of the match" }, "start_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Start Timestamp", "description": "Start time of the match" }, "end_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "End Timestamp", "description": "End time of the match" }, "duration_seconds": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Seconds", "description": "Duration in seconds of the match" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data for the match" }, "correlation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correlation Id", "description": "Correlation ID for the match" }, "sessions": { "items": { "$ref": "#/components/schemas/MatchSession" }, "type": "array", "title": "Sessions", "description": "List of session IDs for the match", "default": [] }, "instances": { "items": { "$ref": "#/components/schemas/MatchInstance" }, "type": "array", "title": "Instances", "description": "List of MatchInstances for the match", "default": [] }, "allocations": { "items": { "$ref": "#/components/schemas/MatchAllocation" }, "type": "array", "title": "Allocations", "description": "List of allocation IDs for the match", "default": [] }, "match_id": { "type": "string", "title": "Match Id" } }, "type": "object", "title": "MatchValuesOnly" }, "MatchWithPlayers": { "properties": { "last_modified_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Timestamp of when the resource was last modified", "example": "2023-01-23T21:07:02.000000+00:00" }, "created_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Timestamp of when the resource was created", "example": "2023-01-23T21:07:02.000000+00:00" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type", "description": "Type of match" }, "state": { "anyOf": [ { "$ref": "#/components/schemas/MatchState" }, { "type": "null" } ], "description": "State of the match" }, "start_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "Start Timestamp", "description": "Start time of the match" }, "end_timestamp": { "anyOf": [ { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "End Timestamp", "description": "End time of the match" }, "duration_seconds": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Seconds", "description": "Duration in seconds of the match" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data for the match" }, "correlation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correlation Id", "description": "Correlation ID for the match" }, "sessions": { "items": { "$ref": "#/components/schemas/MatchSession" }, "type": "array", "title": "Sessions", "description": "List of session IDs for the match", "default": [] }, "instances": { "items": { "$ref": "#/components/schemas/MatchInstance" }, "type": "array", "title": "Instances", "description": "List of MatchInstances for the match", "default": [] }, "allocations": { "items": { "$ref": "#/components/schemas/MatchAllocation" }, "type": "array", "title": "Allocations", "description": "List of allocation IDs for the match", "default": [] }, "match_id": { "type": "string", "title": "Match Id" }, "segments": { "items": { "$ref": "#/components/schemas/MatchSegmentWithPlayers" }, "type": "array", "title": "Segments", "description": "List of segments for the match", "default": [] }, "players": { "items": { "$ref": "#/components/schemas/MatchPlayerResponse" }, "type": "array", "title": "Players", "description": "List of players in the match", "default": [] } }, "type": "object", "title": "MatchWithPlayers" }, "PagedMatchResponse": { "properties": { "matches": { "items": { "$ref": "#/components/schemas/MatchWithPlayers" }, "type": "array", "title": "Matches", "description": "List of matches", "default": [] }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor", "description": "Base64 encoded json that contains the filters and cursor position" } }, "type": "object", "title": "PagedMatchResponse" }, "PagedPlayerMatchResponse": { "properties": { "player_matches": { "items": { "$ref": "#/components/schemas/MatchPlayerWithMatch" }, "type": "array", "title": "Player Matches", "description": "List of player's matches", "default": [] }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor", "description": "Base64 encoded json that contains the filters and cursor position" } }, "type": "object", "title": "PagedPlayerMatchResponse" }, "PlayerReport": { "properties": { "report_id": { "type": "string", "title": "Report Id", "description": "Unique ID for the player report" }, "source_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Source Player Uuid", "description": "The player UUID of the source player. May be missing depending on permissions" }, "source_player_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Source Player Id", "description": "DEPRECATED: Use source_player_uuid instead. The player ID of the source player", "deprecated": true }, "target_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Target Player Uuid", "description": "The player UUID of the target player. May be missing depending on permissions" }, "target_player_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Target Player Id", "description": "DEPRECATED: Use target_player_uuid instead. The player ID of the target player", "deprecated": true }, "reason": { "allOf": [ { "$ref": "#/components/schemas/ReportReason" } ], "description": "The reason for the report" }, "description": { "anyOf": [ { "type": "string", "maxLength": 4096, "minLength": 1 }, { "type": "null" } ], "title": "Description", "description": "The description of the report" }, "session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Id", "description": "The session ID of the report" }, "instance_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instance Id", "description": "The instance ID of the report" }, "match_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Match Id", "description": "The match ID of the report" }, "match_segment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Match Segment", "description": "The match segment of the report" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data for the report", "default": {} }, "created": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created", "description": "The date and time the report was created" }, "modified": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Modified", "description": "The date and time the report was last modified" } }, "type": "object", "required": [ "report_id", "target_player_uuid", "reason" ], "title": "PlayerReport" }, "PlayerReportCreate": { "properties": { "source_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Source Player Uuid", "description": "The player UUID of the source player. May be missing depending on permissions" }, "reason": { "allOf": [ { "$ref": "#/components/schemas/ReportReason" } ], "description": "The reason for the report" }, "description": { "anyOf": [ { "type": "string", "maxLength": 4096, "minLength": 1 }, { "type": "null" } ], "title": "Description", "description": "The description of the report" }, "session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Id", "description": "The session ID of the report" }, "instance_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instance Id", "description": "The instance ID of the report" }, "match_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Match Id", "description": "The match ID of the report" }, "match_segment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Match Segment", "description": "The match segment of the report" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data for the report", "default": {} } }, "type": "object", "required": [ "reason" ], "title": "PlayerReportCreate" }, "PlayerReportList": { "properties": { "reports": { "items": { "$ref": "#/components/schemas/PlayerReport" }, "type": "array", "title": "Reports", "description": "A list of player reports" }, "next_cursor": { "anyOf": [ { "type": "string", "maxLength": 1024, "minLength": 1 }, { "type": "null" } ], "title": "Next Cursor", "description": "Pass this on subsequent calls to iterate forwards. Null/missing value indicates the last page" } }, "type": "object", "required": [ "reports" ], "title": "PlayerReportList" }, "ReportReason": { "type": "string", "enum": [ "cheating", "hate_speech", "harassment", "real_life_threat", "teaming", "intentional_feeding", "stream_sniping", "afk", "didnt_play_assigned_role", "other" ], "title": "ReportReason", "description": "Reason a player is submitting the report." }, "Body_create_entity_directory_file": { "properties": { "file": { "type": "string", "format": "binary", "title": "File" } }, "type": "object", "required": [ "file" ], "title": "Body_create_entity_directory_file" }, "EntityType": { "type": "string", "enum": [ "match", "unknown" ], "title": "EntityType" }, "FileListResponse": { "properties": { "files": { "items": { "$ref": "#/components/schemas/FileResponse" }, "type": "array", "title": "Files" } }, "type": "object", "required": [ "files" ], "title": "FileListResponse" }, "FileResponse": { "properties": { "name": { "type": "string", "title": "Name" }, "size": { "type": "integer", "title": "Size" }, "content_type": { "type": "string", "title": "Content Type" }, "created_timestamp": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "example": "2023-01-23T21:07:02.000000+00:00" } }, "type": "object", "required": [ "name", "size", "content_type", "created_timestamp" ], "title": "FileResponse" }, "FileType": { "type": "string", "enum": [ "file", "developer-file" ], "title": "FileType" }, "StorageInformation": { "properties": { "total_files": { "type": "integer", "title": "Total Files", "default": 0 }, "total_size_bytes": { "type": "integer", "title": "Total Size Bytes", "default": 0 }, "total_size_mb": { "type": "integer", "title": "Total Size Mb", "default": 0 } }, "type": "object", "title": "StorageInformation" } } } }