Python Client¶
The Python SDK is synchronous (uses requests). Initialize once to cache team_id on the client.
Setup¶
from gmc_sdk.client import GmcClient # WIP package name
client = GmcClient(app_id='<APP_ID>', app_secret='<APP_SECRET>', base_url='https://api.gamemanager.cloud')
# or: GmcClient(app_token='<APP_TOKEN>')
client.initialize() # populates client.team_id
Usage¶
Nodes¶
nodes = client.node_client.get_nodes()
node = client.node_client.get_node('node-123')
client.node_client.update_node('node-123')
Servers¶
servers = gmc.server_client.get_game_servers()
srv = gmc.server_client.get_game_server('srv-123')
gmc.server_client.start_server('srv-123')
gmc.server_client.restart_server('srv-123')
gmc.server_client.stop_server('srv-123')
created = gmc.server_client.create_server('node-123', 'My Server', 'CS2', 'de_dust2', '/servers/cs2')
gmc.server_client.backup_server('srv-123', 'pre-update')
gmc.server_client.delete_backup('srv-123', 'backup-1')
gmc.server_client.reset_settings('srv-123')
gmc.server_client.rcon_command('srv-123', 'status')
Teams¶
team = client.team_client.get_team()
client.team_client.invite_member('dev@example.com')
client.team_client.kick_member('user-123')
client.team_client.set_permission('user-123', ['ADMIN'])
notifications = client.team_client.get_notifications(only_unread=True)
unread = client.team_client.get_unread_notification_count()
Automations¶
automations = client.automation_client.list_automations()
created = client.automation_client.create_automation({ 'teamId': client.team_id, 'name': 'Nightly Restart' })
run = client.automation_client.trigger_manual(created.id, { 'targetIds': [] })
Info & Images & Settings¶
version = client.info_client.get_version()
img_bytes = client.image_client.get_image('img-123')
profile = client.setting_profile_client.get_profile('prof-1')
ini = client.setting_profile_client.get_game_ini('prof-1')
Errors¶
Errors raise GmcApiException (HTTP error with status and key) or GmcClientException (connection/unknown). Use try/except:
from gmc_sdk.exceptions import GmcApiException, GmcClientException
try:
gmc.server_client.start_server('srv-404')
except (GmcApiException, GmcClientException) as e:
print(e)
Concurrency¶
The Python SDK is synchronous. For parallelism, use threads or processes if needed.