Archived
1
0
Fork 0
This repository has been archived on 2026-01-19. You can view files and clone it, but cannot push or open issues or pull requests.
Danmaku/addons/com.heroiclabs.nakama/api/NakamaAPI.gd

6120 lines
208 KiB
GDScript

### Code generated by codegen/main.go. DO NOT EDIT. ###
extends RefCounted
class_name NakamaAPI
# A single user-role pair.
class GroupUserListGroupUser extends NakamaAsyncResult:
const _SCHEMA = {
"state": {"name": "_state", "type": TYPE_INT, "required": false},
"user": {"name": "_user", "type": "ApiUser", "required": false},
}
# Their relationship to the group.
var _state
var state : int:
get:
return 0 if not _state is int else int(_state)
# User.
var _user
var user : ApiUser:
get:
return _user as ApiUser
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> GroupUserListGroupUser:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "GroupUserListGroupUser", p_dict), GroupUserListGroupUser) as GroupUserListGroupUser
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "state: %s, " % _state
output += "user: %s, " % _user
return output
# A single group-role pair.
class UserGroupListUserGroup extends NakamaAsyncResult:
const _SCHEMA = {
"group": {"name": "_group", "type": "ApiGroup", "required": false},
"state": {"name": "_state", "type": TYPE_INT, "required": false},
}
# Group.
var _group
var group : ApiGroup:
get:
return _group as ApiGroup
# The user's relationship to the group.
var _state
var state : int:
get:
return 0 if not _state is int else int(_state)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> UserGroupListUserGroup:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "UserGroupListUserGroup", p_dict), UserGroupListUserGroup) as UserGroupListUserGroup
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "group: %s, " % _group
output += "state: %s, " % _state
return output
# Record values to write.
class WriteLeaderboardRecordRequestLeaderboardRecordWrite extends NakamaAsyncResult:
const _SCHEMA = {
"metadata": {"name": "_metadata", "type": TYPE_STRING, "required": false},
"operator": {"name": "_operator", "type": TYPE_INT, "required": false},
"score": {"name": "_score", "type": TYPE_STRING, "required": false},
"subscore": {"name": "_subscore", "type": TYPE_STRING, "required": false},
}
# Optional record metadata.
var _metadata
var metadata : String:
get:
return "" if not _metadata is String else String(_metadata)
# Operator override.
var _operator
var operator : int:
get:
return ApiOperator.values()[0] if not ApiOperator.values().has(_operator) else _operator
# The score value to submit.
var _score
var score : String:
get:
return "" if not _score is String else String(_score)
# An optional secondary value.
var _subscore
var subscore : String:
get:
return "" if not _subscore is String else String(_subscore)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> WriteLeaderboardRecordRequestLeaderboardRecordWrite:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "WriteLeaderboardRecordRequestLeaderboardRecordWrite", p_dict), WriteLeaderboardRecordRequestLeaderboardRecordWrite) as WriteLeaderboardRecordRequestLeaderboardRecordWrite
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "metadata: %s, " % _metadata
output += "operator: %s, " % _operator
output += "score: %s, " % _score
output += "subscore: %s, " % _subscore
return output
# Record values to write.
class WriteTournamentRecordRequestTournamentRecordWrite extends NakamaAsyncResult:
const _SCHEMA = {
"metadata": {"name": "_metadata", "type": TYPE_STRING, "required": false},
"operator": {"name": "_operator", "type": TYPE_INT, "required": false},
"score": {"name": "_score", "type": TYPE_STRING, "required": false},
"subscore": {"name": "_subscore", "type": TYPE_STRING, "required": false},
}
# A JSON object of additional properties (optional).
var _metadata
var metadata : String:
get:
return "" if not _metadata is String else String(_metadata)
# Operator override.
var _operator
var operator : int:
get:
return ApiOperator.values()[0] if not ApiOperator.values().has(_operator) else _operator
# The score value to submit.
var _score
var score : String:
get:
return "" if not _score is String else String(_score)
# An optional secondary value.
var _subscore
var subscore : String:
get:
return "" if not _subscore is String else String(_subscore)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> WriteTournamentRecordRequestTournamentRecordWrite:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "WriteTournamentRecordRequestTournamentRecordWrite", p_dict), WriteTournamentRecordRequestTournamentRecordWrite) as WriteTournamentRecordRequestTournamentRecordWrite
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "metadata: %s, " % _metadata
output += "operator: %s, " % _operator
output += "score: %s, " % _score
output += "subscore: %s, " % _subscore
return output
# A user with additional account details. Always the current user.
class ApiAccount extends NakamaAsyncResult:
const _SCHEMA = {
"custom_id": {"name": "_custom_id", "type": TYPE_STRING, "required": false},
"devices": {"name": "_devices", "type": TYPE_ARRAY, "required": false, "content": "ApiAccountDevice"},
"disable_time": {"name": "_disable_time", "type": TYPE_STRING, "required": false},
"email": {"name": "_email", "type": TYPE_STRING, "required": false},
"user": {"name": "_user", "type": "ApiUser", "required": false},
"verify_time": {"name": "_verify_time", "type": TYPE_STRING, "required": false},
"wallet": {"name": "_wallet", "type": TYPE_STRING, "required": false},
}
# The custom id in the user's account.
var _custom_id
var custom_id : String:
get:
return "" if not _custom_id is String else String(_custom_id)
# The devices which belong to the user's account.
var _devices
var devices : Array:
get:
return Array() if not _devices is Array else Array(_devices)
# The UNIX time when the user's account was disabled/banned.
var _disable_time
var disable_time : String:
get:
return "" if not _disable_time is String else String(_disable_time)
# The email address of the user.
var _email
var email : String:
get:
return "" if not _email is String else String(_email)
# The user object.
var _user
var user : ApiUser:
get:
return _user as ApiUser
# The UNIX time when the user's email was verified.
var _verify_time
var verify_time : String:
get:
return "" if not _verify_time is String else String(_verify_time)
# The user's wallet data.
var _wallet
var wallet : String:
get:
return "" if not _wallet is String else String(_wallet)
var _wallet_dict = null
var wallet_dict : Dictionary:
get:
if _wallet_dict == null:
if _wallet == null:
return {}
var json = JSON.new()
if json.parse(_wallet) != OK:
return {}
_wallet_dict = json.get_data()
return _wallet_dict as Dictionary
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiAccount:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiAccount", p_dict), ApiAccount) as ApiAccount
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "custom_id: %s, " % _custom_id
output += "devices: %s, " % [_devices]
output += "disable_time: %s, " % _disable_time
output += "email: %s, " % _email
output += "user: %s, " % _user
output += "verify_time: %s, " % _verify_time
output += "wallet: %s, " % _wallet
return output
# Send a Apple Sign In token to the server. Used with authenticate/link/unlink.
class ApiAccountApple extends NakamaAsyncResult:
const _SCHEMA = {
"token": {"name": "_token", "type": TYPE_STRING, "required": false},
"vars": {"name": "_vars", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
}
# The ID token received from Apple to validate.
var _token
var token : String:
get:
return "" if not _token is String else String(_token)
# Extra information that will be bundled in the session token.
var _vars
var vars : Dictionary:
get:
return Dictionary() if not _vars is Dictionary else _vars.duplicate()
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiAccountApple:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiAccountApple", p_dict), ApiAccountApple) as ApiAccountApple
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "token: %s, " % _token
var map_string : String = ""
if typeof(_vars) == TYPE_DICTIONARY:
for k in _vars:
map_string += "{%s=%s}, " % [k, _vars[k]]
output += "vars: [%s], " % map_string
return output
# Send a custom ID to the server. Used with authenticate/link/unlink.
class ApiAccountCustom extends NakamaAsyncResult:
const _SCHEMA = {
"id": {"name": "_id", "type": TYPE_STRING, "required": false},
"vars": {"name": "_vars", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
}
# A custom identifier.
var _id
var id : String:
get:
return "" if not _id is String else String(_id)
# Extra information that will be bundled in the session token.
var _vars
var vars : Dictionary:
get:
return Dictionary() if not _vars is Dictionary else _vars.duplicate()
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiAccountCustom:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiAccountCustom", p_dict), ApiAccountCustom) as ApiAccountCustom
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "id: %s, " % _id
var map_string : String = ""
if typeof(_vars) == TYPE_DICTIONARY:
for k in _vars:
map_string += "{%s=%s}, " % [k, _vars[k]]
output += "vars: [%s], " % map_string
return output
# Send a device to the server. Used with authenticate/link/unlink and user.
class ApiAccountDevice extends NakamaAsyncResult:
const _SCHEMA = {
"id": {"name": "_id", "type": TYPE_STRING, "required": false},
"vars": {"name": "_vars", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
}
# A device identifier. Should be obtained by a platform-specific device API.
var _id
var id : String:
get:
return "" if not _id is String else String(_id)
# Extra information that will be bundled in the session token.
var _vars
var vars : Dictionary:
get:
return Dictionary() if not _vars is Dictionary else _vars.duplicate()
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiAccountDevice:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiAccountDevice", p_dict), ApiAccountDevice) as ApiAccountDevice
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "id: %s, " % _id
var map_string : String = ""
if typeof(_vars) == TYPE_DICTIONARY:
for k in _vars:
map_string += "{%s=%s}, " % [k, _vars[k]]
output += "vars: [%s], " % map_string
return output
# Send an email with password to the server. Used with authenticate/link/unlink.
class ApiAccountEmail extends NakamaAsyncResult:
const _SCHEMA = {
"email": {"name": "_email", "type": TYPE_STRING, "required": false},
"password": {"name": "_password", "type": TYPE_STRING, "required": false},
"vars": {"name": "_vars", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
}
# A valid RFC-5322 email address.
var _email
var email : String:
get:
return "" if not _email is String else String(_email)
# A password for the user account.
var _password
var password : String:
get:
return "" if not _password is String else String(_password)
# Extra information that will be bundled in the session token.
var _vars
var vars : Dictionary:
get:
return Dictionary() if not _vars is Dictionary else _vars.duplicate()
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiAccountEmail:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiAccountEmail", p_dict), ApiAccountEmail) as ApiAccountEmail
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "email: %s, " % _email
output += "password: %s, " % _password
var map_string : String = ""
if typeof(_vars) == TYPE_DICTIONARY:
for k in _vars:
map_string += "{%s=%s}, " % [k, _vars[k]]
output += "vars: [%s], " % map_string
return output
# Send a Facebook token to the server. Used with authenticate/link/unlink.
class ApiAccountFacebook extends NakamaAsyncResult:
const _SCHEMA = {
"token": {"name": "_token", "type": TYPE_STRING, "required": false},
"vars": {"name": "_vars", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
}
# The OAuth token received from Facebook to access their profile API.
var _token
var token : String:
get:
return "" if not _token is String else String(_token)
# Extra information that will be bundled in the session token.
var _vars
var vars : Dictionary:
get:
return Dictionary() if not _vars is Dictionary else _vars.duplicate()
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiAccountFacebook:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiAccountFacebook", p_dict), ApiAccountFacebook) as ApiAccountFacebook
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "token: %s, " % _token
var map_string : String = ""
if typeof(_vars) == TYPE_DICTIONARY:
for k in _vars:
map_string += "{%s=%s}, " % [k, _vars[k]]
output += "vars: [%s], " % map_string
return output
# Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink.
class ApiAccountFacebookInstantGame extends NakamaAsyncResult:
const _SCHEMA = {
"signed_player_info": {"name": "_signed_player_info", "type": TYPE_STRING, "required": false},
"vars": {"name": "_vars", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
}
#
var _signed_player_info
var signed_player_info : String:
get:
return "" if not _signed_player_info is String else String(_signed_player_info)
# Extra information that will be bundled in the session token.
var _vars
var vars : Dictionary:
get:
return Dictionary() if not _vars is Dictionary else _vars.duplicate()
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiAccountFacebookInstantGame:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiAccountFacebookInstantGame", p_dict), ApiAccountFacebookInstantGame) as ApiAccountFacebookInstantGame
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "signed_player_info: %s, " % _signed_player_info
var map_string : String = ""
if typeof(_vars) == TYPE_DICTIONARY:
for k in _vars:
map_string += "{%s=%s}, " % [k, _vars[k]]
output += "vars: [%s], " % map_string
return output
# Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink.
class ApiAccountGameCenter extends NakamaAsyncResult:
const _SCHEMA = {
"bundle_id": {"name": "_bundle_id", "type": TYPE_STRING, "required": false},
"player_id": {"name": "_player_id", "type": TYPE_STRING, "required": false},
"public_key_url": {"name": "_public_key_url", "type": TYPE_STRING, "required": false},
"salt": {"name": "_salt", "type": TYPE_STRING, "required": false},
"signature": {"name": "_signature", "type": TYPE_STRING, "required": false},
"timestamp_seconds": {"name": "_timestamp_seconds", "type": TYPE_STRING, "required": false},
"vars": {"name": "_vars", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
}
# Bundle ID (generated by GameCenter).
var _bundle_id
var bundle_id : String:
get:
return "" if not _bundle_id is String else String(_bundle_id)
# Player ID (generated by GameCenter).
var _player_id
var player_id : String:
get:
return "" if not _player_id is String else String(_player_id)
# The URL for the public encryption key.
var _public_key_url
var public_key_url : String:
get:
return "" if not _public_key_url is String else String(_public_key_url)
# A random "NSString" used to compute the hash and keep it randomized.
var _salt
var salt : String:
get:
return "" if not _salt is String else String(_salt)
# The verification signature data generated.
var _signature
var signature : String:
get:
return "" if not _signature is String else String(_signature)
# Time since UNIX epoch when the signature was created.
var _timestamp_seconds
var timestamp_seconds : String:
get:
return "" if not _timestamp_seconds is String else String(_timestamp_seconds)
# Extra information that will be bundled in the session token.
var _vars
var vars : Dictionary:
get:
return Dictionary() if not _vars is Dictionary else _vars.duplicate()
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiAccountGameCenter:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiAccountGameCenter", p_dict), ApiAccountGameCenter) as ApiAccountGameCenter
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "bundle_id: %s, " % _bundle_id
output += "player_id: %s, " % _player_id
output += "public_key_url: %s, " % _public_key_url
output += "salt: %s, " % _salt
output += "signature: %s, " % _signature
output += "timestamp_seconds: %s, " % _timestamp_seconds
var map_string : String = ""
if typeof(_vars) == TYPE_DICTIONARY:
for k in _vars:
map_string += "{%s=%s}, " % [k, _vars[k]]
output += "vars: [%s], " % map_string
return output
# Send a Google token to the server. Used with authenticate/link/unlink.
class ApiAccountGoogle extends NakamaAsyncResult:
const _SCHEMA = {
"token": {"name": "_token", "type": TYPE_STRING, "required": false},
"vars": {"name": "_vars", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
}
# The OAuth token received from Google to access their profile API.
var _token
var token : String:
get:
return "" if not _token is String else String(_token)
# Extra information that will be bundled in the session token.
var _vars
var vars : Dictionary:
get:
return Dictionary() if not _vars is Dictionary else _vars.duplicate()
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiAccountGoogle:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiAccountGoogle", p_dict), ApiAccountGoogle) as ApiAccountGoogle
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "token: %s, " % _token
var map_string : String = ""
if typeof(_vars) == TYPE_DICTIONARY:
for k in _vars:
map_string += "{%s=%s}, " % [k, _vars[k]]
output += "vars: [%s], " % map_string
return output
# Send a Steam token to the server. Used with authenticate/link/unlink.
class ApiAccountSteam extends NakamaAsyncResult:
const _SCHEMA = {
"token": {"name": "_token", "type": TYPE_STRING, "required": false},
"vars": {"name": "_vars", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
}
# The account token received from Steam to access their profile API.
var _token
var token : String:
get:
return "" if not _token is String else String(_token)
# Extra information that will be bundled in the session token.
var _vars
var vars : Dictionary:
get:
return Dictionary() if not _vars is Dictionary else _vars.duplicate()
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiAccountSteam:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiAccountSteam", p_dict), ApiAccountSteam) as ApiAccountSteam
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "token: %s, " % _token
var map_string : String = ""
if typeof(_vars) == TYPE_DICTIONARY:
for k in _vars:
map_string += "{%s=%s}, " % [k, _vars[k]]
output += "vars: [%s], " % map_string
return output
# A message sent on a channel.
class ApiChannelMessage extends NakamaAsyncResult:
const _SCHEMA = {
"channel_id": {"name": "_channel_id", "type": TYPE_STRING, "required": false},
"code": {"name": "_code", "type": TYPE_INT, "required": false},
"content": {"name": "_content", "type": TYPE_STRING, "required": false},
"create_time": {"name": "_create_time", "type": TYPE_STRING, "required": false},
"group_id": {"name": "_group_id", "type": TYPE_STRING, "required": false},
"message_id": {"name": "_message_id", "type": TYPE_STRING, "required": false},
"persistent": {"name": "_persistent", "type": TYPE_BOOL, "required": false},
"room_name": {"name": "_room_name", "type": TYPE_STRING, "required": false},
"sender_id": {"name": "_sender_id", "type": TYPE_STRING, "required": false},
"update_time": {"name": "_update_time", "type": TYPE_STRING, "required": false},
"user_id_one": {"name": "_user_id_one", "type": TYPE_STRING, "required": false},
"user_id_two": {"name": "_user_id_two", "type": TYPE_STRING, "required": false},
"username": {"name": "_username", "type": TYPE_STRING, "required": false},
}
# The channel this message belongs to.
var _channel_id
var channel_id : String:
get:
return "" if not _channel_id is String else String(_channel_id)
# The code representing a message type or category.
var _code
var code : int:
get:
return 0 if not _code is int else int(_code)
# The content payload.
var _content
var content : String:
get:
return "" if not _content is String else String(_content)
# The UNIX time when the message was created.
var _create_time
var create_time : String:
get:
return "" if not _create_time is String else String(_create_time)
# The ID of the group, or an empty string if this message was not sent through a group channel.
var _group_id
var group_id : String:
get:
return "" if not _group_id is String else String(_group_id)
# The unique ID of this message.
var _message_id
var message_id : String:
get:
return "" if not _message_id is String else String(_message_id)
# True if the message was persisted to the channel's history, false otherwise.
var _persistent
var persistent : bool:
get:
return false if not _persistent is bool else bool(_persistent)
# The name of the chat room, or an empty string if this message was not sent through a chat room.
var _room_name
var room_name : String:
get:
return "" if not _room_name is String else String(_room_name)
# Message sender, usually a user ID.
var _sender_id
var sender_id : String:
get:
return "" if not _sender_id is String else String(_sender_id)
# The UNIX time when the message was last updated.
var _update_time
var update_time : String:
get:
return "" if not _update_time is String else String(_update_time)
# The ID of the first DM user, or an empty string if this message was not sent through a DM chat.
var _user_id_one
var user_id_one : String:
get:
return "" if not _user_id_one is String else String(_user_id_one)
# The ID of the second DM user, or an empty string if this message was not sent through a DM chat.
var _user_id_two
var user_id_two : String:
get:
return "" if not _user_id_two is String else String(_user_id_two)
# The username of the message sender, if any.
var _username
var username : String:
get:
return "" if not _username is String else String(_username)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiChannelMessage:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiChannelMessage", p_dict), ApiChannelMessage) as ApiChannelMessage
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "channel_id: %s, " % _channel_id
output += "code: %s, " % _code
output += "content: %s, " % _content
output += "create_time: %s, " % _create_time
output += "group_id: %s, " % _group_id
output += "message_id: %s, " % _message_id
output += "persistent: %s, " % _persistent
output += "room_name: %s, " % _room_name
output += "sender_id: %s, " % _sender_id
output += "update_time: %s, " % _update_time
output += "user_id_one: %s, " % _user_id_one
output += "user_id_two: %s, " % _user_id_two
output += "username: %s, " % _username
return output
# A list of channel messages, usually a result of a list operation.
class ApiChannelMessageList extends NakamaAsyncResult:
const _SCHEMA = {
"cacheable_cursor": {"name": "_cacheable_cursor", "type": TYPE_STRING, "required": false},
"messages": {"name": "_messages", "type": TYPE_ARRAY, "required": false, "content": "ApiChannelMessage"},
"next_cursor": {"name": "_next_cursor", "type": TYPE_STRING, "required": false},
"prev_cursor": {"name": "_prev_cursor", "type": TYPE_STRING, "required": false},
}
# Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors.
var _cacheable_cursor
var cacheable_cursor : String:
get:
return "" if not _cacheable_cursor is String else String(_cacheable_cursor)
# A list of messages.
var _messages
var messages : Array:
get:
return Array() if not _messages is Array else Array(_messages)
# The cursor to send when retrieving the next page, if any.
var _next_cursor
var next_cursor : String:
get:
return "" if not _next_cursor is String else String(_next_cursor)
# The cursor to send when retrieving the previous page, if any.
var _prev_cursor
var prev_cursor : String:
get:
return "" if not _prev_cursor is String else String(_prev_cursor)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiChannelMessageList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiChannelMessageList", p_dict), ApiChannelMessageList) as ApiChannelMessageList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "cacheable_cursor: %s, " % _cacheable_cursor
output += "messages: %s, " % [_messages]
output += "next_cursor: %s, " % _next_cursor
output += "prev_cursor: %s, " % _prev_cursor
return output
# Create a group with the current user as owner.
class ApiCreateGroupRequest extends NakamaAsyncResult:
const _SCHEMA = {
"avatar_url": {"name": "_avatar_url", "type": TYPE_STRING, "required": false},
"description": {"name": "_description", "type": TYPE_STRING, "required": false},
"lang_tag": {"name": "_lang_tag", "type": TYPE_STRING, "required": false},
"max_count": {"name": "_max_count", "type": TYPE_INT, "required": false},
"name": {"name": "_name", "type": TYPE_STRING, "required": false},
"open": {"name": "_open", "type": TYPE_BOOL, "required": false},
}
# A URL for an avatar image.
var _avatar_url
var avatar_url : String:
get:
return "" if not _avatar_url is String else String(_avatar_url)
# A description for the group.
var _description
var description : String:
get:
return "" if not _description is String else String(_description)
# The language expected to be a tag which follows the BCP-47 spec.
var _lang_tag
var lang_tag : String:
get:
return "" if not _lang_tag is String else String(_lang_tag)
# Maximum number of group members.
var _max_count
var max_count : int:
get:
return 0 if not _max_count is int else int(_max_count)
# A unique name for the group.
var _name
var name : String:
get:
return "" if not _name is String else String(_name)
# Mark a group as open or not where only admins can accept members.
var _open
var open : bool:
get:
return false if not _open is bool else bool(_open)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiCreateGroupRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiCreateGroupRequest", p_dict), ApiCreateGroupRequest) as ApiCreateGroupRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "avatar_url: %s, " % _avatar_url
output += "description: %s, " % _description
output += "lang_tag: %s, " % _lang_tag
output += "max_count: %s, " % _max_count
output += "name: %s, " % _name
output += "open: %s, " % _open
return output
# Storage objects to delete.
class ApiDeleteStorageObjectId extends NakamaAsyncResult:
const _SCHEMA = {
"collection": {"name": "_collection", "type": TYPE_STRING, "required": false},
"key": {"name": "_key", "type": TYPE_STRING, "required": false},
"version": {"name": "_version", "type": TYPE_STRING, "required": false},
}
# The collection which stores the object.
var _collection
var collection : String:
get:
return "" if not _collection is String else String(_collection)
# The key of the object within the collection.
var _key
var key : String:
get:
return "" if not _key is String else String(_key)
# The version hash of the object.
var _version
var version : String:
get:
return "" if not _version is String else String(_version)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiDeleteStorageObjectId:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiDeleteStorageObjectId", p_dict), ApiDeleteStorageObjectId) as ApiDeleteStorageObjectId
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "collection: %s, " % _collection
output += "key: %s, " % _key
output += "version: %s, " % _version
return output
# Batch delete storage objects.
class ApiDeleteStorageObjectsRequest extends NakamaAsyncResult:
const _SCHEMA = {
"object_ids": {"name": "_object_ids", "type": TYPE_ARRAY, "required": false, "content": "ApiDeleteStorageObjectId"},
}
# Batch of storage objects.
var _object_ids
var object_ids : Array:
get:
return Array() if not _object_ids is Array else Array(_object_ids)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiDeleteStorageObjectsRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiDeleteStorageObjectsRequest", p_dict), ApiDeleteStorageObjectsRequest) as ApiDeleteStorageObjectsRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "object_ids: %s, " % [_object_ids]
return output
# Represents an event to be passed through the server to registered event handlers.
class ApiEvent extends NakamaAsyncResult:
const _SCHEMA = {
"external": {"name": "_external", "type": TYPE_BOOL, "required": false},
"name": {"name": "_name", "type": TYPE_STRING, "required": false},
"properties": {"name": "_properties", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
"timestamp": {"name": "_timestamp", "type": TYPE_STRING, "required": false},
}
# True if the event came directly from a client call, false otherwise.
var _external
var external : bool:
get:
return false if not _external is bool else bool(_external)
# An event name, type, category, or identifier.
var _name
var name : String:
get:
return "" if not _name is String else String(_name)
# Arbitrary event property values.
var _properties
var properties : Dictionary:
get:
return Dictionary() if not _properties is Dictionary else _properties.duplicate()
# The time when the event was triggered.
var _timestamp
var timestamp : String:
get:
return "" if not _timestamp is String else String(_timestamp)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiEvent:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiEvent", p_dict), ApiEvent) as ApiEvent
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "external: %s, " % _external
output += "name: %s, " % _name
var map_string : String = ""
if typeof(_properties) == TYPE_DICTIONARY:
for k in _properties:
map_string += "{%s=%s}, " % [k, _properties[k]]
output += "properties: [%s], " % map_string
output += "timestamp: %s, " % _timestamp
return output
# A friend of a user.
class ApiFriend extends NakamaAsyncResult:
const _SCHEMA = {
"state": {"name": "_state", "type": TYPE_INT, "required": false},
"update_time": {"name": "_update_time", "type": TYPE_STRING, "required": false},
"user": {"name": "_user", "type": "ApiUser", "required": false},
}
# The friend status.
var _state
var state : int:
get:
return 0 if not _state is int else int(_state)
# Time of the latest relationship update.
var _update_time
var update_time : String:
get:
return "" if not _update_time is String else String(_update_time)
# The user object.
var _user
var user : ApiUser:
get:
return _user as ApiUser
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiFriend:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiFriend", p_dict), ApiFriend) as ApiFriend
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "state: %s, " % _state
output += "update_time: %s, " % _update_time
output += "user: %s, " % _user
return output
# A collection of zero or more friends of the user.
class ApiFriendList extends NakamaAsyncResult:
const _SCHEMA = {
"cursor": {"name": "_cursor", "type": TYPE_STRING, "required": false},
"friends": {"name": "_friends", "type": TYPE_ARRAY, "required": false, "content": "ApiFriend"},
}
# Cursor for the next page of results, if any.
var _cursor
var cursor : String:
get:
return "" if not _cursor is String else String(_cursor)
# The Friend objects.
var _friends
var friends : Array:
get:
return Array() if not _friends is Array else Array(_friends)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiFriendList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiFriendList", p_dict), ApiFriendList) as ApiFriendList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "cursor: %s, " % _cursor
output += "friends: %s, " % [_friends]
return output
# A group in the server.
class ApiGroup extends NakamaAsyncResult:
const _SCHEMA = {
"avatar_url": {"name": "_avatar_url", "type": TYPE_STRING, "required": false},
"create_time": {"name": "_create_time", "type": TYPE_STRING, "required": false},
"creator_id": {"name": "_creator_id", "type": TYPE_STRING, "required": false},
"description": {"name": "_description", "type": TYPE_STRING, "required": false},
"edge_count": {"name": "_edge_count", "type": TYPE_INT, "required": false},
"id": {"name": "_id", "type": TYPE_STRING, "required": false},
"lang_tag": {"name": "_lang_tag", "type": TYPE_STRING, "required": false},
"max_count": {"name": "_max_count", "type": TYPE_INT, "required": false},
"metadata": {"name": "_metadata", "type": TYPE_STRING, "required": false},
"name": {"name": "_name", "type": TYPE_STRING, "required": false},
"open": {"name": "_open", "type": TYPE_BOOL, "required": false},
"update_time": {"name": "_update_time", "type": TYPE_STRING, "required": false},
}
# A URL for an avatar image.
var _avatar_url
var avatar_url : String:
get:
return "" if not _avatar_url is String else String(_avatar_url)
# The UNIX time when the group was created.
var _create_time
var create_time : String:
get:
return "" if not _create_time is String else String(_create_time)
# The id of the user who created the group.
var _creator_id
var creator_id : String:
get:
return "" if not _creator_id is String else String(_creator_id)
# A description for the group.
var _description
var description : String:
get:
return "" if not _description is String else String(_description)
# The current count of all members in the group.
var _edge_count
var edge_count : int:
get:
return 0 if not _edge_count is int else int(_edge_count)
# The id of a group.
var _id
var id : String:
get:
return "" if not _id is String else String(_id)
# The language expected to be a tag which follows the BCP-47 spec.
var _lang_tag
var lang_tag : String:
get:
return "" if not _lang_tag is String else String(_lang_tag)
# The maximum number of members allowed.
var _max_count
var max_count : int:
get:
return 0 if not _max_count is int else int(_max_count)
# Additional information stored as a JSON object.
var _metadata
var metadata : String:
get:
return "" if not _metadata is String else String(_metadata)
# The unique name of the group.
var _name
var name : String:
get:
return "" if not _name is String else String(_name)
# Anyone can join open groups, otherwise only admins can accept members.
var _open
var open : bool:
get:
return false if not _open is bool else bool(_open)
# The UNIX time when the group was last updated.
var _update_time
var update_time : String:
get:
return "" if not _update_time is String else String(_update_time)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiGroup:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiGroup", p_dict), ApiGroup) as ApiGroup
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "avatar_url: %s, " % _avatar_url
output += "create_time: %s, " % _create_time
output += "creator_id: %s, " % _creator_id
output += "description: %s, " % _description
output += "edge_count: %s, " % _edge_count
output += "id: %s, " % _id
output += "lang_tag: %s, " % _lang_tag
output += "max_count: %s, " % _max_count
output += "metadata: %s, " % _metadata
output += "name: %s, " % _name
output += "open: %s, " % _open
output += "update_time: %s, " % _update_time
return output
# One or more groups returned from a listing operation.
class ApiGroupList extends NakamaAsyncResult:
const _SCHEMA = {
"cursor": {"name": "_cursor", "type": TYPE_STRING, "required": false},
"groups": {"name": "_groups", "type": TYPE_ARRAY, "required": false, "content": "ApiGroup"},
}
# A cursor used to get the next page.
var _cursor
var cursor : String:
get:
return "" if not _cursor is String else String(_cursor)
# One or more groups.
var _groups
var groups : Array:
get:
return Array() if not _groups is Array else Array(_groups)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiGroupList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiGroupList", p_dict), ApiGroupList) as ApiGroupList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "cursor: %s, " % _cursor
output += "groups: %s, " % [_groups]
return output
# A list of users belonging to a group, along with their role.
class ApiGroupUserList extends NakamaAsyncResult:
const _SCHEMA = {
"cursor": {"name": "_cursor", "type": TYPE_STRING, "required": false},
"group_users": {"name": "_group_users", "type": TYPE_ARRAY, "required": false, "content": "GroupUserListGroupUser"},
}
# Cursor for the next page of results, if any.
var _cursor
var cursor : String:
get:
return "" if not _cursor is String else String(_cursor)
# User-role pairs for a group.
var _group_users
var group_users : Array:
get:
return Array() if not _group_users is Array else Array(_group_users)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiGroupUserList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiGroupUserList", p_dict), ApiGroupUserList) as ApiGroupUserList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "cursor: %s, " % _cursor
output += "group_users: %s, " % [_group_users]
return output
# Represents a complete leaderboard record with all scores and associated metadata.
class ApiLeaderboardRecord extends NakamaAsyncResult:
const _SCHEMA = {
"create_time": {"name": "_create_time", "type": TYPE_STRING, "required": false},
"expiry_time": {"name": "_expiry_time", "type": TYPE_STRING, "required": false},
"leaderboard_id": {"name": "_leaderboard_id", "type": TYPE_STRING, "required": false},
"max_num_score": {"name": "_max_num_score", "type": TYPE_INT, "required": false},
"metadata": {"name": "_metadata", "type": TYPE_STRING, "required": false},
"num_score": {"name": "_num_score", "type": TYPE_INT, "required": false},
"owner_id": {"name": "_owner_id", "type": TYPE_STRING, "required": false},
"rank": {"name": "_rank", "type": TYPE_STRING, "required": false},
"score": {"name": "_score", "type": TYPE_STRING, "required": false},
"subscore": {"name": "_subscore", "type": TYPE_STRING, "required": false},
"update_time": {"name": "_update_time", "type": TYPE_STRING, "required": false},
"username": {"name": "_username", "type": TYPE_STRING, "required": false},
}
# The UNIX time when the leaderboard record was created.
var _create_time
var create_time : String:
get:
return "" if not _create_time is String else String(_create_time)
# The UNIX time when the leaderboard record expires.
var _expiry_time
var expiry_time : String:
get:
return "" if not _expiry_time is String else String(_expiry_time)
# The ID of the leaderboard this score belongs to.
var _leaderboard_id
var leaderboard_id : String:
get:
return "" if not _leaderboard_id is String else String(_leaderboard_id)
# The maximum number of score updates allowed by the owner.
var _max_num_score
var max_num_score : int:
get:
return 0 if not _max_num_score is int else int(_max_num_score)
# Metadata.
var _metadata
var metadata : String:
get:
return "" if not _metadata is String else String(_metadata)
# The number of submissions to this score record.
var _num_score
var num_score : int:
get:
return 0 if not _num_score is int else int(_num_score)
# The ID of the score owner, usually a user or group.
var _owner_id
var owner_id : String:
get:
return "" if not _owner_id is String else String(_owner_id)
# The rank of this record.
var _rank
var rank : String:
get:
return "" if not _rank is String else String(_rank)
# The score value.
var _score
var score : String:
get:
return "" if not _score is String else String(_score)
# An optional subscore value.
var _subscore
var subscore : String:
get:
return "" if not _subscore is String else String(_subscore)
# The UNIX time when the leaderboard record was updated.
var _update_time
var update_time : String:
get:
return "" if not _update_time is String else String(_update_time)
# The username of the score owner, if the owner is a user.
var _username
var username : String:
get:
return "" if not _username is String else String(_username)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiLeaderboardRecord:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiLeaderboardRecord", p_dict), ApiLeaderboardRecord) as ApiLeaderboardRecord
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "create_time: %s, " % _create_time
output += "expiry_time: %s, " % _expiry_time
output += "leaderboard_id: %s, " % _leaderboard_id
output += "max_num_score: %s, " % _max_num_score
output += "metadata: %s, " % _metadata
output += "num_score: %s, " % _num_score
output += "owner_id: %s, " % _owner_id
output += "rank: %s, " % _rank
output += "score: %s, " % _score
output += "subscore: %s, " % _subscore
output += "update_time: %s, " % _update_time
output += "username: %s, " % _username
return output
# A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.
class ApiLeaderboardRecordList extends NakamaAsyncResult:
const _SCHEMA = {
"next_cursor": {"name": "_next_cursor", "type": TYPE_STRING, "required": false},
"owner_records": {"name": "_owner_records", "type": TYPE_ARRAY, "required": false, "content": "ApiLeaderboardRecord"},
"prev_cursor": {"name": "_prev_cursor", "type": TYPE_STRING, "required": false},
"records": {"name": "_records", "type": TYPE_ARRAY, "required": false, "content": "ApiLeaderboardRecord"},
}
# The cursor to send when retrieving the next page, if any.
var _next_cursor
var next_cursor : String:
get:
return "" if not _next_cursor is String else String(_next_cursor)
# A batched set of leaderboard records belonging to specified owners.
var _owner_records
var owner_records : Array:
get:
return Array() if not _owner_records is Array else Array(_owner_records)
# The cursor to send when retrieving the previous page, if any.
var _prev_cursor
var prev_cursor : String:
get:
return "" if not _prev_cursor is String else String(_prev_cursor)
# A list of leaderboard records.
var _records
var records : Array:
get:
return Array() if not _records is Array else Array(_records)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiLeaderboardRecordList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiLeaderboardRecordList", p_dict), ApiLeaderboardRecordList) as ApiLeaderboardRecordList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "next_cursor: %s, " % _next_cursor
output += "owner_records: %s, " % [_owner_records]
output += "prev_cursor: %s, " % _prev_cursor
output += "records: %s, " % [_records]
return output
# Link Steam to the current user's account.
class ApiLinkSteamRequest extends NakamaAsyncResult:
const _SCHEMA = {
"account": {"name": "_account", "type": "ApiAccountSteam", "required": false},
"sync": {"name": "_sync", "type": TYPE_BOOL, "required": false},
}
# The Facebook account details.
var _account
var account : ApiAccountSteam:
get:
return _account as ApiAccountSteam
# Import Steam friends for the user.
var _sync
var sync : bool:
get:
return false if not _sync is bool else bool(_sync)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiLinkSteamRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiLinkSteamRequest", p_dict), ApiLinkSteamRequest) as ApiLinkSteamRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "account: %s, " % _account
output += "sync: %s, " % _sync
return output
# List user subscriptions.
class ApiListSubscriptionsRequest extends NakamaAsyncResult:
const _SCHEMA = {
"cursor": {"name": "_cursor", "type": TYPE_STRING, "required": false},
"limit": {"name": "_limit", "type": TYPE_INT, "required": false},
}
#
var _cursor
var cursor : String:
get:
return "" if not _cursor is String else String(_cursor)
#
var _limit
var limit : int:
get:
return 0 if not _limit is int else int(_limit)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiListSubscriptionsRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiListSubscriptionsRequest", p_dict), ApiListSubscriptionsRequest) as ApiListSubscriptionsRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "cursor: %s, " % _cursor
output += "limit: %s, " % _limit
return output
# Represents a realtime match.
class ApiMatch extends NakamaAsyncResult:
const _SCHEMA = {
"authoritative": {"name": "_authoritative", "type": TYPE_BOOL, "required": false},
"handler_name": {"name": "_handler_name", "type": TYPE_STRING, "required": false},
"label": {"name": "_label", "type": TYPE_STRING, "required": false},
"match_id": {"name": "_match_id", "type": TYPE_STRING, "required": false},
"size": {"name": "_size", "type": TYPE_INT, "required": false},
"tick_rate": {"name": "_tick_rate", "type": TYPE_INT, "required": false},
}
# True if it's an server-managed authoritative match, false otherwise.
var _authoritative
var authoritative : bool:
get:
return false if not _authoritative is bool else bool(_authoritative)
#
var _handler_name
var handler_name : String:
get:
return "" if not _handler_name is String else String(_handler_name)
# Match label, if any.
var _label
var label : String:
get:
return "" if not _label is String else String(_label)
# The ID of the match, can be used to join.
var _match_id
var match_id : String:
get:
return "" if not _match_id is String else String(_match_id)
# Current number of users in the match.
var _size
var size : int:
get:
return 0 if not _size is int else int(_size)
#
var _tick_rate
var tick_rate : int:
get:
return 0 if not _tick_rate is int else int(_tick_rate)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiMatch:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiMatch", p_dict), ApiMatch) as ApiMatch
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "authoritative: %s, " % _authoritative
output += "handler_name: %s, " % _handler_name
output += "label: %s, " % _label
output += "match_id: %s, " % _match_id
output += "size: %s, " % _size
output += "tick_rate: %s, " % _tick_rate
return output
# A list of realtime matches.
class ApiMatchList extends NakamaAsyncResult:
const _SCHEMA = {
"matches": {"name": "_matches", "type": TYPE_ARRAY, "required": false, "content": "ApiMatch"},
}
# A number of matches corresponding to a list operation.
var _matches
var matches : Array:
get:
return Array() if not _matches is Array else Array(_matches)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiMatchList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiMatchList", p_dict), ApiMatchList) as ApiMatchList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "matches: %s, " % [_matches]
return output
# A notification in the server.
class ApiNotification extends NakamaAsyncResult:
const _SCHEMA = {
"code": {"name": "_code", "type": TYPE_INT, "required": false},
"content": {"name": "_content", "type": TYPE_STRING, "required": false},
"create_time": {"name": "_create_time", "type": TYPE_STRING, "required": false},
"id": {"name": "_id", "type": TYPE_STRING, "required": false},
"persistent": {"name": "_persistent", "type": TYPE_BOOL, "required": false},
"sender_id": {"name": "_sender_id", "type": TYPE_STRING, "required": false},
"subject": {"name": "_subject", "type": TYPE_STRING, "required": false},
}
# Category code for this notification.
var _code
var code : int:
get:
return 0 if not _code is int else int(_code)
# Content of the notification in JSON.
var _content
var content : String:
get:
return "" if not _content is String else String(_content)
# The UNIX time when the notification was created.
var _create_time
var create_time : String:
get:
return "" if not _create_time is String else String(_create_time)
# ID of the Notification.
var _id
var id : String:
get:
return "" if not _id is String else String(_id)
# True if this notification was persisted to the database.
var _persistent
var persistent : bool:
get:
return false if not _persistent is bool else bool(_persistent)
# ID of the sender, if a user. Otherwise 'null'.
var _sender_id
var sender_id : String:
get:
return "" if not _sender_id is String else String(_sender_id)
# Subject of the notification.
var _subject
var subject : String:
get:
return "" if not _subject is String else String(_subject)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiNotification:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiNotification", p_dict), ApiNotification) as ApiNotification
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "code: %s, " % _code
output += "content: %s, " % _content
output += "create_time: %s, " % _create_time
output += "id: %s, " % _id
output += "persistent: %s, " % _persistent
output += "sender_id: %s, " % _sender_id
output += "subject: %s, " % _subject
return output
# A collection of zero or more notifications.
class ApiNotificationList extends NakamaAsyncResult:
const _SCHEMA = {
"cacheable_cursor": {"name": "_cacheable_cursor", "type": TYPE_STRING, "required": false},
"notifications": {"name": "_notifications", "type": TYPE_ARRAY, "required": false, "content": "ApiNotification"},
}
# Use this cursor to paginate notifications. Cache this to catch up to new notifications.
var _cacheable_cursor
var cacheable_cursor : String:
get:
return "" if not _cacheable_cursor is String else String(_cacheable_cursor)
# Collection of notifications.
var _notifications
var notifications : Array:
get:
return Array() if not _notifications is Array else Array(_notifications)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiNotificationList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiNotificationList", p_dict), ApiNotificationList) as ApiNotificationList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "cacheable_cursor: %s, " % _cacheable_cursor
output += "notifications: %s, " % [_notifications]
return output
# Operator that can be used to override the one set in the leaderboard.
# - NO_OVERRIDE: Do not override the leaderboard operator.
# - BEST: Override the leaderboard operator with BEST.
# - SET: Override the leaderboard operator with SET.
# - INCREMENT: Override the leaderboard operator with INCREMENT.
# - DECREMENT: Override the leaderboard operator with DECREMENT.# [ - NO_OVERRIDE: Do not override the leaderboard operator. - BEST: Override the leaderboard operator with BEST. - SET: Override the leaderboard operator with SET. - INCREMENT: Override the leaderboard operator with INCREMENT. - DECREMENT: Override the leaderboard operator with DECREMENT.]
enum ApiOperator {NO_OVERRIDE = 0,BEST = 1,SET = 2,INCREMENT = 3,DECREMENT = 4,}
# Storage objects to get.
class ApiReadStorageObjectId extends NakamaAsyncResult:
const _SCHEMA = {
"collection": {"name": "_collection", "type": TYPE_STRING, "required": false},
"key": {"name": "_key", "type": TYPE_STRING, "required": false},
"user_id": {"name": "_user_id", "type": TYPE_STRING, "required": false},
}
# The collection which stores the object.
var _collection
var collection : String:
get:
return "" if not _collection is String else String(_collection)
# The key of the object within the collection.
var _key
var key : String:
get:
return "" if not _key is String else String(_key)
# The user owner of the object.
var _user_id
var user_id : String:
get:
return "" if not _user_id is String else String(_user_id)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiReadStorageObjectId:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiReadStorageObjectId", p_dict), ApiReadStorageObjectId) as ApiReadStorageObjectId
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "collection: %s, " % _collection
output += "key: %s, " % _key
output += "user_id: %s, " % _user_id
return output
# Batch get storage objects.
class ApiReadStorageObjectsRequest extends NakamaAsyncResult:
const _SCHEMA = {
"object_ids": {"name": "_object_ids", "type": TYPE_ARRAY, "required": false, "content": "ApiReadStorageObjectId"},
}
# Batch of storage objects.
var _object_ids
var object_ids : Array:
get:
return Array() if not _object_ids is Array else Array(_object_ids)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiReadStorageObjectsRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiReadStorageObjectsRequest", p_dict), ApiReadStorageObjectsRequest) as ApiReadStorageObjectsRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "object_ids: %s, " % [_object_ids]
return output
# Execute an Lua function on the server.
class ApiRpc extends NakamaAsyncResult:
const _SCHEMA = {
"http_key": {"name": "_http_key", "type": TYPE_STRING, "required": false},
"id": {"name": "_id", "type": TYPE_STRING, "required": false},
"payload": {"name": "_payload", "type": TYPE_STRING, "required": false},
}
# The authentication key used when executed as a non-client HTTP request.
var _http_key
var http_key : String:
get:
return "" if not _http_key is String else String(_http_key)
# The identifier of the function.
var _id
var id : String:
get:
return "" if not _id is String else String(_id)
# The payload of the function which must be a JSON object.
var _payload
var payload : String:
get:
return "" if not _payload is String else String(_payload)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiRpc:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiRpc", p_dict), ApiRpc) as ApiRpc
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "http_key: %s, " % _http_key
output += "id: %s, " % _id
output += "payload: %s, " % _payload
return output
# A user's session used to authenticate messages.
class ApiSession extends NakamaAsyncResult:
const _SCHEMA = {
"created": {"name": "_created", "type": TYPE_BOOL, "required": false},
"refresh_token": {"name": "_refresh_token", "type": TYPE_STRING, "required": false},
"token": {"name": "_token", "type": TYPE_STRING, "required": false},
}
# True if the corresponding account was just created, false otherwise.
var _created
var created : bool:
get:
return false if not _created is bool else bool(_created)
# Refresh token that can be used for session token renewal.
var _refresh_token
var refresh_token : String:
get:
return "" if not _refresh_token is String else String(_refresh_token)
# Authentication credentials.
var _token
var token : String:
get:
return "" if not _token is String else String(_token)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiSession:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiSession", p_dict), ApiSession) as ApiSession
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "created: %s, " % _created
output += "refresh_token: %s, " % _refresh_token
output += "token: %s, " % _token
return output
# Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.
class ApiSessionLogoutRequest extends NakamaAsyncResult:
const _SCHEMA = {
"refresh_token": {"name": "_refresh_token", "type": TYPE_STRING, "required": false},
"token": {"name": "_token", "type": TYPE_STRING, "required": false},
}
# Refresh token to invalidate.
var _refresh_token
var refresh_token : String:
get:
return "" if not _refresh_token is String else String(_refresh_token)
# Session token to log out.
var _token
var token : String:
get:
return "" if not _token is String else String(_token)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiSessionLogoutRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiSessionLogoutRequest", p_dict), ApiSessionLogoutRequest) as ApiSessionLogoutRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "refresh_token: %s, " % _refresh_token
output += "token: %s, " % _token
return output
# Authenticate against the server with a refresh token.
class ApiSessionRefreshRequest extends NakamaAsyncResult:
const _SCHEMA = {
"token": {"name": "_token", "type": TYPE_STRING, "required": false},
"vars": {"name": "_vars", "type": TYPE_DICTIONARY, "required": false, "content": TYPE_STRING},
}
# Refresh token.
var _token
var token : String:
get:
return "" if not _token is String else String(_token)
# Extra information that will be bundled in the session token.
var _vars
var vars : Dictionary:
get:
return Dictionary() if not _vars is Dictionary else _vars.duplicate()
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiSessionRefreshRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiSessionRefreshRequest", p_dict), ApiSessionRefreshRequest) as ApiSessionRefreshRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "token: %s, " % _token
var map_string : String = ""
if typeof(_vars) == TYPE_DICTIONARY:
for k in _vars:
map_string += "{%s=%s}, " % [k, _vars[k]]
output += "vars: [%s], " % map_string
return output
# An object within the storage engine.
class ApiStorageObject extends NakamaAsyncResult:
const _SCHEMA = {
"collection": {"name": "_collection", "type": TYPE_STRING, "required": false},
"create_time": {"name": "_create_time", "type": TYPE_STRING, "required": false},
"key": {"name": "_key", "type": TYPE_STRING, "required": false},
"permission_read": {"name": "_permission_read", "type": TYPE_INT, "required": false},
"permission_write": {"name": "_permission_write", "type": TYPE_INT, "required": false},
"update_time": {"name": "_update_time", "type": TYPE_STRING, "required": false},
"user_id": {"name": "_user_id", "type": TYPE_STRING, "required": false},
"value": {"name": "_value", "type": TYPE_STRING, "required": false},
"version": {"name": "_version", "type": TYPE_STRING, "required": false},
}
# The collection which stores the object.
var _collection
var collection : String:
get:
return "" if not _collection is String else String(_collection)
# The UNIX time when the object was created.
var _create_time
var create_time : String:
get:
return "" if not _create_time is String else String(_create_time)
# The key of the object within the collection.
var _key
var key : String:
get:
return "" if not _key is String else String(_key)
# The read access permissions for the object.
var _permission_read
var permission_read : int:
get:
return 0 if not _permission_read is int else int(_permission_read)
# The write access permissions for the object.
var _permission_write
var permission_write : int:
get:
return 0 if not _permission_write is int else int(_permission_write)
# The UNIX time when the object was last updated.
var _update_time
var update_time : String:
get:
return "" if not _update_time is String else String(_update_time)
# The user owner of the object.
var _user_id
var user_id : String:
get:
return "" if not _user_id is String else String(_user_id)
# The value of the object.
var _value
var value : String:
get:
return "" if not _value is String else String(_value)
# The version hash of the object.
var _version
var version : String:
get:
return "" if not _version is String else String(_version)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiStorageObject:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiStorageObject", p_dict), ApiStorageObject) as ApiStorageObject
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "collection: %s, " % _collection
output += "create_time: %s, " % _create_time
output += "key: %s, " % _key
output += "permission_read: %s, " % _permission_read
output += "permission_write: %s, " % _permission_write
output += "update_time: %s, " % _update_time
output += "user_id: %s, " % _user_id
output += "value: %s, " % _value
output += "version: %s, " % _version
return output
# A storage acknowledgement.
class ApiStorageObjectAck extends NakamaAsyncResult:
const _SCHEMA = {
"collection": {"name": "_collection", "type": TYPE_STRING, "required": false},
"key": {"name": "_key", "type": TYPE_STRING, "required": false},
"user_id": {"name": "_user_id", "type": TYPE_STRING, "required": false},
"version": {"name": "_version", "type": TYPE_STRING, "required": false},
}
# The collection which stores the object.
var _collection
var collection : String:
get:
return "" if not _collection is String else String(_collection)
# The key of the object within the collection.
var _key
var key : String:
get:
return "" if not _key is String else String(_key)
# The owner of the object.
var _user_id
var user_id : String:
get:
return "" if not _user_id is String else String(_user_id)
# The version hash of the object.
var _version
var version : String:
get:
return "" if not _version is String else String(_version)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiStorageObjectAck:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiStorageObjectAck", p_dict), ApiStorageObjectAck) as ApiStorageObjectAck
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "collection: %s, " % _collection
output += "key: %s, " % _key
output += "user_id: %s, " % _user_id
output += "version: %s, " % _version
return output
# Batch of acknowledgements for the storage object write.
class ApiStorageObjectAcks extends NakamaAsyncResult:
const _SCHEMA = {
"acks": {"name": "_acks", "type": TYPE_ARRAY, "required": false, "content": "ApiStorageObjectAck"},
}
# Batch of storage write acknowledgements.
var _acks
var acks : Array:
get:
return Array() if not _acks is Array else Array(_acks)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiStorageObjectAcks:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiStorageObjectAcks", p_dict), ApiStorageObjectAcks) as ApiStorageObjectAcks
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "acks: %s, " % [_acks]
return output
# List of storage objects.
class ApiStorageObjectList extends NakamaAsyncResult:
const _SCHEMA = {
"cursor": {"name": "_cursor", "type": TYPE_STRING, "required": false},
"objects": {"name": "_objects", "type": TYPE_ARRAY, "required": false, "content": "ApiStorageObject"},
}
# The cursor for the next page of results, if any.
var _cursor
var cursor : String:
get:
return "" if not _cursor is String else String(_cursor)
# The list of storage objects.
var _objects
var objects : Array:
get:
return Array() if not _objects is Array else Array(_objects)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiStorageObjectList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiStorageObjectList", p_dict), ApiStorageObjectList) as ApiStorageObjectList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "cursor: %s, " % _cursor
output += "objects: %s, " % [_objects]
return output
# Batch of storage objects.
class ApiStorageObjects extends NakamaAsyncResult:
const _SCHEMA = {
"objects": {"name": "_objects", "type": TYPE_ARRAY, "required": false, "content": "ApiStorageObject"},
}
# The batch of storage objects.
var _objects
var objects : Array:
get:
return Array() if not _objects is Array else Array(_objects)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiStorageObjects:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiStorageObjects", p_dict), ApiStorageObjects) as ApiStorageObjects
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "objects: %s, " % [_objects]
return output
# Environment where a purchase/subscription took place,
# - UNKNOWN: Unknown environment.
# - SANDBOX: Sandbox/test environment.
# - PRODUCTION: Production environment.# [- UNKNOWN: Unknown environment. - SANDBOX: Sandbox/test environment. - PRODUCTION: Production environment.]
enum ApiStoreEnvironment {UNKNOWN = 0,SANDBOX = 1,PRODUCTION = 2,}
# Validation Provider,
# - APPLE_APP_STORE: Apple App Store
# - GOOGLE_PLAY_STORE: Google Play Store
# - HUAWEI_APP_GALLERY: Huawei App Gallery# [- APPLE_APP_STORE: Apple App Store - GOOGLE_PLAY_STORE: Google Play Store - HUAWEI_APP_GALLERY: Huawei App Gallery]
enum ApiStoreProvider {APPLE_APP_STORE = 0,GOOGLE_PLAY_STORE = 1,HUAWEI_APP_GALLERY = 2,}
# A list of validated subscriptions stored by Nakama.
class ApiSubscriptionList extends NakamaAsyncResult:
const _SCHEMA = {
"cursor": {"name": "_cursor", "type": TYPE_STRING, "required": false},
"prev_cursor": {"name": "_prev_cursor", "type": TYPE_STRING, "required": false},
"validated_subscriptions": {"name": "_validated_subscriptions", "type": TYPE_ARRAY, "required": false, "content": "ApiValidatedSubscription"},
}
# The cursor to send when retrieving the next page, if any.
var _cursor
var cursor : String:
get:
return "" if not _cursor is String else String(_cursor)
# The cursor to send when retrieving the previous page, if any.
var _prev_cursor
var prev_cursor : String:
get:
return "" if not _prev_cursor is String else String(_prev_cursor)
# Stored validated subscriptions.
var _validated_subscriptions
var validated_subscriptions : Array:
get:
return Array() if not _validated_subscriptions is Array else Array(_validated_subscriptions)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiSubscriptionList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiSubscriptionList", p_dict), ApiSubscriptionList) as ApiSubscriptionList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "cursor: %s, " % _cursor
output += "prev_cursor: %s, " % _prev_cursor
output += "validated_subscriptions: %s, " % [_validated_subscriptions]
return output
# A tournament on the server.
class ApiTournament extends NakamaAsyncResult:
const _SCHEMA = {
"authoritative": {"name": "_authoritative", "type": TYPE_BOOL, "required": false},
"can_enter": {"name": "_can_enter", "type": TYPE_BOOL, "required": false},
"category": {"name": "_category", "type": TYPE_INT, "required": false},
"create_time": {"name": "_create_time", "type": TYPE_STRING, "required": false},
"description": {"name": "_description", "type": TYPE_STRING, "required": false},
"duration": {"name": "_duration", "type": TYPE_INT, "required": false},
"end_active": {"name": "_end_active", "type": TYPE_INT, "required": false},
"end_time": {"name": "_end_time", "type": TYPE_STRING, "required": false},
"id": {"name": "_id", "type": TYPE_STRING, "required": false},
"max_num_score": {"name": "_max_num_score", "type": TYPE_INT, "required": false},
"max_size": {"name": "_max_size", "type": TYPE_INT, "required": false},
"metadata": {"name": "_metadata", "type": TYPE_STRING, "required": false},
"next_reset": {"name": "_next_reset", "type": TYPE_INT, "required": false},
"operator": {"name": "_operator", "type": TYPE_INT, "required": false},
"prev_reset": {"name": "_prev_reset", "type": TYPE_INT, "required": false},
"size": {"name": "_size", "type": TYPE_INT, "required": false},
"sort_order": {"name": "_sort_order", "type": TYPE_INT, "required": false},
"start_active": {"name": "_start_active", "type": TYPE_INT, "required": false},
"start_time": {"name": "_start_time", "type": TYPE_STRING, "required": false},
"title": {"name": "_title", "type": TYPE_STRING, "required": false},
}
# Whether the leaderboard was created authoritatively or not.
var _authoritative
var authoritative : bool:
get:
return false if not _authoritative is bool else bool(_authoritative)
# True if the tournament is active and can enter. A computed value.
var _can_enter
var can_enter : bool:
get:
return false if not _can_enter is bool else bool(_can_enter)
# The category of the tournament. e.g. "vip" could be category 1.
var _category
var category : int:
get:
return 0 if not _category is int else int(_category)
# The UNIX time when the tournament was created.
var _create_time
var create_time : String:
get:
return "" if not _create_time is String else String(_create_time)
# The description of the tournament. May be blank.
var _description
var description : String:
get:
return "" if not _description is String else String(_description)
# Duration of the tournament in seconds.
var _duration
var duration : int:
get:
return 0 if not _duration is int else int(_duration)
# The UNIX time when the tournament stops being active until next reset. A computed value.
var _end_active
var end_active : int:
get:
return 0 if not _end_active is int else int(_end_active)
# The UNIX time when the tournament will be stopped.
var _end_time
var end_time : String:
get:
return "" if not _end_time is String else String(_end_time)
# The ID of the tournament.
var _id
var id : String:
get:
return "" if not _id is String else String(_id)
# The maximum score updates allowed per player for the current tournament.
var _max_num_score
var max_num_score : int:
get:
return 0 if not _max_num_score is int else int(_max_num_score)
# The maximum number of players for the tournament.
var _max_size
var max_size : int:
get:
return 0 if not _max_size is int else int(_max_size)
# Additional information stored as a JSON object.
var _metadata
var metadata : String:
get:
return "" if not _metadata is String else String(_metadata)
# The UNIX time when the tournament is next playable. A computed value.
var _next_reset
var next_reset : int:
get:
return 0 if not _next_reset is int else int(_next_reset)
# Operator.
var _operator
var operator : int:
get:
return ApiOperator.values()[0] if not ApiOperator.values().has(_operator) else _operator
# The UNIX time when the tournament was last reset. A computed value.
var _prev_reset
var prev_reset : int:
get:
return 0 if not _prev_reset is int else int(_prev_reset)
# The current number of players in the tournament.
var _size
var size : int:
get:
return 0 if not _size is int else int(_size)
# ASC (0) or DESC (1) sort mode of scores in the tournament.
var _sort_order
var sort_order : int:
get:
return 0 if not _sort_order is int else int(_sort_order)
# The UNIX time when the tournament start being active. A computed value.
var _start_active
var start_active : int:
get:
return 0 if not _start_active is int else int(_start_active)
# The UNIX time when the tournament will start.
var _start_time
var start_time : String:
get:
return "" if not _start_time is String else String(_start_time)
# The title for the tournament.
var _title
var title : String:
get:
return "" if not _title is String else String(_title)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiTournament:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiTournament", p_dict), ApiTournament) as ApiTournament
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "authoritative: %s, " % _authoritative
output += "can_enter: %s, " % _can_enter
output += "category: %s, " % _category
output += "create_time: %s, " % _create_time
output += "description: %s, " % _description
output += "duration: %s, " % _duration
output += "end_active: %s, " % _end_active
output += "end_time: %s, " % _end_time
output += "id: %s, " % _id
output += "max_num_score: %s, " % _max_num_score
output += "max_size: %s, " % _max_size
output += "metadata: %s, " % _metadata
output += "next_reset: %s, " % _next_reset
output += "operator: %s, " % _operator
output += "prev_reset: %s, " % _prev_reset
output += "size: %s, " % _size
output += "sort_order: %s, " % _sort_order
output += "start_active: %s, " % _start_active
output += "start_time: %s, " % _start_time
output += "title: %s, " % _title
return output
# A list of tournaments.
class ApiTournamentList extends NakamaAsyncResult:
const _SCHEMA = {
"cursor": {"name": "_cursor", "type": TYPE_STRING, "required": false},
"tournaments": {"name": "_tournaments", "type": TYPE_ARRAY, "required": false, "content": "ApiTournament"},
}
# A pagination cursor (optional).
var _cursor
var cursor : String:
get:
return "" if not _cursor is String else String(_cursor)
# The list of tournaments returned.
var _tournaments
var tournaments : Array:
get:
return Array() if not _tournaments is Array else Array(_tournaments)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiTournamentList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiTournamentList", p_dict), ApiTournamentList) as ApiTournamentList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "cursor: %s, " % _cursor
output += "tournaments: %s, " % [_tournaments]
return output
# A set of tournament records which may be part of a tournament records page or a batch of individual records.
class ApiTournamentRecordList extends NakamaAsyncResult:
const _SCHEMA = {
"next_cursor": {"name": "_next_cursor", "type": TYPE_STRING, "required": false},
"owner_records": {"name": "_owner_records", "type": TYPE_ARRAY, "required": false, "content": "ApiLeaderboardRecord"},
"prev_cursor": {"name": "_prev_cursor", "type": TYPE_STRING, "required": false},
"records": {"name": "_records", "type": TYPE_ARRAY, "required": false, "content": "ApiLeaderboardRecord"},
}
# The cursor to send when retireving the next page (optional).
var _next_cursor
var next_cursor : String:
get:
return "" if not _next_cursor is String else String(_next_cursor)
# A batched set of tournament records belonging to specified owners.
var _owner_records
var owner_records : Array:
get:
return Array() if not _owner_records is Array else Array(_owner_records)
# The cursor to send when retrieving the previous page (optional).
var _prev_cursor
var prev_cursor : String:
get:
return "" if not _prev_cursor is String else String(_prev_cursor)
# A list of tournament records.
var _records
var records : Array:
get:
return Array() if not _records is Array else Array(_records)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiTournamentRecordList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiTournamentRecordList", p_dict), ApiTournamentRecordList) as ApiTournamentRecordList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "next_cursor: %s, " % _next_cursor
output += "owner_records: %s, " % [_owner_records]
output += "prev_cursor: %s, " % _prev_cursor
output += "records: %s, " % [_records]
return output
# Update a user's account details.
class ApiUpdateAccountRequest extends NakamaAsyncResult:
const _SCHEMA = {
"avatar_url": {"name": "_avatar_url", "type": TYPE_STRING, "required": false},
"display_name": {"name": "_display_name", "type": TYPE_STRING, "required": false},
"lang_tag": {"name": "_lang_tag", "type": TYPE_STRING, "required": false},
"location": {"name": "_location", "type": TYPE_STRING, "required": false},
"timezone": {"name": "_timezone", "type": TYPE_STRING, "required": false},
"username": {"name": "_username", "type": TYPE_STRING, "required": false},
}
# A URL for an avatar image.
var _avatar_url
var avatar_url : String:
get:
return "" if not _avatar_url is String else String(_avatar_url)
# The display name of the user.
var _display_name
var display_name : String:
get:
return "" if not _display_name is String else String(_display_name)
# The language expected to be a tag which follows the BCP-47 spec.
var _lang_tag
var lang_tag : String:
get:
return "" if not _lang_tag is String else String(_lang_tag)
# The location set by the user.
var _location
var location : String:
get:
return "" if not _location is String else String(_location)
# The timezone set by the user.
var _timezone
var timezone : String:
get:
return "" if not _timezone is String else String(_timezone)
# The username of the user's account.
var _username
var username : String:
get:
return "" if not _username is String else String(_username)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiUpdateAccountRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiUpdateAccountRequest", p_dict), ApiUpdateAccountRequest) as ApiUpdateAccountRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "avatar_url: %s, " % _avatar_url
output += "display_name: %s, " % _display_name
output += "lang_tag: %s, " % _lang_tag
output += "location: %s, " % _location
output += "timezone: %s, " % _timezone
output += "username: %s, " % _username
return output
# Update fields in a given group.
class ApiUpdateGroupRequest extends NakamaAsyncResult:
const _SCHEMA = {
"avatar_url": {"name": "_avatar_url", "type": TYPE_STRING, "required": false},
"description": {"name": "_description", "type": TYPE_STRING, "required": false},
"group_id": {"name": "_group_id", "type": TYPE_STRING, "required": false},
"lang_tag": {"name": "_lang_tag", "type": TYPE_STRING, "required": false},
"name": {"name": "_name", "type": TYPE_STRING, "required": false},
"open": {"name": "_open", "type": TYPE_BOOL, "required": false},
}
# Avatar URL.
var _avatar_url
var avatar_url : String:
get:
return "" if not _avatar_url is String else String(_avatar_url)
# Description string.
var _description
var description : String:
get:
return "" if not _description is String else String(_description)
# The ID of the group to update.
var _group_id
var group_id : String:
get:
return "" if not _group_id is String else String(_group_id)
# Lang tag.
var _lang_tag
var lang_tag : String:
get:
return "" if not _lang_tag is String else String(_lang_tag)
# Name.
var _name
var name : String:
get:
return "" if not _name is String else String(_name)
# Open is true if anyone should be allowed to join, or false if joins must be approved by a group admin.
var _open
var open : bool:
get:
return false if not _open is bool else bool(_open)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiUpdateGroupRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiUpdateGroupRequest", p_dict), ApiUpdateGroupRequest) as ApiUpdateGroupRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "avatar_url: %s, " % _avatar_url
output += "description: %s, " % _description
output += "group_id: %s, " % _group_id
output += "lang_tag: %s, " % _lang_tag
output += "name: %s, " % _name
output += "open: %s, " % _open
return output
# A user in the server.
class ApiUser extends NakamaAsyncResult:
const _SCHEMA = {
"apple_id": {"name": "_apple_id", "type": TYPE_STRING, "required": false},
"avatar_url": {"name": "_avatar_url", "type": TYPE_STRING, "required": false},
"create_time": {"name": "_create_time", "type": TYPE_STRING, "required": false},
"display_name": {"name": "_display_name", "type": TYPE_STRING, "required": false},
"edge_count": {"name": "_edge_count", "type": TYPE_INT, "required": false},
"facebook_id": {"name": "_facebook_id", "type": TYPE_STRING, "required": false},
"facebook_instant_game_id": {"name": "_facebook_instant_game_id", "type": TYPE_STRING, "required": false},
"gamecenter_id": {"name": "_gamecenter_id", "type": TYPE_STRING, "required": false},
"google_id": {"name": "_google_id", "type": TYPE_STRING, "required": false},
"id": {"name": "_id", "type": TYPE_STRING, "required": false},
"lang_tag": {"name": "_lang_tag", "type": TYPE_STRING, "required": false},
"location": {"name": "_location", "type": TYPE_STRING, "required": false},
"metadata": {"name": "_metadata", "type": TYPE_STRING, "required": false},
"online": {"name": "_online", "type": TYPE_BOOL, "required": false},
"steam_id": {"name": "_steam_id", "type": TYPE_STRING, "required": false},
"timezone": {"name": "_timezone", "type": TYPE_STRING, "required": false},
"update_time": {"name": "_update_time", "type": TYPE_STRING, "required": false},
"username": {"name": "_username", "type": TYPE_STRING, "required": false},
}
# The Apple Sign In ID in the user's account.
var _apple_id
var apple_id : String:
get:
return "" if not _apple_id is String else String(_apple_id)
# A URL for an avatar image.
var _avatar_url
var avatar_url : String:
get:
return "" if not _avatar_url is String else String(_avatar_url)
# The UNIX time when the user was created.
var _create_time
var create_time : String:
get:
return "" if not _create_time is String else String(_create_time)
# The display name of the user.
var _display_name
var display_name : String:
get:
return "" if not _display_name is String else String(_display_name)
# Number of related edges to this user.
var _edge_count
var edge_count : int:
get:
return 0 if not _edge_count is int else int(_edge_count)
# The Facebook id in the user's account.
var _facebook_id
var facebook_id : String:
get:
return "" if not _facebook_id is String else String(_facebook_id)
# The Facebook Instant Game ID in the user's account.
var _facebook_instant_game_id
var facebook_instant_game_id : String:
get:
return "" if not _facebook_instant_game_id is String else String(_facebook_instant_game_id)
# The Apple Game Center in of the user's account.
var _gamecenter_id
var gamecenter_id : String:
get:
return "" if not _gamecenter_id is String else String(_gamecenter_id)
# The Google id in the user's account.
var _google_id
var google_id : String:
get:
return "" if not _google_id is String else String(_google_id)
# The id of the user's account.
var _id
var id : String:
get:
return "" if not _id is String else String(_id)
# The language expected to be a tag which follows the BCP-47 spec.
var _lang_tag
var lang_tag : String:
get:
return "" if not _lang_tag is String else String(_lang_tag)
# The location set by the user.
var _location
var location : String:
get:
return "" if not _location is String else String(_location)
# Additional information stored as a JSON object.
var _metadata
var metadata : String:
get:
return "" if not _metadata is String else String(_metadata)
# Indicates whether the user is currently online.
var _online
var online : bool:
get:
return false if not _online is bool else bool(_online)
# The Steam id in the user's account.
var _steam_id
var steam_id : String:
get:
return "" if not _steam_id is String else String(_steam_id)
# The timezone set by the user.
var _timezone
var timezone : String:
get:
return "" if not _timezone is String else String(_timezone)
# The UNIX time when the user was last updated.
var _update_time
var update_time : String:
get:
return "" if not _update_time is String else String(_update_time)
# The username of the user's account.
var _username
var username : String:
get:
return "" if not _username is String else String(_username)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiUser:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiUser", p_dict), ApiUser) as ApiUser
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "apple_id: %s, " % _apple_id
output += "avatar_url: %s, " % _avatar_url
output += "create_time: %s, " % _create_time
output += "display_name: %s, " % _display_name
output += "edge_count: %s, " % _edge_count
output += "facebook_id: %s, " % _facebook_id
output += "facebook_instant_game_id: %s, " % _facebook_instant_game_id
output += "gamecenter_id: %s, " % _gamecenter_id
output += "google_id: %s, " % _google_id
output += "id: %s, " % _id
output += "lang_tag: %s, " % _lang_tag
output += "location: %s, " % _location
output += "metadata: %s, " % _metadata
output += "online: %s, " % _online
output += "steam_id: %s, " % _steam_id
output += "timezone: %s, " % _timezone
output += "update_time: %s, " % _update_time
output += "username: %s, " % _username
return output
# A list of groups belonging to a user, along with the user's role in each group.
class ApiUserGroupList extends NakamaAsyncResult:
const _SCHEMA = {
"cursor": {"name": "_cursor", "type": TYPE_STRING, "required": false},
"user_groups": {"name": "_user_groups", "type": TYPE_ARRAY, "required": false, "content": "UserGroupListUserGroup"},
}
# Cursor for the next page of results, if any.
var _cursor
var cursor : String:
get:
return "" if not _cursor is String else String(_cursor)
# Group-role pairs for a user.
var _user_groups
var user_groups : Array:
get:
return Array() if not _user_groups is Array else Array(_user_groups)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiUserGroupList:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiUserGroupList", p_dict), ApiUserGroupList) as ApiUserGroupList
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "cursor: %s, " % _cursor
output += "user_groups: %s, " % [_user_groups]
return output
# A collection of zero or more users.
class ApiUsers extends NakamaAsyncResult:
const _SCHEMA = {
"users": {"name": "_users", "type": TYPE_ARRAY, "required": false, "content": "ApiUser"},
}
# The User objects.
var _users
var users : Array:
get:
return Array() if not _users is Array else Array(_users)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiUsers:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiUsers", p_dict), ApiUsers) as ApiUsers
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "users: %s, " % [_users]
return output
#
class ApiValidatePurchaseAppleRequest extends NakamaAsyncResult:
const _SCHEMA = {
"persist": {"name": "_persist", "type": TYPE_BOOL, "required": false},
"receipt": {"name": "_receipt", "type": TYPE_STRING, "required": false},
}
#
var _persist
var persist : bool:
get:
return false if not _persist is bool else bool(_persist)
# Base64 encoded Apple receipt data payload.
var _receipt
var receipt : String:
get:
return "" if not _receipt is String else String(_receipt)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiValidatePurchaseAppleRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiValidatePurchaseAppleRequest", p_dict), ApiValidatePurchaseAppleRequest) as ApiValidatePurchaseAppleRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "persist: %s, " % _persist
output += "receipt: %s, " % _receipt
return output
#
class ApiValidatePurchaseGoogleRequest extends NakamaAsyncResult:
const _SCHEMA = {
"persist": {"name": "_persist", "type": TYPE_BOOL, "required": false},
"purchase": {"name": "_purchase", "type": TYPE_STRING, "required": false},
}
#
var _persist
var persist : bool:
get:
return false if not _persist is bool else bool(_persist)
# JSON encoded Google purchase payload.
var _purchase
var purchase : String:
get:
return "" if not _purchase is String else String(_purchase)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiValidatePurchaseGoogleRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiValidatePurchaseGoogleRequest", p_dict), ApiValidatePurchaseGoogleRequest) as ApiValidatePurchaseGoogleRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "persist: %s, " % _persist
output += "purchase: %s, " % _purchase
return output
#
class ApiValidatePurchaseHuaweiRequest extends NakamaAsyncResult:
const _SCHEMA = {
"persist": {"name": "_persist", "type": TYPE_BOOL, "required": false},
"purchase": {"name": "_purchase", "type": TYPE_STRING, "required": false},
"signature": {"name": "_signature", "type": TYPE_STRING, "required": false},
}
#
var _persist
var persist : bool:
get:
return false if not _persist is bool else bool(_persist)
# JSON encoded Huawei InAppPurchaseData.
var _purchase
var purchase : String:
get:
return "" if not _purchase is String else String(_purchase)
# InAppPurchaseData signature.
var _signature
var signature : String:
get:
return "" if not _signature is String else String(_signature)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiValidatePurchaseHuaweiRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiValidatePurchaseHuaweiRequest", p_dict), ApiValidatePurchaseHuaweiRequest) as ApiValidatePurchaseHuaweiRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "persist: %s, " % _persist
output += "purchase: %s, " % _purchase
output += "signature: %s, " % _signature
return output
# Validate IAP response.
class ApiValidatePurchaseResponse extends NakamaAsyncResult:
const _SCHEMA = {
"validated_purchases": {"name": "_validated_purchases", "type": TYPE_ARRAY, "required": false, "content": "ApiValidatedPurchase"},
}
# Newly seen validated purchases.
var _validated_purchases
var validated_purchases : Array:
get:
return Array() if not _validated_purchases is Array else Array(_validated_purchases)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiValidatePurchaseResponse:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiValidatePurchaseResponse", p_dict), ApiValidatePurchaseResponse) as ApiValidatePurchaseResponse
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "validated_purchases: %s, " % [_validated_purchases]
return output
#
class ApiValidateSubscriptionAppleRequest extends NakamaAsyncResult:
const _SCHEMA = {
"persist": {"name": "_persist", "type": TYPE_BOOL, "required": false},
"receipt": {"name": "_receipt", "type": TYPE_STRING, "required": false},
}
# Persist the subscription.
var _persist
var persist : bool:
get:
return false if not _persist is bool else bool(_persist)
# Base64 encoded Apple receipt data payload.
var _receipt
var receipt : String:
get:
return "" if not _receipt is String else String(_receipt)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiValidateSubscriptionAppleRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiValidateSubscriptionAppleRequest", p_dict), ApiValidateSubscriptionAppleRequest) as ApiValidateSubscriptionAppleRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "persist: %s, " % _persist
output += "receipt: %s, " % _receipt
return output
#
class ApiValidateSubscriptionGoogleRequest extends NakamaAsyncResult:
const _SCHEMA = {
"persist": {"name": "_persist", "type": TYPE_BOOL, "required": false},
"receipt": {"name": "_receipt", "type": TYPE_STRING, "required": false},
}
# Persist the subscription.
var _persist
var persist : bool:
get:
return false if not _persist is bool else bool(_persist)
# JSON encoded Google purchase payload.
var _receipt
var receipt : String:
get:
return "" if not _receipt is String else String(_receipt)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiValidateSubscriptionGoogleRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiValidateSubscriptionGoogleRequest", p_dict), ApiValidateSubscriptionGoogleRequest) as ApiValidateSubscriptionGoogleRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "persist: %s, " % _persist
output += "receipt: %s, " % _receipt
return output
# Validate Subscription response.
class ApiValidateSubscriptionResponse extends NakamaAsyncResult:
const _SCHEMA = {
"validated_subscription": {"name": "_validated_subscription", "type": "ApiValidatedSubscription", "required": false},
}
#
var _validated_subscription
var validated_subscription : ApiValidatedSubscription:
get:
return _validated_subscription as ApiValidatedSubscription
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiValidateSubscriptionResponse:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiValidateSubscriptionResponse", p_dict), ApiValidateSubscriptionResponse) as ApiValidateSubscriptionResponse
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "validated_subscription: %s, " % _validated_subscription
return output
# Validated Purchase stored by Nakama.
class ApiValidatedPurchase extends NakamaAsyncResult:
const _SCHEMA = {
"create_time": {"name": "_create_time", "type": TYPE_STRING, "required": false},
"environment": {"name": "_environment", "type": TYPE_INT, "required": false},
"product_id": {"name": "_product_id", "type": TYPE_STRING, "required": false},
"provider_response": {"name": "_provider_response", "type": TYPE_STRING, "required": false},
"purchase_time": {"name": "_purchase_time", "type": TYPE_STRING, "required": false},
"refund_time": {"name": "_refund_time", "type": TYPE_STRING, "required": false},
"seen_before": {"name": "_seen_before", "type": TYPE_BOOL, "required": false},
"store": {"name": "_store", "type": TYPE_INT, "required": false},
"transaction_id": {"name": "_transaction_id", "type": TYPE_STRING, "required": false},
"update_time": {"name": "_update_time", "type": TYPE_STRING, "required": false},
"user_id": {"name": "_user_id", "type": TYPE_STRING, "required": false},
}
# Timestamp when the receipt validation was stored in DB.
var _create_time
var create_time : String:
get:
return "" if not _create_time is String else String(_create_time)
# Whether the purchase was done in production or sandbox environment.
var _environment
var environment : int:
get:
return ApiStoreEnvironment.values()[0] if not ApiStoreEnvironment.values().has(_environment) else _environment
# Purchase Product ID.
var _product_id
var product_id : String:
get:
return "" if not _product_id is String else String(_product_id)
# Raw provider validation response.
var _provider_response
var provider_response : String:
get:
return "" if not _provider_response is String else String(_provider_response)
# Timestamp when the purchase was done.
var _purchase_time
var purchase_time : String:
get:
return "" if not _purchase_time is String else String(_purchase_time)
#
var _refund_time
var refund_time : String:
get:
return "" if not _refund_time is String else String(_refund_time)
# Whether the purchase had already been validated by Nakama before.
var _seen_before
var seen_before : bool:
get:
return false if not _seen_before is bool else bool(_seen_before)
#
var _store
var store : int:
get:
return ApiStoreProvider.values()[0] if not ApiStoreProvider.values().has(_store) else _store
# Purchase Transaction ID.
var _transaction_id
var transaction_id : String:
get:
return "" if not _transaction_id is String else String(_transaction_id)
# Timestamp when the receipt validation was updated in DB.
var _update_time
var update_time : String:
get:
return "" if not _update_time is String else String(_update_time)
# Purchase User ID.
var _user_id
var user_id : String:
get:
return "" if not _user_id is String else String(_user_id)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiValidatedPurchase:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiValidatedPurchase", p_dict), ApiValidatedPurchase) as ApiValidatedPurchase
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "create_time: %s, " % _create_time
output += "environment: %s, " % _environment
output += "product_id: %s, " % _product_id
output += "provider_response: %s, " % _provider_response
output += "purchase_time: %s, " % _purchase_time
output += "refund_time: %s, " % _refund_time
output += "seen_before: %s, " % _seen_before
output += "store: %s, " % _store
output += "transaction_id: %s, " % _transaction_id
output += "update_time: %s, " % _update_time
output += "user_id: %s, " % _user_id
return output
#
class ApiValidatedSubscription extends NakamaAsyncResult:
const _SCHEMA = {
"active": {"name": "_active", "type": TYPE_BOOL, "required": false},
"create_time": {"name": "_create_time", "type": TYPE_STRING, "required": false},
"environment": {"name": "_environment", "type": TYPE_INT, "required": false},
"expiry_time": {"name": "_expiry_time", "type": TYPE_STRING, "required": false},
"original_transaction_id": {"name": "_original_transaction_id", "type": TYPE_STRING, "required": false},
"product_id": {"name": "_product_id", "type": TYPE_STRING, "required": false},
"provider_notification": {"name": "_provider_notification", "type": TYPE_STRING, "required": false},
"provider_response": {"name": "_provider_response", "type": TYPE_STRING, "required": false},
"purchase_time": {"name": "_purchase_time", "type": TYPE_STRING, "required": false},
"refund_time": {"name": "_refund_time", "type": TYPE_STRING, "required": false},
"store": {"name": "_store", "type": TYPE_INT, "required": false},
"update_time": {"name": "_update_time", "type": TYPE_STRING, "required": false},
"user_id": {"name": "_user_id", "type": TYPE_STRING, "required": false},
}
# Whether the subscription is currently active or not.
var _active
var active : bool:
get:
return false if not _active is bool else bool(_active)
# UNIX Timestamp when the receipt validation was stored in DB.
var _create_time
var create_time : String:
get:
return "" if not _create_time is String else String(_create_time)
# Whether the purchase was done in production or sandbox environment.
var _environment
var environment : int:
get:
return ApiStoreEnvironment.values()[0] if not ApiStoreEnvironment.values().has(_environment) else _environment
# Subscription expiration time. The subscription can still be auto-renewed to extend the expiration time further.
var _expiry_time
var expiry_time : String:
get:
return "" if not _expiry_time is String else String(_expiry_time)
# Purchase Original transaction ID (we only keep track of the original subscription, not subsequent renewals).
var _original_transaction_id
var original_transaction_id : String:
get:
return "" if not _original_transaction_id is String else String(_original_transaction_id)
# Purchase Product ID.
var _product_id
var product_id : String:
get:
return "" if not _product_id is String else String(_product_id)
# Raw provider notification body.
var _provider_notification
var provider_notification : String:
get:
return "" if not _provider_notification is String else String(_provider_notification)
# Raw provider validation response body.
var _provider_response
var provider_response : String:
get:
return "" if not _provider_response is String else String(_provider_response)
# UNIX Timestamp when the purchase was done.
var _purchase_time
var purchase_time : String:
get:
return "" if not _purchase_time is String else String(_purchase_time)
# Subscription refund time. If this time is set, the subscription was refunded.
var _refund_time
var refund_time : String:
get:
return "" if not _refund_time is String else String(_refund_time)
#
var _store
var store : int:
get:
return ApiStoreProvider.values()[0] if not ApiStoreProvider.values().has(_store) else _store
# UNIX Timestamp when the receipt validation was updated in DB.
var _update_time
var update_time : String:
get:
return "" if not _update_time is String else String(_update_time)
# Subscription User ID.
var _user_id
var user_id : String:
get:
return "" if not _user_id is String else String(_user_id)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiValidatedSubscription:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiValidatedSubscription", p_dict), ApiValidatedSubscription) as ApiValidatedSubscription
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "active: %s, " % _active
output += "create_time: %s, " % _create_time
output += "environment: %s, " % _environment
output += "expiry_time: %s, " % _expiry_time
output += "original_transaction_id: %s, " % _original_transaction_id
output += "product_id: %s, " % _product_id
output += "provider_notification: %s, " % _provider_notification
output += "provider_response: %s, " % _provider_response
output += "purchase_time: %s, " % _purchase_time
output += "refund_time: %s, " % _refund_time
output += "store: %s, " % _store
output += "update_time: %s, " % _update_time
output += "user_id: %s, " % _user_id
return output
# The object to store.
class ApiWriteStorageObject extends NakamaAsyncResult:
const _SCHEMA = {
"collection": {"name": "_collection", "type": TYPE_STRING, "required": false},
"key": {"name": "_key", "type": TYPE_STRING, "required": false},
"permission_read": {"name": "_permission_read", "type": TYPE_INT, "required": false},
"permission_write": {"name": "_permission_write", "type": TYPE_INT, "required": false},
"value": {"name": "_value", "type": TYPE_STRING, "required": false},
"version": {"name": "_version", "type": TYPE_STRING, "required": false},
}
# The collection to store the object.
var _collection
var collection : String:
get:
return "" if not _collection is String else String(_collection)
# The key for the object within the collection.
var _key
var key : String:
get:
return "" if not _key is String else String(_key)
# The read access permissions for the object.
var _permission_read
var permission_read : int:
get:
return 0 if not _permission_read is int else int(_permission_read)
# The write access permissions for the object.
var _permission_write
var permission_write : int:
get:
return 0 if not _permission_write is int else int(_permission_write)
# The value of the object.
var _value
var value : String:
get:
return "" if not _value is String else String(_value)
# The version hash of the object to check. Possible values are: ["", "*", "#hash#"].
var _version
var version : String:
get:
return "" if not _version is String else String(_version)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiWriteStorageObject:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiWriteStorageObject", p_dict), ApiWriteStorageObject) as ApiWriteStorageObject
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "collection: %s, " % _collection
output += "key: %s, " % _key
output += "permission_read: %s, " % _permission_read
output += "permission_write: %s, " % _permission_write
output += "value: %s, " % _value
output += "version: %s, " % _version
return output
# Write objects to the storage engine.
class ApiWriteStorageObjectsRequest extends NakamaAsyncResult:
const _SCHEMA = {
"objects": {"name": "_objects", "type": TYPE_ARRAY, "required": false, "content": "ApiWriteStorageObject"},
}
# The objects to store on the server.
var _objects
var objects : Array:
get:
return Array() if not _objects is Array else Array(_objects)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ApiWriteStorageObjectsRequest:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ApiWriteStorageObjectsRequest", p_dict), ApiWriteStorageObjectsRequest) as ApiWriteStorageObjectsRequest
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "objects: %s, " % [_objects]
return output
#
class ProtobufAny extends NakamaAsyncResult:
const _SCHEMA = {
"type_url": {"name": "_type_url", "type": TYPE_STRING, "required": false},
"value": {"name": "_value", "type": TYPE_STRING, "required": false},
}
#
var _type_url
var type_url : String:
get:
return "" if not _type_url is String else String(_type_url)
#
var _value
var value : String:
get:
return "" if not _value is String else String(_value)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> ProtobufAny:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "ProtobufAny", p_dict), ProtobufAny) as ProtobufAny
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "type_url: %s, " % _type_url
output += "value: %s, " % _value
return output
#
class RpcStatus extends NakamaAsyncResult:
const _SCHEMA = {
"code": {"name": "_code", "type": TYPE_INT, "required": false},
"details": {"name": "_details", "type": TYPE_ARRAY, "required": false, "content": "ProtobufAny"},
"message": {"name": "_message", "type": TYPE_STRING, "required": false},
}
#
var _code
var code : int:
get:
return 0 if not _code is int else int(_code)
#
var _details
var details : Array:
get:
return Array() if not _details is Array else Array(_details)
#
var _message
var message : String:
get:
return "" if not _message is String else String(_message)
func _init(p_exception = null):
super(p_exception)
static func create(p_ns : GDScript, p_dict : Dictionary) -> RpcStatus:
return _safe_ret(NakamaSerializer.deserialize(p_ns, "RpcStatus", p_dict), RpcStatus) as RpcStatus
func serialize() -> Dictionary:
return NakamaSerializer.serialize(self)
func _to_string() -> String:
if is_exception():
return get_exception()._to_string()
var output : String = ""
output += "code: %s, " % _code
output += "details: %s, " % [_details]
output += "message: %s, " % _message
return output
# The low level client for the Nakama API.
class ApiClient extends RefCounted:
var _base_uri : String
var _http_adapter
var _namespace : GDScript
var _server_key : String
var auto_refresh := true
var auto_refresh_time := 300
var auto_retry : bool:
set(p_value):
_http_adapter.auto_retry = p_value
get:
return _http_adapter.auto_retry
var auto_retry_count : int:
set(p_value):
_http_adapter.auto_retry_count = p_value
get:
return _http_adapter.auto_retry_count
var auto_retry_backoff_base : int:
set(p_value):
_http_adapter.auto_retry_backoff_base = p_value
get:
return _http_adapter.auto_retry_backoff_base
var last_cancel_token:
get:
return _http_adapter.get_last_token()
func _init(p_base_uri : String, p_http_adapter, p_namespace : GDScript, p_server_key : String, p_timeout : int = 10):
_base_uri = p_base_uri
_http_adapter = p_http_adapter
_http_adapter.timeout = p_timeout
_namespace = p_namespace
_server_key = p_server_key
func _refresh_session(p_session : NakamaSession):
if auto_refresh and p_session.is_valid() and p_session.refresh_token and not p_session.is_refresh_expired() and p_session.would_expire_in(auto_refresh_time):
var request = ApiSessionRefreshRequest.new()
request._token = p_session.refresh_token
return await session_refresh_async(_server_key, "", request)
return null
func cancel_request(p_token):
if p_token:
_http_adapter.cancel_request(p_token)
# A healthcheck which load balancers can use to check the service.
func healthcheck_async(
p_session : NakamaSession
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/healthcheck"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Delete the current user's account.
func delete_account_async(
p_session : NakamaSession
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "DELETE"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Fetch the current user's account.
func get_account_async(
p_session : NakamaSession
) -> ApiAccount:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiAccount.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiAccount.new(result)
var out : ApiAccount = NakamaSerializer.deserialize(_namespace, "ApiAccount", result)
return out
# Update fields in the current user's account.
func update_account_async(
p_session : NakamaSession
, p_body : ApiUpdateAccountRequest
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "PUT"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Authenticate a user with an Apple ID against the server.
func authenticate_apple_async(
p_basic_auth_username : String
, p_basic_auth_password : String
, p_account : ApiAccountApple
, p_create = null # : boolean
, p_username = null # : string
) -> ApiSession:
var urlpath : String = "/v2/account/authenticate/apple"
var query_params = ""
if p_create != null:
query_params += "create=%s&" % str(bool(p_create)).to_lower()
if p_username != null:
query_params += "username=%s&" % NakamaSerializer.escape_http(p_username)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var credentials = Marshalls.utf8_to_base64(p_basic_auth_username + ":" + p_basic_auth_password)
var header = "Basic %s" % credentials
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSession.new(result)
var out : ApiSession = NakamaSerializer.deserialize(_namespace, "ApiSession", result)
return out
# Authenticate a user with a custom id against the server.
func authenticate_custom_async(
p_basic_auth_username : String
, p_basic_auth_password : String
, p_account : ApiAccountCustom
, p_create = null # : boolean
, p_username = null # : string
) -> ApiSession:
var urlpath : String = "/v2/account/authenticate/custom"
var query_params = ""
if p_create != null:
query_params += "create=%s&" % str(bool(p_create)).to_lower()
if p_username != null:
query_params += "username=%s&" % NakamaSerializer.escape_http(p_username)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var credentials = Marshalls.utf8_to_base64(p_basic_auth_username + ":" + p_basic_auth_password)
var header = "Basic %s" % credentials
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSession.new(result)
var out : ApiSession = NakamaSerializer.deserialize(_namespace, "ApiSession", result)
return out
# Authenticate a user with a device id against the server.
func authenticate_device_async(
p_basic_auth_username : String
, p_basic_auth_password : String
, p_account : ApiAccountDevice
, p_create = null # : boolean
, p_username = null # : string
) -> ApiSession:
var urlpath : String = "/v2/account/authenticate/device"
var query_params = ""
if p_create != null:
query_params += "create=%s&" % str(bool(p_create)).to_lower()
if p_username != null:
query_params += "username=%s&" % NakamaSerializer.escape_http(p_username)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var credentials = Marshalls.utf8_to_base64(p_basic_auth_username + ":" + p_basic_auth_password)
var header = "Basic %s" % credentials
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSession.new(result)
var out : ApiSession = NakamaSerializer.deserialize(_namespace, "ApiSession", result)
return out
# Authenticate a user with an email+password against the server.
func authenticate_email_async(
p_basic_auth_username : String
, p_basic_auth_password : String
, p_account : ApiAccountEmail
, p_create = null # : boolean
, p_username = null # : string
) -> ApiSession:
var urlpath : String = "/v2/account/authenticate/email"
var query_params = ""
if p_create != null:
query_params += "create=%s&" % str(bool(p_create)).to_lower()
if p_username != null:
query_params += "username=%s&" % NakamaSerializer.escape_http(p_username)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var credentials = Marshalls.utf8_to_base64(p_basic_auth_username + ":" + p_basic_auth_password)
var header = "Basic %s" % credentials
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSession.new(result)
var out : ApiSession = NakamaSerializer.deserialize(_namespace, "ApiSession", result)
return out
# Authenticate a user with a Facebook OAuth token against the server.
func authenticate_facebook_async(
p_basic_auth_username : String
, p_basic_auth_password : String
, p_account : ApiAccountFacebook
, p_create = null # : boolean
, p_username = null # : string
, p_sync = null # : boolean
) -> ApiSession:
var urlpath : String = "/v2/account/authenticate/facebook"
var query_params = ""
if p_create != null:
query_params += "create=%s&" % str(bool(p_create)).to_lower()
if p_username != null:
query_params += "username=%s&" % NakamaSerializer.escape_http(p_username)
if p_sync != null:
query_params += "sync=%s&" % str(bool(p_sync)).to_lower()
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var credentials = Marshalls.utf8_to_base64(p_basic_auth_username + ":" + p_basic_auth_password)
var header = "Basic %s" % credentials
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSession.new(result)
var out : ApiSession = NakamaSerializer.deserialize(_namespace, "ApiSession", result)
return out
# Authenticate a user with a Facebook Instant Game token against the server.
func authenticate_facebook_instant_game_async(
p_basic_auth_username : String
, p_basic_auth_password : String
, p_account : ApiAccountFacebookInstantGame
, p_create = null # : boolean
, p_username = null # : string
) -> ApiSession:
var urlpath : String = "/v2/account/authenticate/facebookinstantgame"
var query_params = ""
if p_create != null:
query_params += "create=%s&" % str(bool(p_create)).to_lower()
if p_username != null:
query_params += "username=%s&" % NakamaSerializer.escape_http(p_username)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var credentials = Marshalls.utf8_to_base64(p_basic_auth_username + ":" + p_basic_auth_password)
var header = "Basic %s" % credentials
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSession.new(result)
var out : ApiSession = NakamaSerializer.deserialize(_namespace, "ApiSession", result)
return out
# Authenticate a user with Apple's GameCenter against the server.
func authenticate_game_center_async(
p_basic_auth_username : String
, p_basic_auth_password : String
, p_account : ApiAccountGameCenter
, p_create = null # : boolean
, p_username = null # : string
) -> ApiSession:
var urlpath : String = "/v2/account/authenticate/gamecenter"
var query_params = ""
if p_create != null:
query_params += "create=%s&" % str(bool(p_create)).to_lower()
if p_username != null:
query_params += "username=%s&" % NakamaSerializer.escape_http(p_username)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var credentials = Marshalls.utf8_to_base64(p_basic_auth_username + ":" + p_basic_auth_password)
var header = "Basic %s" % credentials
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSession.new(result)
var out : ApiSession = NakamaSerializer.deserialize(_namespace, "ApiSession", result)
return out
# Authenticate a user with Google against the server.
func authenticate_google_async(
p_basic_auth_username : String
, p_basic_auth_password : String
, p_account : ApiAccountGoogle
, p_create = null # : boolean
, p_username = null # : string
) -> ApiSession:
var urlpath : String = "/v2/account/authenticate/google"
var query_params = ""
if p_create != null:
query_params += "create=%s&" % str(bool(p_create)).to_lower()
if p_username != null:
query_params += "username=%s&" % NakamaSerializer.escape_http(p_username)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var credentials = Marshalls.utf8_to_base64(p_basic_auth_username + ":" + p_basic_auth_password)
var header = "Basic %s" % credentials
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSession.new(result)
var out : ApiSession = NakamaSerializer.deserialize(_namespace, "ApiSession", result)
return out
# Authenticate a user with Steam against the server.
func authenticate_steam_async(
p_basic_auth_username : String
, p_basic_auth_password : String
, p_account : ApiAccountSteam
, p_create = null # : boolean
, p_username = null # : string
, p_sync = null # : boolean
) -> ApiSession:
var urlpath : String = "/v2/account/authenticate/steam"
var query_params = ""
if p_create != null:
query_params += "create=%s&" % str(bool(p_create)).to_lower()
if p_username != null:
query_params += "username=%s&" % NakamaSerializer.escape_http(p_username)
if p_sync != null:
query_params += "sync=%s&" % str(bool(p_sync)).to_lower()
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var credentials = Marshalls.utf8_to_base64(p_basic_auth_username + ":" + p_basic_auth_password)
var header = "Basic %s" % credentials
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSession.new(result)
var out : ApiSession = NakamaSerializer.deserialize(_namespace, "ApiSession", result)
return out
# Add an Apple ID to the social profiles on the current user's account.
func link_apple_async(
p_session : NakamaSession
, p_body : ApiAccountApple
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/link/apple"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Add a custom ID to the social profiles on the current user's account.
func link_custom_async(
p_session : NakamaSession
, p_body : ApiAccountCustom
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/link/custom"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Add a device ID to the social profiles on the current user's account.
func link_device_async(
p_session : NakamaSession
, p_body : ApiAccountDevice
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/link/device"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Add an email+password to the social profiles on the current user's account.
func link_email_async(
p_session : NakamaSession
, p_body : ApiAccountEmail
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/link/email"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Add Facebook to the social profiles on the current user's account.
func link_facebook_async(
p_session : NakamaSession
, p_account : ApiAccountFacebook
, p_sync = null # : boolean
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/link/facebook"
var query_params = ""
if p_sync != null:
query_params += "sync=%s&" % str(bool(p_sync)).to_lower()
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Add Facebook Instant Game to the social profiles on the current user's account.
func link_facebook_instant_game_async(
p_session : NakamaSession
, p_body : ApiAccountFacebookInstantGame
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/link/facebookinstantgame"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Add Apple's GameCenter to the social profiles on the current user's account.
func link_game_center_async(
p_session : NakamaSession
, p_body : ApiAccountGameCenter
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/link/gamecenter"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Add Google to the social profiles on the current user's account.
func link_google_async(
p_session : NakamaSession
, p_body : ApiAccountGoogle
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/link/google"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Add Steam to the social profiles on the current user's account.
func link_steam_async(
p_session : NakamaSession
, p_body : ApiLinkSteamRequest
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/link/steam"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Refresh a user's session using a refresh token retrieved from a previous authentication request.
func session_refresh_async(
p_basic_auth_username : String
, p_basic_auth_password : String
, p_body : ApiSessionRefreshRequest
) -> ApiSession:
var urlpath : String = "/v2/account/session/refresh"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var credentials = Marshalls.utf8_to_base64(p_basic_auth_username + ":" + p_basic_auth_password)
var header = "Basic %s" % credentials
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSession.new(result)
var out : ApiSession = NakamaSerializer.deserialize(_namespace, "ApiSession", result)
return out
# Remove the Apple ID from the social profiles on the current user's account.
func unlink_apple_async(
p_session : NakamaSession
, p_body : ApiAccountApple
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/unlink/apple"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Remove the custom ID from the social profiles on the current user's account.
func unlink_custom_async(
p_session : NakamaSession
, p_body : ApiAccountCustom
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/unlink/custom"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Remove the device ID from the social profiles on the current user's account.
func unlink_device_async(
p_session : NakamaSession
, p_body : ApiAccountDevice
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/unlink/device"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Remove the email+password from the social profiles on the current user's account.
func unlink_email_async(
p_session : NakamaSession
, p_body : ApiAccountEmail
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/unlink/email"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Remove Facebook from the social profiles on the current user's account.
func unlink_facebook_async(
p_session : NakamaSession
, p_body : ApiAccountFacebook
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/unlink/facebook"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Remove Facebook Instant Game profile from the social profiles on the current user's account.
func unlink_facebook_instant_game_async(
p_session : NakamaSession
, p_body : ApiAccountFacebookInstantGame
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/unlink/facebookinstantgame"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Remove Apple's GameCenter from the social profiles on the current user's account.
func unlink_game_center_async(
p_session : NakamaSession
, p_body : ApiAccountGameCenter
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/unlink/gamecenter"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Remove Google from the social profiles on the current user's account.
func unlink_google_async(
p_session : NakamaSession
, p_body : ApiAccountGoogle
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/unlink/google"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Remove Steam from the social profiles on the current user's account.
func unlink_steam_async(
p_session : NakamaSession
, p_body : ApiAccountSteam
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/account/unlink/steam"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# List a channel's message history.
func list_channel_messages_async(
p_session : NakamaSession
, p_channel_id : String
, p_limit = null # : integer
, p_forward = null # : boolean
, p_cursor = null # : string
) -> ApiChannelMessageList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiChannelMessageList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/channel/{channelId}"
urlpath = urlpath.replace("{channelId}", NakamaSerializer.escape_http(p_channel_id))
var query_params = ""
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_forward != null:
query_params += "forward=%s&" % str(bool(p_forward)).to_lower()
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiChannelMessageList.new(result)
var out : ApiChannelMessageList = NakamaSerializer.deserialize(_namespace, "ApiChannelMessageList", result)
return out
# Submit an event for processing in the server's registered runtime custom events handler.
func event_async(
p_session : NakamaSession
, p_body : ApiEvent
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/event"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Delete one or more users by ID or username.
func delete_friends_async(
p_session : NakamaSession
, p_ids = null # : array
, p_usernames = null # : array
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/friend"
var query_params = ""
if p_ids != null:
for elem in p_ids:
query_params += "ids=%s&" % elem
if p_usernames != null:
for elem in p_usernames:
query_params += "usernames=%s&" % elem
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "DELETE"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# List all friends for the current user.
func list_friends_async(
p_session : NakamaSession
, p_limit = null # : integer
, p_state = null # : integer
, p_cursor = null # : string
) -> ApiFriendList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiFriendList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/friend"
var query_params = ""
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_state != null:
query_params += "state=%d&" % p_state
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiFriendList.new(result)
var out : ApiFriendList = NakamaSerializer.deserialize(_namespace, "ApiFriendList", result)
return out
# Add friends by ID or username to a user's account.
func add_friends_async(
p_session : NakamaSession
, p_ids = null # : array
, p_usernames = null # : array
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/friend"
var query_params = ""
if p_ids != null:
for elem in p_ids:
query_params += "ids=%s&" % elem
if p_usernames != null:
for elem in p_usernames:
query_params += "usernames=%s&" % elem
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Block one or more users by ID or username.
func block_friends_async(
p_session : NakamaSession
, p_ids = null # : array
, p_usernames = null # : array
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/friend/block"
var query_params = ""
if p_ids != null:
for elem in p_ids:
query_params += "ids=%s&" % elem
if p_usernames != null:
for elem in p_usernames:
query_params += "usernames=%s&" % elem
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Import Facebook friends and add them to a user's account.
func import_facebook_friends_async(
p_session : NakamaSession
, p_account : ApiAccountFacebook
, p_reset = null # : boolean
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/friend/facebook"
var query_params = ""
if p_reset != null:
query_params += "reset=%s&" % str(bool(p_reset)).to_lower()
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Import Steam friends and add them to a user's account.
func import_steam_friends_async(
p_session : NakamaSession
, p_account : ApiAccountSteam
, p_reset = null # : boolean
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/friend/steam"
var query_params = ""
if p_reset != null:
query_params += "reset=%s&" % str(bool(p_reset)).to_lower()
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_account.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# List groups based on given filters.
func list_groups_async(
p_session : NakamaSession
, p_name = null # : string
, p_cursor = null # : string
, p_limit = null # : integer
, p_lang_tag = null # : string
, p_members = null # : integer
, p_open = null # : boolean
) -> ApiGroupList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiGroupList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group"
var query_params = ""
if p_name != null:
query_params += "name=%s&" % NakamaSerializer.escape_http(p_name)
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_lang_tag != null:
query_params += "lang_tag=%s&" % NakamaSerializer.escape_http(p_lang_tag)
if p_members != null:
query_params += "members=%d&" % p_members
if p_open != null:
query_params += "open=%s&" % str(bool(p_open)).to_lower()
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiGroupList.new(result)
var out : ApiGroupList = NakamaSerializer.deserialize(_namespace, "ApiGroupList", result)
return out
# Create a new group with the current user as the owner.
func create_group_async(
p_session : NakamaSession
, p_body : ApiCreateGroupRequest
) -> ApiGroup:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiGroup.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiGroup.new(result)
var out : ApiGroup = NakamaSerializer.deserialize(_namespace, "ApiGroup", result)
return out
# Delete a group by ID.
func delete_group_async(
p_session : NakamaSession
, p_group_id : String
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group/{groupId}"
urlpath = urlpath.replace("{groupId}", NakamaSerializer.escape_http(p_group_id))
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "DELETE"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Update fields in a given group.
func update_group_async(
p_session : NakamaSession
, p_group_id : String
, p_body : ApiUpdateGroupRequest
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group/{groupId}"
urlpath = urlpath.replace("{groupId}", NakamaSerializer.escape_http(p_group_id))
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "PUT"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Add users to a group.
func add_group_users_async(
p_session : NakamaSession
, p_group_id : String
, p_user_ids = null # : array
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group/{groupId}/add"
urlpath = urlpath.replace("{groupId}", NakamaSerializer.escape_http(p_group_id))
var query_params = ""
if p_user_ids != null:
for elem in p_user_ids:
query_params += "user_ids=%s&" % elem
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Ban a set of users from a group.
func ban_group_users_async(
p_session : NakamaSession
, p_group_id : String
, p_user_ids = null # : array
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group/{groupId}/ban"
urlpath = urlpath.replace("{groupId}", NakamaSerializer.escape_http(p_group_id))
var query_params = ""
if p_user_ids != null:
for elem in p_user_ids:
query_params += "user_ids=%s&" % elem
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Demote a set of users in a group to the next role down.
func demote_group_users_async(
p_session : NakamaSession
, p_group_id : String
, p_user_ids = null # : array
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group/{groupId}/demote"
urlpath = urlpath.replace("{groupId}", NakamaSerializer.escape_http(p_group_id))
var query_params = ""
if p_user_ids != null:
for elem in p_user_ids:
query_params += "user_ids=%s&" % elem
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Immediately join an open group, or request to join a closed one.
func join_group_async(
p_session : NakamaSession
, p_group_id : String
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group/{groupId}/join"
urlpath = urlpath.replace("{groupId}", NakamaSerializer.escape_http(p_group_id))
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Kick a set of users from a group.
func kick_group_users_async(
p_session : NakamaSession
, p_group_id : String
, p_user_ids = null # : array
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group/{groupId}/kick"
urlpath = urlpath.replace("{groupId}", NakamaSerializer.escape_http(p_group_id))
var query_params = ""
if p_user_ids != null:
for elem in p_user_ids:
query_params += "user_ids=%s&" % elem
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Leave a group the user is a member of.
func leave_group_async(
p_session : NakamaSession
, p_group_id : String
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group/{groupId}/leave"
urlpath = urlpath.replace("{groupId}", NakamaSerializer.escape_http(p_group_id))
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Promote a set of users in a group to the next role up.
func promote_group_users_async(
p_session : NakamaSession
, p_group_id : String
, p_user_ids = null # : array
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group/{groupId}/promote"
urlpath = urlpath.replace("{groupId}", NakamaSerializer.escape_http(p_group_id))
var query_params = ""
if p_user_ids != null:
for elem in p_user_ids:
query_params += "user_ids=%s&" % elem
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# List all users that are part of a group.
func list_group_users_async(
p_session : NakamaSession
, p_group_id : String
, p_limit = null # : integer
, p_state = null # : integer
, p_cursor = null # : string
) -> ApiGroupUserList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiGroupUserList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/group/{groupId}/user"
urlpath = urlpath.replace("{groupId}", NakamaSerializer.escape_http(p_group_id))
var query_params = ""
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_state != null:
query_params += "state=%d&" % p_state
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiGroupUserList.new(result)
var out : ApiGroupUserList = NakamaSerializer.deserialize(_namespace, "ApiGroupUserList", result)
return out
# Validate Apple IAP Receipt
func validate_purchase_apple_async(
p_session : NakamaSession
, p_body : ApiValidatePurchaseAppleRequest
) -> ApiValidatePurchaseResponse:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiValidatePurchaseResponse.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/iap/purchase/apple"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiValidatePurchaseResponse.new(result)
var out : ApiValidatePurchaseResponse = NakamaSerializer.deserialize(_namespace, "ApiValidatePurchaseResponse", result)
return out
# Validate Google IAP Receipt
func validate_purchase_google_async(
p_session : NakamaSession
, p_body : ApiValidatePurchaseGoogleRequest
) -> ApiValidatePurchaseResponse:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiValidatePurchaseResponse.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/iap/purchase/google"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiValidatePurchaseResponse.new(result)
var out : ApiValidatePurchaseResponse = NakamaSerializer.deserialize(_namespace, "ApiValidatePurchaseResponse", result)
return out
# Validate Huawei IAP Receipt
func validate_purchase_huawei_async(
p_session : NakamaSession
, p_body : ApiValidatePurchaseHuaweiRequest
) -> ApiValidatePurchaseResponse:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiValidatePurchaseResponse.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/iap/purchase/huawei"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiValidatePurchaseResponse.new(result)
var out : ApiValidatePurchaseResponse = NakamaSerializer.deserialize(_namespace, "ApiValidatePurchaseResponse", result)
return out
# List user's subscriptions.
func list_subscriptions_async(
p_session : NakamaSession
, p_body : ApiListSubscriptionsRequest
) -> ApiSubscriptionList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiSubscriptionList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/iap/subscription"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiSubscriptionList.new(result)
var out : ApiSubscriptionList = NakamaSerializer.deserialize(_namespace, "ApiSubscriptionList", result)
return out
# Validate Apple Subscription Receipt
func validate_subscription_apple_async(
p_session : NakamaSession
, p_body : ApiValidateSubscriptionAppleRequest
) -> ApiValidateSubscriptionResponse:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiValidateSubscriptionResponse.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/iap/subscription/apple"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiValidateSubscriptionResponse.new(result)
var out : ApiValidateSubscriptionResponse = NakamaSerializer.deserialize(_namespace, "ApiValidateSubscriptionResponse", result)
return out
# Validate Google Subscription Receipt
func validate_subscription_google_async(
p_session : NakamaSession
, p_body : ApiValidateSubscriptionGoogleRequest
) -> ApiValidateSubscriptionResponse:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiValidateSubscriptionResponse.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/iap/subscription/google"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiValidateSubscriptionResponse.new(result)
var out : ApiValidateSubscriptionResponse = NakamaSerializer.deserialize(_namespace, "ApiValidateSubscriptionResponse", result)
return out
# Get subscription by product id.
func get_subscription_async(
p_session : NakamaSession
, p_product_id : String
) -> ApiValidatedSubscription:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiValidatedSubscription.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/iap/subscription/{productId}"
urlpath = urlpath.replace("{productId}", NakamaSerializer.escape_http(p_product_id))
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiValidatedSubscription.new(result)
var out : ApiValidatedSubscription = NakamaSerializer.deserialize(_namespace, "ApiValidatedSubscription", result)
return out
# Delete a leaderboard record.
func delete_leaderboard_record_async(
p_session : NakamaSession
, p_leaderboard_id : String
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/leaderboard/{leaderboardId}"
urlpath = urlpath.replace("{leaderboardId}", NakamaSerializer.escape_http(p_leaderboard_id))
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "DELETE"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# List leaderboard records.
func list_leaderboard_records_async(
p_session : NakamaSession
, p_leaderboard_id : String
, p_owner_ids = null # : array
, p_limit = null # : integer
, p_cursor = null # : string
, p_expiry = null # : string
) -> ApiLeaderboardRecordList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiLeaderboardRecordList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/leaderboard/{leaderboardId}"
urlpath = urlpath.replace("{leaderboardId}", NakamaSerializer.escape_http(p_leaderboard_id))
var query_params = ""
if p_owner_ids != null:
for elem in p_owner_ids:
query_params += "owner_ids=%s&" % elem
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
if p_expiry != null:
query_params += "expiry=%s&" % NakamaSerializer.escape_http(p_expiry)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiLeaderboardRecordList.new(result)
var out : ApiLeaderboardRecordList = NakamaSerializer.deserialize(_namespace, "ApiLeaderboardRecordList", result)
return out
# Write a record to a leaderboard.
func write_leaderboard_record_async(
p_session : NakamaSession
, p_leaderboard_id : String
, p_record : WriteLeaderboardRecordRequestLeaderboardRecordWrite
) -> ApiLeaderboardRecord:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiLeaderboardRecord.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/leaderboard/{leaderboardId}"
urlpath = urlpath.replace("{leaderboardId}", NakamaSerializer.escape_http(p_leaderboard_id))
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_record.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiLeaderboardRecord.new(result)
var out : ApiLeaderboardRecord = NakamaSerializer.deserialize(_namespace, "ApiLeaderboardRecord", result)
return out
# List leaderboard records that belong to a user.
func list_leaderboard_records_around_owner_async(
p_session : NakamaSession
, p_leaderboard_id : String
, p_owner_id : String
, p_limit = null # : integer
, p_expiry = null # : string
, p_cursor = null # : string
) -> ApiLeaderboardRecordList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiLeaderboardRecordList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/leaderboard/{leaderboardId}/owner/{ownerId}"
urlpath = urlpath.replace("{leaderboardId}", NakamaSerializer.escape_http(p_leaderboard_id))
urlpath = urlpath.replace("{ownerId}", NakamaSerializer.escape_http(p_owner_id))
var query_params = ""
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_expiry != null:
query_params += "expiry=%s&" % NakamaSerializer.escape_http(p_expiry)
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiLeaderboardRecordList.new(result)
var out : ApiLeaderboardRecordList = NakamaSerializer.deserialize(_namespace, "ApiLeaderboardRecordList", result)
return out
# Fetch list of running matches.
func list_matches_async(
p_session : NakamaSession
, p_limit = null # : integer
, p_authoritative = null # : boolean
, p_label = null # : string
, p_min_size = null # : integer
, p_max_size = null # : integer
, p_query = null # : string
) -> ApiMatchList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiMatchList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/match"
var query_params = ""
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_authoritative != null:
query_params += "authoritative=%s&" % str(bool(p_authoritative)).to_lower()
if p_label != null:
query_params += "label=%s&" % NakamaSerializer.escape_http(p_label)
if p_min_size != null:
query_params += "min_size=%d&" % p_min_size
if p_max_size != null:
query_params += "max_size=%d&" % p_max_size
if p_query != null:
query_params += "query=%s&" % NakamaSerializer.escape_http(p_query)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiMatchList.new(result)
var out : ApiMatchList = NakamaSerializer.deserialize(_namespace, "ApiMatchList", result)
return out
# Delete one or more notifications for the current user.
func delete_notifications_async(
p_session : NakamaSession
, p_ids = null # : array
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/notification"
var query_params = ""
if p_ids != null:
for elem in p_ids:
query_params += "ids=%s&" % elem
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "DELETE"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Fetch list of notifications.
func list_notifications_async(
p_session : NakamaSession
, p_limit = null # : integer
, p_cacheable_cursor = null # : string
) -> ApiNotificationList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiNotificationList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/notification"
var query_params = ""
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_cacheable_cursor != null:
query_params += "cacheable_cursor=%s&" % NakamaSerializer.escape_http(p_cacheable_cursor)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiNotificationList.new(result)
var out : ApiNotificationList = NakamaSerializer.deserialize(_namespace, "ApiNotificationList", result)
return out
# Execute a Lua function on the server.
func rpc_func2_async(
p_bearer_token : String
, p_id : String
, p_payload = null # : string
, p_http_key = null # : string
) -> ApiRpc:
var urlpath : String = "/v2/rpc/{id}"
urlpath = urlpath.replace("{id}", NakamaSerializer.escape_http(p_id))
var query_params = ""
if p_payload != null:
query_params += "payload=%s&" % NakamaSerializer.escape_http(p_payload)
if p_http_key != null:
query_params += "http_key=%s&" % NakamaSerializer.escape_http(p_http_key)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
if (p_bearer_token):
var header = "Bearer %s" % p_bearer_token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiRpc.new(result)
var out : ApiRpc = NakamaSerializer.deserialize(_namespace, "ApiRpc", result)
return out
# Execute a Lua function on the server.
func rpc_func_async(
p_bearer_token : String
, p_id : String
, p_payload : String
, p_http_key = null # : string
) -> ApiRpc:
var urlpath : String = "/v2/rpc/{id}"
urlpath = urlpath.replace("{id}", NakamaSerializer.escape_http(p_id))
var query_params = ""
if p_http_key != null:
query_params += "http_key=%s&" % NakamaSerializer.escape_http(p_http_key)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
if (p_bearer_token):
var header = "Bearer %s" % p_bearer_token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_payload).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiRpc.new(result)
var out : ApiRpc = NakamaSerializer.deserialize(_namespace, "ApiRpc", result)
return out
# Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.
func session_logout_async(
p_session : NakamaSession
, p_body : ApiSessionLogoutRequest
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/session/logout"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# Get storage objects.
func read_storage_objects_async(
p_session : NakamaSession
, p_body : ApiReadStorageObjectsRequest
) -> ApiStorageObjects:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiStorageObjects.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/storage"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiStorageObjects.new(result)
var out : ApiStorageObjects = NakamaSerializer.deserialize(_namespace, "ApiStorageObjects", result)
return out
# Write objects into the storage engine.
func write_storage_objects_async(
p_session : NakamaSession
, p_body : ApiWriteStorageObjectsRequest
) -> ApiStorageObjectAcks:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiStorageObjectAcks.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/storage"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "PUT"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiStorageObjectAcks.new(result)
var out : ApiStorageObjectAcks = NakamaSerializer.deserialize(_namespace, "ApiStorageObjectAcks", result)
return out
# Delete one or more objects by ID or username.
func delete_storage_objects_async(
p_session : NakamaSession
, p_body : ApiDeleteStorageObjectsRequest
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/storage/delete"
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "PUT"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_body.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# List publicly readable storage objects in a given collection.
func list_storage_objects_async(
p_session : NakamaSession
, p_collection : String
, p_user_id = null # : string
, p_limit = null # : integer
, p_cursor = null # : string
) -> ApiStorageObjectList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiStorageObjectList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/storage/{collection}"
urlpath = urlpath.replace("{collection}", NakamaSerializer.escape_http(p_collection))
var query_params = ""
if p_user_id != null:
query_params += "user_id=%s&" % NakamaSerializer.escape_http(p_user_id)
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiStorageObjectList.new(result)
var out : ApiStorageObjectList = NakamaSerializer.deserialize(_namespace, "ApiStorageObjectList", result)
return out
# List publicly readable storage objects in a given collection.
func list_storage_objects2_async(
p_session : NakamaSession
, p_collection : String
, p_user_id : String
, p_limit = null # : integer
, p_cursor = null # : string
) -> ApiStorageObjectList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiStorageObjectList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/storage/{collection}/{userId}"
urlpath = urlpath.replace("{collection}", NakamaSerializer.escape_http(p_collection))
urlpath = urlpath.replace("{userId}", NakamaSerializer.escape_http(p_user_id))
var query_params = ""
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiStorageObjectList.new(result)
var out : ApiStorageObjectList = NakamaSerializer.deserialize(_namespace, "ApiStorageObjectList", result)
return out
# List current or upcoming tournaments.
func list_tournaments_async(
p_session : NakamaSession
, p_category_start = null # : integer
, p_category_end = null # : integer
, p_start_time = null # : integer
, p_end_time = null # : integer
, p_limit = null # : integer
, p_cursor = null # : string
) -> ApiTournamentList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiTournamentList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/tournament"
var query_params = ""
if p_category_start != null:
query_params += "category_start=%d&" % p_category_start
if p_category_end != null:
query_params += "category_end=%d&" % p_category_end
if p_start_time != null:
query_params += "start_time=%d&" % p_start_time
if p_end_time != null:
query_params += "end_time=%d&" % p_end_time
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiTournamentList.new(result)
var out : ApiTournamentList = NakamaSerializer.deserialize(_namespace, "ApiTournamentList", result)
return out
# List tournament records.
func list_tournament_records_async(
p_session : NakamaSession
, p_tournament_id : String
, p_owner_ids = null # : array
, p_limit = null # : integer
, p_cursor = null # : string
, p_expiry = null # : string
) -> ApiTournamentRecordList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiTournamentRecordList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/tournament/{tournamentId}"
urlpath = urlpath.replace("{tournamentId}", NakamaSerializer.escape_http(p_tournament_id))
var query_params = ""
if p_owner_ids != null:
for elem in p_owner_ids:
query_params += "owner_ids=%s&" % elem
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
if p_expiry != null:
query_params += "expiry=%s&" % NakamaSerializer.escape_http(p_expiry)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiTournamentRecordList.new(result)
var out : ApiTournamentRecordList = NakamaSerializer.deserialize(_namespace, "ApiTournamentRecordList", result)
return out
# Write a record to a tournament.
func write_tournament_record2_async(
p_session : NakamaSession
, p_tournament_id : String
, p_record : WriteTournamentRecordRequestTournamentRecordWrite
) -> ApiLeaderboardRecord:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiLeaderboardRecord.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/tournament/{tournamentId}"
urlpath = urlpath.replace("{tournamentId}", NakamaSerializer.escape_http(p_tournament_id))
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_record.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiLeaderboardRecord.new(result)
var out : ApiLeaderboardRecord = NakamaSerializer.deserialize(_namespace, "ApiLeaderboardRecord", result)
return out
# Write a record to a tournament.
func write_tournament_record_async(
p_session : NakamaSession
, p_tournament_id : String
, p_record : WriteTournamentRecordRequestTournamentRecordWrite
) -> ApiLeaderboardRecord:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiLeaderboardRecord.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/tournament/{tournamentId}"
urlpath = urlpath.replace("{tournamentId}", NakamaSerializer.escape_http(p_tournament_id))
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "PUT"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
content = JSON.stringify(p_record.serialize()).to_utf8_buffer()
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiLeaderboardRecord.new(result)
var out : ApiLeaderboardRecord = NakamaSerializer.deserialize(_namespace, "ApiLeaderboardRecord", result)
return out
# Attempt to join an open and running tournament.
func join_tournament_async(
p_session : NakamaSession
, p_tournament_id : String
) -> NakamaAsyncResult:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return NakamaAsyncResult.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/tournament/{tournamentId}/join"
urlpath = urlpath.replace("{tournamentId}", NakamaSerializer.escape_http(p_tournament_id))
var query_params = ""
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "POST"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return NakamaAsyncResult.new(result)
return NakamaAsyncResult.new()
# List tournament records for a given owner.
func list_tournament_records_around_owner_async(
p_session : NakamaSession
, p_tournament_id : String
, p_owner_id : String
, p_limit = null # : integer
, p_expiry = null # : string
, p_cursor = null # : string
) -> ApiTournamentRecordList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiTournamentRecordList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/tournament/{tournamentId}/owner/{ownerId}"
urlpath = urlpath.replace("{tournamentId}", NakamaSerializer.escape_http(p_tournament_id))
urlpath = urlpath.replace("{ownerId}", NakamaSerializer.escape_http(p_owner_id))
var query_params = ""
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_expiry != null:
query_params += "expiry=%s&" % NakamaSerializer.escape_http(p_expiry)
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiTournamentRecordList.new(result)
var out : ApiTournamentRecordList = NakamaSerializer.deserialize(_namespace, "ApiTournamentRecordList", result)
return out
# Fetch zero or more users by ID and/or username.
func get_users_async(
p_session : NakamaSession
, p_ids = null # : array
, p_usernames = null # : array
, p_facebook_ids = null # : array
) -> ApiUsers:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiUsers.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/user"
var query_params = ""
if p_ids != null:
for elem in p_ids:
query_params += "ids=%s&" % elem
if p_usernames != null:
for elem in p_usernames:
query_params += "usernames=%s&" % elem
if p_facebook_ids != null:
for elem in p_facebook_ids:
query_params += "facebook_ids=%s&" % elem
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiUsers.new(result)
var out : ApiUsers = NakamaSerializer.deserialize(_namespace, "ApiUsers", result)
return out
# List groups the current user belongs to.
func list_user_groups_async(
p_session : NakamaSession
, p_user_id : String
, p_limit = null # : integer
, p_state = null # : integer
, p_cursor = null # : string
) -> ApiUserGroupList:
var try_refresh = await _refresh_session(p_session)
if try_refresh != null:
if try_refresh.is_exception():
return ApiUserGroupList.new(try_refresh.get_exception())
await p_session.refresh(try_refresh)
var urlpath : String = "/v2/user/{userId}/group"
urlpath = urlpath.replace("{userId}", NakamaSerializer.escape_http(p_user_id))
var query_params = ""
if p_limit != null:
query_params += "limit=%d&" % p_limit
if p_state != null:
query_params += "state=%d&" % p_state
if p_cursor != null:
query_params += "cursor=%s&" % NakamaSerializer.escape_http(p_cursor)
var uri = "%s%s%s" % [_base_uri, urlpath, "?" + query_params if query_params else ""]
var method = "GET"
var headers = {}
var header = "Bearer %s" % p_session.token
headers["Authorization"] = header
var content : PackedByteArray
var result = await _http_adapter.send_async(method, uri, headers, content)
if result is NakamaException:
return ApiUserGroupList.new(result)
var out : ApiUserGroupList = NakamaSerializer.deserialize(_namespace, "ApiUserGroupList", result)
return out