openapi: 3.0.0 info: title: Hiro RPC Console API description: An OpenAPI collection for the Hiro RPC API version: 1.0.0 servers: - url: http://{hostAddr}:{port}/v2 description: Local development with Nakama server. variables: scheme: enum: - https - http default: http hostAddr: default: 127.0.0.1 port: enum: - '443' - '7350' default: '7350' security: - bearerAuthNakama: [] tags: - name: Console paths: /v2/console/account: get: summary: List (and optionally filter) accounts. operationId: ListAccounts responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/AccountList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: filter description: User ID or username filter. in: query required: false schema: type: string - name: tombstones description: Search only recorded deletes. in: query required: false schema: type: boolean - name: cursor description: Cursor to start from in: query required: false schema: type: string tags: - Console delete: summary: Delete (non-recorded) all user accounts. operationId: DeleteAccounts responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console post: summary: Import given account export data, creating a new account that fully matches the data. operationId: ImportAccountFull responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/console.Account' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountImport' description: Request to import user account data. required: true tags: - Console /v2/console/account/{account_id}/note: get: operationId: ListAccountNotes responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/ListAccountNotesResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: account_id description: Account to list notes for. in: path required: true schema: type: string - name: limit description: Response result page limit. in: query required: false schema: type: integer format: int32 - name: cursor description: Optional cursor for pagination. in: query required: false schema: type: string tags: - Console post: operationId: AddAccountNote responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/AccountNote' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: account_id description: The account id to add the note for. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AddAccountNoteBody' required: true tags: - Console /v2/console/account/{account_id}/note/{note_id}: delete: operationId: DeleteAccountNote responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: account_id description: Account owning the notes. in: path required: true schema: type: string - name: note_id description: Identifier of the note. in: path required: true schema: type: string tags: - Console /v2/console/account/{account_id}/wallet: get: summary: Get a list of the user's wallet transactions. operationId: GetWalletLedger responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/WalletLedgerList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: account_id description: The unique identifier of the user account. in: path required: true schema: type: string - name: limit description: Max number of results per page. in: query required: false schema: type: integer format: int64 - name: cursor description: Cursor to retrieve a page of records from. in: query required: false schema: type: string - name: after description: Optional timestamp threshold to list wallet ledger records after. in: query required: false schema: type: string format: date-time - name: before description: Optional timestamp threshold to list wallet ledger records before. in: query required: false schema: type: string format: date-time tags: - Console /v2/console/account/{id}: get: summary: Get detailed account information for a single user. operationId: GetAccount responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/console.Account' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console delete: summary: Delete all information stored for a user account. operationId: DeleteAccount responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string - name: record_deletion description: Record the user deletion - used for GDPR compliance. in: query required: false schema: type: boolean tags: - Console post: summary: Update one or more fields on a user account. operationId: UpdateAccount responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: User ID to update. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateAccountBody' required: true tags: - Console /v2/console/account/{id}/ban: post: summary: Ban a user. operationId: BanAccount responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/export: get: summary: Export all information stored about a user account. operationId: ExportAccount responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/AccountExport' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/friend: get: summary: Get a user's list of friend relationships. operationId: GetFriends responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/FriendList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/friend/{friend_id}: delete: summary: Delete the friend relationship between two users. operationId: DeleteFriend responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The user do delete for. in: path required: true schema: type: string - name: friend_id description: User ID of the friend to remove. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/group: get: summary: Get a list of groups the user is a member of. operationId: GetGroups responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/UserGroupList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/group/{group_id}: delete: summary: Remove a user from a group. operationId: DeleteGroupUser responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: User to remove. in: path required: true schema: type: string - name: group_id description: ID of the group to remove them from. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/import: put: summary: Import given account export data, overwriting the user account's current state. operationId: ImportAccount responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The user ID to overwrite data for, or blank if the account should be freshly created. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ImportAccountBody' required: true tags: - Console /v2/console/account/{id}/unban: post: summary: Unban a user. operationId: UnbanAccount responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/unlink/apple: post: summary: Unlink the Apple ID from a user account. operationId: UnlinkApple responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/unlink/custom: post: summary: Unlink the custom ID from a user account. operationId: UnlinkCustom responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/unlink/device: post: summary: Unlink the device ID from a user account. operationId: UnlinkDevice responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: User ID to unlink from. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UnlinkDeviceBody' required: true tags: - Console /v2/console/account/{id}/unlink/email: post: summary: Unlink the email from a user account. operationId: UnlinkEmail responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/unlink/facebook: post: summary: Unlink the Facebook ID from a user account. operationId: UnlinkFacebook responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/unlink/facebookinstantgame: post: summary: Unlink the Facebook Instant Game ID from a user account. operationId: UnlinkFacebookInstantGame responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/unlink/gamecenter: post: summary: Unlink the Game Center ID from a user account. operationId: UnlinkGameCenter responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/unlink/google: post: summary: Unlink the Google ID from a user account. operationId: UnlinkGoogle responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/unlink/steam: post: summary: Unlink the Steam ID from a user account. operationId: UnlinkSteam responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the user account. in: path required: true schema: type: string tags: - Console /v2/console/account/{id}/wallet/{wallet_id}: delete: summary: Delete a wallet ledger item. operationId: DeleteWalletLedger responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: User ID to remove wallet ledger item from. in: path required: true schema: type: string - name: wallet_id description: ID of the wallet ledger item to remove. in: path required: true schema: type: string tags: - Console /v2/console/acl/template: get: operationId: ListAclTemplates responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/AclTemplateList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console post: operationId: AddAclTemplate responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/AclTemplate' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' requestBody: content: application/json: schema: $ref: '#/components/schemas/AddAclTemplateRequest' description: Add a new ACL template. required: true tags: - Console /v2/console/acl/template/{id}: delete: operationId: DeleteAclTemplate responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The identifier of the ACL template. in: path required: true schema: type: string tags: - Console put: operationId: UpdateAclTemplate responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/AclTemplate' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The identifier of the ACL template. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateAclTemplateBody' required: true tags: - Console /v2/console/all: delete: summary: Deletes all data operationId: DeleteAllData responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console /v2/console/api/endpoints: get: summary: API Explorer - list all endpoints operationId: ListApiEndpoints responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/ApiEndpointList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console /v2/console/api/endpoints/rpc/{method}: post: summary: API Explorer - call a custom RPC endpoint operationId: CallRpcEndpoint responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/CallApiEndpointResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: method in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CallRpcEndpointBody' required: true tags: - Console /v2/console/api/endpoints/{method}: post: summary: API Explorer - call an endpoint operationId: CallApiEndpoint responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/CallApiEndpointResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: method in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CallApiEndpointBody' required: true tags: - Console /v2/console/audit/log: get: summary: List audit log entries with the selected filter operationId: ListAuditLogs responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/AuditLogList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: limit description: Maximum number of entries to return. in: query required: false schema: type: integer format: int32 - name: username description: Filter by username. in: query required: false schema: type: string - name: resource description: Filter by resource. in: query required: false schema: type: integer format: int32 - name: action description: Filter by action. in: query required: false schema: type: string enum: - UNKNOWN - CREATE - UPDATE - DELETE - INVOKE - IMPORT - EXPORT default: UNKNOWN - name: after description: Optional timestamp threshold to list audit log records after. in: query required: false schema: type: string format: date-time - name: before description: Optional timestamp threshold to list audit log records before. in: query required: false schema: type: string format: date-time - name: cursor description: Cursor to fetch additional. in: query required: false schema: type: string tags: - Console /v2/console/audit/log/users: get: summary: List console usernames that can be used to filter the audit logs operationId: ListAuditLogsUsers responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/AuditLogUsersList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console /v2/console/authenticate: post: summary: Authenticate a console user with username and password. operationId: Authenticate responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/ConsoleSession' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticateRequest' description: Authenticate a console user with username and password. required: true tags: - Console security: - ? '' : [] /v2/console/authenticate/logout: post: summary: Log out a session and invalidate the session token. operationId: AuthenticateLogout responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticateLogoutRequest' description: Log out a session and invalidate a session token. required: true tags: - Console /v2/console/authenticate/mfa: post: summary: Change an account's MFA using a code, usually delivered over email. operationId: AuthenticateMFASetup responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/AuthenticateMFASetupResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticateMFASetupRequest' description: Request to change MFA. required: true tags: - Console /v2/console/authenticate/password_change: post: summary: Change an account's password using a code, usually delivered over email. operationId: AuthenticatePasswordChange responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticatePasswordChangeRequest' description: Request to change a password. required: true tags: - Console /v2/console/channel: get: summary: List channel messages with the selected filter operationId: ListChannelMessages responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/ChannelMessageList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: type description: Type of the chat channel in: query required: false schema: type: string enum: - UNKNOWN - ROOM - GROUP - DIRECT default: UNKNOWN - name: label description: Label of the channel, if a standard chat room in: query required: false schema: type: string - name: group_id description: Group ID of the channel, if a group chat in: query required: false schema: type: string - name: user_id_one description: User IDs, if a direct chat in: query required: false schema: type: string - name: user_id_two in: query required: false schema: type: string - name: cursor description: Cursor to start from in: query required: false schema: type: string tags: - Console /v2/console/config: get: summary: Get server config and configuration warnings. operationId: GetConfig responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/Config' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console /v2/console/extensions: get: operationId: RegisteredExtensions responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/Extensions' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console /v2/console/group: get: summary: List (and optionally filter) groups. operationId: ListGroups responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/console.GroupList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: filter description: User ID or username filter. in: query required: false schema: type: string - name: cursor description: Cursor to start from in: query required: false schema: type: string tags: - Console /v2/console/group/{group_id}/account/{id}/demote: post: summary: Demote a user from a group. operationId: DemoteGroupMember responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: group_id description: ID of the group. in: path required: true schema: type: string - name: id description: User to change state. in: path required: true schema: type: string tags: - Console /v2/console/group/{group_id}/account/{id}/promote: post: summary: Promote a user from a group. operationId: PromoteGroupMember responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: group_id description: ID of the group. in: path required: true schema: type: string - name: id description: User to change state. in: path required: true schema: type: string tags: - Console /v2/console/group/{group_id}/add: post: summary: Add/join members to a group. operationId: AddGroupUsers responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: group_id description: ID of the group to add them to. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AddGroupUsersBody' required: true tags: - Console /v2/console/group/{id}: get: summary: Get detailed group information. operationId: GetGroup responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/Group' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the group. in: path required: true schema: type: string tags: - Console delete: summary: Remove a group. operationId: DeleteGroup responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: ID of the group to delete. in: path required: true schema: type: string tags: - Console post: summary: Update one or more fields on a group. operationId: UpdateGroup responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: Group ID to update. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateGroupBody' required: true tags: - Console /v2/console/group/{id}/export: get: summary: Export all information stored about a group. operationId: ExportGroup responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/GroupExport' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the group. in: path required: true schema: type: string tags: - Console /v2/console/group/{id}/member: get: summary: Get a list of members of the group. operationId: GetMembers responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/GroupUserList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: The unique identifier of the group. in: path required: true schema: type: string tags: - Console /v2/console/iap/purchase/{transaction_id}: get: summary: Get purchase by transaction_id operationId: GetPurchase responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/ValidatedPurchase' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: transaction_id description: Purchase original transaction id. in: path required: true schema: type: string tags: - Console /v2/console/iap/subscription/{original_transaction_id}: get: summary: Get subscription by original_transaction_id operationId: GetSubscription responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/ValidatedSubscription' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: original_transaction_id description: Subscription original transaction id. in: path required: true schema: type: string tags: - Console /v2/console/leaderboard: get: summary: List leaderboards operationId: ListLeaderboards responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/console.LeaderboardList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: cursor description: An optional cursor to paginate from. in: query required: false schema: type: string tags: - Console /v2/console/leaderboard/{id}: get: summary: Get leaderboard. operationId: GetLeaderboard responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/console.Leaderboard' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: Leaderboard ID in: path required: true schema: type: string tags: - Console delete: summary: Delete leaderboard operationId: DeleteLeaderboard responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: Leaderboard ID in: path required: true schema: type: string tags: - Console /v2/console/leaderboard/{id}/owner/{owner_id}: delete: summary: Delete leaderboard record operationId: DeleteLeaderboardRecord responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: Leaderboard ID. in: path required: true schema: type: string - name: owner_id description: Record owner. in: path required: true schema: type: string tags: - Console /v2/console/leaderboard/{leaderboard_id}/records: get: summary: List leaderboard records. operationId: ListLeaderboardRecords responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/LeaderboardRecordList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: leaderboard_id description: The ID of the leaderboard to list for. in: path required: true schema: type: string - name: owner_ids description: One or more owners to retrieve records for. in: query required: false explode: true schema: type: array items: type: string - name: limit description: Max number of records to return. Between 1 and 100. in: query required: false schema: type: integer format: int32 - name: cursor description: A next or previous page cursor. in: query required: false schema: type: string - name: expiry description: Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time. in: query required: false schema: type: string format: int64 tags: - Console /v2/console/match: get: summary: List ongoing matches operationId: ListMatches responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/console.MatchList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: limit description: Limit the number of returned matches. in: query required: false schema: type: integer format: int32 - name: authoritative description: Authoritative or relayed matches, or null for both. in: query required: false schema: type: boolean - name: label description: Label filter. in: query required: false schema: type: string - name: min_size description: Minimum user count. in: query required: false schema: type: integer format: int32 - name: max_size description: Maximum user count. in: query required: false schema: type: integer format: int32 - name: match_id description: Match ID. in: query required: false schema: type: string - name: query description: Arbitrary label query. in: query required: false schema: type: string - name: node description: Node name filter, optional. in: query required: false schema: type: string tags: - Console /v2/console/match/{id}/state: get: summary: Get current state of a running match operationId: GetMatchState responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/MatchState' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: Match ID in: path required: true schema: type: string tags: - Console /v2/console/message: delete: summary: Delete messages. operationId: DeleteChannelMessages responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/DeleteChannelMessagesResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: before description: Timestamp before which messages will be deleted. in: query required: false schema: type: string format: date-time - name: ids description: IDs of the messages to delete. in: query required: false explode: true schema: type: array items: type: string tags: - Console /v2/console/notification: get: summary: List notifications. operationId: ListNotifications responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/console.NotificationList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: user_id description: User ID to filter purchases for in: query required: false schema: type: string - name: limit description: The number of notifications to get. in: query required: false schema: type: integer format: int64 - name: cursor description: A cursor to page through notifications. in: query required: false schema: type: string tags: - Console post: summary: Send a notification. operationId: SendNotification responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' requestBody: content: application/json: schema: $ref: '#/components/schemas/SendNotificationRequest' description: Request to send a notification. required: true tags: - Console /v2/console/notification/{id}: get: summary: Get a notification by id. operationId: GetNotification responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/console.Notification' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: Notification id. in: path required: true schema: type: string tags: - Console delete: summary: Delete notification operationId: DeleteNotification responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: id description: Notification ID. in: path required: true schema: type: string tags: - Console /v2/console/purchase: get: summary: List validated purchases operationId: ListPurchases responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/PurchaseList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: user_id description: User ID to filter purchases for in: query required: false schema: type: string - name: limit description: Max number of results per page in: query required: false schema: type: integer format: int64 - name: cursor description: Cursor to retrieve a page of records from in: query required: false schema: type: string - name: after description: Optional timestamp threshold to list purchases after. in: query required: false schema: type: string format: date-time - name: before description: Optional timestamp threshold to list purchases before. in: query required: false schema: type: string format: date-time - name: filter description: Filter to use when searching for specific purchases. in: query required: false schema: type: string tags: - Console /v2/console/runtime: get: summary: Get runtime info operationId: GetRuntime responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/RuntimeInfo' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console /v2/console/satori/direct-message: post: operationId: SatoriSendDirectMessage responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/SendDirectMessageResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' requestBody: content: application/json: schema: $ref: '#/components/schemas/SendDirectMessageRequest' description: The request to send direct messages. required: true tags: - Console /v2/console/satori/template: get: operationId: SatoriListTemplates responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/ListResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: search.name.or description: Filter by elements matching one of the parameters. in: query required: false explode: true schema: type: array items: type: string - name: search.name.exact description: Filter by elements matching exactly the value. in: query required: false schema: type: string - name: search.name.like description: Filter by elements matching the pattern. in: query required: false schema: type: string - name: search.label_name.or description: Filter by elements matching one of the parameters. in: query required: false explode: true schema: type: array items: type: string - name: search.label_name.and description: Filter by elements matching all parameters. in: query required: false explode: true schema: type: array items: type: string - name: pagination.limit description: Limit of results to return. in: query required: false schema: type: integer format: int32 - name: pagination.cursor description: Cursor to the next page. in: query required: false schema: type: string tags: - Console /v2/console/setting: get: summary: List settings operationId: ListSettings responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/SettingList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: names description: The list of setting names, if empty all settings are returned. in: query required: false explode: true schema: type: array items: type: string tags: - Console /v2/console/setting/{name}: get: summary: Get console settings. operationId: GetSetting responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/Setting' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: name description: The name of the setting in: path required: true schema: type: string tags: - Console post: summary: Update an existing setting. operationId: UpdateSetting responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/Setting' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: name description: Name identifier. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateSettingBody' required: true tags: - Console /v2/console/status: get: summary: Get current status data for all nodes. operationId: GetStatus responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/StatusList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console /v2/console/storage: get: summary: List (and optionally filter) storage data. operationId: ListStorage responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/StorageList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: user_id description: User ID to filter objects for. in: query required: false schema: type: string - name: key description: Key to filter objects for in: query required: false schema: type: string - name: collection description: Collection name to filter objects for in: query required: false schema: type: string - name: cursor description: Cursor to retrieve a page of records from in: query required: false schema: type: string tags: - Console delete: summary: Delete all storage data. operationId: DeleteStorage responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console /v2/console/storage/collections: get: summary: List storage collections operationId: ListStorageCollections responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/StorageCollectionsList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console /v2/console/storage/{collection}/{key}/{user_id}: get: summary: Get a storage object. operationId: GetStorage responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/StorageObject' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: collection description: The collection which stores the object. in: path required: true schema: type: string - name: key description: The key of the object within the collection. in: path required: true schema: type: string - name: user_id description: The user owner of the object. in: path required: true schema: type: string tags: - Console delete: summary: Delete a storage object. operationId: DeleteStorageObject responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: collection description: Collection. in: path required: true schema: type: string - name: key description: Key. in: path required: true schema: type: string - name: user_id description: Owner user ID. in: path required: true schema: type: string - name: version description: Version for OCC. in: query required: false schema: type: string tags: - Console put: summary: Write a new storage object or replace an existing one. operationId: WriteStorageObject responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/StorageObjectAck' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: collection description: Collection. in: path required: true schema: type: string - name: key description: Key. in: path required: true schema: type: string - name: user_id description: Owner user ID. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Console.WriteStorageObjectBody' required: true tags: - Console /v2/console/storage/{collection}/{key}/{user_id}/{version}: delete: summary: Delete a storage object. operationId: DeleteStorageObject2 responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: collection description: Collection. in: path required: true schema: type: string - name: key description: Key. in: path required: true schema: type: string - name: user_id description: Owner user ID. in: path required: true schema: type: string - name: version description: Version for OCC. in: path required: true schema: type: string tags: - Console /v2/console/subscription: get: summary: List validated subscriptions operationId: ListSubscriptions responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/SubscriptionList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: user_id description: UserID to filter subscriptions for in: query required: false schema: type: string - name: limit description: Max number of results per page in: query required: false schema: type: integer format: int64 - name: cursor description: Cursor to retrieve a page of records from in: query required: false schema: type: string - name: after description: Optional timestamp threshold to list subscriptions after. in: query required: false schema: type: string format: date-time - name: before description: Optional timestamp threshold to list subscriptions before. in: query required: false schema: type: string format: date-time - name: filter description: Filter to use when searching for specific subscriptions. in: query required: false schema: type: string tags: - Console /v2/console/user: get: summary: List (and optionally filter) users. operationId: ListUsers responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/UserList' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' tags: - Console delete: summary: Delete console user. operationId: DeleteUser responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: username description: The unique username of the user account. in: query required: false schema: type: string tags: - Console post: summary: Add a new console user. operationId: AddUser responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/AddUserResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' requestBody: content: application/json: schema: $ref: '#/components/schemas/AddUserRequest' required: true tags: - Console /v2/console/user/{username}: get: operationId: GetUser responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/console.User' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: username description: The unique username of the user account. in: path required: true schema: type: string tags: - Console put: summary: Update a console user. operationId: UpdateUser responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/console.User' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: username description: User username. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateUserBody' required: true tags: - Console /v2/console/user/{username}/mfa/require: post: summary: Sets the user's MFA as required or not required. operationId: RequireUserMfa responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: username description: User username. in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RequireUserMfaBody' required: true tags: - Console /v2/console/user/{username}/mfa/reset: post: summary: Reset a user's multi-factor authentication credentials. operationId: ResetUserMfa responses: '200': description: A successful response. content: application/json: schema: type: object properties: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: username description: User username. in: path required: true schema: type: string tags: - Console /v2/console/user/{username}/reset/password: post: summary: Reset a user's password. operationId: ResetUserPassword responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/ResetUserResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpc.Status' parameters: - name: username description: The unique username of the user account. in: path required: true schema: type: string tags: - Console components: schemas: UpdateGroupBody: type: object properties: name: type: string description: Name. description: type: string description: Description. lang_tag: type: string description: Langtag. metadata: type: string description: Metadata. avatar_url: type: string description: Avatar URL. open: type: boolean description: Anyone can join open groups, otherwise only admins can accept members. max_count: type: integer format: int32 description: The maximum number of members allowed. description: Update group information. LeaderboardRecordList: type: object properties: records: type: array items: $ref: '#/components/schemas/LeaderboardRecord' description: A list of leaderboard records. owner_records: type: array items: $ref: '#/components/schemas/LeaderboardRecord' description: A batched set of leaderboard records belonging to specified owners. next_cursor: type: string description: The cursor to send when retrieving the next page, if any. prev_cursor: type: string description: The cursor to send when retrieving the previous page, if any. rank_count: type: string format: int64 description: The total number of ranks available. description: A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records. AuditLog: type: object properties: id: type: string description: Id of the entry. timestamp: type: string format: date-time description: The time the action occurred. user_id: type: string description: The console user id that performed the action. username: type: string description: The console user username that performed the action. email: type: string description: The console user email that performed the action. resource: $ref: '#/components/schemas/AclResources' action: $ref: '#/components/schemas/AuditLogAction' message: type: string description: Log message. metadata: type: string description: Additional details about the action. console.Notification: type: object properties: id: type: string description: ID of the Notification. subject: type: string description: Subject of the notification. content: type: string description: Content of the notification in JSON. code: type: integer format: int32 description: Category code for this notification. sender_id: type: string description: ID of the sender, if a user. Otherwise 'null'. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the notification was created. persistent: type: boolean description: True if this notification was persisted to the database. user_id: type: string description: User id. ChannelMessage: type: object properties: channel_id: type: string description: The channel this message belongs to. message_id: type: string description: The unique ID of this message. code: type: integer format: int32 description: The code representing a message type or category. sender_id: type: string description: Message sender, usually a user ID. username: type: string description: The username of the message sender, if any. content: type: string description: The content payload. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was last updated. persistent: type: boolean description: True if the message was persisted to the channel's history, false otherwise. room_name: type: string description: The name of the chat room, or an empty string if this message was not sent through a chat room. group_id: type: string description: The ID of the group, or an empty string if this message was not sent through a group channel. user_id_one: type: string description: The ID of the first DM user, or an empty string if this message was not sent through a DM chat. user_id_two: type: string description: The ID of the second DM user, or an empty string if this message was not sent through a DM chat. description: A message sent on a channel. GroupUserList: type: object properties: group_users: type: array items: $ref: '#/components/schemas/GroupUser' description: User-role pairs for a group. cursor: type: string description: Cursor for the next page of results, if any. description: A list of users belonging to a group, along with their role. Group: type: object properties: id: type: string description: The id of a group. creator_id: type: string description: The id of the user who created the group. name: type: string description: The unique name of the group. description: type: string description: A description for the group. lang_tag: type: string description: The language expected to be a tag which follows the BCP-47 spec. metadata: type: string description: Additional information stored as a JSON object. avatar_url: type: string description: A URL for an avatar image. open: type: boolean description: Anyone can join open groups, otherwise only admins can accept members. edge_count: type: integer format: int32 description: The current count of all members in the group. max_count: type: integer format: int32 description: The maximum number of members allowed. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was last updated. description: A group in the server. StatusList: type: object properties: nodes: type: array items: $ref: '#/components/schemas/StatusList.Status' description: List of nodes and their stats. timestamp: type: string format: date-time title: Timestamp description: List of nodes and their stats. SendDirectMessageRequest: type: object properties: template_id: type: string description: The identifier of the template used to render the message content. identity_ids: type: array items: type: string description: A list of recipient identity IDs. integrations: type: array items: $ref: '#/components/schemas/MessageIntegrationType' description: A list of integrations to use for sending the message. persist: type: boolean description: Whether the message should be stored in the recipient's inbox. channels: type: object additionalProperties: $ref: '#/components/schemas/MessageChannels' description: If applicable, channels to send this message through, per integration. template_override: $ref: '#/components/schemas/TemplateOverride' description: The request to send direct messages. UserPresence: type: object properties: user_id: type: string description: The user this presence belongs to. session_id: type: string description: A unique session ID identifying the particular connection, because the user may have many. username: type: string description: The username for display purposes. persistence: type: boolean description: Whether this presence generates persistent data/messages, if applicable for the stream type. status: type: string description: A user-set status message for this stream, if applicable. description: A user session associated to a stream, usually through a list operation or a join/leave event. StorageList: type: object properties: objects: type: array items: $ref: '#/components/schemas/StorageListObject' description: List of storage objects matching list/filter operation. total_count: type: integer format: int32 description: Approximate total number of storage objects. next_cursor: type: string title: Next page cursor if any description: List of storage objects. SubscriptionList: type: object properties: validated_subscriptions: type: array items: $ref: '#/components/schemas/ValidatedSubscription' description: Stored validated subscriptions. cursor: type: string description: The cursor to send when retrieving the next page, if any. prev_cursor: type: string description: The cursor to send when retrieving the previous page, if any. description: A list of validated subscriptions stored by Nakama. AddAclTemplateRequest: type: object properties: name: type: string description: The name of the ACL template. description: type: string description: The ACL template description. acl: type: object additionalProperties: $ref: '#/components/schemas/Permissions' description: The ACL template permissions. description: Add a new ACL template. GroupUser: type: object properties: user: $ref: '#/components/schemas/api.User' state: type: integer format: int32 description: Their relationship to the group. description: A single user-role pair. console.User: type: object properties: id: type: string description: User identifier. username: type: string title: Username of the user email: type: string title: Email of the user acl: type: object additionalProperties: $ref: '#/components/schemas/Permissions' description: ACL. mfa_required: type: boolean description: Whether the user is required to setup MFA. mfa_enabled: type: boolean description: Whether the user has MFA enabled. create_time: type: string format: date-time title: User's create time update_time: type: string format: date-time title: User's update time title: A console user Template.View: type: object properties: id: type: string description: The identifier. name: type: string description: The display name. create_time_sec: type: string format: int64 description: Create time. update_time_sec: type: string format: int64 description: Update time. value: type: string description: The template value to generate the message's content. title: type: string description: The title to generate the message's title. image_url: type: string description: The image_url for the message. value_type: type: string title: The value_type for the message's content json_metadata: type: string title: The json_metadata for the message categories: type: array items: $ref: '#/components/schemas/Category.View' description: Category label identifiers. description: A template view. Setting: type: object properties: name: type: string description: Name identifier. value: type: string description: Setting value. update_time_sec: type: string format: int64 description: Update time. description: A single setting. console.MatchList: type: object properties: matches: type: array items: $ref: '#/components/schemas/MatchList.Match' description: A list of realtime matches, with their node names. WalletLedgerList: type: object properties: items: type: array items: $ref: '#/components/schemas/WalletLedger' description: A list of wallet ledger items. next_cursor: type: string description: The cursor to send when retrieving the next older page, if any. prev_cursor: type: string description: The cursor to send when retrieving the previous page newer, if any. description: List of wallet ledger items for a particular user. UpdateAccountBody: type: object properties: username: type: string description: Username. display_name: type: string description: Display name. metadata: type: string description: Metadata. avatar_url: type: string description: Avatar URL. lang_tag: type: string description: Langtag. location: type: string description: Location. timezone: type: string description: Timezone. custom_id: type: string description: Custom ID. email: type: string description: Email. password: type: string description: Password. device_ids: type: object additionalProperties: type: string description: Device ID modifications. wallet: type: string description: Wallet. description: Update user account information. DeliveryResult: type: object properties: recipient_id: type: string description: The identity ID of the recipient. integration_results: type: array items: $ref: '#/components/schemas/IntegrationResult' description: Results for each valid integration used in the delivery. description: Details of each delivery attempt. AuditLogList: type: object properties: entries: type: array items: $ref: '#/components/schemas/AuditLog' description: A list of audit log entries. next_cursor: type: string description: Cursor to fetch next page of results. prev_cursor: type: string description: Cursor to fetch prev page of results. description: Audit log entries. StatusList.Status: type: object properties: name: type: string description: Node name. health: $ref: '#/components/schemas/StatusHealth' session_count: type: integer format: int32 description: Currently connected sessions. presence_count: type: integer format: int32 description: Currently registered live presences. match_count: type: integer format: int32 description: Current number of active authoritative matches. goroutine_count: type: integer format: int32 description: Current number of running goroutines. avg_latency_ms: type: number format: double description: Average response latency in milliseconds. avg_rate_sec: type: number format: double description: Average number of requests per second. avg_input_kbs: type: number format: double description: Average input bandwidth usage. avg_output_kbs: type: number format: double description: Average output bandwidth usage. party_count: type: integer format: int32 description: Current number of active parties. create_time: type: string format: date-time description: Time when the node was created and started up. description: The status of a Nakama node. ApiEndpointDescriptor: type: object properties: method: type: string body_template: type: string title: API Explorer List of Endpoints response message api.Notification: type: object properties: id: type: string description: ID of the Notification. subject: type: string description: Subject of the notification. content: type: string description: Content of the notification in JSON. code: type: integer format: int32 description: Category code for this notification. sender_id: type: string description: ID of the sender, if a user. Otherwise 'null'. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the notification was created. persistent: type: boolean description: True if this notification was persisted to the database. description: A notification in the server. TemplateOverride: type: object properties: title: type: string description: The title to generate the message's title. value: type: string description: The template value to generate the message's content. image_url: type: string description: The image_url for the message. json_metadata: type: string title: The json_metadata for the message variants: type: object additionalProperties: $ref: '#/components/schemas/TemplateOverride' description: Language-specific template overrides. The key is the language code. description: An template override. WalletLedger: type: object properties: id: type: string description: The identifier of this wallet change. user_id: type: string description: The user ID this wallet ledger item belongs to. changeset: type: string description: The changeset. metadata: type: string description: Any associated metadata. create_time: type: string format: date-time description: The UNIX time when the wallet ledger item was created. update_time: type: string format: date-time description: The UNIX time when the wallet ledger item was updated. description: An individual update to a user's wallet. Friend: type: object properties: user: $ref: '#/components/schemas/api.User' state: type: integer format: int32 description: 'The friend status. one of "Friend.State".' update_time: type: string format: date-time description: Time of the latest relationship update. metadata: type: string description: Metadata. description: A friend of a user. api.Match: type: object properties: match_id: type: string description: The ID of the match, can be used to join. authoritative: type: boolean description: True if it's an server-managed authoritative match, false otherwise. label: type: string description: Match label, if any. size: type: integer format: int32 description: Current number of users in the match. tick_rate: type: integer format: int32 title: Tick Rate handler_name: type: string title: Handler name description: Represents a realtime match. CallRpcEndpointBody: type: object properties: body: type: string user_id: type: string session_vars: type: object additionalProperties: type: string title: API Explorer request definition for CallApiEndpoint ChannelMessageList: type: object properties: messages: type: array items: $ref: '#/components/schemas/ChannelMessage' description: A list of messages. next_cursor: type: string description: The cursor to send when retrieving the next page, if any. prev_cursor: type: string description: The cursor to send when retrieving the previous page, if any. cacheable_cursor: type: string description: Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors. description: A list of channel messages, usually a result of a list operation. IntegrationResult: type: object properties: integration_type: $ref: '#/components/schemas/MessageIntegrationType' success: type: boolean description: Whether the message was successfully delivered using this integration. error_message: type: string description: An error message, if the delivery failed. channel_type: $ref: '#/components/schemas/MessageChannelType' description: The outcome of using a specific integration. AccountExport: type: object properties: account: $ref: '#/components/schemas/api.Account' objects: type: array items: $ref: '#/components/schemas/StorageObject' description: The user's storage. friends: type: array items: $ref: '#/components/schemas/Friend' description: The user's friends. groups: type: array items: $ref: '#/components/schemas/Group' description: The user's groups. messages: type: array items: $ref: '#/components/schemas/ChannelMessage' description: The user's chat messages. leaderboard_records: type: array items: $ref: '#/components/schemas/LeaderboardRecord' description: The user's leaderboard records. notifications: type: array items: $ref: '#/components/schemas/api.Notification' description: The user's notifications. wallet_ledgers: type: array items: $ref: '#/components/schemas/WalletLedger' description: The user's wallet ledger items. description: An export of all information stored for a user account. console.Leaderboard: type: object properties: id: type: string description: The ID of the leaderboard. title: type: string description: The title for the leaderboard. description: type: string description: The description of the leaderboard. May be blank. category: type: integer format: int64 description: The category of the leaderboard. e.g. "vip" could be category 1. sort_order: type: integer format: int64 description: ASC or DESC sort mode of scores in the leaderboard. size: type: integer format: int64 description: The current number of players in the leaderboard. max_size: type: integer format: int64 description: The maximum number of players for the leaderboard. max_num_score: type: integer format: int64 description: The maximum score updates allowed per player for the current leaderboard. operator: type: integer format: int64 title: The operator of the leaderboard end_active: type: integer format: int64 description: The UNIX time when the leaderboard stops being active until next reset. A computed value. reset_schedule: type: string description: Reset cron expression. metadata: type: string description: Additional information stored as a JSON object. create_time: type: string format: date-time description: The UNIX time when the leaderboard was created. start_time: type: string format: date-time description: The UNIX time when the leaderboard will start. end_time: type: string format: date-time description: The UNIX time when the leaderboard will be stopped. duration: type: integer format: int64 description: Duration of the tournament in seconds. start_active: type: integer format: int64 description: The UNIX time when the leaderboard start being active. A computed value. join_required: type: boolean description: Join required. authoritative: type: boolean description: Authoritative. tournament: type: boolean description: Tournament. prev_reset: type: integer format: int64 description: The UNIX time when the tournament was last reset. A computed value. next_reset: type: integer format: int64 description: The UNIX time when the tournament is next playable. A computed value. description: A leaderboard. AddUserResponse: type: object properties: user: $ref: '#/components/schemas/console.User' token: type: string title: A one-time token required to update the user for the first time description: Response to create/invite a new user. FriendList: type: object properties: friends: type: array items: $ref: '#/components/schemas/Friend' description: The Friend objects. cursor: type: string description: Cursor for the next page of results, if any. description: A collection of zero or more friends of the user. console.Account: type: object properties: account: $ref: '#/components/schemas/api.Account' disable_time: type: string format: date-time description: The UNIX time when the account was disabled. description: Account information. MessageChannelType: type: string enum: - DEFAULT - PUSH - EMAIL default: DEFAULT description: "Message channel types.\n\n - PUSH: Push notification.\n - EMAIL: Email." Extensions: type: object properties: hiro: type: boolean description: Is Hiro registered. hiro_systems: $ref: '#/components/schemas/HiroSystems' satori: type: boolean description: Is Satori registered. description: Which Console extensions are registered and available. Config: type: object properties: config: type: string description: JSON-encoded active server configuration. warnings: type: array items: $ref: '#/components/schemas/Warning' description: Any warnings about the current config. server_version: type: string title: Server version description: The current server configuration and any associated warnings. PageOptions: type: object properties: prev_cursor: type: string description: Cursor, if there are prev pages. next_cursor: type: string description: Cursor, if there are next pages. StoreEnvironment: type: string enum: - UNKNOWN - SANDBOX - PRODUCTION default: UNKNOWN description: "- UNKNOWN: Unknown environment.\n - SANDBOX: Sandbox/test environment.\n - PRODUCTION: Production environment." title: Environment where a purchase/subscription took place, AccountList: type: object properties: users: type: array items: $ref: '#/components/schemas/api.User' description: A list of users. total_count: type: integer format: int32 description: Approximate total number of users. next_cursor: type: string description: Next cursor. description: A list of users. LeaderboardRecord: type: object properties: leaderboard_id: type: string description: The ID of the leaderboard this score belongs to. owner_id: type: string description: The ID of the score owner, usually a user or group. username: type: string description: The username of the score owner, if the owner is a user. score: type: string format: int64 description: The score value. subscore: type: string format: int64 description: An optional subscore value. num_score: type: integer format: int32 description: The number of submissions to this score record. metadata: type: string description: Metadata. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was updated. expiry_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record expires. rank: type: string format: int64 description: The rank of this record. max_num_score: type: integer format: int64 description: The maximum number of score updates allowed by the owner. description: Represents a complete leaderboard record with all scores and associated metadata. RequireUserMfaBody: type: object properties: required: type: boolean description: Required. description: Make a user's mfa required or not. rpc.Status: type: object properties: code: type: integer format: int32 message: type: string details: type: array items: $ref: '#/components/schemas/Any' AclTemplateList: type: object properties: templates: type: array items: $ref: '#/components/schemas/AclTemplate' description: A list of ACL templates. StorageObjectAck: type: object properties: collection: type: string description: The collection which stores the object. key: type: string description: The key of the object within the collection. version: type: string description: The version hash of the object. user_id: type: string description: The owner of the object. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated. description: A storage acknowledgement. AccountDevice: type: object properties: id: type: string description: A device identifier. Should be obtained by a platform-specific device API. vars: type: object additionalProperties: type: string description: Extra information that will be bundled in the session token. description: Send a device to the server. Used with authenticate/link/unlink and user. MatchList.Match: type: object properties: api_match: $ref: '#/components/schemas/api.Match' node: type: string title: The node name UnlinkDeviceBody: type: object properties: device_id: type: string description: Device ID to unlink. description: Unlink a particular device ID from a user's account. AuthenticateLogoutRequest: type: object properties: token: type: string description: Session token to log out. description: Log out a session and invalidate a session token. ImportAccountBody: type: object properties: data: $ref: '#/components/schemas/AccountExport' description: Request to import user account data. AuditLogAction: type: string enum: - UNKNOWN - CREATE - UPDATE - DELETE - INVOKE - IMPORT - EXPORT default: UNKNOWN StorageListObject: type: object properties: collection: type: string description: The collection which stores the object. key: type: string description: The key of the object within the collection. user_id: type: string description: The user owner of the object. version: type: string description: The version hash of the object. permission_read: type: integer format: int32 description: The read access permissions for the object. permission_write: type: integer format: int32 description: The write access permissions for the object. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated. description: An object within the storage engine. ValidatedSubscription: type: object properties: user_id: type: string description: Subscription User ID. product_id: type: string description: Purchase Product ID. original_transaction_id: type: string description: Purchase Original transaction ID (we only keep track of the original subscription, not subsequent renewals). store: $ref: '#/components/schemas/StoreProvider' purchase_time: type: string format: date-time description: UNIX Timestamp when the purchase was done. create_time: type: string format: date-time description: UNIX Timestamp when the receipt validation was stored in DB. update_time: type: string format: date-time description: UNIX Timestamp when the receipt validation was updated in DB. environment: $ref: '#/components/schemas/StoreEnvironment' expiry_time: type: string format: date-time description: Subscription expiration time. The subscription can still be auto-renewed to extend the expiration time further. refund_time: type: string format: date-time description: Subscription refund time. If this time is set, the subscription was refunded. provider_response: type: string description: Raw provider validation response body. provider_notification: type: string description: Raw provider notification body. active: type: boolean description: Whether the subscription is currently active or not. ModuleInfo: type: object properties: path: type: string title: Module path mod_time: type: string format: date-time title: Module last modified date title: Module information console.GroupList: type: object properties: groups: type: array items: $ref: '#/components/schemas/Group' description: A list of groups. total_count: type: integer format: int32 description: Approximate total number of groups. next_cursor: type: string description: Next cursor. description: A list of groups. CallApiEndpointBody: type: object properties: body: type: string user_id: type: string session_vars: type: object additionalProperties: type: string title: API Explorer request definition for CallApiEndpoint AuthenticateRequest: type: object properties: username: type: string description: The username of the user. password: type: string description: The password of the user. mfa: type: string description: Multi-factor authentication code. description: Authenticate a console user with username and password. AclResources: type: string enum: - ACCOUNT - ACCOUNT_WALLET - ACCOUNT_EXPORT - ACCOUNT_FRIENDS - ACCOUNT_GROUPS - ACCOUNT_NOTES - ACL_TEMPLATE - ALL_ACCOUNTS - ALL_DATA - ALL_STORAGE - API_EXPLORER - AUDIT_LOG - CONFIGURATION - CHANNEL_MESSAGE - USER - GROUP - IN_APP_PURCHASE - LEADERBOARD - LEADERBOARD_RECORD - MATCH - NOTIFICATION - SATORI_MESSAGE - SETTINGS - STORAGE_DATA - STORAGE_DATA_IMPORT - HIRO_INVENTORY - HIRO_PROGRESSION - HIRO_ECONOMY - HIRO_STATS - HIRO_ENERGY default: ACCOUNT description: 'ATTENTION: Do not modify the order of this enum. New resources should always be appended.' CallApiEndpointResponse: type: object properties: body: type: string error_message: type: string title: API Explorer response definition for CallApiEndpoint PurchaseList: type: object properties: validated_purchases: type: array items: $ref: '#/components/schemas/ValidatedPurchase' description: Stored validated purchases. cursor: type: string description: The cursor to send when retrieving the next page, if any. prev_cursor: type: string description: The cursor to send when retrieving the previous page, if any. description: A list of validated purchases stored by Nakama. UserList: type: object properties: users: type: array items: $ref: '#/components/schemas/console.User' description: A list of users. description: A list of console users. AccountImport: type: object properties: id: type: string description: The user ID to overwrite data for, or blank if the account should be freshly created. data: $ref: '#/components/schemas/AccountExport' description: Request to import user account data. Warning: type: object properties: field: type: string description: The config field this warning is for in a JSON pointer format. message: type: string description: Warning message text. description: A warning for a configuration field. SendNotificationRequest: type: object properties: user_ids: type: array items: type: string description: One or more users to send the notification to, or empty to send to all users. subject: type: string description: Subject for the notification. content: type: object description: Arbitrary content. code: type: integer format: int32 description: Code. persistent: type: boolean description: Persistent flag. sender_id: type: string description: Sender identifier. description: Request to send a notification. AddAccountNoteBody: type: object properties: id: type: string description: Identifier of the note. Empty to update existing note. note: type: string description: The content of the note. description: Add a new note for the user. StorageObject: type: object properties: collection: type: string description: The collection which stores the object. key: type: string description: The key of the object within the collection. user_id: type: string description: The user owner of the object. value: type: string description: The value of the object. version: type: string description: The version hash of the object. permission_read: type: integer format: int32 description: The read access permissions for the object. permission_write: type: integer format: int32 description: The write access permissions for the object. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated. description: An object within the storage engine. api.User: type: object properties: id: type: string description: The id of the user's account. username: type: string description: The username of the user's account. display_name: type: string description: The display name of the user. avatar_url: type: string description: A URL for an avatar image. lang_tag: type: string description: The language expected to be a tag which follows the BCP-47 spec. location: type: string description: The location set by the user. timezone: type: string description: The timezone set by the user. metadata: type: string description: Additional information stored as a JSON object. facebook_id: type: string description: The Facebook id in the user's account. google_id: type: string description: The Google id in the user's account. gamecenter_id: type: string description: The Apple Game Center in of the user's account. steam_id: type: string description: The Steam id in the user's account. online: type: boolean description: Indicates whether the user is currently online. edge_count: type: integer format: int32 description: Number of related edges to this user. create_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was created. update_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was last updated. facebook_instant_game_id: type: string description: The Facebook Instant Game ID in the user's account. apple_id: type: string description: The Apple Sign In ID in the user's account. description: A user in the server. GroupExport: type: object properties: group: $ref: '#/components/schemas/Group' members: type: array items: $ref: '#/components/schemas/GroupUser' description: The group's list of members. description: An export of all information stored for a group. ApiEndpointList: type: object properties: endpoints: type: array items: $ref: '#/components/schemas/ApiEndpointDescriptor' rpc_endpoints: type: array items: $ref: '#/components/schemas/ApiEndpointDescriptor' title: API Explorer List of Endpoints Any: type: object properties: '@type': type: string additionalProperties: {} SettingList: type: object properties: settings: type: array items: $ref: '#/components/schemas/Setting' description: A list of settings. acl_resources: type: array items: $ref: '#/components/schemas/AclResources' description: This field is only used to allow the swagger generator to output the enum values. description: A list of settings. ConsoleSession: type: object properties: token: type: string description: A session token (JWT) for the console user. mfa_code: type: string description: MFA code required to setup the MFA mechanism. description: A console user session. Category.View: type: object properties: id: type: string description: Identifier. name: type: string description: Name. color: type: string description: Color hex for the label. description: A summary of a Category. UserGroupList: type: object properties: user_groups: type: array items: $ref: '#/components/schemas/UserGroup' description: Group-role pairs for a user. cursor: type: string description: Cursor for the next page of results, if any. description: A list of groups belonging to a user, along with the user's role in each group. AuthenticateMFASetupResponse: type: object properties: recovery_codes: type: array items: type: string title: An one-time code to configure the MFA mechanism description: Response to change MFA. AddGroupUsersBody: type: object properties: ids: type: string description: Users to add/join. join_request: type: boolean description: Whether it is a join request. description: Add/join users to a group. DeleteChannelMessagesResponse: type: object properties: total: type: string format: int64 description: Total number of messages deleted. StatusHealth: type: string enum: - STATUS_HEALTH_OK - STATUS_HEALTH_ERROR - STATUS_HEALTH_CONNECTING - STATUS_HEALTH_DISCONNECTING default: STATUS_HEALTH_OK console.NotificationList: type: object properties: notifications: type: array items: $ref: '#/components/schemas/console.Notification' description: List of notifications. next_cursor: type: string description: Next page cursor if any. prev_cursor: type: string description: Previous page cursor if any. console.LeaderboardList: type: object properties: leaderboards: type: array items: $ref: '#/components/schemas/console.Leaderboard' description: The list of leaderboards returned. total: type: integer format: int32 description: Total count of leaderboards and tournaments. cursor: type: string description: A cursor, if any. description: A list of leaderboards. AuthenticateMFASetupRequest: type: object properties: mfa: type: string description: MFA token. code: type: string description: MFA code. description: Request to change MFA. HiroSystems: type: object properties: economy_system: type: boolean description: Is Economy system registered. inventory_system: type: boolean description: Is Inventory system registered. progression_system: type: boolean description: Is Progression system registered. stats_system: type: boolean description: Is Stats system registered. energy_system: type: boolean description: Is Energy system registered. description: Hiro available systems. ResetUserResponse: type: object properties: code: type: string description: An one-time code to be used when re-configuring the password. description: Request to reset a user's credentials, password or MFA. ListAccountNotesResponse: type: object properties: notes: type: array items: $ref: '#/components/schemas/AccountNote' description: The list of notes. cursor: type: string description: Cursor for retrieving the next page, if any. description: Response to list user notes. AccountNote: type: object properties: id: type: string description: Identifier of the note. user_id: type: string description: Owner of this note. note: type: string description: The content of the note. create_time: type: string format: date-time description: Timestamp of note creation. update_time: type: string format: date-time description: Timestamp of note update. create_id: type: string description: Console user identifier that created this note. create_username: type: string description: Console username that created this note. update_id: type: string description: Console user identifier that last updated this note. update_username: type: string description: Console username that last updated this note. description: A user note. StorageCollectionsList: type: object properties: collections: type: array items: type: string title: Available collection names in the whole of the storage UpdateUserBody: type: object properties: acl: type: object additionalProperties: $ref: '#/components/schemas/Permissions' description: ACL. description: Request to update an existing user. UpdateSettingBody: type: object properties: value: type: string description: Setting value. description: Request to update an existing setting. SendDirectMessageResponse: type: object properties: delivery_results: type: array items: $ref: '#/components/schemas/DeliveryResult' description: Results for each attempted message delivery. description: The response for the SendDirectMessageRequest. AuthenticatePasswordChangeRequest: type: object properties: code: type: string description: Code. password: type: string description: New password. description: Request to change a password. AuditLogUsersList: type: object properties: usernames: type: array items: type: string description: List of users that can be filtered in the audit logs. AclTemplate: type: object properties: id: type: string description: The identifier of the ACL template. name: type: string description: The name of the ACL template. description: type: string description: The ACL template description. acl: type: object additionalProperties: $ref: '#/components/schemas/Permissions' description: The ACL template permissions. create_time: type: string format: date-time description: The template Create time. update_time: type: string format: date-time description: The template Update time. StoreProvider: type: string enum: - APPLE_APP_STORE - GOOGLE_PLAY_STORE - HUAWEI_APP_GALLERY - FACEBOOK_INSTANT_STORE default: APPLE_APP_STORE description: "- APPLE_APP_STORE: Apple App Store\n - GOOGLE_PLAY_STORE: Google Play Store\n - HUAWEI_APP_GALLERY: Huawei App Gallery\n - FACEBOOK_INSTANT_STORE: Facebook Instant Store" title: Validation Provider, UpdateAclTemplateBody: type: object properties: name: type: string description: The name of the ACL template. description: type: string description: The ACL template description. acl: type: object additionalProperties: $ref: '#/components/schemas/Permissions' description: The ACL template permissions. api.Account: type: object properties: user: $ref: '#/components/schemas/api.User' wallet: type: string description: The user's wallet data. email: type: string description: The email address of the user. devices: type: array items: $ref: '#/components/schemas/AccountDevice' description: The devices which belong to the user's account. custom_id: type: string description: The custom id in the user's account. verify_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's email was verified. disable_time: type: string format: date-time description: The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's account was disabled/banned. description: A user with additional account details. Always the current user. MessageIntegrationType: type: string enum: - UNKNOWN_MESSAGE_TYPE - FCM - APNS - FACEBOOK_NOTIFICATION - ONESIGNAL_NOTIFICATION - WEBHOOK_NOTIFICATION default: UNKNOWN_MESSAGE_TYPE description: "Message integration's names.\n\n - FCM: The variant for Google's Firebase Cloud Messaging.\n - APNS: The variant for Apple's Message system.\n - FACEBOOK_NOTIFICATION: The variant for Facebook App-to-User Notifications.\n - ONESIGNAL_NOTIFICATION: The variant for OneSignal Notifications.\n - WEBHOOK_NOTIFICATION: The variant for Webhook Notifications." MessageChannels: type: object properties: channels: type: array items: $ref: '#/components/schemas/MessageChannelType' RuntimeInfo: type: object properties: lua_rpc_functions: type: array items: type: string title: Lua registered RPC functions go_rpc_functions: type: array items: type: string title: Go registered RPC functions js_rpc_functions: type: array items: type: string title: JavaScript registered RPC functions go_modules: type: array items: $ref: '#/components/schemas/ModuleInfo' title: Go loaded modules lua_modules: type: array items: $ref: '#/components/schemas/ModuleInfo' title: Lua loaded modules js_modules: type: array items: $ref: '#/components/schemas/ModuleInfo' title: JavaScript loaded modules title: Runtime information Console.WriteStorageObjectBody: type: object properties: value: type: string description: Value. version: type: string description: Version for OCC. permission_read: type: integer format: int32 description: Read permission value. permission_write: type: integer format: int32 description: Write permission value. description: Write a new storage object or update an existing one. AddUserRequest: type: object properties: username: type: string description: The username of the user. email: type: string description: Email address of the user. acl: type: object additionalProperties: $ref: '#/components/schemas/Permissions' description: ACL. mfa_required: type: boolean title: Require MFA newsletter_subscription: type: boolean title: Subscribe to newsletters title: Add a new console user ListResponse: type: object properties: templates: type: array items: $ref: '#/components/schemas/Template.View' description: A list of templates. page_options: $ref: '#/components/schemas/PageOptions' description: A list of templates. ValidatedPurchase: type: object properties: user_id: type: string description: Purchase User ID. product_id: type: string description: Purchase Product ID. transaction_id: type: string description: Purchase Transaction ID. store: $ref: '#/components/schemas/StoreProvider' purchase_time: type: string format: date-time description: Timestamp when the purchase was done. create_time: type: string format: date-time description: Timestamp when the receipt validation was stored in DB. update_time: type: string format: date-time description: Timestamp when the receipt validation was updated in DB. refund_time: type: string format: date-time title: Timestamp when the purchase was refunded. Set to UNIX provider_response: type: string description: Raw provider validation response. environment: $ref: '#/components/schemas/StoreEnvironment' seen_before: type: boolean description: Whether the purchase had already been validated by Nakama before. description: Validated Purchase stored by Nakama. Permissions: type: object properties: read: type: boolean description: Read a resource. write: type: boolean description: Create and/or modify a resource. delete: type: boolean description: Delete a resource. description: The possible actions that can done over a resource. MatchState: type: object properties: presences: type: array items: $ref: '#/components/schemas/UserPresence' description: Presence list. tick: type: string format: int64 description: Current tick number. state: type: string description: State. title: Match state UserGroup: type: object properties: group: $ref: '#/components/schemas/Group' state: type: integer format: int32 description: The user's relationship to the group. description: A single group-role pair. securitySchemes: bearerAuthNakama: type: http scheme: bearer bearerFormat: JWT