{ "openapi": "3.1.0", "info": { "title": "RallyHere Environment APIs", "description": "Each RallyHere environment has a unique API for accessing all of the systems and services for that environment.\n", "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\n" } } } ], "externalDocs": { "description": "RallyHere Documentation", "url": "https://docs.rallyhere.gg" }, "tags": [ { "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": "Users", "description": "User Endpoints to query user information, search for users, purge users (for GDPR or other delete reasons), and update linking/cross-progresion status for users." }, { "name": "Support", "description": "Support endpoints to manage and retrieve support logs for users." }, { "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": "Friends", "description": "Operations to fetch and modify a player's friends, blocked list, and configuration" }, { "name": "Referrals", "description": "Operations to fetch and modify a player's referrals" }, { "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": "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": "Deserter", "description": "Deserter is a system to prevent players from joining matchmaking queues. Endpoints allow setting the deserter status of individual players, and globally clearing the deserter status for all players for emergency maintenance." }, { "name": "Rank", "description": "\n\nThis API is used to update players ranks after matches\n\n" }, { "name": "Match", "description": "Match data is meant to store historical match information - including players, and related metadata.\n\nMatches are searchable on the Support Portal, and there are endpoints to query a player's matches or all matches in the system.\n\nEach match can also contain many Match Segments - which are sub-components of the overall match. They contain the same fields as the match. Common usage of Match Segments would be laps of a race to record player positions, minute intervals to record the state of the game partway through, rounds of play, or minigames within a larger match.\n" }, { "name": "Player Experience", "description": "Player Experience (PEX) is a system for Clients/Hosts to post metrics to for top-level analysis." }, { "name": "File", "description": "Operations on file-api" }, { "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": "Reports", "description": "Player Reports" }, { "name": "Notification", "description": "Operations on Player Notifications" }, { "name": "guide", "description": "Player Gameplay Guides" }, { "name": "Config", "description": "Client KVs, Server time, Environment IDs" }, { "name": "Events", "description": "Event Tracking" }, { "name": "Custom", "description": "Endpoints for hitting custom urls" }, { "name": "Ad", "description": "Ad endpoints are used to present ads to users, and grant rewards to them for doing so.\n\nThe system uses an external ad provider to present opportunities to the user. Currently, the only supported provider is Unity Ads. Please contact your RallyHere representative for more information.\n\nNote that each endpoint can return a `x-hz-ad-api-token` header, which should be reused whenever possible for future requests. This is an optimization that should improve future request times, as they won't require a secondary authentication with the external ad provider.\n" }, { "name": "Leaderboard", "description": "\nThis API is for requesting leaderboard data and the configuration around it\n" }, { "name": "Stage", "description": "" } ], "paths": { "/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" }, { "description": "IP Address hint", "required": false, "schema": { "type": "string", "maxLength": 32, "title": "X-Rh-Client-Addr", "description": "IP Address hint" }, "name": "x-rh-client-addr", "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- `does_not_meet_ownership_reqs` - User does not meet ownership requirements for this product\n- `create_new_user_not_allowed` - Cannot create the requested new user from this context. This usually indicates that the user needs to login to the game before attempting an OAuth login\n- `android_device_disabled` - Android Device authentication is disabled\n- `android_device_token_empty` - Android Device token was empty\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- `ios_device_disabled` - IOS Device authentication is disabled\n- `ios_device_token_empty` - IOS Device token was empty\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/LoginCompleteMessage" } } } }, "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", "description": "Platform-specific token details. Return data that the platform allows for their tokens.", "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- `does_not_meet_ownership_reqs` - User does not meet ownership requirements for this product\n- `create_new_user_not_allowed` - Cannot create the requested new user from this context. This usually indicates that the user needs to login to the game before attempting an OAuth login\n- `android_device_disabled` - Android Device authentication is disabled\n- `android_device_token_empty` - Android Device token was empty\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- `ios_device_disabled` - IOS Device authentication is disabled\n- `ios_device_token_empty` - IOS Device token was empty\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", "description": "Log out a refresh token", "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/verify": { "post": { "tags": [ "Auth" ], "summary": "Verify", "description": "Verify if an access token is still valid", "operationId": "verify", "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/publickeys": { "get": { "tags": [ "Auth" ], "summary": "Get All Public Keys", "description": "Get all current public keys for this auth provider", "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", "description": "Get a current public key by `key_id` for this auth provider.", "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/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" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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/{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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "**DEPRECATED** Please use `/v2/player/{player_uuid}/links` instead. 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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] }, "put": { "tags": [ "Users" ], "summary": "Update Platform User By Id", "description": "Update or create a 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": "update_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 or create", "required": true, "schema": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "Platform user ID to search for or create" }, "name": "platform_user_id", "in": "query" }, { "description": "Display name for the platform user", "required": true, "schema": { "type": "string", "maxLength": 256, "title": "Display Name", "description": "Display name for the platform user" }, "name": "display_name", "in": "query" } ], "responses": { "200": { "description": "Existing platform user was updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUserResponse" } } } }, "201": { "description": "New 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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [ "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_invalid_type` - Invalid Authorization - Invalid Token Type\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. \n \nResults will include the active player, if possible, otherwise will return the associated player directly.", "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_invalid_type` - Invalid Authorization - Invalid Token Type\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.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `user:*`, `user:player:iterate`", "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/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_invalid_type` - Invalid Authorization - Invalid Token Type\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/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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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/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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [ "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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/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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] }, "post": { "tags": [ "Users" ], "summary": "Queue Me 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`.\n\nRequired Permissions:\n\n- For any person (including themselves) any of: `purge:*:*`, `purge:person:admin`\n\n- For the person themselves : `purge:person:self`", "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "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": [ "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } }, "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. \n \nRequired Permissions:\n\n- For any person (including themselves) any of: `purge:*:*`, `purge:person:admin`\n\n- For the person themselves : `purge:person:self`", "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] }, "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`.\n\nRequired Permissions:\n\n- For any person (including themselves) any of: `purge:*:*`, `purge:person:admin`\n\n- For the person themselves : `purge:person:self`", "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] }, "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. \n \nRequired Permissions:\n\n- For any person (including themselves) any of: `purge:*:*`, `purge:person:admin`\n\n- For the person themselves : `purge:person:self`", "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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/person/me/restrictions": { "get": { "tags": [ "Users" ], "summary": "Get Person Restrictions For Self", "description": "Get Restrictions for your person. These same restrictions apply to all players associated with the person\n\nRequired Permissions:\n\n- For any person (including themselves) any of: `user:*`, `user:restriction:read:any`\n\n- For the person themselves : `user:restriction:read:self`", "operationId": "get_person_restrictions_for_self", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Restrictions" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `user_not_found` - User not found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/person/{person_id}/restrictions": { "get": { "tags": [ "Users" ], "summary": "Get Person Restrictions", "description": "Get Restrictions for a person. These same restrictions apply to all players associated with the person\n\nRequired Permissions:\n\n- For any person (including themselves) any of: `user:*`, `user:restriction:read:any`\n\n- For the person themselves : `user:restriction:read:self`", "operationId": "get_person_restrictions", "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/Restrictions" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [ "Users" ], "summary": "Add Person Restrictions", "description": "Add a new restriction to an existing person\n\nRequired Permissions:\n\n- For any person (including themselves) any of: `user:*`, `user:restriction:modify:any`", "operationId": "add_person_restrictions", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Person Id" }, "name": "person_id", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RestrictionCreate" } } }, "required": true }, "responses": { "201": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] }, "delete": { "tags": [ "Users" ], "summary": "Remove Person Restrictions", "description": "Remove restrictions from user. NOTE: this will NOT remove restrictions for account deletion\n\nRequired Permissions:\n\n- For any person (including themselves) any of: `user:*`, `user:restriction:modify:any`", "operationId": "remove_person_restrictions", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Person Id" }, "name": "person_id", "in": "path" }, { "description": "Issuer of the action", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/RestrictionIssuerType" } ], "description": "Issuer of the action" }, "name": "issuer_type", "in": "query" }, { "description": "Issuer of the action", "required": false, "schema": { "type": "string", "title": "Issuer", "description": "Issuer of the action" }, "name": "issuer", "in": "query" } ], "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_invalid_type` - Invalid Authorization - Invalid Token Type\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/me/restrictions": { "get": { "tags": [ "Users" ], "summary": "Get Player Restrictions For Self", "description": "Get Restrictions for a player\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `user:*`, `user:restriction:read:any`\n\n- For the player themselves : `user:restriction:read:self`", "operationId": "get_player_restrictions_for_self", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Restrictions" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v2/player/{player_uuid}/restrictions": { "get": { "tags": [ "Users" ], "summary": "Get Player Restrictions", "description": "Get Restrictions for a player\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `user:*`, `user:restriction:read:any`\n\n- For the player themselves : `user:restriction:read:self`", "operationId": "get_player_restrictions", "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/Restrictions" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [ "Users" ], "summary": "Add Player Restrictions", "description": "Add a new restriction to an existing player's person\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `user:*`, `user:restriction:modify:any`", "operationId": "add_player_restrictions", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RestrictionCreate" } } }, "required": true }, "responses": { "201": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] }, "delete": { "tags": [ "Users" ], "summary": "Remove Player Restrictions", "description": "Remove restrictions from user. NOTE: this will NOT remove restrictions for account deletion\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `user:*`, `user:restriction:modify:any`", "operationId": "remove_player_restrictions", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "in": "path" }, { "description": "Issuer of the action", "required": false, "schema": { "allOf": [ { "$ref": "#/components/schemas/RestrictionIssuerType" } ], "description": "Issuer of the action" }, "name": "issuer_type", "in": "query" }, { "description": "Issuer of the action", "required": false, "schema": { "type": "string", "title": "Issuer", "description": "Issuer of the action" }, "name": "issuer", "in": "query" } ], "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_invalid_type` - Invalid Authorization - Invalid Token Type\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/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" }, { "description": "IP Address hint", "required": false, "schema": { "type": "string", "maxLength": 32, "title": "X-Rh-Client-Addr", "description": "IP Address hint" }, "name": "x-rh-client-addr", "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 - `does_not_meet_ownership_reqs` - User does not meet ownership requirements for this product\n - `create_new_user_not_allowed` - Cannot create the requested new user from this context. This usually indicates that the user needs to login to the game before attempting an OAuth login\n - `android_device_disabled` - Android Device authentication is disabled\n - `android_device_token_empty` - Android Device token was empty\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 - `ios_device_disabled` - IOS Device authentication is disabled\n - `ios_device_token_empty` - IOS Device token was empty\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" }, { "description": "IP Address hint", "required": false, "schema": { "type": "string", "maxLength": 32, "title": "X-Rh-Client-Addr", "description": "IP Address hint" }, "name": "x-rh-client-addr", "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 - `does_not_meet_ownership_reqs` - User does not meet ownership requirements for this product\n - `create_new_user_not_allowed` - Cannot create the requested new user from this context. This usually indicates that the user needs to login to the game before attempting an OAuth login\n - `android_device_disabled` - Android Device authentication is disabled\n - `android_device_token_empty` - Android Device token was empty\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 - `ios_device_disabled` - IOS Device authentication is disabled\n - `ios_device_token_empty` - IOS Device token was empty\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" }, { "description": "IP Address hint", "required": false, "schema": { "type": "string", "maxLength": 32, "title": "X-Rh-Client-Addr", "description": "IP Address hint" }, "name": "x-rh-client-addr", "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" }, { "description": "IP Address hint", "required": false, "schema": { "type": "string", "maxLength": 32, "title": "X-Rh-Client-Addr", "description": "IP Address hint" }, "name": "x-rh-client-addr", "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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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/role": { "get": { "tags": [ "Users" ], "summary": "Get All Roles", "description": "Get all current roles. Including their custom_data and login_loot_rewards.\n \nRequired Permissions:\n\n- For any player (including themselves) : `role:read`", "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" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/users/v1/history/login": { "get": { "tags": [ "Users" ], "summary": "Get Login History", "description": "Get the Login history for a given user\n \nRequired Permissions:\n\n- For any player, person, or platform identity (including themselves) any of: `user:*`, `user:audit:any`\n\n- For the player, person, or platform identity themselves : `user:audit:self`", "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_invalid_type` - Invalid Authorization - Invalid Token Type\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\n \nRequired Permissions:\n\n- For any player, person, or platform identity (including themselves) any of: `user:*`, `user:audit:any`\n\n- For the player, person, or platform identity themselves : `user:audit:self`", "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_invalid_type` - Invalid Authorization - Invalid Token Type\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/restriction": { "get": { "tags": [ "Users" ], "summary": "Get Restriction History", "description": "Get the restriction history for a given user\n\nRequired Permissions:\n\n- For any player, person, or platform identity (including themselves) any of: `user:*`, `user:audit:any`\n\n- For the player, person, or platform identity themselves : `user:audit:self`\n\nViewing issuer and internal reason info Required Permissions:\n\n- For any player, person, or platform identity (including themselves) any of: `user:*`, `user:restriction:modify:any`", "operationId": "get_restriction_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/RestrictionHistory" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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/support/log": { "get": { "tags": [ "Support" ], "summary": "Get Support Logs", "description": "Get a page of support logs for a player by UUID or person ID.\n \nRequired Permissions:\n\n- For any user (including themselves) any of: `support:log:read`, `user:*`", "operationId": "get_support_logs", "parameters": [ { "description": "The player UUID to get support logs for", "required": false, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "The player UUID to get support logs for" }, "name": "player_uuid", "in": "query" }, { "description": "The person ID to get support logs for", "required": false, "schema": { "type": "string", "format": "uuid", "title": "Person Id", "description": "The person ID to get support logs for" }, "name": "person_id", "in": "query" }, { "description": "The page number to retrieve", "required": false, "schema": { "type": "integer", "minimum": 1, "title": "Page", "description": "The page number to retrieve", "default": 1 }, "name": "page", "in": "query" }, { "description": "The number of logs per page", "required": false, "schema": { "type": "integer", "maximum": 100, "exclusiveMinimum": 0, "title": "Page Size", "description": "The number of logs per page", "default": 10 }, "name": "page_size", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupportLogPageResponse" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] }, "post": { "tags": [ "Support" ], "summary": "Create Support Log", "description": "Create a new support log entry for a player.\n \nRequired Permissions:\n\n- For any user (including themselves) any of: `support:log:write`, `user:*`", "operationId": "create_support_log", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSupportLogRequest" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupportLogEntry" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] } }, "/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:\n\n- For any player (including themselves) any of: `setting-config:read`, `setting:*:*`", "operationId": "get_config_for_all_setting_types", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-modified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information", "title": "If-Modified-Since" }, "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/SettingType" }, "propertyNames": { "minLength": 1, "maxLength": 128 }, "title": "Response Get Config For All Setting Types" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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:\n\n- For any player (including themselves) any of: `setting-config:read`, `setting:*:*`", "operationId": "get_config_for_single_setting_type_all_versions", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Setting Type Id" } }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-modified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information", "title": "If-Modified-Since" }, "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/SettingTypeVersion" }, "title": "Response Get Config For Single Setting Type All Versions" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `setting_type_id_not_found` - The setting type ID was not found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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.\n \nRequired Permissions:\n\n- For any player (including themselves) any of: `setting-config:read`, `setting:*:*`", "operationId": "get_config_for_single_setting_type_and_version", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Setting Type Id" } }, { "name": "setting_version_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Setting Version Id" } }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-modified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information", "title": "If-Modified-Since" }, "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingTypeVersion" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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 setting documents for a specific Setting Type\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:read`\n\n- For the player themselves : `setting:read:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:read`\n\n- For the player themselves : `setting:internal:read:self`", "operationId": "get_all_player_uuid_settings_for_setting_type_self", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 256 }, "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned", "title": "Key" }, "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-modified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information", "title": "If-Modified-Since" }, "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "propertyNames": { "minLength": 1, "maxLength": 256 }, "title": "Response Get All Player Uuid Settings For Setting Type Self" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `setting_type_id_not_found` - The setting type ID was not found\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Settings" ], "summary": "Delete All Player Uuid Settings For Setting Type Self", "description": "Delete all player setting documents for a specific type\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:write`\n\n- For the player themselves : `setting:write:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:write`\n\n- For the player themselves : `setting:internal:write:self`", "operationId": "delete_all_player_uuid_settings_for_setting_type_self", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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 setting documents for a specific Setting Type\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:read`\n\n- For the player themselves : `setting:read:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:read`\n\n- For the player themselves : `setting:internal:read:self`", "operationId": "get_all_player_uuid_settings_for_setting_type", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "description": "Player to get settings for", "title": "Player Uuid" }, "description": "Player to get settings for" }, { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 256 }, "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned", "title": "Key" }, "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-modified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information", "title": "If-Modified-Since" }, "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "propertyNames": { "minLength": 1, "maxLength": 256 }, "title": "Response Get All Player Uuid Settings For Setting Type" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `setting_type_id_not_found` - The setting type ID was not found\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Settings" ], "summary": "Delete All Player Uuid Settings For Setting Type", "description": "Delete all player setting documents for a specific type\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:write`\n\n- For the player themselves : `setting:write:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:write`\n\n- For the player themselves : `setting:internal:write:self`", "operationId": "delete_all_player_uuid_settings_for_setting_type", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "description": "Player to delete setting for", "title": "Player Uuid" }, "description": "Player to delete setting for" }, { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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 document\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:read`\n\n- For the player themselves : `setting:read:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:read`\n\n- For the player themselves : `setting:internal:read:self`", "operationId": "get_single_player_uuid_setting_self", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Key to get settings for", "title": "Key" }, "description": "Setting Key to get settings for" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-modified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information", "title": "If-Modified-Since" }, "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingData" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Settings" ], "summary": "Set Single Player Uuid Setting Self", "description": "Update the value of a single player setting document.\n\nFor a standard setting \nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:write`\n\n- For the player themselves : `setting:write:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:write`\n\n- For the player themselves : `setting:internal:write:self`\n\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 document 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 document 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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Key to update setting for. Must conform to the setting type key format", "title": "Key" }, "description": "Setting Key to update setting for. Must conform to the setting type key format" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetSinglePlayerSettingRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "propertyNames": { "minLength": 1, "maxLength": 256 }, "title": "Response Set Single Player Uuid Setting Self" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Settings" ], "summary": "Delete Single Player Uuid Setting Self", "description": "Delete a single player setting document\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:write`\n\n- For the player themselves : `setting:write:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:write`\n\n- For the player themselves : `setting:internal:write:self`", "operationId": "delete_single_player_uuid_setting_self", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Key to delete setting for", "title": "Key" }, "description": "Setting Key to delete setting for" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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 document\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:read`\n\n- For the player themselves : `setting:read:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:read`\n\n- For the player themselves : `setting:internal:read:self`", "operationId": "get_single_player_uuid_setting", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "description": "Player to get settings for", "title": "Player Uuid" }, "description": "Player to get settings for" }, { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Key to get settings for", "title": "Key" }, "description": "Setting Key to get settings for" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-modified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information", "title": "If-Modified-Since" }, "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingData" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Settings" ], "summary": "Set Single Player Uuid Setting", "description": "Update the value of a single player setting document.\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:write`\n\n- For the player themselves : `setting:write:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:write`\n\n- For the player themselves : `setting:internal:write:self`\n\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 document 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 document 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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "description": "Player to update setting for", "title": "Player Uuid" }, "description": "Player to update setting for" }, { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Key to update setting for. Must conform to the setting type key format", "title": "Key" }, "description": "Setting Key to update setting for. Must conform to the setting type key format" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetSinglePlayerSettingRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "propertyNames": { "minLength": 1, "maxLength": 256 }, "title": "Response Set Single Player Uuid Setting" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Settings" ], "summary": "Delete Single Player Uuid Setting", "description": "Delete a single player setting document\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:write`\n\n- For the player themselves : `setting:write:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:write`\n\n- For the player themselves : `setting:internal:write:self`", "operationId": "delete_single_player_uuid_setting", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "description": "Player to delete setting for", "title": "Player Uuid" }, "description": "Player to delete setting for" }, { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Key to delete setting for", "title": "Key" }, "description": "Setting Key to delete setting for" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/settings/v1/player/{player_id}/setting_type/{setting_type_id}/key/{key}": { "get": { "tags": [ "Settings" ], "summary": "Get Single Player Id Setting", "description": "**DEPRECATED** - Use v2 instead. Get a single player setting document\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:read`\n\n- For the player themselves : `setting:read:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:read`\n\n- For the player themselves : `setting:internal:read:self`", "operationId": "get_single_player_id_setting", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "description": "Player to get settings for", "title": "Player Id" }, "description": "Player to get settings for" }, { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Key to get settings for", "title": "Key" }, "description": "Setting Key to get settings for" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-modified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information", "title": "If-Modified-Since" }, "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingData" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Settings" ], "summary": "Set Single Player Id Setting", "description": "**DEPRECATED** - Use the v2 endpoint instead. This endpoint will be removed in a future release. Update the value of a single player setting document.\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:write`\n\n- For the player themselves : `setting:write:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:write`\n\n- For the player themselves : `setting:internal:write:self`\n\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 document 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 document 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_id_setting", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "description": "Player to update setting for", "title": "Player Id" }, "description": "Player to update setting for" }, { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Key to update setting for. Must conform to the setting type key format", "title": "Key" }, "description": "Setting Key to update setting for. Must conform to the setting type key format" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetSinglePlayerSettingRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "propertyNames": { "minLength": 1, "maxLength": 256 }, "title": "Response Set Single Player Id Setting" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Settings" ], "summary": "Delete Single Player Id Setting", "description": "**DEPRECATED** - Use v2 instead. Delete a single player setting document\n \nFor a standard setting \nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:write`\n\n- For the player themselves : `setting:write:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:write`\n\n- For the player themselves : `setting:internal:write:self`", "operationId": "delete_single_player_id_setting", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "description": "Player to delete setting for", "title": "Player Id" }, "description": "Player to delete setting for" }, { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Key to delete setting for", "title": "Key" }, "description": "Setting Key to delete setting for" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/settings/v1/player/{player_id}/setting_type/{setting_type_id}/key": { "get": { "tags": [ "Settings" ], "summary": "Get All Player Id Settings For Setting Type", "description": "**DEPRECATED** - Use v2 instead. Get a list of all player setting documents for a specific Setting Type.\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:read`\n\n- For the player themselves : `setting:read:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:read`\n\n- For the player themselves : `setting:internal:read:self`", "operationId": "get_all_player_id_settings_for_setting_type", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "description": "Player to get settings for", "title": "Player Id" }, "description": "Player to get settings for" }, { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "key", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 256 }, "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned", "title": "Key" }, "description": "Setting Key to get settings for. If not specified, all settings for the setting type will be returned" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-modified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information", "title": "If-Modified-Since" }, "description": "Precondition check if the resource's Last-Modified date is newer than the provided date. Ignored if the If-None-Match header is provided. Only valid for GET/HEAD endpoints.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-modified-since for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/SettingData" }, "propertyNames": { "minLength": 1, "maxLength": 256 }, "title": "Response Get All Player Id Settings For Setting Type" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." }, "Last-Modified": { "schema": { "type": "string", "format": "date-time" }, "description": "The Last-Modified date for the resource. Used for caching and preconditions." } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `setting_type_id_not_found` - The setting type ID was not found\n ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Settings" ], "summary": "Delete All Player Id Settings For Setting Type", "description": "**DEPRECATED** - Use v2 instead. Delete all player setting documents for a specific type\n\nFor a standard setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:write`\n\n- For the player themselves : `setting:write:self`\n\nFor an 'internal' setting\nRequired Permissions:\n\n- For any player (including themselves) any of: `setting:*:*`, `setting:internal:write`\n\n- For the player themselves : `setting:internal:write:self`", "operationId": "delete_all_player_id_settings_for_setting_type", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } }, { "name": "setting_type_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Setting Type to update settings for. Must be one of the known setting types", "title": "Setting Type Id" }, "description": "Setting Type to update settings for. Must be one of the known setting types" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" }, { "name": "if-unmodified-since", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information", "title": "If-Unmodified-Since" }, "description": "Precondition check if the resource's Last-Modified date is older than the provided date. Ignored if the If-Match header is provided.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-unmodified-since for more information" } ], "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } }, "412": { "description": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/friends/v2/player/{player_uuid}/friend": { "get": { "tags": [ "Friends" ], "summary": "Get Friends List For Player V2", "description": "Fetch the friend's list for the Player and their relationship status with those friends.\n \n*Note*: This API supports etags and will return the etag header when with the response. \n\nClients 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" ], "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" ], "summary": "Get Friend Relationship V2", "description": "Get the relationship status with the other Player.\n \n*Note*: This API supports etags and will return the etag header when with the response.\n\nClients can then utilize the `if-none-match` header to avoid having to reload the response if it has not changed or to use it to modify the relationship without loosing updates.\n\nPermissions 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" ], "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 \nThe limit can determined using [this API](/#/Configuration%20V1/get_friends_and_block_limits). This API allows you optionally update 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 include a body.\n\n*Note*: This API supports etags and will return the etag header when with the response and will match the etag value provided when [fetching Friend Relationship between these two players](/#/Friends%20V1/get_friend_relationship). It is highly recommended to provide the etag value with the `if-match` header to avoid lost updates.\n\nPermissions 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" ], "summary": "Delete Friend V2", "description": "Remove the friend's relationship status with the other Player. \n \nThis should be used for declining Friend requests, deleting sent Friends Requests, and deleting Friends\n\n*Note*: This API supports etags and will return the etag header when with the response and will match the etag value provided when [fetching Friend Relationship between these two players](#/Friends V1/get_friend_relationship). It is highly recommended to provide the etag value with the `if-match` header to avoid lost updates.\n \nPermissions 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" ], "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. The notes will be removed when the relationship is ended.\n\nPermissions 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" ], "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. The notes will be removed when the relationship is ended.\n \nPermissions Required: friend: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/v2/player/{player_uuid}/block": { "get": { "tags": [ "Friends" ], "summary": "Get Blocked List For Player V2", "description": "Fetch the blocked list for the Player.\n \n*Note*: This API supports etags and will return the etag header when with the response. \n \nClients can utilize the `if-none-match` header to avoid having to reload the response if it has not changed.\n\nPermissions 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": [ "Friends" ], "summary": "Get Blocked V2", "description": "Get the Blocked Player\n \nPermissions 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": [ "Friends" ], "summary": "Block V2", "description": "Block the other Player. There is a max number of Players that can be blocked per Player.\n\nThe limit can determined using [this API](/#/Configuration%20V1/get_friends_and_block_limits).\n\nPermissions 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": [ "Friends" ], "summary": "Unblock V2", "description": "Unblock the other Player\n \nPermissions 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/v2/player/{player_uuid}/referrer": { "get": { "tags": [ "Referrals" ], "summary": "Get Player Referrer", "description": "Get the player_uuid of the player who referred this player.\n\nRequired Permissions:\n\n- For any player (including themselves) : `refer:read:any`\n\n- For the player themselves : `refer:read:self`", "operationId": "get_player_referrer", "parameters": [ { "description": "The referred player_uuid to get the referrer for", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "The referred player_uuid to get the referrer for" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerReferral" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] }, "post": { "tags": [ "Referrals" ], "summary": "Set Player Referrer", "description": "Set a player's referrer using either a player_uuid or referral code.\n\nRequired Permissions:\n\n- For any player (including themselves) : `refer:set:any`\n\n- For the player themselves : `refer:set:self`", "operationId": "set_player_referrer", "parameters": [ { "description": "The player_uuid to set the referrer for", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "The player_uuid to set the referrer for" }, "name": "player_uuid", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PlayerReferralSetPayload" } ], "title": "Referrer", "description": "The referrer to set for the player" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerReferral" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] } }, "/friends/v2/player/{player_uuid}/referrals": { "get": { "tags": [ "Referrals" ], "summary": "Get Player Referrals", "description": "Get all referrals where this player is the referrer.\n\nRequired Permissions:\n\n- For any player (including themselves) : `refer:read:any`\n\n- For the player themselves : `refer:read:self`", "operationId": "get_player_referrals", "parameters": [ { "description": "The player_uuid to get the referrals for", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "The player_uuid to get the referrals for" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PlayerReferral" }, "type": "array", "title": "Response Get Player Referrals V2 Player Player Uuid Referrals Get" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] } }, "/friends/v2/player/{player_uuid}/referral-code": { "get": { "tags": [ "Referrals" ], "summary": "Get Referral Code", "description": "Get a player's referral code if they have one. Otherwise, return an 404 error.\n\nRequired Permissions:\n\n- For any player (including themselves) : `refer:read:any`\n\n- For the player themselves : `refer:read:self`", "operationId": "get_referral_code", "parameters": [ { "description": "The player_uuid to get the referral code for", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "The player_uuid to get the referral code for" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerReferralCode" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [ "Referrals" ], "summary": "Generate Referral Code", "description": "Generate and return a player's referral code if they don't already have one.\n\nRequired Permissions:\n\n- For any player (including themselves) : `refer:set:any`\n\n- For the player themselves : `refer:set:self`", "operationId": "generate_referral_code", "parameters": [ { "description": "The player_uuid to generate a referral code for", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "The player_uuid to generate a referral code for" }, "name": "player_uuid", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerReferralCode" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] } }, "/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", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Catalog" } } }, "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": { "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" } } } } } } }, "/inventory/v1/catalog/xp": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Xp All", "description": "Get all XP Tables.", "operationId": "get_catalog_xp_all", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/XpTables" } } }, "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": { "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "xp_table_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Xp Table Id" } }, { "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/XpTable" } } }, "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": { "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" } } } } } } }, "/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", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PortalUseRulesets" } } }, "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": { "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" } } } } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "portal_use_ruleset_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Portal Use Ruleset Id" } }, { "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PortalUseRuleset" } } }, "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": { "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" } } } } } } }, "/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", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryBucketUseRuleSets" } } }, "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": { "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "inventory_bucket_use_ruleset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Inventory Bucket Use Ruleset Id" } }, { "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryBucketUseRuleSet" } } }, "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": { "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" } } } } } } }, "/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", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PricePoints" } } }, "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": { "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "price_point_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Price Point Id" } }, { "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PricePoint" } } }, "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": { "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" } } } } } } }, "/inventory/v1/catalog/item": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Items All", "description": "Get all Items.", "operationId": "get_catalog_items_all", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Items" } } }, "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": { "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" } } } } } } }, "/inventory/v1/catalog/item/{item_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Item", "description": "Get a specific Item.", "operationId": "get_catalog_item", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "item_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Item Id" } }, { "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Item" } } }, "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": { "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" } } } } } } }, "/inventory/v1/catalog/vendor": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Vendors All", "description": "Get all Vendors.", "operationId": "get_catalog_vendors_all", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Vendors" } } }, "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": { "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" } } } } } } }, "/inventory/v1/catalog/vendor/{vendor_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Vendor", "description": "Get a specific Vendor.", "operationId": "get_catalog_vendor", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "vendor_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Vendor Id" } }, { "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Vendor" } } }, "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": { "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" } } } } } } }, "/inventory/v1/catalog/loot": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Loots All", "description": "Get all Loot.", "operationId": "get_catalog_loots_all", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Loots" } } }, "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": { "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" } } } } } } }, "/inventory/v1/catalog/loot/{loot_id}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Loot", "description": "Get a specific Loot.", "operationId": "get_catalog_loot", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "loot_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Loot Id" } }, { "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Loot" } } }, "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": { "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" } } } } } } }, "/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", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TimeFrames" } } }, "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": { "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "time_frame_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Time Frame Id" } }, { "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TimeFrame" } } }, "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": { "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" } } } } } } }, "/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", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformSKUs" } } }, "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": { "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" } } } } } } }, "/inventory/v1/catalog/entitlement-sku/{platform}": { "get": { "tags": [ "Catalog" ], "summary": "Get Catalog Entitlement Sku By Platform", "description": "Get all Entitlement SKUs for a specific platform", "operationId": "get_catalog_entitlement_sku_by_platform", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "platform", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/InventoryPlatform" } }, { "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformSKU" } } }, "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": { "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "platform", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/InventoryPlatform" } }, { "name": "sku", "in": "path", "required": true, "schema": { "type": "string", "title": "Sku" } }, { "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformSKU" } } }, "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": { "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "default": [], "title": "Item Ids" } }, { "name": "tags_to_count", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [], "title": "Tags To Count" } }, { "name": "level_item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "description": "Item IDs to return with current level information. If not provided, no level data will be included in the response", "default": [], "title": "Level Item Ids" }, "description": "Item IDs to return with current level information. If not provided, no level data will be included in the response" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryContextResponse" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "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" } } } } } }, "post": { "tags": [ "Inventory" ], "summary": "Create Player Inventory Uuid Self", "description": "Create Inventory for the currently authenticated player.", "operationId": "create_player_inventory_uuid_self", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInventoryRequests" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "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": [ "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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequests" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "default": [], "title": "Item Ids" } }, { "name": "tags_to_count", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [], "title": "Tags To Count" } }, { "name": "level_item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "description": "Item IDs to return with current level information. If not provided, no level data will be included in the response", "default": [], "title": "Level Item Ids" }, "description": "Item IDs to return with current level information. If not provided, no level data will be included in the response" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryContextResponse" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "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" } } } } } }, "post": { "tags": [ "Inventory" ], "summary": "Create Player Inventory Uuid", "description": "Create Inventory for the specified player.", "operationId": "create_player_inventory_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/CreateInventoryRequests" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "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": [ "Inventory" ], "summary": "Modify Many Player Inventory Uuid", "description": "Modify many Inventory records for the specified player.", "operationId": "modify_many_player_inventory_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/UpdateInventoryRequests" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "default": [], "title": "Item Ids" } }, { "name": "tags_to_count", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "default": [], "title": "Tags To Count" } }, { "name": "level_item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "description": "Item IDs to return with current level information. If not provided, no level data will be included in the response", "default": [], "title": "Level Item Ids" }, "description": "Item IDs to return with current level information. If not provided, no level data will be included in the response" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryContextResponse" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "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" } } } } } }, "post": { "tags": [ "Inventory" ], "summary": "Create Player Inventory Self", "description": "Create Inventory for the currently authenticated player.", "operationId": "create_player_inventory_self", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInventoryRequests" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "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": [ "Inventory" ], "summary": "Modify Many Player Inventory Self", "description": "Modify many Inventory records for the currently authenticated player.", "operationId": "modify_many_player_inventory_self", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequests" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } }, { "name": "item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "description": "Filter the inventory records returned to a list of known item ids. If not provided, all inventory will be returned", "default": [], "title": "Item Ids" }, "description": "Filter the inventory records returned to a list of known item ids. If not provided, all inventory will be returned" }, { "name": "tags_to_count", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string" }, "description": "Count the total ownership for all items with a specific tag. If not provided, no counts will be included in the response", "default": [], "title": "Tags To Count" }, "description": "Count the total ownership for all items with a specific tag. If not provided, no counts will be included in the response" }, { "name": "level_item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "description": "Item IDs to return with current level information. If not provided, no level data will be included in the response", "default": [], "title": "Level Item Ids" }, "description": "Item IDs to return with current level information. If not provided, no level data will be included in the response" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryContextResponse" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "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" } } } } } }, "post": { "tags": [ "Inventory" ], "summary": "Create Player Inventory", "description": "Create Inventory for the specified player.", "operationId": "create_player_inventory", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInventoryRequests" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "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": [ "Inventory" ], "summary": "Modify Many Player Inventory", "description": "Modify many Inventory records for the specified player.", "operationId": "modify_many_player_inventory", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequests" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/inventory/v1/player/me/inventory-level": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Inventory Level Self", "description": "***DEPRECATED, use /v2/player/me/player-level instead. Get the levels for items in a player's inventory\n \nRequired Permissions:\n\n- For any player (including themselves) any of: `inv:*`, `inv:read_inv:any`\n\n- For the player themselves : `inv:read_inv:self`", "operationId": "get_player_inventory_level_self", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "default": [], "title": "Item Ids" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryLevels" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The specified player was not found", "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" } } } } } } }, "/inventory/v1/player/{player_id}/inventory-level": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Inventory Level", "description": "***DEPRECATED, use /v2/player/{player_uuid}/player-level instead. Get the levels for items in a player's inventory\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `inv:*`, `inv:read_inv:any`\n\n- For the player themselves : `inv:read_inv:self`", "operationId": "get_player_inventory_level", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } }, { "name": "item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "default": [], "title": "Item Ids" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryLevels" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The specified player was not found", "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" } } } } } } }, "/inventory/v2/player/me/inventory-level": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Uuid Inventory Level Self", "description": "Get the levels for items in a player's inventory\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `inv:*`, `inv:read_inv:any`\n\n- For the player themselves : `inv:read_inv:self`", "operationId": "get_player_uuid_inventory_level_self", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "default": [], "title": "Item Ids" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryLevels" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The specified player was not found", "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" } } } } } } }, "/inventory/v2/player/{player_uuid}/inventory-level": { "get": { "tags": [ "Inventory" ], "summary": "Get Player Uuid Inventory Level", "description": "Get the levels for items in a player's inventory\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `inv:*`, `inv:read_inv:any`\n\n- For the player themselves : `inv:read_inv:self`", "operationId": "get_player_uuid_inventory_level", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "item_ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "integer" }, "default": [], "title": "Item Ids" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventoryLevels" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The specified player was not found", "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "inventory_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "inventory_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "inventory_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } }, { "name": "inventory_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Inventory Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInventoryRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySession" } } } }, "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": [ "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", "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/InventorySessionCreateRequest" } } } }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateResponse" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySession" } } } }, "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": [ "Inventory" ], "summary": "Create New Inventory Session", "description": "Create a new Inventory Session for the specified player.", "operationId": "create_new_inventory_session", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateRequest" } } } }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InventorySessionCreateResponse" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "starting_position", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "description": "Inclusive starting time for the first order", "title": "Starting Position" }, "description": "Inclusive starting time for the first order" }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored", "title": "Cursor" }, "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored" }, { "name": "sort", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/SortOrder" }, { "type": "null" } ], "description": "The direction to search.", "default": "asc", "title": "Sort" }, "description": "The direction to search." }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "The number of Orders to return", "default": 10, "title": "Limit" }, "description": "The number of Orders to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrdersResponse" } } } }, "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": [ "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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Input" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "starting_position", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "description": "Inclusive starting time for the first order", "title": "Starting Position" }, "description": "Inclusive starting time for the first order" }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored", "title": "Cursor" }, "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored" }, { "name": "sort", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/SortOrder" }, { "type": "null" } ], "description": "The direction to search.", "default": "asc", "title": "Sort" }, "description": "The direction to search." }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "The number of Orders to return", "default": 10, "title": "Limit" }, "description": "The number of Orders to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrdersResponse" } } } }, "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": [ "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", "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/PlayerOrderCreate-Input" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "starting_position", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "description": "Inclusive starting time for the first order", "title": "Starting Position" }, "description": "Inclusive starting time for the first order" }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored", "title": "Cursor" }, "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored" }, { "name": "sort", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/SortOrder" }, { "type": "null" } ], "description": "The direction to search.", "default": "asc", "title": "Sort" }, "description": "The direction to search." }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "The number of Orders to return", "default": 10, "title": "Limit" }, "description": "The number of Orders to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrdersResponse" } } } }, "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": [ "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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Input" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } }, { "name": "starting_position", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "description": "Inclusive starting time for the first order", "title": "Starting Position" }, "description": "Inclusive starting time for the first order" }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored", "title": "Cursor" }, "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored" }, { "name": "sort", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/SortOrder" }, { "type": "null" } ], "description": "The direction to search.", "default": "asc", "title": "Sort" }, "description": "The direction to search." }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "The number of Orders to return", "default": 10, "title": "Limit" }, "description": "The number of Orders to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrdersResponse" } } } }, "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": [ "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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Input" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrderCreate-Output" } } }, "description": "Accepted" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "order_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Order Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "order_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Order Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "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" } } } } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "order_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Order Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "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" } } } } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } }, { "name": "order_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Order Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerOrder" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "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" } } } } } } }, "/inventory/v1/order": { "post": { "tags": [ "Inventory" ], "summary": "Create Many Player Order", "description": "Create many number of orders across multiple players", "operationId": "create_many_player_order", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManyPlayerOrderCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManyPlayerOrderResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] } }, "/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", "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/PlatformEntitlementProcessRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementProcessResult" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/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 \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": "retrieve_entitlement_request_for_me", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "request_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Request Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementProcessResult" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The specified player was not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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 \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": "retrieve_entitlement_request_by_player_uuid", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "request_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Request Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementProcessResult" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The specified player was not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/inventory/v2/player/{player_uuid}/entitlement/raw": { "get": { "tags": [ "Entitlements" ], "summary": "Get Platform Entitlements Raw By Player Uuid", "description": "Get list of entitlements directly from the platform, as they return it (sanitized). \n\nWARNING: There is no guaranteed format for the response from this endpoint. Do not depend on the layout or contents of it for anything other than debugging.\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": "get_platform_entitlements_raw_by_player_uuid", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "platform_id", "in": "query", "required": true, "schema": { "type": "string", "description": "Platform this entitlement was purchased was made on", "title": "Platform Id" }, "description": "Platform this entitlement was purchased was made on" }, { "name": "platform_token", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Platform token that can be used to verify the identity of the user", "title": "Platform Token" }, "description": "Platform token that can be used to verify the identity of the user" }, { "name": "platform_environment", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Platform Environment to check for ownership", "title": "Platform Environment" }, "description": "Platform Environment to check for ownership" }, { "name": "platform_region", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/PlatformRegion", "description": "region this purchase was made in" }, "description": "region this purchase was made in" }, { "name": "client_type", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/ClientType", "description": "client type this purchase was made on" }, "description": "client type this purchase was made on" } ], "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/inventory/v2/player/{player_uuid}/entitlement/prepared": { "get": { "tags": [ "Entitlements" ], "summary": "Get Platform Entitlements Prepared By Player Uuid", "description": "Get list of entitlements from the platform, as we will grant them to the user\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": "get_platform_entitlements_prepared_by_player_uuid", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "platform_id", "in": "query", "required": true, "schema": { "type": "string", "description": "Platform this entitlement was purchased was made on", "title": "Platform Id" }, "description": "Platform this entitlement was purchased was made on" }, { "name": "platform_token", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Platform token that can be used to verify the identity of the user", "title": "Platform Token" }, "description": "Platform token that can be used to verify the identity of the user" }, { "name": "platform_environment", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Platform Environment to check for ownership", "title": "Platform Environment" }, "description": "Platform Environment to check for ownership" }, { "name": "platform_region", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/PlatformRegion", "description": "region this purchase was made in" }, "description": "region this purchase was made in" }, { "name": "client_type", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/ClientType", "description": "client type this purchase was made on" }, "description": "client type this purchase was made on" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementsPrepared" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/inventory/v2/user-entitlement:refresh-connection": { "post": { "tags": [ "Entitlements" ], "summary": "Refresh Connection Status For Platform Entitlements", "description": "Check the status of the user with the platform, and if they are able to request entitlements\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": "refresh_connection_status_for_platform_entitlements", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "platform_id", "in": "query", "required": true, "schema": { "type": "string", "description": "Platform this entitlement was purchased was made on", "title": "Platform Id" }, "description": "Platform this entitlement was purchased was made on" }, { "name": "platform_user_id", "in": "query", "required": true, "schema": { "type": "string", "description": "Platform this entitlement was purchased was made on", "title": "Platform User Id" }, "description": "Platform this entitlement was purchased was made on" }, { "name": "platform_token", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Platform token that can be used to verify the identity of the user", "title": "Platform Token" }, "description": "Platform token that can be used to verify the identity of the user" }, { "name": "platform_environment", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Platform Environment to check for ownership", "title": "Platform Environment" }, "description": "Platform Environment to check for ownership" }, { "name": "platform_region", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/PlatformRegion", "description": "region this purchase was made in" }, "description": "region this purchase was made in" }, { "name": "client_type", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/ClientType", "description": "client type this purchase was made on" }, "description": "client type this purchase was made on" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformEntitlementConnectionStatus" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "description": "Player to get entitlement events for", "title": "Player Uuid" }, "description": "Player to get entitlement events for" }, { "name": "player_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Player to get entitlement events for. Will be ignored if player_uuid is provided", "deprecated": true, "title": "Player Id" }, "description": "Player to get entitlement events for. Will be ignored if player_uuid is provided", "deprecated": true }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 255 }, { "type": "null" } ], "description": "Cursor for pagination", "title": "Cursor" }, "description": "Cursor for pagination" } ], "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } }, "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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntitlementEventRequest" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/inventory/v2/player/me/portal/{portal_id}/processKeyEntitlements": { "post": { "tags": [ "Entitlements" ], "summary": "Process Key Entitlements Player Uuid 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_key_entitlements_player_uuid_self", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "portal_id", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/Portal" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/inventory/v2/player/{player_uuid}/portal/{portal_id}/processKeyEntitlements": { "post": { "tags": [ "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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "portal_id", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/Portal" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/inventory/v1/player/me/portal/{portal_id}/processKeyEntitlements": { "post": { "tags": [ "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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "portal_id", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/Portal" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/inventory/v1/player/{player_id}/portal/{portal_id}/processKeyEntitlements": { "post": { "tags": [ "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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } }, { "name": "portal_id", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/Portal" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaims" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaims" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "key_claim_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } }, "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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "key_claim_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClaimKeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "key_claim_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } }, "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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "key_claim_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClaimKeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "key_claim_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } }, "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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "key_claim_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClaimKeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } } }, "/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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } }, { "name": "key_claim_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } }, "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", "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Player Id" } }, { "name": "key_claim_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Key Claim Uuid" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClaimKeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyClaim" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Conflict" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } } }, "/inventory/v1/marketing/campaign": { "get": { "tags": [ "Key Claims" ], "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": [] } ] } }, "/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": [] } ] }, "delete": { "tags": [ "Sessions" ], "summary": "Delete Session", "description": "Delete this session. It will be removed from the public browser, matchmaking, and backfills before being deleted\n\nFor all sessions:\n\n* Required auth permissions are any of: `session:*`, `session:delete: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:delete:active`\n\n* Required session permissions are `SessionPermissions.session_admin`\n\nFor sessions you are an admin in:\n\n* None", "operationId": "delete_session", "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" } ], "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 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" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "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}:generate-short-code": { "post": { "tags": [ "Sessions" ], "summary": "Generate Session Short Code", "description": "Create a short code for a session that can be used in place of the full session id. Generation may fail and return an\nerror if too many unusable codes are generated.\n\nFor all sessions:\n\n* Required auth permissions are any of: `session:*`, `session:shortcode:any`\n\n* Required session permissions are None\n\nFor sessions you are actively in:\n\n* Required auth permissions are : `session:shortcode:active`\n\n* Required session permissions are `SessionPermissions.active_in_session`", "operationId": "generate_session_short_code", "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" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionShortCodeResponse" } } } }, "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": [] } ] } }, "/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" }, { "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" } } } }, "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" }, { "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": [] } ] } }, "/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" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "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/match-made-session": { "post": { "tags": [ "Sessions" ], "summary": "Create Matchmade Session", "description": "Create a match session based on matchmaking results.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:create:matchmade`\n\n\n\nRequired Session Permissions: None", "operationId": "create_matchmade_session", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchMakingSessionRequest" } } }, "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 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" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "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" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "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" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "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" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "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" } } } }, "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", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "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" } } } }, "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", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "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" } } } }, "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", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "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" } } } }, "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", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "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" } ], "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" } } } }, "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", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "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" } } } }, "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", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/session/{session_id}/player/{player_uuid}": { "get": { "tags": [ "Sessions" ], "summary": "Get Player In Session", "description": "Get a specific player from a session by id.\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", "operationId": "get_player_in_session", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "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/SessionPlayer" } } } }, "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": [ "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\n\n**DEPRECATED** - Use the appropriate move, invite, promote, or update V2 endpoint instead", "operationId": "update_session_player_by_uuid_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "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/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 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. \nRequired Session Permissions: `kick` for users that do not have the above permissions, and are not a session admin", "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" }, { "required": false, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Reason" }, "name": "reason", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "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": { "get": { "tags": [ "Sessions" ], "summary": "Get Players In Session", "description": "Get a page of players in a specific session.\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", "operationId": "get_players_in_session", "parameters": [ { "required": true, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Session Id" }, "name": "session_id", "in": "path" }, { "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": "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/PagedPlayersResponse" } } } }, "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" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "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/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" }, { "required": false, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Reason" }, "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}/player/{player_uuid}/permission": { "get": { "tags": [ "Sessions" ], "summary": "Get Player Permission By Uuid", "description": "Get a specific player's intra-session permissions\n\nFor all sessions:\n\n* Required auth permissions are any of: `session:*`, `session:read:permission: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:read:permission:active`\n\n* Required session permissions are `SessionPermissions.active_in_session`\n\nFor sessions you are an admin in:\n\n* None", "operationId": "get_player_permission_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" }, { "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/SessionPermissions" } } } }, "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}/permission/{permission}": { "delete": { "tags": [ "Sessions" ], "summary": "Remove Player Permission By Uuid", "description": "Remove intra-session permissions from a specific player\n\nFor all sessions:\n\n* Required auth permissions are any of: `session:*`, `session:remove:permission: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:remove:permission:active`\n\n* Required session permissions are `SessionPermissions.active_in_session`\n\nFor sessions you are an admin in:\n\n* None", "operationId": "remove_player_permission_by_uuid", "parameters": [ { "required": true, "schema": { "$ref": "#/components/schemas/IntraSessionPermissions" }, "name": "permission", "in": "path" }, { "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" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "responses": { "200": { "description": "OK", "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" } } } }, "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": [] } ] }, "patch": { "tags": [ "Sessions" ], "summary": "Give Player Permission By Uuid", "description": "Give a specific player intra-session permissions\n\nFor all sessions:\n\n* Required auth permissions are any of: `session:*`, `session:give:permission: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:give:permission:active`\n\n* Required session permissions are `SessionPermissions.active_in_session`\n\nFor sessions you are an admin in:\n\n* None", "operationId": "give_player_permission_by_uuid", "parameters": [ { "required": true, "schema": { "$ref": "#/components/schemas/IntraSessionPermissions" }, "name": "permission", "in": "path" }, { "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" }, { "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/SessionPermissions" } } } }, "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/v2/session/{session_id}/player/{player_uuid}:invite": { "post": { "tags": [ "Sessions" ], "summary": "Invite Player By Uuid V2", "description": "Invite a player to 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: `invite` for users that do not have the above permissions, and are not a session admin", "operationId": "invite_player_by_uuid_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "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/PlayerInviteRequest" } } }, "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": [] } ] } }, "/session/v2/session/{session_id}/player/{player_uuid}:promote": { "post": { "tags": [ "Sessions" ], "summary": "Promote Player By Uuid V2", "description": "Invite a player to 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: `SessionPermissions.session_admin` for users that do not have the `session:promote:any` auth permission", "operationId": "promote_player_by_uuid_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "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/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": [] } ] } }, "/session/v2/session/{session_id}/player/{player_uuid}:move": { "post": { "tags": [ "Sessions" ], "summary": "Move Player By Uuid V2", "description": "Move a specific player to a different team in a specific 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: `move` for users that do not have the above permissions, and are not a session admin", "operationId": "move_player_by_uuid_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "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/PlayerMoveRequest" } } }, "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": [] } ] } }, "/session/v2/session/{session_id}/player/{player_uuid}": { "post": { "tags": [ "Sessions" ], "summary": "Update Player By Uuid V2", "description": "Update data about a specific player in a specific 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: `SessionPermissions.session_admin` for users that do not have the `session:promote:any` auth permission", "operationId": "update_player_by_uuid_v2", "parameters": [ { "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "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/PlayerUpdateRequest" } } }, "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": [] } ] } }, "/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\nTo promote players\nRequired Permissions:\n\n- For any player (including themselves) any of: `session:*`, `session:promote:any`, `session:promote:self`\n\n\n\nTo invite players\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`\nRequired Session Permissions: `invite` for users that do not have the above permissions, and are not a session admin\n\nTo move players\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`\nRequired Session Permissions: `move` for users that do not have the above permissions, and are not a session admin\n\nFor all else\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 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", "format": "uuid", "title": "Player Uuid" }, "name": "player_uuid", "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/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: `kick` for users that do not have the above permissions, and are not a session admin\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" }, { "required": false, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Reason" }, "name": "reason", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" } ], "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": "integer", "title": "Player Id" }, "name": "player_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/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.\nRequired Session Permissions: `kick` for users that do not have the above permissions, and are not a session admin\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" }, { "required": false, "schema": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Reason" }, "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" } } } } }, "deprecated": true, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/session/v1/player/me/session": { "get": { "tags": [ "Sessions" ], "summary": "Get Player Sessions Self", "description": "Get all session IDs associated with the token's player. NOTE This list is eventually consistent with the data from the session by ID endpoints.\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 all session IDs associated with a player. NOTE This list is eventually consistent with the data from the session by ID endpoints.\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 all session IDs associated with a player. NOTE This list is eventually consistent with the data from the session by ID endpoints.\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 /v1/player/{player_uuid}/session 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 all session IDs associated with a player. NOTE This list is eventually consistent with the data from the session by ID endpoints.\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/session/{session_id}/player:swap": { "post": { "tags": [ "Sessions" ], "summary": "Swap Players In Session", "description": "Swap two players on different teams. Leaders cannot be swapped\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": "swap_players_in_session", "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/PlayerSwapRequest" } } }, "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/SessionPlayersUpdateResponse" } } } }, "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/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/PlayerInviteRequest" } } }, "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": [ "Sessions" ], "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": [ "Sessions" ], "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": [ "Sessions" ], "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": [ "Sessions" ], "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": [ "Sessions" ], "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": [ "Sessions" ], "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": [ "Sessions" ], "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": [ "Sessions" ], "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": [ "Sessions" ], "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": [ "Sessions" ], "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": [ "Sessions" ], "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": [ "Sessions" ], "summary": "Get Vivox 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_vivox_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": [ "Sessions" ], "summary": "Get Vivox 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_vivox_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": [ "Sessions" ], "summary": "Get Vivox 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_vivox_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/session/{session_id}/player/me/voip/epic:join": { "get": { "tags": [ "Sessions" ], "summary": "Get Epic Voice Join Token Me", "description": "Generate Epic voice room credentials for the current player\n\nRequired Permissions:\n\n- For the player themselves : `session:voip:epic:join`", "operationId": "get_epic_voice_join_token_me", "parameters": [ { "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" }, { "description": "If true, join the muted room", "required": false, "schema": { "type": "boolean", "title": "Join Muted", "description": "If true, join the muted room", "default": false }, "name": "join_muted", "in": "query" }, { "description": "Epic Connect ID Token to use to identify the user's ProductUserId. If not set, their identity will be queried based on the identity provided to RallyHere.", "required": false, "schema": { "type": "string", "title": "Connect Id Token", "description": "Epic Connect ID Token to use to identify the user's ProductUserId. If not set, their identity will be queried based on the identity provided to RallyHere." }, "name": "connect_id_token", "in": "query" }, { "required": false, "schema": { "type": "boolean", "title": "Refresh Ttl", "default": true }, "name": "refresh_ttl", "in": "query" }, { "description": "IP Address hint", "required": false, "schema": { "type": "string", "maxLength": 32, "title": "X-Rh-Client-Addr", "description": "IP Address hint" }, "name": "x-rh-client-addr", "in": "header" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EpicVoipCredentialsResponse" } } } }, "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/me/deserter/{deserter_id}": { "get": { "tags": [ "Deserter" ], "summary": "Get Player Deserter Self", "description": "Get currently authed player's deserter status", "operationId": "get_player_deserter_self", "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/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": [] } ] } }, "/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": [] } ] } }, "/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": [] } ] } }, "/match/v1/match": { "get": { "tags": [ "Match" ], "summary": "Get Matches", "description": "Get pages of matches based on provided filters.\n\nRequired Permissions:\n\n- For any match any of: `match:*`, `match:match:any:read`", "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": "matchmaking_profile_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile 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": "min_duration_seconds", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Min Duration Seconds" } }, { "name": "type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type" } }, { "name": "state", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/MatchState" }, { "type": "null" } ], "title": "State" } }, { "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": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } }, "post": { "tags": [ "Match" ], "summary": "Create Match", "description": "Create match by match_id.\n\nRequired Permissions:\n\n- For any match any of: `match:*`, `match:match:edit:any`\n\n- For match if the player is the host any of: `match:*`, `match:match:edit:any`, `match:match:edit:authority`", "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": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/match/v1/match/{match_id}": { "get": { "tags": [ "Match" ], "summary": "Get Match", "description": "Get match segment by match_id.\n\nRequired Permissions:\n\n- For any match any of: `match:*`, `match:match:any:read`\n\n- For match if the player was in match any of: `match:*`, `match:match:player:read`", "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": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "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.\n\nMatch must be in pending state to be updated.\n\nRequired Permissions:\n\n- For any match any of: `match:*`, `match:match:edit:any`\n\n- For match if the player is the host any of: `match:*`, `match:match:edit:any`, `match:match:edit:authority`", "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" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Bad Request" }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "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.\n\nMatch must be in pending state to be updated.\n\nRequired Permissions:\n\n- For any match any of: `match:*`, `match:match:edit:any`\n\n- For match if the player is the host any of: `match:*`, `match:match:edit:any`, `match:match:edit:authority`", "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" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Bad Request" }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Match" ], "summary": "Delete Match", "description": "Delete match by match_id\n\nRequired Permissions:\n\n- For any match any of: `match:*`, `match:match:edit:any`", "operationId": "delete_match", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } } ], "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/match/{match_id}/timeline": { "get": { "tags": [ "Match" ], "summary": "Get Match Timeline Page", "description": "Get match timeline by match_id.\n\nRequired Permissions:\n\n- For any match any of: `match:*`, `match:match:any:read`\n\n- For match if the player was in match any of: `match:*`, `match:match:player:read`", "operationId": "get_match_timeline_page", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchTimelinePage" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Match" ], "summary": "Create Match Timeline", "description": "Create a match timeline.\n\nRequired Permissions:\n\n- For any match any of: `match:*`, `match:match:edit:any`\n\n- For match if the player is the host any of: `match:*`, `match:match:edit:any`, `match:match:edit:authority`", "operationId": "create_match_timeline", "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/MatchTimeline" } } } }, "responses": { "201": { "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Bad Request" }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/match/{match_id}/reward": { "post": { "tags": [ "Match" ], "summary": "Create Match Rewards", "description": "Give loot rewards to players in a match. Returns a 4XX error if any rewards fail to be given, but will grant as many as possible.\n\nRequired Permissions:\n\n- For any match any of: `match:*`, `match:reward:any`\n\n- For match if the player is the host any of: `match:*`, `match:reward:any`, `match:reward:authority`", "operationId": "create_match_rewards", "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/MatchRewardsBody" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchRewardsResponse" } } } }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Bad Request" }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "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. Only provides matches for the player_uuid in the provided token.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `match:*`, `match:player:any:read`\n\n- For the player themselves any of: `match:match:player:read`, `match:player:self:read`", "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": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/match/v1/player/{player_uuid}/stats": { "get": { "tags": [ "Match" ], "summary": "Get Player Stats", "description": "Get player stats for the provided player_uuid,.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `match:*`, `match:player:any:read`\n\n- For the player themselves any of: `match:match:player:read`, `match:player:self:read`", "operationId": "get_player_stats", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerStatsResponse" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "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.\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `match:*`, `match:player:any:read`\n\n- For the player themselves any of: `match:match:player:read`, `match:player:self:read`", "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": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/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\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `match:*`, `match:player:any:read`\n\n- For the player themselves any of: `match:match:player:read`, `match:player:self:read`", "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": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "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\n\nMust have one of the following permissions: any of: `match:*`, `match:match:edit:any`\n\nOr you have any of: `match:*`, `match:match:edit:any`, `match:match:edit:authority` and are the host of the match.", "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": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "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 Player", "description": "Update player match record for the provided player_uuid and match_id\n \nMatch must be in pending state to be updated.\n \nany of: `match:*`, `match:match:edit:any` - update any match.\n\nany of: `match:*`, `match:match:edit:any`, `match:match:edit:authority` - update match if the player is the host of the match.", "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": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "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.\n\nMatch must still be in a pending state.\n\nRequired Permissions: \n\n- For any match any of: `match:*`, `match:match:edit:any`\n\n- For match if the player is the host any of: `match:*`, `match:match:edit:any`, `match:match:edit:authority`", "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": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "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\n\nRequired Permissions:\n\n- For any match (including themselves) any of: `match:*`, `match:match:edit:any`", "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": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/player/{player_uuid}/recently-played": { "get": { "tags": [ "Match" ], "summary": "Get Player Recently Played With", "description": "Get the list of players this player recently played with\n \nRequired Permissions:\n\n- For any player (including themselves) any of: `match:*`, `match:player:any:read`\n\n- For the player themselves any of: `match:match:player:read`, `match:player:self:read`", "operationId": "get_player_recently_played_with", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Player Uuid" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of players to return", "default": 20, "title": "Page Size" }, "description": "Number of players to return" }, { "name": "if-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information", "title": "If-Match" }, "description": "Precondition check if the resource's current ETag matches the provided values. * can be used to match any existing value.\n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-match for more information" }, { "name": "if-none-match", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information", "title": "If-None-Match" }, "description": "Precondition check if the resource's current ETag does NOT match the provided values. * can be used to match existing value, causing the request to fail. \n\nSee https://www.rfc-editor.org/rfc/rfc9110#name-if-none-match for more information" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RecentlyPlayedWithResponse" } } }, "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." } } }, "304": { "description": "The resource has not been modified from the provided preconditions.", "headers": { "ETag": { "schema": { "type": "string" }, "description": "The ETag for the resource. Used for caching and preconditions." } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "The resource does not meet the provided preconditions." }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/match/{match_id}/segment/{segment_id}": { "get": { "tags": [ "Match" ], "summary": "Get Match Segment", "description": "Get match segment by match_id and segment_id.\n\n- For any match any of: `match:*`, `match:match:any:read`\n\n- For match if the player was in match any of: `match:*`, `match:match:player:read`", "operationId": "get_match_segment", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } }, { "name": "segment_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Segment Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchSegmentWithPlayers" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "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 Segment", "description": "Update match segment by match_id and segment_id.\n\nMatch must be in pending state to be updated.\n\nRequired Permissions:\n\n- For any match segment any of: `match:*`, `match:match:edit:any`\n\n- For match segment if the player is the host any of: `match:*`, `match:match:edit:any`, `match:match:edit:authority`", "operationId": "update_match_segment", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } }, { "name": "segment_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Segment Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchSegmentRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchSegmentWithPlayers" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "Match" ], "summary": "Patch Match Segment", "description": "Update match segment by match_id and segment_id only with provided fields.\nIf the segment doesn't exist, it will be created.\nThe top-level match must exist.\nThe top-level match must be in a pending state or authenticating user has overriding permissions.\n\nRequired Permissions:\n\n- For any match segment any of: `match:*`, `match:match:edit:any`\n\n- For match segment if the player is the host any of: `match:*`, `match:match:edit:any`, `match:match:edit:authority`", "operationId": "patch_match_segment", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } }, { "name": "segment_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Segment Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchSegmentPatchRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchSegmentWithPlayers" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Match" ], "summary": "Delete Match Segment", "description": "Delete match segment by match_id and segment_id\n\nRequired Permissions:\n\n- For any match any of: `match:*`, `match:match:edit:any`", "operationId": "delete_match_segment", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "match_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Match Id" } }, { "name": "segment_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Segment Id" } } ], "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/match/{match_id}/segment": { "post": { "tags": [ "Match" ], "summary": "Create Match Segment", "description": "Create match segment by match_id.\n\n- For any match segment any of: `match:*`, `match:match:edit:any`\n\n- For match segment if the player is the host any of: `match:*`, `match:match:edit:any`, `match:match:edit:authority`", "operationId": "create_match_segment", "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/MatchSegmentRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MatchSegmentWithPlayers" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/match/v1/pex/host/raw": { "get": { "tags": [ "Player Experience" ], "summary": "Get All Pex Host Raw By Filter", "description": "Get pages of PEX host raw data based on provided filters\n\nRequired Permissions:\n\n- For any pex host any of: `match:*`, `match:pex:read`", "operationId": "get_all_pex_host_raw_by_filter", "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": "to_datetime", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "To Datetime" } }, { "name": "from_datetime", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "From Datetime" } }, { "name": "match_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Match Id" } }, { "name": "region_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id" } }, { "name": "server_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id" } }, { "name": "allocation_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id" } }, { "name": "datacenter_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Provider" } }, { "name": "datacenter_location", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Location" } }, { "name": "machine_class", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Machine Class" } }, { "name": "address_ip", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Ip" } }, { "name": "map_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map Name" } }, { "name": "game_mode", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode" } }, { "name": "matchmaking_profile_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id" } }, { "name": "expected_team_size", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Team Size" } }, { "name": "expected_player_count", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Player Count" } }, { "name": "host_player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Host Player Uuid" } }, { "name": "owning_player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Owning Player Uuid" } }, { "name": "version", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version" } }, { "name": "platform_id", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/MatchPlatform" }, { "type": "null" } ], "title": "Platform Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PexHostPagedResponse" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/pex/host/score": { "get": { "tags": [ "Player Experience" ], "summary": "Get All Pex Host Scores By Filter", "description": "Get pages of PEX host scores based on provided filters\n\nRequired Permissions:\n\n- For any pex client any of: `match:*`, `match:pex:read`", "operationId": "get_all_pex_host_scores_by_filter", "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": "to_datetime", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "To Datetime" } }, { "name": "from_datetime", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "From Datetime" } }, { "name": "match_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Match Id" } }, { "name": "region_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id" } }, { "name": "server_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id" } }, { "name": "allocation_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id" } }, { "name": "datacenter_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Provider" } }, { "name": "datacenter_location", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Location" } }, { "name": "machine_class", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Machine Class" } }, { "name": "address_ip", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Ip" } }, { "name": "map_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map Name" } }, { "name": "game_mode", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode" } }, { "name": "matchmaking_profile_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id" } }, { "name": "expected_team_size", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Team Size" } }, { "name": "expected_player_count", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Player Count" } }, { "name": "host_player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Host Player Uuid" } }, { "name": "owning_player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Owning Player Uuid" } }, { "name": "version", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version" } }, { "name": "platform_id", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/MatchPlatform" }, { "type": "null" } ], "title": "Platform Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PexHostPagedResponse" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/match/v1/pex/client/raw": { "get": { "tags": [ "Player Experience" ], "summary": "Get All Pex Client Raw By Filter", "description": "Get pages of PEX client raw data based on provided filters\n\nRequired Permissions:\n\n- For any pex client any of: `match:*`, `match:pex:read`", "operationId": "get_all_pex_client_raw_by_filter", "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": "to_datetime", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "To Datetime" } }, { "name": "from_datetime", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "From Datetime" } }, { "name": "match_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Match Id" } }, { "name": "region_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id" } }, { "name": "server_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id" } }, { "name": "allocation_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id" } }, { "name": "datacenter_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Provider" } }, { "name": "datacenter_location", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Location" } }, { "name": "machine_class", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Machine Class" } }, { "name": "address_ip", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Ip" } }, { "name": "map_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map Name" } }, { "name": "game_mode", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode" } }, { "name": "matchmaking_profile_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id" } }, { "name": "expected_team_size", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Team Size" } }, { "name": "expected_player_count", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Player Count" } }, { "name": "host_player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Host Player Uuid" } }, { "name": "owning_player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Owning Player Uuid" } }, { "name": "version", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version" } }, { "name": "platform_id", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/MatchPlatform" }, { "type": "null" } ], "title": "Platform Id" } }, { "name": "player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Player Uuid" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PexClientPagedResponse" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Not Found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/match/v1/pex/client/score": { "get": { "tags": [ "Player Experience" ], "summary": "Get All Pex Client Scores By Filter", "description": "Get pages of PEX client score data based on provided filters\n\nRequired Permissions:\n\n- For any pex client any of: `match:*`, `match:pex:read`", "operationId": "get_all_pex_client_scores_by_filter", "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": "to_datetime", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "To Datetime" } }, { "name": "from_datetime", "in": "query", "required": false, "schema": { "anyOf": [ { "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": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" }, { "type": "null" } ], "title": "From Datetime" } }, { "name": "match_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Match Id" } }, { "name": "region_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id" } }, { "name": "server_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id" } }, { "name": "allocation_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id" } }, { "name": "datacenter_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Provider" } }, { "name": "datacenter_location", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Location" } }, { "name": "machine_class", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Machine Class" } }, { "name": "address_ip", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Ip" } }, { "name": "map_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map Name" } }, { "name": "game_mode", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode" } }, { "name": "matchmaking_profile_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id" } }, { "name": "expected_team_size", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Team Size" } }, { "name": "expected_player_count", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Player Count" } }, { "name": "host_player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Host Player Uuid" } }, { "name": "owning_player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Owning Player Uuid" } }, { "name": "version", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version" } }, { "name": "platform_id", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/MatchPlatform" }, { "type": "null" } ], "title": "Platform Id" } }, { "name": "player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Player Uuid" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PexClientPagedResponse" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/match/v1/pex/host": { "post": { "tags": [ "Player Experience" ], "summary": "Create Pex Host", "description": "Create PEX Host\n\nRequired Permissions:\n\n- For any pex host any of: `match:*`, `match:pex:host:write`", "operationId": "create_pex_host", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PexHostRequest" } } }, "required": true }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] } }, "/match/v1/pex/client": { "post": { "tags": [ "Player Experience" ], "summary": "Create Pex Player", "description": "Create PEX Client\n\nRequired Permissions:\n\n- For any pex client any of: `match:*`, `match:pex:client:write`", "operationId": "create_pex_player", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PexClientRequest" } } }, "required": true }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] } }, "/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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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 the provided entity_id. \nThis endpoint will accept a multipart/form-data by default when the request's content-type is not provided. \nWhen a content-type is provided, the request body will be as raw bytes.", "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" } }, { "name": "content-type", "in": "header", "required": false, "schema": { "type": "string", "title": "Content-Type" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_create_entity_directory_file" } }, "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } }, "required": true }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/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", "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" } } } } }, "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", "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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "description": "A valid UUID identifying a player. Rejects integer player identification.", "title": "Player Uuid" }, "description": "A valid UUID identifying a player. Rejects integer player identification." }, { "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 resource, a 304 response will be return - indicating that the resource has not changed.", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerPresence" } } }, "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": { "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "description": "A valid integer identifying a player. Rejects UUID player identification.", "title": "Player Id" }, "description": "A valid integer identifying a player. Rejects UUID player identification." }, { "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 resource, a 304 response will be return - indicating that the resource has not changed.", "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." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerPresence" } } }, "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": { "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "description": "A valid UUID identifying a player. Rejects integer player identification.", "title": "Player Uuid" }, "description": "A valid UUID identifying a player. Rejects integer player identification." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerLastSeenUpdate" } } } }, "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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "description": "A valid integer identifying a player. Rejects UUID player identification.", "title": "Player Id" }, "description": "A valid integer identifying a player. Rejects UUID player identification." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerLastSeenUpdate" } } } }, "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": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Internal Server Error" } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_uuid", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "description": "A valid UUID identifying a player. Rejects integer player identification.", "title": "Player Uuid" }, "description": "A valid UUID identifying a player. Rejects integer player identification." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerPresence" } } } }, "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "player_id", "in": "path", "required": true, "schema": { "type": "integer", "description": "A valid integer identifying a player. Rejects UUID player identification.", "title": "Player Id" }, "description": "A valid integer identifying a player. Rejects UUID player identification." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayerPresence" } } } }, "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" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnionCCU" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IndividualCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnionCCU" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IndividualCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnionCCU" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IndividualCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Platforms" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "platform", "in": "path", "required": true, "schema": { "type": "string", "title": "Platform" } }, { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "platform", "in": "path", "required": true, "schema": { "type": "string", "title": "Platform" } }, { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "platform", "in": "path", "required": true, "schema": { "type": "string", "title": "Platform" } }, { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "platform", "in": "path", "required": true, "schema": { "type": "string", "title": "Platform" } }, { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "platform", "in": "path", "required": true, "schema": { "type": "string", "title": "Platform" } }, { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformIndividualCCUs" } } } }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } }, "description": "Forbidden" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "platform", "in": "path", "required": true, "schema": { "type": "string", "title": "Platform" } }, { "name": "begin", "in": "query", "required": true, "schema": { "title": "Begin", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } }, { "name": "end", "in": "query", "required": true, "schema": { "title": "End", "description": "Datetime that enforces that a timezone is given. Unix timestamps are allowed and forced into the UTC time zone", "type": "string", "format": "date-time", "example": "2023-01-23T21:07:02.000000+00:00" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformUnionCCUs" } } } }, "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:*`, `sanction:report:create:any`\nOtherwise: any of: `sanction:*`, `sanction:report:create:any`", "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- `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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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:*`, `sanction:report:read:target-any`\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:*`, `sanction:report:read:source-any`\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- `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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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:*`, `sanction:report:read:target-any`\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:*`, `sanction:report:read:source-any`\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- `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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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:*`, `sanction:report:read:source-any`\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- `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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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:*`, `sanction:report:read:source-any`\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- `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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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" } } } } } } }, "/notification/v1/player/me/stream/notification/lp": { "get": { "tags": [ "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_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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "\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": [ "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_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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "\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": [ "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_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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "\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": [ "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_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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "\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": [ "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_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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "\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": [ "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_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_invalid_type` - Invalid Authorization - Invalid Token Type\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": "\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": [ "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_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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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": [ "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_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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `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": [] } ] } }, "/guide/v1/guide": { "get": { "tags": [ "guide" ], "summary": "Search Guides", "description": "Search all guides\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `guide:*`, `guide:read`", "operationId": "search_guides", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "sort_by", "in": "query", "required": false, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SearchGuideSort" }, "default": [ "created" ], "title": "Sort By" } }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 20, "title": "Page Size" } }, { "name": "owner_entity_type", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/GuideEntityType" }, { "type": "null" } ], "title": "Owner Entity Type" } }, { "name": "owner_entity_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Owner Entity Id" } }, { "name": "language", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 3 }, { "type": "null" } ], "title": "Language" } }, { "name": "guide_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 16 }, { "type": "null" } ], "title": "Guide Type" } }, { "name": "game_version", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Game Version" } }, { "name": "name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" } }, { "name": "ref_1", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 1" } }, { "name": "ref_2", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 2" } }, { "name": "ref_3", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 3" } }, { "name": "ref_4", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 4" } }, { "name": "ref_5", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 5" } }, { "name": "ref_6", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 6" } }, { "name": "ref_7", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 7" } }, { "name": "ref_8", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 8" } }, { "name": "ref_9", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 9" } }, { "name": "ref_10", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 10" } }, { "name": "ref_11", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 11" } }, { "name": "ref_12", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 12" } }, { "name": "ref_13", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 13" } }, { "name": "ref_14", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 14" } }, { "name": "ref_15", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 15" } }, { "name": "ref_16", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 16" } }, { "name": "ref_17", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 17" } }, { "name": "ref_18", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 18" } }, { "name": "ref_19", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 19" } }, { "name": "ref_20", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 20" } }, { "name": "ref_21", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 21" } }, { "name": "ref_22", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 22" } }, { "name": "ref_23", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 23" } }, { "name": "ref_24", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 24" } }, { "name": "ref_25", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 25" } }, { "name": "ref_26", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 26" } }, { "name": "ref_27", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 27" } }, { "name": "ref_28", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 28" } }, { "name": "ref_29", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 29" } }, { "name": "ref_30", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 30" } }, { "name": "ref_31", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 31" } }, { "name": "ref_32", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 32" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SortDirection" }, "default": [ "desc" ], "title": "Sort" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchGuideResponse" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } }, "post": { "tags": [ "guide" ], "summary": "Create Guide", "description": "Create a new guide\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `guide:*`, `guide:write:any`\n\n- For the entity themselves : `guide:write:self`", "operationId": "create_guide", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GuideCreateRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GuideFull" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/guide/v1/guide/{guide_id}": { "get": { "tags": [ "guide" ], "summary": "Get Guide By Id", "description": "Get guide by ID\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `guide:*`, `guide:read`", "operationId": "get_guide_by_id", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "guide_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Guide Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GuideFull" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `not_found` - Object was not found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "guide" ], "summary": "Update Guide By Id", "description": "Update a guide\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `guide:*`, `guide:write:any`\n\n- For the entity themselves : `guide:write:self`", "operationId": "update_guide_by_id", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "guide_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Guide Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GuideCreateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GuideFull" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [ "guide" ], "summary": "Delete Guide By Id", "description": "Delete a guide\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `guide:*`, `guide:write:any`\n\n- For the entity themselves : `guide:write:self`", "operationId": "delete_guide_by_id", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "guide_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Guide Id" } } ], "responses": { "200": { "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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `not_found` - Object was not found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/guide/v1/{entity_type}/{entity_id}/guide-engagement": { "post": { "tags": [ "guide" ], "summary": "Get Entity Guide Engagement", "description": "Get entity's engagement for a set of guide ids\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `guide:*`, `guide:engage:read:any`, `guide:engage:write:any`\n\n- For the entity themselves any of: `guide:engage:read:self`, `guide:engage:write:self`", "operationId": "get_entity_guide_engagement", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/GuideEntityType" } }, { "name": "entity_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManyEntityGuideEngagementRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManyEntityGuideEngagement" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/guide/v1/{entity_type}/{entity_id}/favorite-guide": { "get": { "tags": [ "guide" ], "summary": "Get Entity Favorite Guide", "description": "Get entity's favorite guides\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `guide:*`, `guide:engage:read:any`, `guide:engage:write:any`\n\n- For the entity themselves any of: `guide:engage:read:self`, `guide:engage:write:self`", "operationId": "get_entity_favorite_guide", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/GuideEntityType" } }, { "name": "entity_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Id" } }, { "name": "sort_by", "in": "query", "required": false, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SearchFavoriteGuideSort" }, "default": [ "favorited_at" ], "title": "Sort By" } }, { "name": "cursor", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 20, "title": "Page Size" } }, { "name": "owner_entity_type", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/GuideEntityType" }, { "type": "null" } ], "title": "Owner Entity Type" } }, { "name": "owner_entity_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Owner Entity Id" } }, { "name": "language", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 3 }, { "type": "null" } ], "title": "Language" } }, { "name": "guide_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 16 }, { "type": "null" } ], "title": "Guide Type" } }, { "name": "game_version", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Game Version" } }, { "name": "name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" } }, { "name": "ref_1", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 1" } }, { "name": "ref_2", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 2" } }, { "name": "ref_3", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 3" } }, { "name": "ref_4", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 4" } }, { "name": "ref_5", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 5" } }, { "name": "ref_6", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 6" } }, { "name": "ref_7", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 7" } }, { "name": "ref_8", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 8" } }, { "name": "ref_9", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 9" } }, { "name": "ref_10", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 10" } }, { "name": "ref_11", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 11" } }, { "name": "ref_12", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 12" } }, { "name": "ref_13", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 13" } }, { "name": "ref_14", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 14" } }, { "name": "ref_15", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 15" } }, { "name": "ref_16", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 16" } }, { "name": "ref_17", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 17" } }, { "name": "ref_18", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 18" } }, { "name": "ref_19", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 19" } }, { "name": "ref_20", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 20" } }, { "name": "ref_21", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 21" } }, { "name": "ref_22", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 22" } }, { "name": "ref_23", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 23" } }, { "name": "ref_24", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 24" } }, { "name": "ref_25", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 25" } }, { "name": "ref_26", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 26" } }, { "name": "ref_27", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 27" } }, { "name": "ref_28", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 28" } }, { "name": "ref_29", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 29" } }, { "name": "ref_30", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 30" } }, { "name": "ref_31", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 31" } }, { "name": "ref_32", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 32" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SortDirection" }, "default": [ "desc" ], "title": "Sort" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchGuideResponse" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } }, "post": { "tags": [ "guide" ], "summary": "Add Entity Favorite Guide", "description": "Add a guide to an entity's favorites\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `guide:*`, `guide:engage:write:any`\n\n- For the entity themselves : `guide:engage:write:self`", "operationId": "add_entity_favorite_guide", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/GuideEntityType" } }, { "name": "entity_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FavoriteGuideRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FavoriteGuideResponse" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/guide/v1/{entity_type}/{entity_id}/favorite-guide/{guide_id}": { "delete": { "tags": [ "guide" ], "summary": "Remove Entity Favorite Guide", "description": "Remove a guide from entity's favorites\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `guide:*`, `guide:engage:write:any`\n\n- For the entity themselves : `guide:engage:write:self`", "operationId": "remove_entity_favorite_guide", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/GuideEntityType" } }, { "name": "entity_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Id" } }, { "name": "guide_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid", "title": "Guide Id" } } ], "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/guide/v1/{entity_type}/{entity_id}/rate-guide": { "post": { "tags": [ "guide" ], "summary": "Add Entity Rating For Guide", "description": "Rate a guide for an entity\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `guide:*`, `guide:engage:write:any`\n\n- For the entity themselves : `guide:engage:write:self`", "operationId": "add_entity_rating_for_guide", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "entity_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/GuideEntityType" } }, { "name": "entity_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GuideRating" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GuideRating" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [ "Config" ], "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": [ "Config" ], "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" } } } } } } }, "/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", "parameters": [ { "name": "x-rh-client-addr", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 32 }, { "type": "null" } ], "description": "IP Address hint", "title": "X-Rh-Client-Addr" }, "description": "IP Address hint" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventList" } } } }, "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" } } } } } } }, "/events/v1/validate": { "post": { "tags": [ "Events" ], "summary": "Validate Event V1", "description": "Validate a single event, return validation result and the event json will be posted to Kafka", "operationId": "validate_event_v1", "parameters": [ { "name": "x-rh-client-addr", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 32 }, { "type": "null" } ], "description": "IP Address hint", "title": "X-Rh-Client-Addr" }, "description": "IP Address hint" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RallyHereEvent" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateEventResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/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": [] } ] } }, "/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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } }, "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": "\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } }, "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" } } } } } } }, "/leaderboard/v1/leaderboard/{leaderboard_id}": { "get": { "tags": [ "Leaderboard" ], "summary": "Get Leaderboard", "description": "Get a paged response for a leaderboard", "operationId": "get_leaderboard", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "leaderboard_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Leaderboard Id" } }, { "name": "cursor", "in": "query", "required": true, "schema": { "type": "string", "minLength": 1, "description": "Cursor for which page of leaderboard data you would like to retrieve", "title": "Cursor" }, "description": "Cursor for which page of leaderboard data you would like to retrieve" }, { "name": "page_size", "in": "query", "required": true, "schema": { "type": "integer", "maximum": 50, "description": "The desired page size for the results", "title": "Page Size" }, "description": "The desired page size for the results" }, { "name": "player_uuid", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "description": "UUID of the player whose leaderboard data is being retrieved. Required for friend leaderboards", "title": "Player Uuid" }, "description": "UUID of the player whose leaderboard data is being retrieved. Required for friend leaderboards" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaderboardPage" } } } }, "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" } } } } } } }, "/leaderboard/v1/leaderboard/{leaderboard_id}/metadata": { "get": { "tags": [ "Leaderboard" ], "summary": "Get Leaderboard Meta Data", "description": "Get metadata about a specific leaderboard", "operationId": "get_leaderboard_meta_data", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "leaderboard_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Leaderboard Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaderboardMetaData" } } } }, "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" } } } } } } }, "/leaderboard/v1/leaderboard/{leaderboard_id}/position/{leaderboard_position}": { "get": { "tags": [ "Leaderboard" ], "summary": "Get Leaderboard Position Entry", "description": "Get a leaderboard entry at a specific position", "operationId": "get_leaderboard_position_entry", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "leaderboard_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Leaderboard Id" } }, { "name": "leaderboard_position", "in": "path", "required": true, "schema": { "type": "integer", "title": "Leaderboard Position" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaderboardEntry" } } } }, "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" } } } } } } }, "/leaderboard/v1/config/leaderboard": { "get": { "tags": [ "Leaderboard" ], "summary": "Get All Leaderboard Config", "description": "Get the leaderboard config for all leaderboards", "operationId": "get_all_leaderboard_config", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaderboardConfigList" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/leaderboard/v1/config/leaderboard/{leaderboard_id}": { "get": { "tags": [ "Leaderboard" ], "summary": "Get Leaderboard Config", "description": "Get the leaderboard config for a specific leaderboard", "operationId": "get_leaderboard_config", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "leaderboard_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Leaderboard Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaderboardConfig" } } } }, "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" } } } } } } }, "/stage/v1/stage": { "get": { "tags": [ "Stage" ], "summary": "Search Stages", "description": "Search all stages\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `stage:*`, `stage:search`", "operationId": "search_stages", "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", "default": 20, "title": "Page Size" } }, { "name": "owner_entity_type", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/StageEntityType" }, { "type": "null" } ], "title": "Owner Entity Type" } }, { "name": "owner_entity_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Owner Entity Id" } }, { "name": "game_version", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Game Version" } }, { "name": "v", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "V" } }, { "name": "type_1", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 1" } }, { "name": "type_2", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 2" } }, { "name": "type_3", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 3" } }, { "name": "type_4", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 4" } }, { "name": "index", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Index" } }, { "name": "match_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "minLength": 1, "maxLength": 128 }, { "type": "null" } ], "title": "Match Id" } }, { "name": "stat_1", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 1" } }, { "name": "stat_2", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 2" } }, { "name": "stat_3", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 3" } }, { "name": "stat_4", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 4" } }, { "name": "mmr_internal_min", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "min (inclusive) mmr internal value", "title": "Mmr Internal Min" }, "description": "min (inclusive) mmr internal value" }, { "name": "mmr_internal_max", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "max (exclusive) mmr internal value", "title": "Mmr Internal Max" }, "description": "max (exclusive) mmr internal value" }, { "name": "mmr_vis_min", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "min (inclusive) mmr visual value", "title": "Mmr Vis Min" }, "description": "min (inclusive) mmr visual value" }, { "name": "mmr_vis_max", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "max (exclusive) mmr visual value", "title": "Mmr Vis Max" }, "description": "max (exclusive) mmr visual value" }, { "name": "include_blob", "in": "query", "required": false, "schema": { "type": "boolean", "description": "include blob in the response data. Results are much quicker without returning the blob", "default": true, "title": "Include Blob" }, "description": "include blob in the response data. Results are much quicker without returning the blob" }, { "name": "sort_by", "in": "query", "required": false, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/StageSearchSort" }, "default": [ "created" ], "title": "Sort By" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SortDirection" }, "default": [ "desc" ], "title": "Sort" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StageSearchResults" } } } }, "400": { "description": "\nError Codes:\n- `invalid_cursor` - Cursor is invalid or malformed\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } }, "post": { "tags": [ "Stage" ], "summary": "Create Stages", "description": "Create many stages\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `stage:*`, `stage:write:any`\n\n- For the player themselves : `stage:write:self`", "operationId": "create_stages", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StageCreateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StageCreateResult" } } } }, "400": { "description": "\nError Codes:\n- `invalid_owner` - Owner of the requested stage is invalid. Ensure the type is correct and the id is non-empty\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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/stage/v1/stage/{stage_id}": { "get": { "tags": [ "Stage" ], "summary": "Get Stage", "description": "Get a stage by stage_id\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `stage:*`, `stage:read:any`\n\n- For the player themselves : `stage:read:self`", "operationId": "get_stage", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "stage_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Stage Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Stage" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `not_found` - No data found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Stage" ], "summary": "Update Stage", "description": "Create or Update a stage by ID\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `stage:*`, `stage:write:any`\n\n- For the player themselves : `stage:write:self`", "operationId": "update_stage", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "stage_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Stage Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StageUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Stage" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [ "Stage" ], "summary": "Delete Stage", "description": "Create or Update a stage by ID\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `stage:*`, `stage:write:any`\n\n- For the player themselves : `stage:write:self`", "operationId": "delete_stage", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "stage_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Stage Id" } } ], "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/stage/v1/stage-matchmake": { "post": { "tags": [ "Stage" ], "summary": "Matchmake Stage", "description": "Matchmake against the requested parameters to find a stage to play against\n\nRequired Permissions:\n\n- For any player (including themselves) any of: `stage:*`, `stage:matchmake`", "operationId": "matchmake_stage", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StageMatchmakeParams" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Stage" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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- `not_found` - No data found\n", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HzApiErrorModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearerHeadersOrCookie": [] } ] } }, "/stage/v1/run-complete": { "post": { "tags": [ "Stage" ], "summary": "Submit Completed Run", "description": "Add the stats about this run to the entity's aggregated stats from all runs.\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `stage:*`, `stage:stats:write:any`\n\n- For the entity themselves : `stage:stats:write:self`\n\nIf explicitly setting the run as a placement or manually changing mmr values, Required Permissions:\n\n- For any entity (including themselves) any of: `stage:*`, `stage:stats:fullwrite`", "operationId": "submit_completed_run", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityRunCompleteRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityRunCompleteResponse" } } } }, "400": { "description": "\nError Codes:\n- `invalid_owner` - Owner of the requested stage is invalid. Ensure the type is correct and the id is non-empty\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_invalid_type` - Invalid Authorization - Invalid Token Type\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": [] } ] } }, "/stage/v1/run-stats": { "get": { "tags": [ "Stage" ], "summary": "Get Entity Run Stats", "description": "Get the aggregated stats about an entity for specific matchmaking bucket(s)\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `stage:*`, `stage:stats:read:any`\n\n- For the entity themselves : `stage:stats:read:self`", "operationId": "get_entity_run_stats", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "entity_type", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/StageEntityType" } }, { "name": "entity_id", "in": "query", "required": true, "schema": { "type": "string", "title": "Entity Id" } }, { "name": "type_1", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 1" } }, { "name": "type_2", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 2" } }, { "name": "type_3", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 3" } }, { "name": "type_4", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 4" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityMMBucketRunStatsMulti" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } }, "put": { "tags": [ "Stage" ], "summary": "Update Entity Run Stats", "description": "Update the aggregated stats about an entity for specific matchmaking bucket\n\nRequired Permissions:\n\n- For any entity (including themselves) any of: `stage:*`, `stage:stats:write:any`\n\n- For the entity themselves : `stage:stats:write:self`\nRequired Permissions:\n\n- For any entity (including themselves) any of: `stage:*`, `stage:stats:fullwrite`", "operationId": "update_entity_run_stats", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityMMBucketRunStatsUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntityMMBucketRunStats" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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" } } } } } } }, "/stage/v1/mmr-stats": { "get": { "tags": [ "Stage" ], "summary": "Get Mmr Stats", "description": "Calculate stats about MMR bucket density\n\nRequired Permissions:\n\n- For any entity (including themselves) : `stage:*`", "operationId": "get_mmr_stats", "security": [ { "HTTPBearerHeadersOrCookie": [] } ], "parameters": [ { "name": "buckets", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "number" }, "default": [], "title": "Buckets" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MMRStats" } } } }, "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_invalid_type` - Invalid Authorization - Invalid Token Type\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", "description": "RallyHere Environment API Access Token Authorization\n\nAccess tokens can be generated from the environment's Users-API login/oauth endpoints.\n\nAccepts authorization from the following request locations:\n- `Authorization` header with a scheme of `bearer`. E.g. `Authorization: bearer MYACCESSTOKENHERE`\n- `Authorization` cookie with a scheme of `bearer`. E.g. `bearer MYACCESSTOKENHERE`\n" }, "HTTPBasic": { "type": "http", "scheme": "basic", "description": "RallyHere Environment API Client Credential Authorization\n\nClient credentials are available from the Product's configuration in the RallyHere Developer Portal.\n" } }, "schemas": { "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" }, "CreateSupportLogRequest": { "properties": { "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "Person ID to associate with the log entry" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID to associate with the log entry" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Platform to associate with the log entry" }, "platform_user_id": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "Platform user ID to associate with the log entry" }, "event_name": { "type": "string", "title": "Event Name", "description": "Name of the support event" }, "event_description": { "type": "string", "title": "Event Description", "description": "Detailed description of the support action" }, "support_username": { "type": "string", "title": "Support Username", "description": "Username of the support agent" }, "ip": { "type": "string", "title": "Ip", "description": "IP address where the action was performed" } }, "type": "object", "required": [ "event_name", "event_description" ], "title": "CreateSupportLogRequest", "description": "Request to create a new support log entry" }, "DeviceType": { "type": "string", "enum": [ "pc", "xbox_series", "xbox_one", "web" ], "title": "DeviceType", "description": "An enumeration.", "x-enum-varnames": [ "pc", "xbox_series", "xbox_one", "web" ], "x-enum-descriptions": [ "", "", "", "" ] }, "GrantType": { "type": "string", "enum": [ "anon", "google", "apple", "refresh", "epic", "xboxlive", "ps4_v1", "ps4_v3", "ps5_v3", "nintendo_switch", "steam", "basic", "rallyhere", "client_credentials", "android_device", "ios_device" ], "title": "GrantType", "description": "Supported grant types for V1 Login Flow", "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 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.", "Android Device anonymous authentication", "iOS Device anonymous authentication" ], "x-enum-varnames": [ "ANON", "GOOGLE", "APPLE", "REFRESH", "EPIC", "XBOXLIVE", "PS4_V1", "PS4_V3", "PS5_V3", "NINTENDO_SWITCH", "STEAM", "BASIC", "RALLYHERE", "CLIENT_CREDENTIALS", "ANDROID_DEVICE", "IOS_DEVICE" ] }, "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" }, "LinkAction": { "type": "string", "enum": [ "link", "unlink", "new_person", "xprog_enable", "xprog_disable" ], "title": "LinkAction", "description": "An enumeration.", "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" ], "x-enum-varnames": [ "link", "unlink", "new_person", "xprog_enable", "xprog_disable" ] }, "LoginCompleteMessage": { "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 }, "restrictions": { "items": { "$ref": "#/components/schemas/Restriction" }, "type": "array", "title": "Restrictions", "description": "Restrictions which prevented login. Does NOT include unrelated restrictions that didn't prevent login", "default": [] } }, "type": "object", "required": [ "error_code", "desc" ], "title": "LoginCompleteMessage", "description": "Error message for when a user has not agreed to the required agreements (EULA, TOS, or Privacy Policy), or was denied login for restrictions" }, "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" }, "platform_environment": { "type": "string", "title": "Platform Environment", "description": "Which of the platform's environments was this user info from? For Xbox, this is sandbox. For PSN, this is sp-int/prod-qa/np. For Nintendo, this is jd1/dd1/dp1/sd1/sp1/lp1." }, "display_name": { "type": "string", "title": "Display Name", "description": "Display name" }, "role_id": { "type": "integer", "title": "Role Id", "description": "Role ID" }, "role_custom_data": { "type": "object", "title": "Role Custom Data", "description": "If the use has a role assigned, any custom data associated with that role", "default": {} }, "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" }, "OAuthGrantType": { "type": "string", "enum": [ "client_credentials" ], "title": "OAuthGrantType", "description": "Supported OAuth2 grant types", "x-enum-descriptions": [ "The OAuth2 client credentials grant type" ], "x-enum-varnames": [ "CLIENT_CREDENTIALS" ] }, "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-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" ], "x-enum-varnames": [ "GOOGLE", "APPLE", "EPIC", "XBOX", "PSN", "NINTENDO", "STEAM", "AMAZON", "TWITCH" ] }, "OAuthTokenEchangeGrantType": { "type": "string", "enum": [ "authorization_code" ], "title": "OAuthTokenEchangeGrantType", "description": "Supported grant types for OAuth Token Exchange process", "x-enum-descriptions": [ "Authorization code grant type for OAuth token exchange." ], "x-enum-varnames": [ "authorization_code" ] }, "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." }, "restrictions": { "items": { "$ref": "#/components/schemas/Restriction" }, "type": "array", "title": "Restrictions", "description": "List of restrictions that prevented authentication", "default": [] } }, "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", "AndroidDevice", "iosDevice" ], "title": "Platform", "description": "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", "ANDROID_DEVICE", "IOS_DEVICE" ], "x-enum-descriptions": [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ] }, "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" }, "role_id": { "type": "string", "title": "Role Id", "description": "Role ID of the person, if available" } }, "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-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" ], "x-enum-varnames": [ "PS4_V1", "PS4_V3", "PS5_V3" ] }, "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 }, "platform_environment": { "type": "string", "title": "Platform Environment", "description": "Which of the platform's environments was this user info from? For Xbox, this is sandbox. For PSN, this is sp-int/prod-qa/np. For Nintendo, this is jd1/dd1/dp1/sd1/sp1/lp1." }, "portal_user_id": { "type": "string", "title": "Portal User Id", "description": "Platform User ID" }, "display_name": { "type": "string", "title": "Display Name", "description": "Display name" }, "device_type": { "allOf": [ { "$ref": "#/components/schemas/DeviceType" } ], "description": "Platform-verified device type of the login" } }, "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": { "allOf": [ { "$ref": "#/components/schemas/RestrictionReasonCode" } ], "description": "Reason the restriction was applied" }, "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" } }, "type": "object", "required": [ "type" ], "title": "Restriction", "description": "Restriction applied to a player" }, "RestrictionCreate": { "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/RestrictionType" } ], "description": "Type of restriction" }, "reason": { "allOf": [ { "$ref": "#/components/schemas/RestrictionReasonCode" } ], "description": "Reason the restriction was applied" }, "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" }, "issuer_type": { "allOf": [ { "$ref": "#/components/schemas/RestrictionIssuerType" } ], "description": "Type of the Issuer" }, "issuer": { "type": "string", "title": "Issuer", "description": "The creator of the restriction" }, "reason_detail": { "type": "string", "title": "Reason Detail", "description": "Internal-only reason describing the restriction" } }, "type": "object", "required": [ "type", "issuer_type", "issuer" ], "title": "RestrictionCreate", "description": "Restriction applied to a player" }, "RestrictionEvent": { "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/RestrictionType" } ], "description": "Type of restriction. null means removing all rstrictions" }, "reason": { "allOf": [ { "$ref": "#/components/schemas/RestrictionReasonCode" } ], "description": "Reason the restriction was applied" }, "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" }, "issuer_type": { "allOf": [ { "$ref": "#/components/schemas/RestrictionIssuerType" } ], "description": "Type of the Issuer" }, "issuer": { "type": "string", "title": "Issuer", "description": "The creator of the restriction" }, "reason_detail": { "type": "string", "title": "Reason Detail", "description": "Internal-only reason describing the restriction" }, "restriction_event_id": { "type": "string", "title": "Restriction Event Id", "description": "Unique ID identifying the restriction" }, "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "Person the restriction was applied to" }, "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" } }, "type": "object", "required": [ "issuer_type", "issuer", "restriction_event_id", "person_id", "created" ], "title": "RestrictionEvent", "description": "Restriction applied to a player" }, "RestrictionHistory": { "properties": { "entries": { "items": { "$ref": "#/components/schemas/RestrictionEvent" }, "type": "array", "title": "Entries", "description": "The restriction history entries" }, "continuation_token": { "type": "string", "title": "Continuation Token", "description": "Token to retrieve the next page of results" } }, "type": "object", "required": [ "entries" ], "title": "RestrictionHistory", "description": "List of restriction events that have been applied to a user" }, "RestrictionIssuerType": { "type": "string", "enum": [ "support", "gm", "admin", "anticheat", "punish_system", "guardian", "shop" ], "title": "RestrictionIssuerType", "description": "An enumeration.", "x-enum-descriptions": [ "Support staff", "In-Game GM", "System Administrator", "Anti-cheat provider (see issuer for more specific information)", "Automated Punishment system, based on user activity", "User's parent/guardian", "Automated Shop System, based on user activity" ], "x-enum-varnames": [ "SUPPORT", "GM", "ADMIN", "ANTICHEAT", "PUNISH_SYSTEM", "GUARDIAN", "SHOP" ] }, "RestrictionReasonCode": { "type": "string", "enum": [ "cheating_autodetected", "speedhack_autodetect", "other", "cheating_observed", "cheating_reported_by_player", "threats", "language", "griefing", "fraud", "revoke_failed", "unknown", "guardian", "issuer_process", "account_migration", "user_request", "maintenance", "pending_deletion" ], "title": "RestrictionReasonCode", "description": "An enumeration.", "x-enum-descriptions": [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ], "x-enum-varnames": [ "CHEATING_AUTODETECTED", "SPEEDHACK_AUTODETECT", "OTHER", "CHEATING_OBSERVED", "CHEATING_REPORTED_BY_PLAYER", "THREATS", "LANGUAGE", "GRIEFING", "FRAUD", "REVOKE_FAILED", "UNKNOWN", "GUARDIAN", "ISSUER_PROCESS", "ACCOUNT_MIGRATION", "USER_REQUEST", "MAINTENANCE", "PENDING_DELETION" ] }, "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-descriptions": [ "Account is banned. User is not allowed to login", "Account is locked out. User is not allowed to login", "Account is pending deletion and will be deleted in the future.", "Account has been banned from authentication. User is not allowed to login" ], "x-enum-varnames": [ "ACCOUNT_BAN", "ACCOUNT_LOCKOUT", "ACCOUNT_PENDING_DELETION", "ACCOUNT_DENY_AUTH" ] }, "Restrictions": { "properties": { "restrictions": { "items": { "$ref": "#/components/schemas/Restriction" }, "type": "array", "title": "Restrictions", "description": "List of restrictions applied to a user", "default": [] } }, "type": "object", "title": "Restrictions", "description": "List of restrictions applied to a user" }, "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-descriptions": [ "Does not bypass any auth states", "Allow bypass of the limited auth state", "Auth bypass for the limited and locked auth states" ], "x-enum-varnames": [ "NONE", "LIMITED", "LOCKED" ] }, "SupportLogEntry": { "properties": { "support_action_log_id": { "type": "string", "title": "Support Action Log Id", "description": "Unique ID of the support action log entry" }, "person_id": { "type": "string", "format": "uuid", "title": "Person Id", "description": "Person ID the log entry is for" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player ID the log entry is for (legacy)" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Portal ID (legacy)" }, "platform_user_id": { "type": "string", "maxLength": 2048, "title": "Platform User Id", "description": "Portal user ID (legacy)" }, "event_name": { "type": "string", "title": "Event Name", "description": "Name of the support event" }, "event_description": { "type": "string", "title": "Event Description", "description": "Detailed description of the support action" }, "ip": { "type": "string", "title": "Ip", "description": "IP address where the action was performed" }, "support_username": { "type": "string", "title": "Support Username", "description": "Username of the support agent" }, "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" } }, "type": "object", "required": [ "support_action_log_id", "event_name", "event_description", "created" ], "title": "SupportLogEntry", "description": "Support log entry details" }, "SupportLogPageResponse": { "properties": { "logs": { "items": { "$ref": "#/components/schemas/SupportLogEntry" }, "type": "array", "title": "Logs", "description": "List of support log entries" }, "page": { "type": "integer", "title": "Page", "description": "Current page number" }, "total_pages": { "type": "integer", "title": "Total Pages", "description": "Total number of pages available" }, "total_entries": { "type": "integer", "title": "Total Entries", "description": "Total number of log entries available" } }, "type": "object", "required": [ "logs", "page", "total_pages", "total_entries" ], "title": "SupportLogPageResponse", "description": "Response containing a page of support log entries" }, "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" }, "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" }, "dependencies__schemas__Portal": { "type": "integer", "enum": [ 2, 4, 5, 9, 10, 11, 13, 14, 16, 22, 24, 26, 27, 28, 33, 34, 35 ], "title": "Portal", "description": "Portals a.k.a platforms that a player can be linked/authenticated with", "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", "Android Device Portal", "iOS Device Portal" ], "x-enum-varnames": [ "ANON", "AMAZON", "STEAM", "PSN", "XBOXLIVE", "BASIC", "GOOGLE", "RALLYHERE", "TWITCH", "NINTENDO_SWITCH", "APPLE", "NINTENDO", "LEGACYNAME", "EPIC", "NINTENDO_PPID", "ANDROID_DEVICE", "IOS_DEVICE" ] }, "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, 34, 35 ], "title": "Portal", "description": "An enumeration.", "x-enum-descriptions": [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ], "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", "ANDROID_DEVICE", "IOS_DEVICE" ] }, "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 document 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 document for a player" }, "SettingData": { "properties": { "v": { "type": "integer", "title": "V", "description": "Version of the Setting Type schema that was used to validate the value document." }, "value": { "title": "Value", "description": "Setting Value document" }, "etag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Etag", "description": "ETag identifying the current version+value of the document" }, "last_modified": { "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": "Last Modified", "description": "Timestamp when this setting was last modified" } }, "type": "object", "required": [ "v", "value" ], "title": "SettingData", "description": "Setting version/value document 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 }, "is_internal": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Internal", "description": "Whether this setting type is internal, requiring special permissions to view or edit.", "default": false }, "key_regex": { "type": "string", "title": "Key Regex", "description": "Regex that is used to verify keys at assignment time", "default": "^.+$" }, "value_jsonschema": { "additionalProperties": true, "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" }, "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." }, "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." }, "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." }, "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." }, "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." }, "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" }, "PlayerReferral": { "properties": { "referree_player_uuid": { "type": "string", "format": "uuid", "title": "Referree Player Uuid" }, "referrer_player_uuid": { "type": "string", "format": "uuid", "title": "Referrer Player Uuid" }, "created_datetime": { "type": "string", "format": "date-time", "title": "Created Datetime" }, "last_modified_timestamp": { "type": "string", "format": "date-time", "title": "Last Modified Timestamp" } }, "type": "object", "required": [ "referree_player_uuid", "referrer_player_uuid", "created_datetime", "last_modified_timestamp" ], "title": "PlayerReferral", "description": "Represents a player referral relationship where one player was referred by another." }, "PlayerReferralCode": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid" }, "referral_code": { "type": "string", "maxLength": 12, "minLength": 4, "title": "Referral Code" }, "created_datetime": { "type": "string", "format": "date-time", "title": "Created Datetime" }, "last_modified_timestamp": { "type": "string", "format": "date-time", "title": "Last Modified Timestamp" } }, "type": "object", "required": [ "player_uuid", "referral_code", "created_datetime", "last_modified_timestamp" ], "title": "PlayerReferralCode", "description": "Represents a referral code belonging to a player." }, "PlayerReferralSetPayload": { "properties": { "referrer_player_uuid": { "type": "string", "format": "uuid", "title": "Referrer Player Uuid" }, "referral_code": { "type": "string", "title": "Referral Code" } }, "type": "object", "title": "PlayerReferralSetPayload", "description": "Represents a payload for setting a player's referrer." }, "CacheInfo": { "properties": { "etag": { "type": "string", "minLength": 1, "title": "Etag" } }, "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": { "anyOf": [ { "$ref": "#/components/schemas/XpTables" }, { "type": "null" } ], "description": "The XP Tables." }, "portal_use_rulesets": { "anyOf": [ { "$ref": "#/components/schemas/PortalUseRulesets" }, { "type": "null" } ], "description": "The Portal Use Rulesets. Use Inventory Bucket Use Rule Sets instead.", "deprecated": true }, "inventory_bucket_use_rule_sets": { "anyOf": [ { "$ref": "#/components/schemas/InventoryBucketUseRuleSets" }, { "type": "null" } ], "description": "The rules on how to use Inventory Buckets." }, "vendors": { "anyOf": [ { "$ref": "#/components/schemas/Vendors" }, { "type": "null" } ], "description": "The Vendors." }, "loot": { "anyOf": [ { "$ref": "#/components/schemas/Loots" }, { "type": "null" } ], "description": "The Loots." }, "items": { "anyOf": [ { "$ref": "#/components/schemas/Items" }, { "type": "null" } ], "description": "The Items." }, "price_points": { "anyOf": [ { "$ref": "#/components/schemas/PricePoints" }, { "type": "null" } ], "description": "The Price Points." }, "time_frames": { "anyOf": [ { "$ref": "#/components/schemas/TimeFrames" }, { "type": "null" } ], "description": "The Time Frames." }, "skus": { "anyOf": [ { "$ref": "#/components/schemas/PlatformSKUs" }, { "type": "null" } ], "description": "The Platform SKUs." }, "item_tags": { "anyOf": [ { "$ref": "#/components/schemas/ItemTags" }, { "type": "null" } ], "description": "" }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "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": { "$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": { "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": "Expires", "description": "Expiration for this Inventory Operation." }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "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": { "$ref": "#/components/schemas/CreateInventoryType", "default": "persistent" } }, "type": "object", "required": [ "item_id" ], "title": "CreateInventoryRequest", "description": "Request to Create a new Inventory." }, "CreateInventoryRequests": { "properties": { "source": { "$ref": "#/components/schemas/Source", "description": "Source of this Inventory Operation.", "default": "CLIENT" }, "client_order_ref_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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", "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" ] }, "EntitlementEvent": { "properties": { "event_id": { "type": "string", "title": "Event Id", "description": "The unique identifier for the event" }, "action_type": { "$ref": "#/components/schemas/EntitlementActionType", "description": "The type of the event" }, "entitlement_type": { "anyOf": [ { "$ref": "#/components/schemas/EntitlementType" }, { "type": "null" } ], "description": "The type of entitlement when the event occurred" }, "status": { "$ref": "#/components/schemas/EntitlementEventStatus", "description": "The status of the event" }, "player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Player Uuid", "description": "The player UUID for the event" }, "player_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Player Id", "description": "The player ID for the event", "deprecated": true }, "platform": { "$ref": "#/components/schemas/InventoryPlatform", "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": { "anyOf": [ { "type": "string", "maxLength": 4096 }, { "type": "null" } ], "title": "Platform Transaction Id", "description": "The external transaction ID for the event" }, "platform_data": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Platform Data", "description": "The platform specific data for the event" }, "order_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Order Id", "description": "The order ID for the event" }, "loot_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Loot Id", "description": "The loot ID for the event" }, "key_claim_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Key Claim Uuid", "description": "The portal user key claim id" }, "created": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "The timestamp for the event", "example": "2023-01-23T21:07:02.000000+00:00" }, "last_modified": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "The timestamp for the event", "example": "2023-01-23T21:07:02.000000+00:00" } }, "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor", "description": "The cursor for the next page of events" } }, "type": "object", "required": [ "events" ], "title": "EntitlementEventList" }, "EntitlementEventRequest": { "properties": { "action_type": { "$ref": "#/components/schemas/EntitlementActionType", "description": "The type of the event" }, "status": { "anyOf": [ { "$ref": "#/components/schemas/EntitlementEventStatus" }, { "type": "null" } ], "description": "The status of the event" }, "player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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": { "$ref": "#/components/schemas/InventoryPlatform", "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": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "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", "ban_failed" ], "title": "EntitlementEventStatus", "x-enum-descriptions": [ "The event was successful", "The SKU was not found", "The requested operation is not implemented yet", "The player was not found", "The player should have been banned, but an error occurred" ], "x-enum-varnames": [ "success", "sku_not_found", "not_implemented", "player_not_found", "ban_failed" ] }, "EntitlementStatus": { "type": "string", "enum": [ "UNKNOWN", "SUBMITTED", "FULFILLED", "FAILED", "PREVIOUSLY_APPLIED", "SKIPPED" ], "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", "Entitlement was skipped and not processed" ], "x-enum-varnames": [ "UNKNOWN", "SUBMITTED", "FULFILLED", "FAILED", "PREVIOUSLY_APPLIED", "SKIPPED" ] }, "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" }, "FailedPlayerOrderCreateSingle": { "properties": { "source": { "$ref": "#/components/schemas/Source", "description": "The source of the Player Order.", "default": "CLIENT" }, "client_order_ref_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Client Order Ref Id", "description": "Arbitrary UUID clients can use to track Orders between request to response." }, "portal_id": { "anyOf": [ { "$ref": "#/components/schemas/Portal" }, { "type": "null" } ], "description": "Portal of the Portal User the Player Order belongs to.", "deprecated": true }, "portal_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Portal User Id", "description": "Portal User Id for the Player this Player Order belongs to." }, "instance_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instance Id", "description": "Instance Id for the Instance who submits the Player Order." }, "match_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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 }, "player_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Player Id", "description": "Player Id of the Player this Player Order belongs to." }, "player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Player Uuid", "description": "Player UUID of the Player this Player Order belongs to." }, "order_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Order Id", "description": "Unique Identifier for the Order." }, "entries": { "items": { "$ref": "#/components/schemas/PlayerOrderEntryCreate-Output" }, "type": "array", "title": "Entries", "description": "List of Player Order Entries for the Player Order." }, "error_info": { "type": "string", "title": "Error Info", "default": "" } }, "type": "object", "required": [ "entries" ], "title": "FailedPlayerOrderCreateSingle" }, "Inventory": { "properties": { "items": { "additionalProperties": { "$ref": "#/components/schemas/ItemInventory" }, "type": "object", "title": "Items", "description": "Item Inventories for this Inventory.", "default": {} }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "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" }, "propertyNames": { "$ref": "#/components/schemas/InventoryBucket" }, "type": "object", "title": "Rules", "default": {} }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ] } }, "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": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ] } }, "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": { "$ref": "#/components/schemas/Inventory", "description": "Inventory Context for a Player.", "default": { "items": {} } }, "tag_own_count": { "additionalProperties": { "type": "integer" }, "type": "object", "title": "Tag Own Count", "description": "Number of owned (or rented) count for each requested tag of inventory", "default": {} }, "levels": { "items": { "$ref": "#/components/schemas/InventoryLevel" }, "type": "array", "title": "Levels", "description": "Inventory Levels for a Player.", "default": [] } }, "type": "object", "title": "InventoryContextResponse", "description": "Inventory Context for a Player." }, "InventoryLevel": { "properties": { "item_uuid": { "type": "string", "format": "uuid", "title": "Item Uuid", "description": "Item UUID for this Inventory Level." }, "item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Item Id", "description": "Item ID for this Inventory Level." }, "level": { "type": "integer", "title": "Level", "description": "Current Level" }, "count": { "type": "integer", "title": "Count", "description": "Current quantity" }, "count_for_next_level": { "type": "integer", "title": "Count For Next Level", "description": "Quantity required for the next level." } }, "type": "object", "required": [ "item_uuid", "level", "count", "count_for_next_level" ], "title": "InventoryLevel" }, "InventoryLevels": { "properties": { "levels": { "items": { "$ref": "#/components/schemas/InventoryLevel" }, "type": "array", "title": "Levels", "description": "Inventory Levels for a Player.", "default": [] } }, "type": "object", "title": "InventoryLevels", "description": "Inventory Levels 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": { "$ref": "#/components/schemas/InventoryType", "description": "Type of Inventory Record." }, "legacy_inventory_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "format": "int64", "title": "Legacy Inventory Id", "description": "Legacy Inventory ID." }, "bucket": { "$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": "When this Inventory Record was acquired.", "example": "2023-01-23T21:07:02.000000+00:00" }, "expires": { "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": "Expires", "description": "When this Inventory Record expires." }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "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": { "anyOf": [ { "$ref": "#/components/schemas/InventoryPlatform" }, { "type": "null" } ], "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": { "anyOf": [ { "$ref": "#/components/schemas/InventoryPlatform" }, { "type": "null" } ], "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": { "anyOf": [ { "$ref": "#/components/schemas/InventoryPlatform" }, { "type": "null" } ], "description": "The platform for the session." }, "order_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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", "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Item Uuid", "description": "The Item UUID" }, "type": { "$ref": "#/components/schemas/ItemType", "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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." }, "total_ownership_max": { "type": "integer", "title": "Total Ownership Max", "description": "Maximum ownership (permanent+rental) allowed for this item. 0 means no limit", "default": 0 }, "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": [] }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Tags associated with this item", "default": [] }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "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" }, "propertyNames": { "format": "uuid" }, "type": "object", "title": "Records", "description": "Inventory Records for this Item Inventory.", "default": {} }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "description": "Cache Info for this Item Inventory." } }, "type": "object", "title": "ItemInventory", "description": "Inventory of a particular Item for a Player organized by Inventory ID." }, "ItemTag": { "properties": { "tag_name": { "type": "string", "title": "Tag Name" }, "item_ids": { "items": { "type": "integer" }, "type": "array", "title": "Item Ids", "description": "Legacy Item IDs that have this tag", "default": [] }, "item_uuids": { "items": { "type": "string", "format": "uuid" }, "type": "array", "title": "Item Uuids", "description": "Item UUIDs that have this tag", "default": [] }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "description": "Cache info for the item tag." } }, "type": "object", "required": [ "tag_name" ], "title": "ItemTag", "description": "Item Tag and associated ids" }, "ItemTags": { "properties": { "tags": { "additionalProperties": { "$ref": "#/components/schemas/ItemTag" }, "type": "object", "title": "Tags", "description": "Item tags and their associated item ids", "default": {} }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "description": "Cache info" } }, "type": "object", "title": "ItemTags", "description": "Full set of all item tags, and the items represented by them" }, "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": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "description": "Item's cache information." } }, "type": "object", "title": "Items", "description": "A collections of Items by Item ID." }, "KeyClaim": { "properties": { "portal_id": { "anyOf": [ { "$ref": "#/components/schemas/Portal" }, { "type": "null" } ], "description": "Platform the player is on" }, "portal_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Claimed", "description": "Whether the KeyClaim has been claimed", "default": false }, "external_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "External Key Campaign Uuid", "description": "The unique identifier for the MarketingCampaign that the external key was claimed from" }, "external_key_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "External Key Type", "description": "This can be used to allow the player to claim different types based on their preference. While we don't have requirement for what should contain, it must match a key type assigned to the external campaign." }, "created_on": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created On", "description": "The time the KeyClaim was created" }, "last_modified_on": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Vendor Uuid", "description": "The Vendor UUID" }, "item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Item Uuid", "description": "The Item UUID. Optional Item that will be granted to the player if Sub Vendor ID is not specified." }, "item": { "anyOf": [ { "$ref": "#/components/schemas/Item" }, { "type": "null" } ], "description": "In-line Item definition. Optional Item that will be granted to the player if Sub Vendor ID is not specified." }, "sub_vendor_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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": { "$ref": "#/components/schemas/InventorySelector", "description": "The Inventory Selector Type. Determine how the Inventory is selected and quantity is modified.", "default": "invalid" }, "inventory_operation": { "$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": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Required Item Id", "description": "Item required to be owned/rented to drop this Loot in a randomly sampled vendor" }, "required_item_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Effective From", "deprecated": true }, "quantity_type": { "$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": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "anyOf": [ { "$ref": "#/components/schemas/InventoryBucket" }, { "type": "null" } ], "description": "Inventory Bucket to use for this Loot." }, "xp_quantity_transform_type": { "$ref": "#/components/schemas/XpQuantityTransform", "description": "Allows treating quantity as additional levels to grant to the Player.", "default": "none" }, "current_price_point_guid": { "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "null" } ], "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": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "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 }, "price": { "anyOf": [ { "$ref": "#/components/schemas/LootPrice" }, { "type": "null" } ], "description": "Current price that this loot can be purchased with" } }, "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": { "$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": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Refund Loot Id", "description": "The Loot ID that will be granted to the player when the SKU is refunded" }, "chargeback_loot_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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" }, "LootPrice": { "properties": { "breakpoints": { "items": { "$ref": "#/components/schemas/LootPriceBreakpoint" }, "type": "array", "title": "Breakpoints", "description": "Breakpoints that the loot is available for purchase with", "default": [] }, "strict_flag": { "type": "boolean", "title": "Strict Flag", "description": "Does the number of units being purchased need to be an exact match to the quantity on a Price Breakpoint?", "default": false }, "cap_flag": { "type": "boolean", "title": "Cap Flag", "description": "Can the number of units being purchased be higher than the highest quantity on the Price Breakpoints?", "default": false } }, "type": "object", "title": "LootPrice", "description": "Price with current and original (pre-sale) price breakpoints" }, "LootPriceBreakpoint": { "properties": { "quantity": { "type": "integer", "title": "Quantity", "description": "Amount of units that must be purchased to use this price", "default": 1 }, "prices": { "items": { "$ref": "#/components/schemas/LootPriceCurrencies" }, "type": "array", "title": "Prices", "description": "List of all possible prices that this breakpoint can be purchased with.", "default": [] } }, "type": "object", "title": "LootPriceBreakpoint", "description": "Price Breakpoint for a specific quantity of units to purchase." }, "LootPriceCurrencies": { "properties": { "currencies": { "items": { "$ref": "#/components/schemas/LootPriceCurrency" }, "type": "array", "title": "Currencies", "description": "All required currencies to use this price for purchase. All currencies in this list are spent together.", "default": [] } }, "type": "object", "title": "LootPriceCurrencies", "description": "Single price that the loot can be purchased with. Note that all currencies of this list will be spent together." }, "LootPriceCurrency": { "properties": { "price_item_id": { "type": "string", "format": "uuid", "title": "Price Item Id", "description": "The Item used as the currency for the purchase." }, "price_legacy_item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Price Legacy Item Id", "description": "The Item used as the currency for the purchase." }, "current_price": { "type": "integer", "title": "Current Price", "description": "The current amount of the item needed to use this price currency" }, "original_price": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Original Price", "description": "The amount of the item needed before the sale began" }, "min_reduced_price": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Min Reduced Price", "description": "The lowest amount the current price can be reduced to with other discounts" } }, "type": "object", "required": [ "price_item_id", "current_price" ], "title": "LootPriceCurrency", "description": "One currency (of potentially multiple) that can be used for a purchase, and how much of that currency is required for the purchase." }, "Loots": { "properties": { "loot": { "additionalProperties": { "$ref": "#/components/schemas/Loot" }, "type": "object", "title": "Loot", "default": {} }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ] } }, "type": "object", "title": "Loots", "description": "A collection of Loot by Loot ID." }, "ManyPlayerOrderCreate": { "properties": { "orders": { "items": { "$ref": "#/components/schemas/PlayerOrderCreateSingle" }, "type": "array", "title": "Orders", "description": "List of Player Order Entries for the Player Order." } }, "type": "object", "required": [ "orders" ], "title": "ManyPlayerOrderCreate" }, "ManyPlayerOrderResponse": { "properties": { "order_ids": { "items": { "type": "string" }, "type": "array", "title": "Order Ids", "description": "Order IDs submitted in the request.", "default": [] }, "failed_orders": { "items": { "$ref": "#/components/schemas/FailedPlayerOrderCreateSingle" }, "type": "array", "title": "Failed Orders", "description": "List of orders that failed to be submitted. They may succeed on a retry", "default": [] } }, "type": "object", "title": "ManyPlayerOrderResponse", "description": "Response listing order IDs for a bulk order request." }, "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": { "anyOf": [ { "$ref": "#/components/schemas/Portal" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created On", "description": "The time the MarketingCampaign was created" }, "last_modified_on": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "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": "Starting Position", "description": "Inclusive starting time for the first order" }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor", "description": "The cursor value pointing to the next page of results. If cursor is provided, starting_position is ignored" }, "sort": { "anyOf": [ { "$ref": "#/components/schemas/SortOrder" }, { "type": "null" } ], "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" }, "InventoryPlatform": { "type": "string", "enum": [ "Anon", "Basic", "XboxLive", "PSN", "NintendoNAID", "NintendoSwitch", "NintendoPPID", "Google", "GooglePlay", "Apple", "Epic", "Steam", "Amazon", "Twitch", "RallyHere", "LegacyName" ], "title": "Platform", "x-enum-descriptions": [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ], "x-enum-varnames": [ "ANON", "BASIC", "XBOX_LIVE", "PSN", "NINTENDO_NAID", "NINTENDO_SWITCH", "NINTENDO_PPID", "GOOGLE", "GOOGLE_PLAY", "APPLE", "EPIC", "STEAM", "AMAZON", "TWITCH", "RALLYHERE", "LEGACYNAME" ] }, "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": { "$ref": "#/components/schemas/EntitlementStatus", "description": "status of this entitlement", "default": "UNKNOWN" }, "error_code": { "type": "string", "title": "Error Code", "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" }, "PlatformEntitlementConnectionStatus": { "properties": { "error_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Code" } }, "type": "object", "title": "PlatformEntitlementConnectionStatus" }, "PlatformEntitlementPrepared": { "properties": { "platform_entitlement_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Platform Entitlement Id", "description": "Unique identifier for this instance of an entitlement on the platform" }, "sku": { "type": "string", "title": "Sku", "description": "Unique SKU from the platform" }, "quantity": { "type": "integer", "title": "Quantity", "description": "Quantity available to be used from the platform", "default": 1 }, "received_type": { "anyOf": [ { "$ref": "#/components/schemas/EntitlementType" }, { "type": "null" } ], "description": "Type of entitlement the platform sent us. If they provide this metadata, then RallyHere Entitlement SKUs must be configured with matching types, or the entitlement will not process" }, "platform_label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Platform Label" }, "platform_metadata": { "additionalProperties": true, "type": "object", "title": "Platform Metadata", "description": "Platform-specific metadata about this entitlement", "default": {} } }, "type": "object", "required": [ "sku" ], "title": "PlatformEntitlementPrepared", "description": "Platform Entitlement that is prepared to be processed by RallyHere, and includes platform-specific metadata necessary for processing" }, "PlatformEntitlementProcessRequest": { "properties": { "transaction_id": { "type": "string", "title": "Transaction Id", "description": "unique id for this transaction on the platform", "default": "" }, "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_environment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Platform Environment", "description": "Specific platform environment to target with entitlement processing. Not supported by all platforms" }, "platform_region": { "$ref": "#/components/schemas/PlatformRegion", "description": "region this purchase was made in", "default": "Unknown" }, "client_type": { "$ref": "#/components/schemas/ClientType", "description": "client type this purchase was made on", "default": "UNKNOWN" }, "entitlements": { "items": { "$ref": "#/components/schemas/PlatformEntitlement" }, "type": "array", "title": "Entitlements", "description": "Platform entitlements to process", "default": [] }, "check_durables": { "type": "boolean", "title": "Check Durables", "description": "Should the system process durables during this request?", "default": true }, "check_consumables": { "type": "boolean", "title": "Check Consumables", "description": "Should the system process consumables during this request?", "default": true } }, "type": "object", "required": [ "platform_token", "platform_id" ], "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": { "$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": { "$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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "$ref": "#/components/schemas/InventoryPlatform", "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" }, "PlatformEntitlementsPrepared": { "properties": { "entitlements": { "items": { "$ref": "#/components/schemas/PlatformEntitlementPrepared" }, "type": "array", "title": "Entitlements", "default": [] }, "error_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Code" } }, "type": "object", "title": "PlatformEntitlementsPrepared" }, "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": { "$ref": "#/components/schemas/InventoryPlatform", "description": "The platform of the SKU" }, "sku": { "type": "string", "title": "Sku", "description": "The SKU of the platform" }, "loot_entitlement": { "anyOf": [ { "$ref": "#/components/schemas/LootEntitlement" }, { "type": "null" } ], "description": "The Loot that will be granted to the player" }, "external_key_entitlement": { "anyOf": [ { "$ref": "#/components/schemas/ExternalKeyEntitlement" }, { "type": "null" } ], "description": "The External Key Entitlement" }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "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": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "description": "Cache info for the Platform SKUs." } }, "type": "object", "title": "PlatformSKUs", "description": "A collection of SKUs." }, "PlayerInventoryChange": { "properties": { "before_item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Before Item Id", "description": "The Item ID of the Item before the change." }, "after_item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "After Item Id", "description": "The Item ID of the Item after the change." }, "before": { "anyOf": [ { "$ref": "#/components/schemas/InventoryRecord" }, { "type": "null" } ], "description": "The Inventory Record before the change." }, "after": { "anyOf": [ { "$ref": "#/components/schemas/InventoryRecord" }, { "type": "null" } ], "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": { "$ref": "#/components/schemas/Source", "description": "The source of the Player Order.", "default": "CLIENT" }, "client_order_ref_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Client Order Ref Id", "description": "Arbitrary UUID clients can use to track Orders between request to response." }, "portal_id": { "anyOf": [ { "$ref": "#/components/schemas/Portal" }, { "type": "null" } ], "description": "Portal of the Portal User the Player Order belongs to.", "deprecated": true }, "portal_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Portal User Id", "description": "Portal User Id for the Player this Player Order belongs to." }, "instance_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instance Id", "description": "Instance Id for the Instance who submits the Player Order." }, "match_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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-Input": { "properties": { "source": { "$ref": "#/components/schemas/Source", "description": "The source of the Player Order.", "default": "CLIENT" }, "client_order_ref_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Client Order Ref Id", "description": "Arbitrary UUID clients can use to track Orders between request to response." }, "portal_id": { "anyOf": [ { "$ref": "#/components/schemas/Portal" }, { "type": "null" } ], "description": "Portal of the Portal User the Player Order belongs to.", "deprecated": true }, "portal_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Portal User Id", "description": "Portal User Id for the Player this Player Order belongs to." }, "instance_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instance Id", "description": "Instance Id for the Instance who submits the Player Order." }, "match_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Order Id", "description": "Unique Identifier for the Order." }, "entries": { "items": { "$ref": "#/components/schemas/PlayerOrderEntryCreate-Input" }, "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`." }, "PlayerOrderCreate-Output": { "properties": { "source": { "$ref": "#/components/schemas/Source", "description": "The source of the Player Order.", "default": "CLIENT" }, "client_order_ref_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Client Order Ref Id", "description": "Arbitrary UUID clients can use to track Orders between request to response." }, "portal_id": { "anyOf": [ { "$ref": "#/components/schemas/Portal" }, { "type": "null" } ], "description": "Portal of the Portal User the Player Order belongs to.", "deprecated": true }, "portal_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Portal User Id", "description": "Portal User Id for the Player this Player Order belongs to." }, "instance_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instance Id", "description": "Instance Id for the Instance who submits the Player Order." }, "match_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Order Id", "description": "Unique Identifier for the Order." }, "entries": { "items": { "$ref": "#/components/schemas/PlayerOrderEntryCreate-Output" }, "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`." }, "PlayerOrderCreateSingle": { "properties": { "source": { "$ref": "#/components/schemas/Source", "description": "The source of the Player Order.", "default": "CLIENT" }, "client_order_ref_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Client Order Ref Id", "description": "Arbitrary UUID clients can use to track Orders between request to response." }, "portal_id": { "anyOf": [ { "$ref": "#/components/schemas/Portal" }, { "type": "null" } ], "description": "Portal of the Portal User the Player Order belongs to.", "deprecated": true }, "portal_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Portal User Id", "description": "Portal User Id for the Player this Player Order belongs to." }, "instance_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instance Id", "description": "Instance Id for the Instance who submits the Player Order." }, "match_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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 }, "player_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Player Id", "description": "Player Id of the Player this Player Order belongs to." }, "player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Player Uuid", "description": "Player UUID of the Player this Player Order belongs to." }, "order_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Order Id", "description": "Unique Identifier for the Order." }, "entries": { "items": { "$ref": "#/components/schemas/PlayerOrderEntryCreate-Input" }, "type": "array", "title": "Entries", "description": "List of Player Order Entries for the Player Order." } }, "type": "object", "required": [ "entries" ], "title": "PlayerOrderCreateSingle" }, "PlayerOrderDetail": { "properties": { "type": { "$ref": "#/components/schemas/PlayerOrderDetailType", "description": "The type of detail." }, "loot_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Loot Id", "description": "The Loot ID." }, "inv_change": { "anyOf": [ { "$ref": "#/components/schemas/PlayerInventoryChange" }, { "type": "null" } ], "description": "The Inventory change that occurred as part of this detail." }, "order": { "anyOf": [ { "$ref": "#/components/schemas/PlayerOrderCreate-Output" }, { "type": "null" } ], "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": { "$ref": "#/components/schemas/PlayerOrderEntryType", "description": "The type of entry." }, "loot_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Loot Id", "description": "Unique Identifier for the Loot" }, "quantity": { "type": "integer", "title": "Quantity", "description": "Quantity of Inventory" }, "vendor_version": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "format": "int64", "title": "Vendor Version", "description": "Legacy version for the vendor owning the loot_id. Use `vendor_etag` instead.", "deprecated": true }, "vendor_etag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "items": { "type": "integer" }, "type": "array" }, { "type": "null" } ], "title": "Dynamic Bundle Loot Ids", "description": "List of Loot IDs for the dynamic bundle." }, "purchase_price": { "anyOf": [ { "$ref": "#/components/schemas/PurchasePrice" }, { "type": "null" } ], "description": "The purchase price of the Loot. Deprecated. Use the purchase_prices field instead", "deprecated": true }, "external_tran_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "External Item Sku", "description": "External item SKU for the Order Entry." }, "use_inventory_bucket": { "anyOf": [ { "$ref": "#/components/schemas/InventoryBucket" }, { "type": "null" } ], "description": "Inventory Bucket to use for the Order Entry." }, "player_portal_event_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "format": "int64", "title": "Player Portal Event Id", "description": "Player Portal Event Id for the Order Entry." }, "inventory_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Inventory Id", "description": "Unique Identifier for the Inventory" }, "legacy_inventory_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "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": "Expires", "description": "Expiration time 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]" }, "xp_quantity_transform_type": { "$ref": "#/components/schemas/XpQuantityTransform", "description": "Allows treating quantity as additional levels to grant to the Player. This is only used when type equals [CUSTOM_LOOT]", "default": "none" }, "hard_quantity_maximum": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Hard Quantity Maximum", "description": "Maximum final quantity of this loot that can be fulfilled after all other calculations. This is only used when type equals [CUSTOM_LOOT]" }, "inventory_operation": { "$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. This is only used when type equals [CUSTOM_LOOT]", "default": "invalid" }, "inventory_selector_type": { "$ref": "#/components/schemas/InventorySelector", "description": "The Inventory Selector Type. Determine how the Inventory is selected and quantity is modified. This is only used when type equals [CUSTOM_LOOT]", "default": "invalid" }, "quantity_mult_inventory_item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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. This is only used when type equals [CUSTOM_LOOT]" }, "time_frame_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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. This is only used when type equals [CUSTOM_LOOT]" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "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": { "$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-Input": { "properties": { "type": { "$ref": "#/components/schemas/PlayerOrderEntryType", "description": "The type of entry." }, "loot_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Loot Id", "description": "Unique Identifier for the Loot" }, "quantity": { "type": "integer", "title": "Quantity", "description": "Quantity of Inventory" }, "vendor_version": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "format": "int64", "title": "Vendor Version", "description": "Legacy version for the vendor owning the loot_id. Use `vendor_etag` instead.", "deprecated": true }, "vendor_etag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "items": { "type": "integer" }, "type": "array" }, { "type": "null" } ], "title": "Dynamic Bundle Loot Ids", "description": "List of Loot IDs for the dynamic bundle." }, "purchase_price": { "anyOf": [ { "$ref": "#/components/schemas/PurchasePrice" }, { "type": "null" } ], "description": "The purchase price of the Loot. Deprecated. Use the purchase_prices field instead", "deprecated": true }, "external_tran_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "External Item Sku", "description": "External item SKU for the Order Entry." }, "use_inventory_bucket": { "anyOf": [ { "$ref": "#/components/schemas/InventoryBucket" }, { "type": "null" } ], "description": "Inventory Bucket to use for the Order Entry." }, "player_portal_event_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "format": "int64", "title": "Player Portal Event Id", "description": "Player Portal Event Id for the Order Entry." }, "inventory_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Inventory Id", "description": "Unique Identifier for the Inventory" }, "legacy_inventory_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "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": "Expires", "description": "Expiration time 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]" }, "xp_quantity_transform_type": { "$ref": "#/components/schemas/XpQuantityTransform", "description": "Allows treating quantity as additional levels to grant to the Player. This is only used when type equals [CUSTOM_LOOT]", "default": "none" }, "hard_quantity_maximum": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Hard Quantity Maximum", "description": "Maximum final quantity of this loot that can be fulfilled after all other calculations. This is only used when type equals [CUSTOM_LOOT]" }, "inventory_operation": { "$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. This is only used when type equals [CUSTOM_LOOT]", "default": "invalid" }, "inventory_selector_type": { "$ref": "#/components/schemas/InventorySelector", "description": "The Inventory Selector Type. Determine how the Inventory is selected and quantity is modified. This is only used when type equals [CUSTOM_LOOT]", "default": "invalid" }, "quantity_mult_inventory_item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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. This is only used when type equals [CUSTOM_LOOT]" }, "time_frame_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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. This is only used when type equals [CUSTOM_LOOT]" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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." }, "PlayerOrderEntryCreate-Output": { "properties": { "type": { "$ref": "#/components/schemas/PlayerOrderEntryType", "description": "The type of entry." }, "loot_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Loot Id", "description": "Unique Identifier for the Loot" }, "quantity": { "type": "integer", "title": "Quantity", "description": "Quantity of Inventory" }, "vendor_version": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "format": "int64", "title": "Vendor Version", "description": "Legacy version for the vendor owning the loot_id. Use `vendor_etag` instead.", "deprecated": true }, "vendor_etag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "items": { "type": "integer" }, "type": "array" }, { "type": "null" } ], "title": "Dynamic Bundle Loot Ids", "description": "List of Loot IDs for the dynamic bundle." }, "purchase_price": { "anyOf": [ { "$ref": "#/components/schemas/PurchasePrice" }, { "type": "null" } ], "description": "The purchase price of the Loot. Deprecated. Use the purchase_prices field instead", "deprecated": true }, "external_tran_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "External Item Sku", "description": "External item SKU for the Order Entry." }, "use_inventory_bucket": { "anyOf": [ { "$ref": "#/components/schemas/InventoryBucket" }, { "type": "null" } ], "description": "Inventory Bucket to use for the Order Entry." }, "player_portal_event_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "format": "int64", "title": "Player Portal Event Id", "description": "Player Portal Event Id for the Order Entry." }, "inventory_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Inventory Id", "description": "Unique Identifier for the Inventory" }, "legacy_inventory_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "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": "Expires", "description": "Expiration time 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]" }, "xp_quantity_transform_type": { "$ref": "#/components/schemas/XpQuantityTransform", "description": "Allows treating quantity as additional levels to grant to the Player. This is only used when type equals [CUSTOM_LOOT]", "default": "none" }, "hard_quantity_maximum": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Hard Quantity Maximum", "description": "Maximum final quantity of this loot that can be fulfilled after all other calculations. This is only used when type equals [CUSTOM_LOOT]" }, "inventory_operation": { "$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. This is only used when type equals [CUSTOM_LOOT]", "default": "invalid" }, "inventory_selector_type": { "$ref": "#/components/schemas/InventorySelector", "description": "The Inventory Selector Type. Determine how the Inventory is selected and quantity is modified. This is only used when type equals [CUSTOM_LOOT]", "default": "invalid" }, "quantity_mult_inventory_item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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. This is only used when type equals [CUSTOM_LOOT]" }, "time_frame_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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. This is only used when type equals [CUSTOM_LOOT]" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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", "failed_to_fill_all_random", "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", "entitled_loot_not_found" ], "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.", "Not all requested randomly sampled loot could be fulfilled.", "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.", "Entitled Loot was not found" ], "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", "FAILED_TO_FILL_ALL_RANDOM", "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", "ENTITLED_LOOT_NOT_FOUND" ] }, "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", "custom_loot" ], "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.", "Provide parameters of a custom loot object and grant to the player" ], "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", "CUSTOM_LOOT" ] }, "PlayerOrdersResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/PlayerOrder" }, "type": "array", "title": "Data", "description": "A collection of Player Orders.", "default": [] }, "page": { "$ref": "#/components/schemas/InventoryPageMeta", "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", "x-enum-descriptions": [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ], "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" }, "propertyNames": { "$ref": "#/components/schemas/Portal" }, "type": "object", "title": "Rules", "default": {} }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ] } }, "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": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ] } }, "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_uuid": { "type": "string", "format": "uuid", "title": "Price Item Uuid", "description": "The Item used as the currency for the purchase." }, "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." }, "min_reduced_price": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Min Reduced Price", "description": "The minimum price this currency can be reduced to for purchase." } }, "type": "object", "required": [ "price_item_uuid", "price_item_id", "price" ], "title": "PriceBreakPointCurrency", "description": "The currencies of a Price Breakpoint." }, "PriceBreakpoint": { "properties": { "price_item_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Price Item Uuid", "description": "The Item used as the currency for the purchase." }, "price_item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Price Item Id", "description": "Deprecated. Use the currencies field instead.", "deprecated": true }, "quantity": { "type": "integer", "title": "Quantity" }, "price": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Price", "description": "Deprecated. Use the currencies field instead.", "deprecated": true }, "currencies": { "anyOf": [ { "items": { "$ref": "#/components/schemas/PriceBreakPointCurrency" }, "type": "array" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "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" }, "propertyNames": { "minLength": 1 }, "type": "object", "title": "Price Points", "description": "Price Points mapped by Price Point ID.", "default": {} }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Price Item Id", "description": "The Item used as the currency for the purchase. Deprecated. Use currencies instead", "deprecated": true }, "price": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Price", "description": "The price of the Item. Deprecated. Use currencies instead", "deprecated": true }, "price_coupon_item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Price Coupon Item Id", "description": "The Item used as the coupon for the purchase." }, "currencies": { "anyOf": [ { "items": { "$ref": "#/components/schemas/PurchasePriceCurrency" }, "type": "array" }, { "type": "null" } ], "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", "MATCH_API" ], "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.", "DEPRECATED - use the `Client` source instead.", "Order granted by the client.", "Order granted by entitlements.", "Order granted by Amazon.", "Order granted by Simulmedia.", "Order granted by Luna.", "Order granted by Match API" ], "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", "MATCH_API" ] }, "TimeFrame": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": "The current start of the Time Frame.", "example": "2023-01-23T21:07:02.000000+00:00" }, "end": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "The current end of the Time Frame.", "example": "2023-01-23T21:07:02.000000+00:00" }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "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": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "description": "Cache info for the Time Frames." } }, "type": "object", "title": "TimeFrames", "description": "A collection of Time Frames by Time Frame ID." }, "UpdateInventoryRequest": { "properties": { "source": { "$ref": "#/components/schemas/Source", "description": "Source of this Inventory Operation.", "default": "CLIENT" }, "client_order_ref_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Client Order Ref Id", "description": "Arbitrary UUID that can be used by clients to correlate Order requests with Order responses." }, "bucket": { "$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": { "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": "Expires", "description": "Expiration for this Inventory Operation." }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Arbitrary data map that can be set to add additional data to Inventory." }, "item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "$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": { "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": "Expires", "description": "Expiration for this Inventory Operation." }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Arbitrary data map that can be set to add additional data to Inventory." }, "item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "$ref": "#/components/schemas/Source", "description": "Source of this Inventory Operation.", "default": "CLIENT" }, "client_order_ref_id": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Vendor Uuid", "description": "The Vendor UUID" }, "type": { "$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": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ], "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": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ] } }, "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": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Xp Uuid", "description": "The XP Table UUID" }, "xp_entries": { "additionalProperties": { "type": "integer", "minimum": 0 }, "type": "object", "title": "Xp Entries", "default": {} }, "cache_info": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ] } }, "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": { "anyOf": [ { "$ref": "#/components/schemas/CacheInfo" }, { "type": "null" } ] } }, "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." }, "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" }, "styles": { "items": { "$ref": "#/components/schemas/BackfillStyle" }, "type": "array", "description": "The styles of backfill to acknowledge. Can provide multiple for backwards compatibility." } }, "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" }, "reason": { "type": "string", "title": "Reason", "description": "Reason for this event to occur" }, "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" }, "joinability": { "allOf": [ { "$ref": "#/components/schemas/SessionJoinability" } ], "title": "Joinability", "description": "Joinability flags about the session" }, "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" }, "ticket_wait_seconds": { "type": "integer", "title": "Ticket Wait Seconds", "description": "The total time in seconds that the ticket waited before being assigned to a match" }, "match_making_profile_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Match Making Profile Id", "description": "ID of the MatchMakingProfile used to create 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" }, "BackfillStyle": { "type": "string", "enum": [ "team_request", "composition" ], "title": "BackfillStyle", "description": "An enumeration.", "x-enum-varnames": [ "TEAM_REQUEST", "COMPOSITION" ], "x-enum-descriptions": [ "", "" ] }, "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": {} }, "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" } }, "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" }, "instance_health": { "allOf": [ { "$ref": "#/components/schemas/InstanceHealthStatus" } ], "description": "The health status of the instance if it exists" }, "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'. Platform is now read from client's authorization claims if available" }, "input": { "allOf": [ { "$ref": "#/components/schemas/Input" } ], "description": "Which input type this client is using" }, "device_type": { "allOf": [ { "$ref": "#/components/schemas/DeviceType" } ], "description": "Platform verified device type for this client" } }, "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" }, "reason": { "type": "string", "title": "Reason", "description": "Reason for this event to occur" }, "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" }, "joinability": { "allOf": [ { "$ref": "#/components/schemas/SessionJoinability" } ], "title": "Joinability", "description": "Joinability flags about the session" }, "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" }, "ticket_wait_seconds": { "type": "integer", "title": "Ticket Wait Seconds", "description": "The total time in seconds that the ticket waited before being assigned to a match" }, "match_making_profile_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Match Making Profile Id", "description": "ID of the MatchMakingProfile used to create 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 the client is using. Platform is now gotten from authorization claims, and will overwrite the platform passed here" }, "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" }, "password": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Password", "description": "Password to set on a session if a new one is created" }, "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-varnames": [ "ANY", "KBM", "GAMEPAD", "TOUCH" ], "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" ] }, "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-varnames": [ "ANY", "XBOX", "PLAYSTATION" ], "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.)" ] }, "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", "backfilled", "left_queue", "timeout", "party_changed" ], "title": "DeleteTicketReason", "description": "An enumeration.", "x-enum-varnames": [ "assigned", "backfilled", "left_queue", "timeout", "party_changed" ], "x-enum-descriptions": [ "", "", "", "", "" ] }, "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_reset": { "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-varnames": [ "ALL", "ANY", "ONE", "NONE" ], "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" ] }, "EpicVoipCredentialsResponse": { "properties": { "room_id": { "type": "string", "title": "Room Id", "description": "Epic voice room identifier" }, "participant_token": { "type": "string", "title": "Participant Token", "description": "Token for the participant to join the Epic voice room" }, "client_base_url": { "type": "string", "title": "Client Base Url", "description": "Base URL for Epic voice client connections" }, "product_user_id": { "type": "string", "title": "Product User Id", "description": "Epic ProductUserId for the authenticated user" } }, "type": "object", "required": [ "room_id", "participant_token", "client_base_url", "product_user_id" ], "title": "EpicVoipCredentialsResponse" }, "HostType": { "type": "string", "enum": [ "dedicated", "player", "standalone", "preallocated" ], "title": "HostType", "description": "Whether the host is another player, or a dedicated instance", "x-enum-varnames": [ "dedicated", "player", "standalone", "preallocated" ], "x-enum-descriptions": [ "A dedicated, standalone instance", "A player hosted instance", "A standalone instance that only the host can connect to", "A preallocated instance that isn't player owned" ] }, "Input": { "type": "string", "enum": [ "keyboardandmouse", "gamepad", "touch" ], "title": "Input", "description": "The different input types that players can use", "x-enum-varnames": [ "KBM", "GAMEPAD", "TOUCH" ], "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" ] }, "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-varnames": [ "HEALTHY", "UNHEALTHY", "DEGRADED", "UNKNOWN" ], "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" ] }, "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" }, "match_id": { "type": "string", "title": "Match Id", "description": "The match ID associated with this instance" } }, "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": {} }, "match_id": { "type": "string", "title": "Match Id", "description": "The match ID associated with this instance" } }, "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-varnames": [ "requested", "allocated", "pending", "joinable", "unjoinable", "closed" ], "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" ] }, "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" }, "IntraSessionPermissions": { "type": "string", "enum": [ "invite", "kick", "move" ], "title": "IntraSessionPermissions", "description": "Subset of leader permissions that can be individual assigned to specific players within a session", "x-enum-varnames": [ "invite", "kick", "move" ], "x-enum-descriptions": [ "", "", "" ] }, "InviteSource": { "type": "string", "enum": [ "BACKFILL", "MATCHMAKING", "PLAYER" ], "title": "InviteSource", "description": "An enumeration.", "x-enum-varnames": [ "BACKFILL", "MATCHMAKING", "PLAYER" ], "x-enum-descriptions": [ "", "", "" ] }, "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-varnames": [ "WORST", "BEST", "AVERAGE_BY_VARIANCE", "AVERAGE" ], "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" ] }, "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" }, "misc_params": { "type": "string", "title": "Misc Params", "description": "Misc params to be passed to the instance when using this 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" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data about this profile", "default": {} } }, "type": "object", "required": [ "match_making_profile_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" }, "players_to_validate": { "allOf": [ { "$ref": "#/components/schemas/PlayersToValidate" } ], "description": "Which members of a session must be validated to satisfy this ruleset", "default": "leader" } }, "type": "object", "title": "MatchMakingRuleset", "description": "A collection of rules that are used to determine whether a MatchMakingTemplate should be used" }, "MatchMakingSessionRequest": { "properties": { "teams": { "items": { "$ref": "#/components/schemas/SessionTeam" }, "type": "array", "title": "Teams", "description": "List of teams that are to be invited to session" }, "session_tickets": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Session Tickets", "description": "List of sessions and tickets the match was made with. Used to verify this match should still be created. Takes priority over the session list. One of the two is required" }, "sessions": { "items": { "type": "string", "maxLength": 128, "minLength": 1 }, "type": "array", "title": "Sessions", "description": "List of sessions that should be a part of this matchmade session. Used if session_tickets is empty. One of the two is required" }, "instance_launch_template_id": { "type": "string", "format": "uuid", "title": "Instance Launch Template Id", "description": "DEPRECATED. Which launch template should be used to request an instance" }, "instance_request_template_id": { "type": "string", "format": "uuid", "title": "Instance Request Template Id", "description": "DEPRECATED. Which launch template should be used to request an instance" }, "region_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Region Id", "description": "Region to start the instance in" }, "match_id": { "type": "string", "title": "Match Id", "description": "Unique ID for this generated match" }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data about the match", "default": {} }, "host_player_uuid": { "type": "string", "format": "uuid", "title": "Host Player Uuid", "description": "Player UUID of the host, if the host type is player" }, "backfill_id": { "type": "string", "minLength": 1, "title": "Backfill Id", "description": "ID for the open-match backfill object" }, "match_create_request_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" }, "evaluation_score": { "type": "number", "title": "Evaluation Score", "description": "The evaluation score sent to the open-match evaluator" }, "rank_quality": { "type": "number", "title": "Rank Quality", "description": "The calculated rank quality of the match. Often matches the evaluation score" }, "match_making_profile_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Match Making Profile Id", "description": "The MatchMakingProfileID that was ultimately used to create this match" }, "ticket_added_unix_time": { "additionalProperties": { "type": "number", "minimum": 0 }, "type": "object", "title": "Ticket Added Unix Time", "description": "Map of ticket_id to unix time that each ticket was added to the match" } }, "type": "object", "required": [ "teams", "region_id", "match_id", "match_create_request_time", "match_making_profile_id" ], "title": "MatchMakingSessionRequest", "description": "A request body for a new matchmade session to be created" }, "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": "DEPRECATED. Set of all the item ids that are required to validate every rule contained in this template group", "default": [] }, "requires_all_players_items": { "type": "boolean", "title": "Requires All Players Items", "description": "DEPRECATED. Whether or not the rulesets under this group will require us to query all players inventory, or just the leader's", "default": false }, "includes_session_rule": { "type": "boolean", "title": "Includes Session Rule", "description": "DEPRECATED. Whether or not the rulesets under this group will require us to validate session data", "default": false } }, "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": "First queue ID (for backward compatibility)" }, "queue_ids": { "items": { "type": "string", "maxLength": 128, "minLength": 1 }, "type": "array", "title": "Queue Ids", "description": "List of queue IDs joined" } }, "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": [] }, "ticket_data": { "items": { "$ref": "#/components/schemas/TicketData" }, "type": "array", "title": "Ticket Data", "description": "List of all the ticket data that was used when generating this match", "default": [] }, "tickets_assigned": { "type": "boolean", "title": "Tickets Assigned", "description": "Whether or not the tickets from these results have been assigned", "default": false }, "profile": { "allOf": [ { "$ref": "#/components/schemas/MatchMakingProfileV2" } ], "title": "Profile", "description": "The profile used to create this match" }, "ticket_wait_seconds": { "additionalProperties": { "type": "integer", "minimum": 0 }, "type": "object", "title": "Ticket Wait Seconds", "description": "The total time in seconds that each ticket waited before being assigned to a match" } }, "type": "object", "required": [ "match_making_id", "created" ], "title": "MatchmakingResults" }, "Operation": { "type": "string", "enum": [ "eq", "ne", "lt", "le", "gt", "ge", "in_set", "not_in_set" ], "title": "Operation", "description": "What comparison operation should be used when evaluating a rule", "x-enum-varnames": [ "EQUAL", "NOT_EQUAL", "LESS_THAN", "LESS_THAN_EQUAL", "GREATER_THAN", "GREATER_THAN_EQUAL", "INCLUDED_IN_SET", "EXCLUDED_FROM_SET" ], "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", "Value A must be in the set of values B", "Value A must not be in the set of values B" ] }, "PagedPlayersResponse": { "properties": { "teams": { "items": { "$ref": "#/components/schemas/SessionTeam" }, "type": "array", "title": "Teams", "description": "List of returned teams and players. Player list in the teams may be incomplete", "default": [] }, "cursor": { "type": "integer", "minimum": 0, "title": "Cursor", "description": "Cursor to continue iterating through players in a session. 0 means we have returned the last entry" } }, "type": "object", "required": [ "cursor" ], "title": "PagedPlayersResponse" }, "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-varnames": [ "ANON", "AMAZON", "STEAM", "PSN", "XBOX_LIVE", "BASIC", "GOOGLE", "TWITCH", "NINTENDO_SWITCH", "APPLE", "NINTENDO", "EPIC" ], "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" ] }, "PlatformScout": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "UUID of player who is the designated scout for the platform session" }, "platform": { "allOf": [ { "$ref": "#/components/schemas/Platform" } ], "description": "Which platform this specified player is a scout for" } }, "type": "object", "required": [ "player_uuid", "platform" ], "title": "PlatformScout" }, "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_reset": { "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" }, "PlayerInviteRequest": { "properties": { "team_id": { "type": "integer", "minimum": 0, "title": "Team Id", "description": "Which team the invited players should prioritize being put 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": "PlayerInviteRequest" }, "PlayerMoveRequest": { "properties": { "team_id": { "type": "integer", "minimum": 0, "title": "Team Id", "description": "Which team the player should be moved to" } }, "type": "object", "title": "PlayerMoveRequest" }, "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" }, "PlayerSwapRequest": { "properties": { "players": { "items": { "type": "string", "format": "uuid" }, "type": "array", "maxItems": 2, "minItems": 2, "title": "Players", "description": "Two player UUIDs for players who will swap teams" } }, "type": "object", "required": [ "players" ], "title": "PlayerSwapRequest", "description": "Request to swap two players on different teams" }, "PlayerUpdateRequest": { "properties": { "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom data for the player", "default": {} } }, "type": "object", "title": "PlayerUpdateRequest" }, "PlayerVisibility": { "type": "string", "enum": [ "ALL", "TEAM", "SELF", "NONE" ], "title": "PlayerVisibility", "description": "What subset of players any given player will have information about", "x-enum-varnames": [ "ALL", "TEAM", "SELF", "NONE" ], "x-enum-descriptions": [ "", "", "", "" ] }, "PlayersToValidate": { "type": "string", "enum": [ "leader", "all_members", "any_member" ], "title": "PlayersToValidate", "description": "Which subset of players in a session need to satisfy a ruleset for it to be considered valid", "x-enum-varnames": [ "LEADER", "ALL_MEMBERS", "ANY_MEMBER" ], "x-enum-descriptions": [ "Only the leader must be validated", "All members of a session must be validated", "Any single member must be validated" ] }, "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-varnames": [ "NORMAL", "BACKFILL", "CREATED_BEFORE" ], "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" ] }, "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. Use queue_ids for multiple queues." }, "queue_ids": { "items": { "type": "string", "maxLength": 128, "minLength": 1 }, "type": "array", "title": "Queue Ids", "description": "List of queue IDs 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", "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" }, "queue_ids": { "items": { "type": "string", "maxLength": 128, "minLength": 1 }, "type": "array", "title": "Queue Ids", "description": "List of queue IDs joined" } }, "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" }, "RankData": { "properties": { "rank_uuid": { "type": "string", "title": "Rank Uuid", "description": "UUID for this rank" }, "mu": { "type": "number", "title": "Mu", "description": "Ticket's group mu for this rank" } }, "type": "object", "required": [ "rank_uuid" ], "title": "RankData" }, "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" }, "comparison_operation": { "allOf": [ { "$ref": "#/components/schemas/Operation" } ], "description": "Comparison operation to be performed" }, "comparison_value": { "type": "integer", "title": "Comparison Value", "description": "Integer Value to compare to" }, "comparison_value_set": { "items": { "type": "string" }, "type": "array", "uniqueItems": true, "title": "Comparison Value Set", "description": "Set of string values to compare to" }, "item_id": { "type": "integer", "title": "Item Id", "description": "Id of the item we are comparing if this is an inventory rule" } }, "type": "object", "required": [ "rule_type", "comparison_operation" ], "title": "Rule", "description": "A rule to determine which MatchMakingTemplate should be used on a session entering matchmaking" }, "RuleType": { "type": "string", "enum": [ "Inventory", "InventoryLevel", "JoiningSessionSize", "RegionList" ], "title": "RuleType", "description": "What type of rule is being evaluated", "x-enum-varnames": [ "INVENTORY", "INVENTORY_LEVEL", "JOINING_SESSION_SIZE", "REGION_LIST" ], "x-enum-descriptions": [ "Comparing the count of a specific item that a player owns", "Comparing the level of a specific item that a player owns", "Comparing the number of session members to be queued", "Comparing the region of the session to a list of regions" ] }, "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": {} }, "password": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Password", "description": "Password to join a password protected session that you are not invited to" }, "friend_uuid": { "type": "string", "format": "uuid", "title": "Friend Uuid", "description": "UUID of the friend whose session you are joining" } }, "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": "DEPRECATED. Use Joinability object instead. Is this session freely joinable by players without an invite?", "deprecated": true }, "joinability": { "allOf": [ { "$ref": "#/components/schemas/SessionJoinability" } ], "title": "Joinability", "description": "Flags regarding the joinability of this session" }, "teams": { "items": { "$ref": "#/components/schemas/SessionTeam" }, "type": "array", "title": "Teams", "description": "List of teams of players currently in the session" }, "teams_suppressed": { "type": "boolean", "title": "Teams Suppressed", "description": "Flag showing if the list of players has been automatically suppressed due to its size.", "default": false }, "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": [] }, "platform_scouts": { "additionalProperties": { "$ref": "#/components/schemas/PlatformScout" }, "type": "object", "title": "Platform Scouts", "description": "List of platform scouts for this session" }, "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 }, "short_code": { "type": "string", "maxLength": 12, "minLength": 5, "title": "Short Code", "description": "Shortened join code associated with this session" } }, "type": "object", "required": [ "type", "session_id", "joinable", "teams", "created" ], "title": "Session", "description": "A session resource" }, "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" }, "SessionJoinability": { "properties": { "open": { "type": "boolean", "title": "Open", "description": "All players can join without an invite. If enabled, it overwrites other permissions", "default": false }, "friends": { "type": "boolean", "title": "Friends", "description": "Friends can join this session without an invite", "default": false }, "platform": { "type": "boolean", "title": "Platform", "description": "Players can join through platform sessions", "default": true } }, "type": "object", "title": "SessionJoinability" }, "SessionPermissions": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Unique identifier for this player" }, "permissions": { "items": { "$ref": "#/components/schemas/IntraSessionPermissions" }, "type": "array", "uniqueItems": true, "description": "List of intra session permissions for a specific player", "default": [] } }, "type": "object", "required": [ "player_uuid" ], "title": "SessionPermissions" }, "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" }, "session_permissions": { "items": { "$ref": "#/components/schemas/IntraSessionPermissions" }, "type": "array", "uniqueItems": true, "description": "A list of intra session permissions granted to this specific player", "default": [] } }, "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-varnames": [ "leader", "member", "invited", "reserved" ], "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" ] }, "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", "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" }, "SessionPlayersUpdateResponse": { "properties": { "players": { "items": { "$ref": "#/components/schemas/SessionPlayerUpdateResponse" }, "type": "array", "title": "Players", "description": "List of updated players" } }, "type": "object", "required": [ "players" ], "title": "SessionPlayersUpdateResponse" }, "SessionShortCodeResponse": { "properties": { "short_code": { "type": "string", "maxLength": 12, "minLength": 5, "title": "Short Code", "description": "Generated short code for session" } }, "type": "object", "required": [ "short_code" ], "title": "SessionShortCodeResponse" }, "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 }, "player_visibility": { "allOf": [ { "$ref": "#/components/schemas/PlayerVisibility" } ], "description": "What subset of players a regular client will receive info about. With sufficiently large sessions, visibility will automatically be lowered", "default": "ALL" }, "admin_player_visibility": { "allOf": [ { "$ref": "#/components/schemas/PlayerVisibility" } ], "description": "What subset of players an admin client with elevated privileges will receive info about", "default": "ALL" }, "player_notification_frequency": { "allOf": [ { "$ref": "#/components/schemas/PlayerVisibility" } ], "description": "What subset of notifications a client should receive about players in a session. With sufficiently large sessions, frequency will be automatically lowered", "default": "ALL" }, "admin_player_notification_frequency": { "allOf": [ { "$ref": "#/components/schemas/PlayerVisibility" } ], "description": "What subset of notifications an admin client with elevated privileges will receive about players in a session", "default": "ALL" }, "player_culling_timeout": { "type": "integer", "minimum": 0, "title": "Player Culling Timeout", "description": "How many seconds must pass with a player not querying a session before they get culled. If unset or 0, then players will not be culled" } }, "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": "DEPRECATED. Use joinability object instead. Flag for if players can freely join this session without an invite" }, "joinability": { "allOf": [ { "$ref": "#/components/schemas/SessionJoinability" } ], "title": "Joinability", "description": "Flags regarding the joinability of this session" }, "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" }, "password": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Password", "description": "A password to join this session" } }, "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-varnames": [ "fail", "allow_overflow", "partial_with_overflow", "partial_without_overflow", "overfill" ], "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)" ] }, "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" }, "TicketData": { "properties": { "ticket_id": { "type": "string", "title": "Ticket Id", "description": "Unique ID for this ticket" }, "player_uuids": { "items": { "type": "string", "format": "uuid" }, "type": "array", "title": "Player Uuids", "description": "List of Player UUIDS that are associated with this ticket", "default": [] }, "queue_join_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" }, "region_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Region Id", "description": "Which region this ticket was created for" }, "queue_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Queue Id", "description": "Which queue was used to create this ticket" }, "profile_ids": { "items": { "type": "string", "maxLength": 128, "minLength": 1 }, "type": "array", "title": "Profile Ids", "description": "List of profiles that were being considered for this ticket" }, "additional_join_params": { "allOf": [ { "$ref": "#/components/schemas/AdditionalJoinParams" } ], "title": "Additional Join Params", "description": "Additional join params specified on queue join" }, "rank_data": { "items": { "$ref": "#/components/schemas/RankData" }, "type": "array", "title": "Rank Data", "description": "List of rank data on the ticket", "default": [] }, "queued_session_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Queued Session Id", "description": "The session this ticket belonged to", "default": "unknown" } }, "type": "object", "required": [ "ticket_id", "queue_join_datetime", "region_id", "queue_id", "profile_ids" ], "title": "TicketData" }, "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-varnames": [ "JOIN", "JOIN_MUTED", "KICK", "MUTE", "TRANSCRIBE" ], "x-enum-descriptions": [ "", "", "", "", "" ] }, "VoipSessionType": { "type": "string", "enum": [ "session", "team" ], "title": "VoipSessionType", "description": "An enumeration.", "x-enum-varnames": [ "SESSION", "TEAM" ], "x-enum-descriptions": [ "", "" ] }, "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" }, "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", "exclusiveMinimum": true, "title": "Min Sigma", "description": "The minimum sigma allowed. Any attempts to update sigma to be lower than this get clamped to the minimum", "minimum": 0 }, "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", "exclusiveMinimum": true, "title": "Default Sigma", "description": "The default sigma for this rank id. Will be used when players do not have any rank history", "minimum": 0 }, "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/RankRankData" } ], "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/RankRankData" } ], "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/RankRankData" } ], "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/RankRankData" } ], "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/RankRankData" } ], "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", "exclusiveMinimum": true, "title": "Min Sigma", "description": "The minimum sigma allowed. Any attempts to update sigma to be lower than this get clamped to the minimum", "minimum": 0 }, "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", "exclusiveMinimum": true, "title": "Default Sigma", "description": "The default sigma for this rank id. Will be used when players do not have any rank history", "minimum": 0 }, "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" }, "RankRankData": { "properties": { "mu": { "type": "number", "title": "Mu", "description": "A measure of perceived skill in a player" }, "sigma": { "type": "number", "exclusiveMinimum": true, "title": "Sigma", "description": "A measure of how confident we are in the perceived skill (high sigma means low confidence)", "minimum": 0 }, "custom_data": { "additionalProperties": { "type": "string", "maxLength": 4096, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "Custom key-value player rank data", "default": {} }, "last_updated_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": [ "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" }, "MatchHostType": { "type": "string", "enum": [ "dedicated", "player", "standalone" ], "title": "HostType", "description": "Whether the host is another player, or a dedicated instance", "x-enum-descriptions": [ "", "", "" ], "x-enum-varnames": [ "dedicated", "player", "standalone" ] }, "MatchAllocation": { "properties": { "allocation_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Allocation Id", "description": "Allocation ID" } }, "type": "object", "required": [ "allocation_id" ], "title": "MatchAllocation" }, "MatchInstance": { "properties": { "instance_id": { "type": "string", "maxLength": 128, "minLength": 1, "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", "maxLength": 128 }, { "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", "required": [ "instance_id" ], "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": { "$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" }, "MatchReward": { "properties": { "legacy_loot_id": { "type": "integer", "exclusiveMinimum": 0, "title": "Legacy Loot Id", "description": "Which loot to grant to the player" }, "quantity": { "type": "integer", "exclusiveMinimum": 0, "title": "Quantity", "description": "How many times to grant the loot to the player" } }, "type": "object", "required": [ "legacy_loot_id", "quantity" ], "title": "MatchReward" }, "MatchRewardsBody": { "properties": { "player_rewards": { "items": { "$ref": "#/components/schemas/PlayerMatchReward" }, "type": "array", "title": "Player Rewards", "description": "List of rewards for specific players for the match", "default": [] } }, "type": "object", "title": "MatchRewardsBody" }, "MatchRewardsResponse": { "properties": {}, "type": "object", "title": "MatchRewardsResponse" }, "MatchSegmentPatchRequest": { "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": [] } }, "type": "object", "title": "MatchSegmentPatchRequest" }, "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", "maxLength": 128, "minLength": 1, "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", "maxLength": 128, "minLength": 1, "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.", "x-enum-descriptions": [ "The match is in a pending state.", "The match has been closed." ], "x-enum-varnames": [ "pending", "closed" ] }, "MatchTimeline": { "properties": { "events": { "items": { "$ref": "#/components/schemas/MatchTimelineEvent" }, "type": "array", "title": "Events", "description": "Events to add to the match timeline" } }, "type": "object", "required": [ "events" ], "title": "MatchTimeline" }, "MatchTimelineEvent": { "properties": { "created_into": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Created Into", "description": "duration into the match this event occurred" }, "created_dt": { "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": "Created Dt", "description": "Time of the event" }, "type": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Type", "description": "Event Type" }, "type_2": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Type 2", "description": "Event Subtype" }, "type_3": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Type 3", "description": "Event Subtype" }, "type_4": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Type 4", "description": "Event Subtype" }, "loc_x": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Loc X", "description": "Location X" }, "loc_y": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Loc Y", "description": "Location Y" }, "loc_z": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Loc Z", "description": "Location Z" }, "player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Player Uuid", "description": "Player UUID" }, "source_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Source Player Uuid", "description": "Source Player UUID" }, "source_id": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Source Id", "description": "Source ID" }, "source_id_2": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Source Id 2", "description": "Source ID" }, "source_id_3": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Source Id 3", "description": "Source ID" }, "source_id_4": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Source Id 4", "description": "Source ID" }, "target_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Target Player Uuid", "description": "Target Player UUID" }, "target_id": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Target Id", "description": "Target ID" }, "target_id_2": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Target Id 2", "description": "Target ID" }, "target_id_3": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Target Id 3", "description": "Target ID" }, "target_id_4": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Target Id 4", "description": "Target ID" }, "properties": { "$ref": "#/components/schemas/MatchTimelineProperties", "description": "Common properties", "default": {} }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data for the timeline event" } }, "type": "object", "title": "MatchTimelineEvent", "description": "Event on a match timeline" }, "MatchTimelinePage": { "properties": { "events": { "items": { "$ref": "#/components/schemas/MatchTimelineEvent" }, "type": "array", "title": "Events", "description": "Page of events", "default": [] }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor", "description": "Cursor to use to get the next page of events" } }, "type": "object", "title": "MatchTimelinePage" }, "MatchTimelineProperties": { "properties": { "int_1": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 1" }, "int_2": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 2" }, "int_3": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 3" }, "int_4": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 4" }, "int_5": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 5" }, "int_6": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 6" }, "int_7": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 7" }, "int_8": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 8" }, "int_9": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 9" }, "int_10": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 10" }, "int_11": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 11" }, "int_12": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 12" }, "int_13": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 13" }, "int_14": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 14" }, "int_15": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 15" }, "int_16": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 16" }, "int_17": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 17" }, "int_18": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 18" }, "int_19": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 19" }, "int_20": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 20" }, "int_21": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 21" }, "int_22": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 22" }, "int_23": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 23" }, "int_24": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 24" }, "int_25": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 25" }, "int_26": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 26" }, "int_27": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 27" }, "int_28": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 28" }, "int_29": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 29" }, "int_30": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 30" }, "int_31": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 31" }, "int_32": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Int 32" }, "str_1": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 1" }, "str_2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 2" }, "str_3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 3" }, "str_4": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 4" }, "str_5": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 5" }, "str_6": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 6" }, "str_7": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 7" }, "str_8": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 8" }, "str_9": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 9" }, "str_10": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 10" }, "str_11": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 11" }, "str_12": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 12" }, "str_13": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 13" }, "str_14": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 14" }, "str_15": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 15" }, "str_16": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 16" }, "str_17": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 17" }, "str_18": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 18" }, "str_19": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 19" }, "str_20": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 20" }, "str_21": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 21" }, "str_22": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 22" }, "str_23": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 23" }, "str_24": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 24" }, "str_25": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 25" }, "str_26": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 26" }, "str_27": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 27" }, "str_28": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 28" }, "str_29": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 29" }, "str_30": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 30" }, "str_31": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 31" }, "str_32": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Str 32" }, "float_1": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 1" }, "float_2": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 2" }, "float_3": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 3" }, "float_4": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 4" }, "float_5": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 5" }, "float_6": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 6" }, "float_7": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 7" }, "float_8": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 8" }, "float_9": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 9" }, "float_10": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 10" }, "float_11": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 11" }, "float_12": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 12" }, "float_13": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 13" }, "float_14": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 14" }, "float_15": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 15" }, "float_16": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 16" }, "float_17": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 17" }, "float_18": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 18" }, "float_19": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 19" }, "float_20": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 20" }, "float_21": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 21" }, "float_22": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 22" }, "float_23": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 23" }, "float_24": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 24" }, "float_25": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 25" }, "float_26": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 26" }, "float_27": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 27" }, "float_28": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 28" }, "float_29": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 29" }, "float_30": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 30" }, "float_31": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 31" }, "float_32": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Float 32" } }, "type": "object", "title": "MatchTimelineProperties" }, "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", "maxLength": 128, "minLength": 1, "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", "maxLength": 128, "minLength": 1, "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" }, "PexClientPagedResponse": { "properties": { "results": { "items": { "$ref": "#/components/schemas/PexClientResponse" }, "type": "array", "title": "Results", "description": "List of PEX reports for this match", "default": [] }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor", "description": "Base64 encoded json that contains the filters and cursor position" }, "filters": { "$ref": "#/components/schemas/PexClientQueryParams" } }, "type": "object", "title": "PexClientPagedResponse" }, "PexClientQueryParams": { "properties": { "to_datetime": { "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": "To Datetime", "description": "To datetime" }, "from_datetime": { "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": "From Datetime", "description": "From datetime" }, "match_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Match Id", "description": "Match ID" }, "region_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id", "description": "Region ID" }, "server_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id", "description": "Server ID" }, "allocation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id", "description": "Allocation ID" }, "datacenter_provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Provider", "description": "Datacenter provider" }, "datacenter_location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Location", "description": "Datacenter location" }, "machine_class": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Machine Class", "description": "Machine class" }, "address_ip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Ip", "description": "IP address" }, "map_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map Name", "description": "Map name" }, "game_mode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode", "description": "Game mode" }, "matchmaking_profile_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id", "description": "Matchmaking profile ID" }, "expected_team_size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Team Size", "description": "Expected team size" }, "expected_player_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Player Count", "description": "Expected player count" }, "host_player_uuid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Host Player Uuid", "description": "Player UUID of the host" }, "owning_player_uuid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Owning Player Uuid", "description": "Player UUID of the owner" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version", "description": "Version" }, "platform_id": { "anyOf": [ { "$ref": "#/components/schemas/MatchPlatform" }, { "type": "null" } ], "description": "Platform ID" }, "player_uuid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Player Uuid" } }, "type": "object", "title": "PexClientQueryParams" }, "PexClientRequest": { "properties": { "frame_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Frametime" }, "delta_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Delta time" }, "tick_count": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Server tick rate" }, "delayed_tick_count": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Delayed tick count" }, "memory_ws": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Memory working set" }, "memory_vb": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Memory video buffer" }, "cpu_process": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "CPU process" }, "ping": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Average ping across players" }, "in_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "In packets metrics" }, "out_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Out packets metrics" }, "total_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packets metrics" }, "in_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "In packets lost metrics" }, "out_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Out packets lost metrics" }, "total_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packets lost metrics" }, "in_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Packets lost percentage in" }, "out_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Packets lost percentage out" }, "total_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packet lost percentage" }, "total_disconnects": { "anyOf": [ { "$ref": "#/components/schemas/PexCount" }, { "type": "null" } ], "description": "Total disconnects" }, "match_duration": { "anyOf": [ { "$ref": "#/components/schemas/PexCount" }, { "type": "null" } ], "description": "Match duration" }, "game_thread_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Game thread time" }, "render_thread_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Render thread time" }, "gpu_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "GPU time" }, "vram_used": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "VRAM Used" }, "vram_used_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "VRAM Used Percentage" }, "match_id": { "type": "string", "title": "Match Id", "description": "Match ID" }, "region_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id", "description": "Region ID" }, "server_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id", "description": "Server ID" }, "allocation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id", "description": "Allocation ID" }, "datacenter_provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Provider", "description": "Datacenter provider" }, "datacenter_location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Location", "description": "Datacenter location" }, "address_ip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Ip", "description": "IP address" }, "map_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map Name", "description": "Map name" }, "game_mode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode", "description": "Game mode" }, "matchmaking_profile_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id", "description": "Matchmaking profile ID" }, "expected_team_size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Team Size", "description": "Expected team size" }, "expected_player_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Player Count", "description": "Expected player count" }, "host_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Host Player Uuid", "description": "Player UUID of the host" }, "owning_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Owning Player Uuid", "description": "Player UUID of the owner" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version", "description": "Version" }, "device_info": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Device Info", "description": "Device info" }, "platform_id": { "anyOf": [ { "$ref": "#/components/schemas/MatchPlatform" }, { "type": "null" } ], "description": "Platform ID" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID" } }, "type": "object", "required": [ "match_id", "player_uuid" ], "title": "PexClientRequest" }, "PexClientResponse": { "properties": { "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" }, "frame_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Frametime" }, "delta_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Delta time" }, "tick_count": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Server tick rate" }, "delayed_tick_count": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Delayed tick count" }, "memory_ws": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Memory working set" }, "memory_vb": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Memory video buffer" }, "cpu_process": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "CPU process" }, "ping": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Average ping across players" }, "in_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "In packets metrics" }, "out_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Out packets metrics" }, "total_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packets metrics" }, "in_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "In packets lost metrics" }, "out_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Out packets lost metrics" }, "total_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packets lost metrics" }, "in_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Packets lost percentage in" }, "out_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Packets lost percentage out" }, "total_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packet lost percentage" }, "total_disconnects": { "anyOf": [ { "$ref": "#/components/schemas/PexCount" }, { "type": "null" } ], "description": "Total disconnects" }, "match_duration": { "anyOf": [ { "$ref": "#/components/schemas/PexCount" }, { "type": "null" } ], "description": "Match duration" }, "game_thread_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Game thread time" }, "render_thread_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Render thread time" }, "gpu_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "GPU time" }, "vram_used": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "VRAM Used" }, "vram_used_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "VRAM Used Percentage" }, "scores": { "anyOf": [ { "$ref": "#/components/schemas/PexClientScores" }, { "type": "null" } ], "description": "Scores" }, "match_id": { "type": "string", "title": "Match Id", "description": "Match ID" }, "region_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id", "description": "Region ID" }, "server_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id", "description": "Server ID" }, "allocation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id", "description": "Allocation ID" }, "datacenter_provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Provider", "description": "Datacenter provider" }, "datacenter_location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Location", "description": "Datacenter location" }, "address_ip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Ip", "description": "IP address" }, "map_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map Name", "description": "Map name" }, "game_mode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode", "description": "Game mode" }, "matchmaking_profile_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id", "description": "Matchmaking profile ID" }, "expected_team_size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Team Size", "description": "Expected team size" }, "expected_player_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Player Count", "description": "Expected player count" }, "host_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Host Player Uuid", "description": "Player UUID of the host" }, "owning_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Owning Player Uuid", "description": "Player UUID of the owner" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version", "description": "Version" }, "device_info": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Device Info", "description": "Device info" }, "platform_id": { "anyOf": [ { "$ref": "#/components/schemas/MatchPlatform" }, { "type": "null" } ], "description": "Platform ID" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data" }, "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID" } }, "type": "object", "required": [ "match_id", "player_uuid" ], "title": "PexClientResponse" }, "PexClientScores": { "properties": { "overall_match_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Overall Match Score", "description": "Overall match score" }, "app_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "App Score", "description": "App game score" }, "gameplay_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Gameplay Score", "description": "Gameplay score" }, "network_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Network Score", "description": "Network score" }, "connection_count_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Connection Count Score", "description": "Connection count score" }, "frame_time_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Frame Time Score", "description": "Frame time score" }, "delta_time_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Delta Time Score", "description": "Delta time score" }, "tick_count_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Tick Count Score", "description": "Tick count score" }, "delayed_tick_count_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Delayed Tick Count Score", "description": "Delayed tick count score" }, "memory_ws_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Memory Ws Score", "description": "Memory working set score" }, "memory_vb_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Memory Vb Score", "description": "Memory video buffer score" }, "cpu_process_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Cpu Process Score", "description": "CPU process score" }, "ping_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Ping Score", "description": "Ping score" }, "in_packet_loss_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "In Packet Loss Score", "description": "In packet loss score" }, "out_packet_loss_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Out Packet Loss Score", "description": "Out packet loss score" }, "total_disconnects_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Total Disconnects Score", "description": "Total disconnects score" } }, "type": "object", "title": "PexClientScores" }, "PexCount": { "properties": { "count": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Count", "description": "Count of values" } }, "type": "object", "title": "PexCount" }, "PexHostPagedResponse": { "properties": { "results": { "items": { "$ref": "#/components/schemas/PexHostResponse" }, "type": "array", "title": "Results", "description": "List of PEX reports for this match", "default": [] }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor", "description": "Base64 encoded json that contains the filters and cursor position" }, "filters": { "$ref": "#/components/schemas/PexHostQueryParams" } }, "type": "object", "title": "PexHostPagedResponse" }, "PexHostQueryParams": { "properties": { "to_datetime": { "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": "To Datetime", "description": "To datetime" }, "from_datetime": { "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": "From Datetime", "description": "From datetime" }, "match_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Match Id", "description": "Match ID" }, "region_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id", "description": "Region ID" }, "server_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id", "description": "Server ID" }, "allocation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id", "description": "Allocation ID" }, "datacenter_provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Provider", "description": "Datacenter provider" }, "datacenter_location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Location", "description": "Datacenter location" }, "machine_class": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Machine Class", "description": "Machine class" }, "address_ip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Ip", "description": "IP address" }, "map_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map Name", "description": "Map name" }, "game_mode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode", "description": "Game mode" }, "matchmaking_profile_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id", "description": "Matchmaking profile ID" }, "expected_team_size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Team Size", "description": "Expected team size" }, "expected_player_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Player Count", "description": "Expected player count" }, "host_player_uuid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Host Player Uuid", "description": "Player UUID of the host" }, "owning_player_uuid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Owning Player Uuid", "description": "Player UUID of the owner" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version", "description": "Version" }, "platform_id": { "anyOf": [ { "$ref": "#/components/schemas/MatchPlatform" }, { "type": "null" } ], "description": "Platform ID" } }, "type": "object", "title": "PexHostQueryParams" }, "PexHostRequest": { "properties": { "frame_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Frametime" }, "delta_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Delta time" }, "tick_count": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Server tick rate" }, "delayed_tick_count": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Delayed tick count" }, "memory_ws": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Memory working set" }, "memory_vb": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Memory video buffer" }, "cpu_process": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "CPU process" }, "ping": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Average ping across players" }, "in_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "In packets metrics" }, "out_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Out packets metrics" }, "total_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packets metrics" }, "in_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "In packets lost metrics" }, "out_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Out packets lost metrics" }, "total_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packets lost metrics" }, "in_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Packets lost percentage in" }, "out_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Packets lost percentage out" }, "total_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packet lost percentage" }, "total_disconnects": { "anyOf": [ { "$ref": "#/components/schemas/PexCount" }, { "type": "null" } ], "description": "Total disconnects" }, "match_duration": { "anyOf": [ { "$ref": "#/components/schemas/PexCount" }, { "type": "null" } ], "description": "Match duration" }, "connection_count": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Connection count" }, "total_unique_players": { "anyOf": [ { "$ref": "#/components/schemas/PexCount" }, { "type": "null" } ], "description": "Total players" }, "match_id": { "type": "string", "title": "Match Id", "description": "Match ID" }, "region_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id", "description": "Region ID" }, "server_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id", "description": "Server ID" }, "allocation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id", "description": "Allocation ID" }, "datacenter_provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Provider", "description": "Datacenter provider" }, "datacenter_location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Location", "description": "Datacenter location" }, "address_ip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Ip", "description": "IP address" }, "map_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map Name", "description": "Map name" }, "game_mode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode", "description": "Game mode" }, "matchmaking_profile_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id", "description": "Matchmaking profile ID" }, "expected_team_size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Team Size", "description": "Expected team size" }, "expected_player_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Player Count", "description": "Expected player count" }, "host_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Host Player Uuid", "description": "Player UUID of the host" }, "owning_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Owning Player Uuid", "description": "Player UUID of the owner" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version", "description": "Version" }, "device_info": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Device Info", "description": "Device info" }, "platform_id": { "anyOf": [ { "$ref": "#/components/schemas/MatchPlatform" }, { "type": "null" } ], "description": "Platform ID" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data" }, "machine_class": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Machine Class", "description": "Machine class" } }, "type": "object", "required": [ "match_id" ], "title": "PexHostRequest" }, "PexHostResponse": { "properties": { "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" }, "frame_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Frametime" }, "delta_time": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Delta time" }, "tick_count": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Server tick rate" }, "delayed_tick_count": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Delayed tick count" }, "memory_ws": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Memory working set" }, "memory_vb": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Memory video buffer" }, "cpu_process": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "CPU process" }, "ping": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Average ping across players" }, "in_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "In packets metrics" }, "out_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Out packets metrics" }, "total_packets": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packets metrics" }, "in_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "In packets lost metrics" }, "out_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Out packets lost metrics" }, "total_packet_loss": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packets lost metrics" }, "in_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Packets lost percentage in" }, "out_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Packets lost percentage out" }, "total_packet_loss_pct": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Total packet lost percentage" }, "total_disconnects": { "anyOf": [ { "$ref": "#/components/schemas/PexCount" }, { "type": "null" } ], "description": "Total disconnects" }, "match_duration": { "anyOf": [ { "$ref": "#/components/schemas/PexCount" }, { "type": "null" } ], "description": "Match duration" }, "connection_count": { "anyOf": [ { "$ref": "#/components/schemas/PexStat" }, { "type": "null" } ], "description": "Connection count" }, "total_unique_players": { "anyOf": [ { "$ref": "#/components/schemas/PexCount" }, { "type": "null" } ], "description": "Total players" }, "scores": { "anyOf": [ { "$ref": "#/components/schemas/PexHostScores" }, { "type": "null" } ], "description": "Scores" }, "match_id": { "type": "string", "title": "Match Id", "description": "Match ID" }, "region_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Id", "description": "Region ID" }, "server_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id", "description": "Server ID" }, "allocation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Allocation Id", "description": "Allocation ID" }, "datacenter_provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Provider", "description": "Datacenter provider" }, "datacenter_location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datacenter Location", "description": "Datacenter location" }, "address_ip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Address Ip", "description": "IP address" }, "map_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Map Name", "description": "Map name" }, "game_mode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Game Mode", "description": "Game mode" }, "matchmaking_profile_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Matchmaking Profile Id", "description": "Matchmaking profile ID" }, "expected_team_size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Team Size", "description": "Expected team size" }, "expected_player_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expected Player Count", "description": "Expected player count" }, "host_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Host Player Uuid", "description": "Player UUID of the host" }, "owning_player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Owning Player Uuid", "description": "Player UUID of the owner" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version", "description": "Version" }, "device_info": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Device Info", "description": "Device info" }, "platform_id": { "anyOf": [ { "$ref": "#/components/schemas/MatchPlatform" }, { "type": "null" } ], "description": "Platform ID" }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "Custom data" }, "machine_class": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Machine Class", "description": "Machine class" } }, "type": "object", "required": [ "match_id" ], "title": "PexHostResponse" }, "PexHostScores": { "properties": { "overall_match_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Overall Match Score", "description": "Overall match score" }, "app_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "App Score", "description": "App game score" }, "gameplay_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Gameplay Score", "description": "Gameplay score" }, "network_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Network Score", "description": "Network score" }, "connection_count_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Connection Count Score", "description": "Connection count score" }, "frame_time_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Frame Time Score", "description": "Frame time score" }, "delta_time_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Delta Time Score", "description": "Delta time score" }, "tick_count_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Tick Count Score", "description": "Tick count score" }, "delayed_tick_count_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Delayed Tick Count Score", "description": "Delayed tick count score" }, "memory_ws_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Memory Ws Score", "description": "Memory working set score" }, "memory_vb_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Memory Vb Score", "description": "Memory video buffer score" }, "cpu_process_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Cpu Process Score", "description": "CPU process score" }, "ping_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Ping Score", "description": "Ping score" }, "in_packet_loss_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "In Packet Loss Score", "description": "In packet loss score" }, "out_packet_loss_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Out Packet Loss Score", "description": "Out packet loss score" }, "total_disconnects_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Total Disconnects Score", "description": "Total disconnects score" }, "total_unique_players_score": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Total Unique Players Score", "description": "Total players score" } }, "type": "object", "title": "PexHostScores" }, "PexStat": { "properties": { "min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Min", "description": "Minimum value" }, "max": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max", "description": "Maximum value" }, "avg": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Avg", "description": "Average value" }, "stddev": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Stddev", "description": "Standard deviation" } }, "type": "object", "title": "PexStat" }, "MatchPlatform": { "type": "string", "enum": [ "Anon", "Basic", "XboxLive", "PSN", "NintendoNAID", "NintendoSwitch", "NintendoPPID", "Google", "GooglePlay", "Apple", "Epic", "Steam", "Amazon", "Twitch", "RallyHere", "LegacyName" ], "title": "Platform", "x-enum-descriptions": [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ], "x-enum-varnames": [ "ANON", "BASIC", "XBOX_LIVE", "PSN", "NINTENDO_NAID", "NINTENDO_SWITCH", "NINTENDO_PPID", "GOOGLE", "GOOGLE_PLAY", "APPLE", "EPIC", "STEAM", "AMAZON", "TWITCH", "RALLYHERE", "LEGACYNAME" ] }, "PlayerMatchReward": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Unique idenfitifer for player who is receiving rewards" }, "rewards": { "items": { "$ref": "#/components/schemas/MatchReward" }, "type": "array", "title": "Rewards", "description": "List of specific rewards for this player" } }, "type": "object", "required": [ "player_uuid", "rewards" ], "title": "PlayerMatchReward" }, "PlayerStatsResponse": { "properties": { "total_matches_played": { "type": "integer", "title": "Total Matches Played", "default": 0 } }, "type": "object", "title": "PlayerStatsResponse" }, "RecentlyPlayedPlayer": { "properties": { "player_uuid": { "type": "string", "format": "uuid", "title": "Player Uuid", "description": "Player UUID" } }, "type": "object", "required": [ "player_uuid" ], "title": "RecentlyPlayedPlayer", "description": "Player that was recently played with" }, "RecentlyPlayedWithResponse": { "properties": { "players": { "items": { "$ref": "#/components/schemas/RecentlyPlayedPlayer" }, "type": "array", "title": "Players", "description": "List of players", "default": [] } }, "type": "object", "title": "RecentlyPlayedWithResponse", "description": "List of players that this user recently played with" }, "Body_create_entity_directory_file": { "properties": { "file": { "type": "string", "format": "binary", "title": "File" } }, "type": "object", "title": "Body_create_entity_directory_file" }, "EntityType": { "type": "string", "enum": [ "match", "unknown" ], "title": "EntityType", "x-enum-descriptions": [ "", "" ], "x-enum-varnames": [ "match", "unknown" ] }, "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", "x-enum-descriptions": [ "", "" ], "x-enum-varnames": [ "file", "developer_file" ] }, "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" }, "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" }, "propertyNames": { "format": "date-time" }, "type": "object", "title": "Ccus" } }, "type": "object", "required": [ "ccus" ], "title": "IndividualCCUs" }, "OnlineStatus": { "type": "string", "enum": [ "online", "away", "invisible", "offline" ], "title": "OnlineStatus", "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" ] }, "PresencePlatform": { "type": "string", "enum": [ "Anon", "Basic", "XboxLive", "PSN", "NintendoNAID", "NintendoSwitch", "NintendoPPID", "Google", "GooglePlay", "Apple", "Epic", "Steam", "Amazon", "Twitch", "RallyHere", "LegacyName" ], "title": "Platform", "x-enum-descriptions": [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ], "x-enum-varnames": [ "ANON", "BASIC", "XBOX_LIVE", "PSN", "NINTENDO_NAID", "NINTENDO_SWITCH", "NINTENDO_PPID", "GOOGLE", "GOOGLE_PLAY", "APPLE", "EPIC", "STEAM", "AMAZON", "TWITCH", "RALLYHERE", "LEGACYNAME" ] }, "PlatformIndividualCCUs": { "properties": { "platform_ccus": { "additionalProperties": { "$ref": "#/components/schemas/IndividualCCUs" }, "propertyNames": { "$ref": "#/components/schemas/Platform" }, "type": "object", "title": "Platform Ccus" } }, "type": "object", "required": [ "platform_ccus" ], "title": "PlatformIndividualCCUs" }, "PlatformUnionCCUs": { "properties": { "platform_counts": { "additionalProperties": { "$ref": "#/components/schemas/UnionCCU" }, "propertyNames": { "$ref": "#/components/schemas/Platform" }, "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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Platform", "description": "Platform the user was online in" }, "display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Display Name", "description": "Player Display Name" } }, "type": "object", "required": [ "time" ], "title": "PlayerLastSeenUpdate" }, "PlayerPresence": { "properties": { "status": { "$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 }, "propertyNames": { "maxLength": 256, "minLength": 1 }, "type": "object", "title": "Custom Data", "description": "custom fields for the player to update about their presence", "default": {} }, "player_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "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": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Do Not Disturb", "description": "Disables notifications and invites. Only set for self or admin." }, "last_seen": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "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": { "anyOf": [ { "$ref": "#/components/schemas/OnlineStatus" }, { "type": "null" } ], "description": "Is the player currently online?" }, "message": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "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": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Do Not Disturb", "description": "Disables notifications and invites. Leaving this unset will not change the value." }, "custom_data": { "anyOf": [ { "additionalProperties": { "type": "string", "maxLength": 4096 }, "propertyNames": { "maxLength": 256, "minLength": 1 }, "type": "object" }, { "type": "null" } ], "title": "Custom Data", "description": "custom fields for the player to update about their presence." } }, "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" }, "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." }, "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-descriptions": [ "", "" ], "x-enum-varnames": [ "latest", "earliest" ] }, "EntityGuideEngagement": { "properties": { "guide_id": { "type": "string", "format": "uuid", "title": "Guide Id" }, "rating": { "type": "integer", "maximum": 1, "minimum": -1, "title": "Rating", "default": 0 }, "favorited_at": { "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": "Favorited At" } }, "type": "object", "required": [ "guide_id" ], "title": "EntityGuideEngagement" }, "GuideEntityType": { "type": "string", "enum": [ "player" ], "title": "EntityType", "x-enum-descriptions": [ "" ], "x-enum-varnames": [ "player" ] }, "FavoriteGuideRequest": { "properties": { "guide_id": { "type": "string", "format": "uuid", "title": "Guide Id" } }, "type": "object", "required": [ "guide_id" ], "title": "FavoriteGuideRequest" }, "FavoriteGuideResponse": { "properties": { "guide_id": { "type": "string", "format": "uuid", "title": "Guide Id" }, "favorited_at": { "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": "Favorited At" } }, "type": "object", "required": [ "guide_id" ], "title": "FavoriteGuideResponse" }, "GuideCreateRequest": { "properties": { "guide_type": { "type": "string", "maxLength": 16, "title": "Guide Type" }, "language": { "type": "string", "maxLength": 3, "title": "Language" }, "game_version": { "type": "string", "maxLength": 64, "title": "Game Version", "description": "Version this guide was created for" }, "name": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Name" }, "short_desc": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ], "title": "Short Desc" }, "v": { "type": "integer", "minimum": 1, "title": "V", "description": "Game-specific guide version. Meant to allow the layout/format of the guides to change over time.", "default": 1 }, "promotion_priority": { "type": "integer", "title": "Promotion Priority", "description": "Promotion priority of this guide in searches", "default": 0 }, "ref_1": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 1" }, "ref_2": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 2" }, "ref_3": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 3" }, "ref_4": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 4" }, "ref_5": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 5" }, "ref_6": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 6" }, "ref_7": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 7" }, "ref_8": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 8" }, "ref_9": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 9" }, "ref_10": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 10" }, "ref_11": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 11" }, "ref_12": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 12" }, "ref_13": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 13" }, "ref_14": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 14" }, "ref_15": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 15" }, "ref_16": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 16" }, "ref_17": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 17" }, "ref_18": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 18" }, "ref_19": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 19" }, "ref_20": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 20" }, "ref_21": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 21" }, "ref_22": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 22" }, "ref_23": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 23" }, "ref_24": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 24" }, "ref_25": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 25" }, "ref_26": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 26" }, "ref_27": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 27" }, "ref_28": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 28" }, "ref_29": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 29" }, "ref_30": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 30" }, "ref_31": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 31" }, "ref_32": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 32" }, "owner_entity_type": { "anyOf": [ { "$ref": "#/components/schemas/GuideEntityType" }, { "type": "null" } ], "description": "Owner of this guide. If empty, will default to the requesting entity" }, "owner_entity_id": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Owner Entity Id", "description": "Owner of this guide. If empty, will default to the requesting entity" }, "content": { "anyOf": [ { "type": "string", "maxLength": 16384 }, { "type": "null" } ], "title": "Content", "description": "Root content of the guide" }, "sections": { "items": { "$ref": "#/components/schemas/GuideSectionCreate" }, "type": "array", "maxItems": 16, "title": "Sections", "default": [] } }, "type": "object", "required": [ "guide_type", "language", "game_version", "name" ], "title": "GuideCreateRequest" }, "GuideFull": { "properties": { "guide_type": { "type": "string", "maxLength": 16, "title": "Guide Type" }, "language": { "type": "string", "maxLength": 3, "title": "Language" }, "game_version": { "type": "string", "maxLength": 64, "title": "Game Version", "description": "Version this guide was created for" }, "name": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Name" }, "short_desc": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ], "title": "Short Desc" }, "v": { "type": "integer", "minimum": 1, "title": "V", "description": "Game-specific guide version. Meant to allow the layout/format of the guides to change over time.", "default": 1 }, "promotion_priority": { "type": "integer", "title": "Promotion Priority", "description": "Promotion priority of this guide in searches", "default": 0 }, "ref_1": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 1" }, "ref_2": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 2" }, "ref_3": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 3" }, "ref_4": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 4" }, "ref_5": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 5" }, "ref_6": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 6" }, "ref_7": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 7" }, "ref_8": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 8" }, "ref_9": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 9" }, "ref_10": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 10" }, "ref_11": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 11" }, "ref_12": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 12" }, "ref_13": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 13" }, "ref_14": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 14" }, "ref_15": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 15" }, "ref_16": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 16" }, "ref_17": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 17" }, "ref_18": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 18" }, "ref_19": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 19" }, "ref_20": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 20" }, "ref_21": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 21" }, "ref_22": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 22" }, "ref_23": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 23" }, "ref_24": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 24" }, "ref_25": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 25" }, "ref_26": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 26" }, "ref_27": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 27" }, "ref_28": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 28" }, "ref_29": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 29" }, "ref_30": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 30" }, "ref_31": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 31" }, "ref_32": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 32" }, "guide_id": { "type": "string", "format": "uuid", "title": "Guide Id" }, "owner_entity_type": { "$ref": "#/components/schemas/GuideEntityType" }, "owner_entity_id": { "type": "string", "maxLength": 128, "title": "Owner Entity 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", "example": "2023-01-23T21:07:02.000000+00:00" }, "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", "example": "2023-01-23T21:07:02.000000+00:00" }, "favorites": { "type": "integer", "title": "Favorites", "description": "Number of players who have favorited", "default": 0 }, "upvotes": { "type": "integer", "title": "Upvotes", "description": "Number of players who have upvoted", "default": 0 }, "downvotes": { "type": "integer", "title": "Downvotes", "description": "Number of players who have downvoted", "default": 0 }, "etag": { "type": "string", "title": "Etag", "description": "unique identifer for a specific version of this guide" }, "content": { "anyOf": [ { "type": "string", "maxLength": 16384 }, { "type": "null" } ], "title": "Content", "description": "Root content of the guide" }, "sections": { "items": { "$ref": "#/components/schemas/GuideSectionFull" }, "type": "array", "maxItems": 16, "title": "Sections", "default": [] } }, "type": "object", "required": [ "guide_type", "language", "game_version", "name", "guide_id", "owner_entity_type", "owner_entity_id", "created", "modified", "etag" ], "title": "GuideFull" }, "GuideRating": { "properties": { "guide_id": { "type": "string", "format": "uuid", "title": "Guide Id" }, "rating": { "type": "integer", "maximum": 1, "minimum": -1, "title": "Rating" } }, "type": "object", "required": [ "guide_id", "rating" ], "title": "GuideRating" }, "GuideSearchResult": { "properties": { "guide_type": { "type": "string", "maxLength": 16, "title": "Guide Type" }, "language": { "type": "string", "maxLength": 3, "title": "Language" }, "game_version": { "type": "string", "maxLength": 64, "title": "Game Version", "description": "Version this guide was created for" }, "name": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Name" }, "short_desc": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ], "title": "Short Desc" }, "v": { "type": "integer", "minimum": 1, "title": "V", "description": "Game-specific guide version. Meant to allow the layout/format of the guides to change over time.", "default": 1 }, "promotion_priority": { "type": "integer", "title": "Promotion Priority", "description": "Promotion priority of this guide in searches", "default": 0 }, "ref_1": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 1" }, "ref_2": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 2" }, "ref_3": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 3" }, "ref_4": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 4" }, "ref_5": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 5" }, "ref_6": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 6" }, "ref_7": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 7" }, "ref_8": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 8" }, "ref_9": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 9" }, "ref_10": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 10" }, "ref_11": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 11" }, "ref_12": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 12" }, "ref_13": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 13" }, "ref_14": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 14" }, "ref_15": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 15" }, "ref_16": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 16" }, "ref_17": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 17" }, "ref_18": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 18" }, "ref_19": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 19" }, "ref_20": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 20" }, "ref_21": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 21" }, "ref_22": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 22" }, "ref_23": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 23" }, "ref_24": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 24" }, "ref_25": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 25" }, "ref_26": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 26" }, "ref_27": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 27" }, "ref_28": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 28" }, "ref_29": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 29" }, "ref_30": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 30" }, "ref_31": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 31" }, "ref_32": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 32" }, "guide_id": { "type": "string", "format": "uuid", "title": "Guide Id" }, "owner_entity_type": { "$ref": "#/components/schemas/GuideEntityType" }, "owner_entity_id": { "type": "string", "maxLength": 128, "title": "Owner Entity 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", "example": "2023-01-23T21:07:02.000000+00:00" }, "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", "example": "2023-01-23T21:07:02.000000+00:00" }, "favorites": { "type": "integer", "title": "Favorites", "description": "Number of players who have favorited", "default": 0 }, "upvotes": { "type": "integer", "title": "Upvotes", "description": "Number of players who have upvoted", "default": 0 }, "downvotes": { "type": "integer", "title": "Downvotes", "description": "Number of players who have downvoted", "default": 0 }, "etag": { "type": "string", "title": "Etag", "description": "unique identifer for a specific version of this guide" } }, "type": "object", "required": [ "guide_type", "language", "game_version", "name", "guide_id", "owner_entity_type", "owner_entity_id", "created", "modified", "etag" ], "title": "GuideSearchResult" }, "GuideSectionCreate": { "properties": { "section_type": { "type": "string", "maxLength": 16, "title": "Section Type" }, "name": { "type": "string", "maxLength": 128, "title": "Name" }, "short_desc": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Short Desc" }, "content": { "anyOf": [ { "type": "string", "maxLength": 16384 }, { "type": "null" } ], "title": "Content" }, "ref_1": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 1" }, "ref_2": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 2" }, "ref_3": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 3" }, "ref_4": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 4" }, "ref_5": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 5" }, "ref_6": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 6" }, "ref_7": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 7" }, "ref_8": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 8" }, "ref_9": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 9" }, "ref_10": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 10" }, "ref_11": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 11" }, "ref_12": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 12" }, "ref_13": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 13" }, "ref_14": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 14" }, "ref_15": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 15" }, "ref_16": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 16" }, "ref_17": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 17" }, "ref_18": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 18" }, "ref_19": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 19" }, "ref_20": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 20" }, "ref_21": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 21" }, "ref_22": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 22" }, "ref_23": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 23" }, "ref_24": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 24" }, "ref_25": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 25" }, "ref_26": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 26" }, "ref_27": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 27" }, "ref_28": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 28" }, "ref_29": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 29" }, "ref_30": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 30" }, "ref_31": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 31" }, "ref_32": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 32" } }, "type": "object", "required": [ "section_type", "name" ], "title": "GuideSectionCreate" }, "GuideSectionFull": { "properties": { "section_type": { "type": "string", "maxLength": 16, "title": "Section Type" }, "name": { "type": "string", "maxLength": 128, "title": "Name" }, "short_desc": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Short Desc" }, "content": { "anyOf": [ { "type": "string", "maxLength": 16384 }, { "type": "null" } ], "title": "Content" }, "ref_1": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 1" }, "ref_2": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 2" }, "ref_3": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 3" }, "ref_4": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 4" }, "ref_5": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 5" }, "ref_6": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 6" }, "ref_7": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 7" }, "ref_8": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 8" }, "ref_9": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 9" }, "ref_10": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 10" }, "ref_11": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 11" }, "ref_12": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 12" }, "ref_13": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 13" }, "ref_14": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 14" }, "ref_15": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 15" }, "ref_16": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 16" }, "ref_17": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 17" }, "ref_18": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 18" }, "ref_19": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 19" }, "ref_20": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 20" }, "ref_21": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 21" }, "ref_22": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 22" }, "ref_23": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 23" }, "ref_24": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 24" }, "ref_25": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 25" }, "ref_26": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 26" }, "ref_27": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 27" }, "ref_28": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 28" }, "ref_29": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 29" }, "ref_30": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 30" }, "ref_31": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 31" }, "ref_32": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Ref 32" }, "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", "example": "2023-01-23T21:07:02.000000+00:00" }, "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", "example": "2023-01-23T21:07:02.000000+00:00" } }, "type": "object", "required": [ "section_type", "name", "created", "modified" ], "title": "GuideSectionFull" }, "ManyEntityGuideEngagement": { "properties": { "results": { "items": { "$ref": "#/components/schemas/EntityGuideEngagement" }, "type": "array", "title": "Results", "default": [] } }, "type": "object", "title": "ManyEntityGuideEngagement" }, "ManyEntityGuideEngagementRequest": { "properties": { "guides": { "items": { "type": "string", "format": "uuid" }, "type": "array", "maxItems": 100, "minItems": 1, "title": "Guides", "default": [] } }, "type": "object", "title": "ManyEntityGuideEngagementRequest" }, "SearchFavoriteGuideSort": { "type": "string", "enum": [ "created", "modified", "upvotes", "promoted", "favorited_at" ], "title": "SearchFavoriteGuideSort", "x-enum-descriptions": [ "", "", "", "", "" ], "x-enum-varnames": [ "created", "modified", "upvotes", "promoted", "favorited_at" ] }, "SearchGuideResponse": { "properties": { "results": { "items": { "$ref": "#/components/schemas/GuideSearchResult" }, "type": "array", "title": "Results", "default": [] }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, "type": "object", "title": "SearchGuideResponse" }, "SearchGuideSort": { "type": "string", "enum": [ "created", "modified", "upvotes", "promoted" ], "title": "SearchGuideSort", "x-enum-descriptions": [ "", "", "", "" ], "x-enum-varnames": [ "created", "modified", "upvotes", "promoted" ] }, "SortDirection": { "type": "string", "enum": [ "asc", "desc" ], "title": "SortDirection", "x-enum-descriptions": [ "", "" ], "x-enum-varnames": [ "asc", "desc" ] }, "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" }, "client_ip": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Client Ip", "description": "Client IP associated with the event" } }, "additionalProperties": false, "type": "object", "required": [ "event_uuid", "event_name", "event_timestamp", "event_params" ], "title": "RallyHereEvent" }, "ValidateEventResponse": { "properties": { "success": { "type": "boolean", "title": "Success", "description": "Is event data valid against JsonSchema?" }, "error_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Code", "description": "Validation error code" }, "context": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Context", "description": "Detailed validation error context" }, "output_event": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Output Event", "description": "Event json string that will be sent to Kafka topic" } }, "type": "object", "required": [ "success" ], "title": "ValidateEventResponse" }, "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" }, "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" ] }, "LeaderboardConfig": { "properties": { "leaderboard_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Leaderboard Id", "description": "Unique ID for this leaderboard" }, "player_list": { "$ref": "#/components/schemas/PlayerListType", "description": "The player scope of this leaderboard" }, "max_size": { "type": "integer", "maximum": 10000, "exclusiveMinimum": true, "title": "Max Size", "description": "The maximum size this leaderboard can reach", "minimum": 0 }, "sort_order": { "$ref": "#/components/schemas/LeaderboardSortOrder", "description": "The sorting type this leaderboard" }, "source": { "$ref": "#/components/schemas/LeaderboardSource", "description": "The data source for this leaderboard" }, "source_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Id", "description": "Unique Item or Rank ID for the data source of this leaderboard if it is not a item leaderboard" }, "stage_source_id": { "anyOf": [ { "$ref": "#/components/schemas/StageSourceFields" }, { "type": "null" } ], "description": "Tuple of values to describe which stage run this leaderboard is for" }, "remove_restricted": { "type": "boolean", "title": "Remove Restricted", "description": "Whether or not restricted accounts (eg banned) should be removed from this leaderboard", "default": true }, "required_recent_login_days": { "anyOf": [ { "type": "integer", "exclusiveMinimum": true, "minimum": 0 }, { "type": "null" } ], "title": "Required Recent Login Days", "description": "How recently the account must have logged in to be included in the leaderboard" }, "update_frequency_seconds": { "type": "integer", "minimum": 60, "title": "Update Frequency Seconds", "description": "How frequently the data for this leaderboard should be requested" }, "expose_stat": { "type": "boolean", "title": "Expose Stat", "description": "Whether or not the value of the stat that determines this leaderboard should be exposed when the leaderboard is queried", "default": false }, "expose_players": { "type": "boolean", "title": "Expose Players", "description": "Whether or not individual player stats should be saved in the leaderboard, or if only the metadata can be returned", "default": true }, "valid_item_ids": { "anyOf": [ { "items": { "type": "integer" }, "type": "array" }, { "type": "null" } ], "title": "Valid Item Ids", "description": "List of item IDS that are valid entries if this is an item leaderboard" } }, "type": "object", "required": [ "leaderboard_id", "player_list", "max_size", "sort_order", "source", "update_frequency_seconds" ], "title": "LeaderboardConfig" }, "LeaderboardConfigList": { "properties": { "leaderboard_configs": { "items": { "$ref": "#/components/schemas/LeaderboardConfig" }, "type": "array", "title": "Leaderboard Configs", "description": "List of leaderboard configs" } }, "type": "object", "required": [ "leaderboard_configs" ], "title": "LeaderboardConfigList" }, "LeaderboardEntry": { "properties": { "player_uuid": { "anyOf": [ { "type": "string", "format": "uuid" }, { "type": "null" } ], "title": "Player Uuid", "description": "Unique ID for the player in this leaderboard entry if it is a player leaderboard" }, "legacy_item_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Legacy Item Id", "description": "The legacy item id for this leaderboard entry if it is an item leaderboard" }, "stage_run_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stage Run Id", "description": "The stage run id for this leaderboard" }, "stat_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Stat Value", "description": "Value for the stat of this leaderboard entry" }, "position": { "type": "integer", "minimum": 1, "title": "Position", "description": "What position this entry is on the leaderboard" } }, "type": "object", "required": [ "position" ], "title": "LeaderboardEntry" }, "LeaderboardMetaData": { "properties": { "entry_count": { "type": "integer", "minimum": 0, "title": "Entry Count", "description": "The number of entries in this leaderboard" }, "last_updated_datetime": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "When this leaderboard was last updated", "example": "2023-01-23T21:07:02.000000+00:00" } }, "type": "object", "required": [ "entry_count", "last_updated_datetime" ], "title": "LeaderboardMetaData" }, "LeaderboardPage": { "properties": { "leaderboard_id": { "type": "string", "maxLength": 128, "minLength": 1, "title": "Leaderboard Id", "description": "Which leaderboard config is used for this leaderboard" }, "cursor": { "type": "string", "minLength": 1, "title": "Cursor", "description": "The cursor for the next page of results. 0 means there are no more" }, "entries": { "items": { "$ref": "#/components/schemas/LeaderboardEntry" }, "type": "array", "title": "Entries", "description": "List of leaderboard entries" } }, "type": "object", "required": [ "leaderboard_id", "cursor", "entries" ], "title": "LeaderboardPage" }, "LeaderboardSource": { "type": "string", "enum": [ "INVENTORY", "RANK", "ITEM_COUNT", "STAGE" ], "title": "LeaderboardSource", "x-enum-descriptions": [ "", "", "", "" ], "x-enum-varnames": [ "INVENTORY", "RANK", "ITEM_COUNT", "STAGE" ] }, "PlayerListType": { "type": "string", "enum": [ "GLOBAL", "FRIENDS" ], "title": "PlayerListType", "x-enum-descriptions": [ "", "" ], "x-enum-varnames": [ "GLOBAL", "FRIENDS" ] }, "LeaderboardSortOrder": { "type": "string", "enum": [ "asc", "desc" ], "title": "SortOrder", "x-enum-descriptions": [ "", "" ], "x-enum-varnames": [ "ASC", "DESC" ] }, "StageSourceFields": { "properties": { "entity_type": { "type": "string", "title": "Entity Type" }, "entity_id": { "type": "string", "title": "Entity Id" }, "type_1": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type 1" }, "type_2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type 2" }, "type_3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type 3" }, "type_4": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type 4" } }, "type": "object", "required": [ "entity_type", "entity_id" ], "title": "StageSourceFields" }, "EntityMMBucketRunStats": { "properties": { "type_1": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 1", "description": "Type 1 to matchmake against" }, "type_2": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 2", "description": "Type 2 to matchmake against" }, "type_3": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 3", "description": "Type 3 to matchmake against" }, "type_4": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 4", "description": "Type 4 to matchmake against" }, "entity_type": { "$ref": "#/components/schemas/StageEntityType", "description": "Entity type" }, "entity_id": { "type": "string", "maxLength": 128, "title": "Entity Id", "description": "Entity ID" }, "stage_wins": { "type": "integer", "title": "Stage Wins", "description": "Total number of stages won", "default": 0 }, "stage_losses": { "type": "integer", "title": "Stage Losses", "description": "Total number of stages lost", "default": 0 }, "stage_incompletes": { "type": "integer", "title": "Stage Incompletes", "description": "Total number of stages incomplete", "default": 0 }, "run_wins": { "type": "integer", "title": "Run Wins", "description": "Total number of successful runs", "default": 0 }, "run_losses": { "type": "integer", "title": "Run Losses", "description": "Total number of failed runs", "default": 0 }, "run_count": { "type": "integer", "title": "Run Count", "description": "Total number of runs", "default": 0 }, "placements_complete": { "type": "integer", "title": "Placements Complete", "description": "Total number of placement matches this player has played for this MM bucket", "default": 0 }, "mmr_internal": { "type": "number", "title": "Mmr Internal", "description": "Internal MMR used for comparison against other players during matchmaking", "default": 0 }, "mmr_vis": { "type": "number", "title": "Mmr Vis", "description": "Visual MMR used for progression tracking in the matchmaking system", "default": 0 }, "created": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "When was the first run recorded for this entity/mm bucket?", "example": "2023-01-23T21:07:02.000000+00:00" }, "modified": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "When was the last run recorded for this entity/mm bucket?", "example": "2023-01-23T21:07:02.000000+00:00" } }, "type": "object", "required": [ "entity_type", "entity_id", "created", "modified" ], "title": "EntityMMBucketRunStats" }, "EntityMMBucketRunStatsMulti": { "properties": { "data": { "items": { "$ref": "#/components/schemas/EntityMMBucketRunStats" }, "type": "array", "title": "Data", "description": "", "default": [] } }, "type": "object", "title": "EntityMMBucketRunStatsMulti" }, "EntityMMBucketRunStatsUpdate": { "properties": { "type_1": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 1", "description": "Type 1 to matchmake against" }, "type_2": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 2", "description": "Type 2 to matchmake against" }, "type_3": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 3", "description": "Type 3 to matchmake against" }, "type_4": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 4", "description": "Type 4 to matchmake against" }, "entity_type": { "$ref": "#/components/schemas/StageEntityType", "description": "Entity type" }, "entity_id": { "type": "string", "maxLength": 128, "title": "Entity Id", "description": "Entity ID" }, "stage_wins": { "type": "integer", "title": "Stage Wins", "description": "Total number of stages won", "default": 0 }, "stage_losses": { "type": "integer", "title": "Stage Losses", "description": "Total number of stages lost", "default": 0 }, "stage_incompletes": { "type": "integer", "title": "Stage Incompletes", "description": "Total number of stages incomplete", "default": 0 }, "run_wins": { "type": "integer", "title": "Run Wins", "description": "Total number of successful runs", "default": 0 }, "run_losses": { "type": "integer", "title": "Run Losses", "description": "Total number of failed runs", "default": 0 }, "run_count": { "type": "integer", "title": "Run Count", "description": "Total number of runs", "default": 0 }, "placements_complete": { "type": "integer", "title": "Placements Complete", "description": "Total number of placement matches this player has played for this MM bucket", "default": 0 }, "mmr_internal": { "type": "number", "title": "Mmr Internal", "description": "Internal MMR used for comparison against other players during matchmaking", "default": 0 }, "mmr_vis": { "type": "number", "title": "Mmr Vis", "description": "Visual MMR used for progression tracking in the matchmaking system", "default": 0 } }, "type": "object", "required": [ "entity_type", "entity_id" ], "title": "EntityMMBucketRunStatsUpdate" }, "EntityRunCompleteRequest": { "properties": { "type_1": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 1", "description": "Type 1 to matchmake against" }, "type_2": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 2", "description": "Type 2 to matchmake against" }, "type_3": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 3", "description": "Type 3 to matchmake against" }, "type_4": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 4", "description": "Type 4 to matchmake against" }, "entity_type": { "anyOf": [ { "$ref": "#/components/schemas/StageEntityType" }, { "type": "null" } ], "description": "" }, "entity_id": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Entity Id", "description": "" }, "stage_wins": { "type": "integer", "title": "Stage Wins", "description": "", "default": 0 }, "stage_losses": { "type": "integer", "title": "Stage Losses", "description": "", "default": 0 }, "stage_incompletes": { "type": "integer", "title": "Stage Incompletes", "description": "", "default": 0 }, "run_win": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Run Win", "description": "Was the run a win? If set to true, `run_wins` will be incremented. If set to false, `run_losses` will be incremented. If not set, neither will be changed." }, "run_placement": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Run Placement", "description": "Was the run a placement? If set to true, placement rules are applied. If set to false, placement rules are skipped. If not set, placement is determined based on internal configuration" }, "mmr_internal_exact": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Internal Exact", "description": "If set, the exact value to set the entity's internal MMR to after this run." }, "mmr_internal_delta": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Internal Delta", "description": "If set, the delta to apply to the entity's internal MMR after this run." }, "mmr_vis_exact": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Vis Exact", "description": "If set, the exact value to set the entity's visual MMR to after this run." }, "mmr_vis_delta": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Vis Delta", "description": "If set, the delta to apply to the entity's visual MMR after this run." } }, "type": "object", "required": [ "entity_type", "entity_id" ], "title": "EntityRunCompleteRequest", "description": "Request to update entity mm bucket run stats with the info from a specific run.\n\nNOTE:\n - if `mmr_internal_exact` and `mmr_internal_delta` are not provided, the service will modify MMR using an internal algorithm.\n - if `mmr_vis_exact` and `mmr_vis_delta` are not provided, the service will modify MMR using an internal algorithm.\n - To not modify MMR at all, provide `mmr_XXX_delta` equal to `0`.\n\nPlacement matches will not allow the MMR value to be lowered, only increased. For exact updates, it will take the higher of the current/update values. If delta changes, only positive changes will be applied." }, "EntityRunCompleteResponse": { "properties": {}, "type": "object", "title": "EntityRunCompleteResponse" }, "StageEntityType": { "type": "string", "enum": [ "player" ], "title": "EntityType", "x-enum-descriptions": [ "" ], "x-enum-varnames": [ "player" ] }, "MMRStatInfo": { "properties": { "type_1": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 1" }, "type_2": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 2" }, "type_3": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 3" }, "type_4": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 4" }, "mmr_min": { "type": "integer", "title": "Mmr Min" }, "mmr_max": { "type": "integer", "title": "Mmr Max" }, "num_entities": { "type": "integer", "title": "Num Entities" } }, "type": "object", "required": [ "mmr_min", "mmr_max", "num_entities" ], "title": "MMRStatInfo" }, "MMRStats": { "properties": { "data": { "items": { "$ref": "#/components/schemas/MMRStatInfo" }, "type": "array", "title": "Data", "default": [] } }, "type": "object", "title": "MMRStats" }, "Stage": { "properties": { "blob": { "additionalProperties": true, "type": "object", "title": "Blob", "description": "", "default": {} }, "game_version": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Game Version", "description": "Game Version" }, "v": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "V", "description": "Version of this stage" }, "type_1": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 1", "description": "Stage Type 1" }, "type_2": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 2", "description": "Stage Type 2" }, "type_3": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 3", "description": "Stage Type 3" }, "type_4": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 4", "description": "Stage Type 4" }, "index": { "type": "integer", "title": "Index", "description": "Index of the stage relative to other stages in the match", "default": 0 }, "match_id": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Match Id", "description": "The match that this stage was a part of" }, "stat_1": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 1", "description": "Custom stat 1 about this stage" }, "stat_2": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 2", "description": "Custom stat 2 about this stage" }, "stat_3": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 3", "description": "Custom stat 3 about this stage" }, "stat_4": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 4", "description": "Custom stat 4 about this stage" }, "mmr_internal": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Internal", "description": "Internal MMR used for comparison against other players during matchmaking" }, "mmr_vis": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Vis", "description": "Visual MMR used for progression tracking in the matchmaking system" }, "stage_id": { "type": "string", "title": "Stage Id", "description": "Unique ID for this stage." }, "owner_entity_type": { "anyOf": [ { "$ref": "#/components/schemas/StageEntityType" }, { "type": "null" } ], "description": "Owner of this stage" }, "owner_entity_id": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Owner Entity Id", "description": "Owner of this stage" }, "mm_count": { "type": "integer", "title": "Mm Count", "description": "How many times has this stage been matchmade?", "default": 0 }, "mmr_range_min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Range Min", "description": "Minimum of the MMR Range this stage is part of" }, "mmr_range_max": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Range Max", "description": "Maximum of the MMR Range this stage is part of" }, "created": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "When was this stage first created?", "example": "2023-01-23T21:07:02.000000+00:00" }, "modified": { "type": "string", "format": "date-time", "title": "Time Zone Aware Datetime", "description": "When was this stage last modified?", "example": "2023-01-23T21:07:02.000000+00:00" } }, "type": "object", "required": [ "stage_id", "created", "modified" ], "title": "Stage" }, "StageCreate": { "properties": { "blob": { "additionalProperties": true, "type": "object", "title": "Blob", "description": "", "default": {} }, "game_version": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Game Version", "description": "Game Version" }, "v": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "V", "description": "Version of this stage" }, "type_1": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 1", "description": "Stage Type 1" }, "type_2": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 2", "description": "Stage Type 2" }, "type_3": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 3", "description": "Stage Type 3" }, "type_4": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 4", "description": "Stage Type 4" }, "index": { "type": "integer", "title": "Index", "description": "Index of the stage relative to other stages in the match", "default": 0 }, "match_id": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Match Id", "description": "The match that this stage was a part of" }, "stat_1": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 1", "description": "Custom stat 1 about this stage" }, "stat_2": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 2", "description": "Custom stat 2 about this stage" }, "stat_3": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 3", "description": "Custom stat 3 about this stage" }, "stat_4": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 4", "description": "Custom stat 4 about this stage" }, "mmr_internal": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Internal", "description": "mmr_internal value for this stage. If not provided, the value for the given owner entity will be used." }, "mmr_vis": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Vis", "description": "mmr_vis value for this stage. If not provided, the value for the given owner entity will be used." }, "owner_entity_type": { "anyOf": [ { "$ref": "#/components/schemas/StageEntityType" }, { "type": "null" } ], "description": "Owner of this stage. If not set, the entity from the providing token will be used." }, "owner_entity_id": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Owner Entity Id", "description": "Owner of this stage. If not set, the entity from the providing token will be used." }, "is_placement": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Placement", "description": "Is this stage from a placement run? If not provided, the value for the given owner entity will be used. If provided, will follow rules for stage create/updates of placement stages." } }, "type": "object", "title": "StageCreate", "description": "Fields to create a stage with.\n\nNOTE: the fields shared between this and the StageMatchmakeParams are used to determine which\n matchmaking pool this stage will be placed into" }, "StageCreateRequest": { "properties": { "stages": { "items": { "$ref": "#/components/schemas/StageCreate" }, "type": "array", "title": "Stages", "description": "Stages to create" } }, "type": "object", "required": [ "stages" ], "title": "StageCreateRequest" }, "StageCreateResult": { "properties": {}, "type": "object", "title": "StageCreateResult" }, "StageMatchmakeParams": { "properties": { "type_1": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 1", "description": "Type 1 to matchmake against" }, "type_2": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 2", "description": "Type 2 to matchmake against" }, "type_3": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 3", "description": "Type 3 to matchmake against" }, "type_4": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 4", "description": "Type 4 to matchmake against" }, "v": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "V", "description": "Version required to matchmake against" }, "index": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Index", "description": "Stage index to matchmake against" }, "mmr_internal_min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Internal Min", "description": "if provided, the minimum MMR to consider for other players" }, "mmr_internal_max": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Internal Max", "description": "if provided, the maximum MMR to consider for other players" }, "entity_type": { "anyOf": [ { "$ref": "#/components/schemas/StageEntityType" }, { "type": "null" } ], "description": "Entity to use for MMR considerations" }, "entity_id": { "anyOf": [ { "type": "string", "maxLength": 128 }, { "type": "null" } ], "title": "Entity Id", "description": "Entity to use for MMR considerations" }, "mmr_internal_override": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Internal Override", "description": "if provided, override the current entity's MMR to consider when comparing against other players" } }, "type": "object", "title": "StageMatchmakeParams", "description": "Parameters used to select a stage to play against.\n\nMMR considerations:\nif `mmr_internal_min` and `mmr_internal_max` are non-empty, a random stage will be returned within the given range.\nif `mmr_internal_min` and `mmr_internal_max` are empty, internally configured MMR ranges will be used to select a stage." }, "StageSearchResults": { "properties": { "stages": { "items": { "$ref": "#/components/schemas/Stage" }, "type": "array", "title": "Stages" }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cursor" } }, "type": "object", "required": [ "stages" ], "title": "StageSearchResults" }, "StageSearchSort": { "type": "string", "enum": [ "created", "modified", "mm_count", "mm_options" ], "title": "StageSearchSort", "x-enum-descriptions": [ "", "", "", "" ], "x-enum-varnames": [ "created", "modified", "mm_count", "mm_options" ] }, "StageUpdate": { "properties": { "blob": { "additionalProperties": true, "type": "object", "title": "Blob", "description": "", "default": {} }, "game_version": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "Game Version", "description": "Game Version" }, "v": { "anyOf": [ { "type": "string", "maxLength": 64 }, { "type": "null" } ], "title": "V", "description": "Version of this stage" }, "type_1": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 1", "description": "Stage Type 1" }, "type_2": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 2", "description": "Stage Type 2" }, "type_3": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 3", "description": "Stage Type 3" }, "type_4": { "anyOf": [ { "type": "string", "maxLength": 256 }, { "type": "null" } ], "title": "Type 4", "description": "Stage Type 4" }, "index": { "type": "integer", "title": "Index", "description": "Index of the stage relative to other stages in the match", "default": 0 }, "match_id": { "anyOf": [ { "type": "string", "maxLength": 128, "minLength": 1 }, { "type": "null" } ], "title": "Match Id", "description": "The match that this stage was a part of" }, "stat_1": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 1", "description": "Custom stat 1 about this stage" }, "stat_2": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 2", "description": "Custom stat 2 about this stage" }, "stat_3": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 3", "description": "Custom stat 3 about this stage" }, "stat_4": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stat 4", "description": "Custom stat 4 about this stage" }, "mmr_internal": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Internal", "description": "Internal MMR used for comparison against other players during matchmaking" }, "mmr_vis": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Mmr Vis", "description": "Visual MMR used for progression tracking in the matchmaking system" } }, "type": "object", "title": "StageUpdate", "description": "Fields to update a stage with.\n\nNOTE: the fields shared between this and the StageMatchmakeParams are used to determine which\n matchmaking pool this stage will be placed into" } } } }