{"openapi":"3.0.0","paths":{"/api/v2.0/audit-logs":{"get":{"operationId":"AuditLogsController_findAll","summary":"Get audit logs","description":"Returns paginated audit logs for actions triggered from the admin panel and from service-account-authenticated API requests. Each record captures who performed the action (user or service account), what endpoint/method was called, the response status, and request context. Supports filtering by date, organization, user, service account, status, entity, and permission.","parameters":[{"name":"createdFrom","required":false,"in":"query","description":"Filter logs created after this date (ISO 8601)","example":"2026-03-01T00:00:00.000Z","schema":{"type":"string"}},{"name":"createdTo","required":false,"in":"query","description":"Filter logs created before this date (ISO 8601)","example":"2026-03-11T23:59:59.999Z","schema":{"type":"string"}},{"name":"term","required":false,"in":"query","description":"Free-text search by user first name, last name or email","example":"john","schema":{"type":"string"}},{"name":"organizationId","required":false,"in":"query","description":"Filter by organization ID","schema":{"format":"uuid","type":"string"}},{"name":"userId","required":false,"in":"query","description":"Filter by user ID","schema":{"format":"uuid","type":"string"}},{"name":"serviceAccountId","required":false,"in":"query","description":"Filter by service account ID","schema":{"format":"uuid","type":"string"}},{"name":"entityType","required":false,"in":"query","description":"Filter by action entity","example":"user","schema":{"type":"string"}},{"name":"actionType","required":false,"in":"query","description":"Filter by action type","example":"update","schema":{"type":"string"}},{"name":"filter","required":false,"in":"query","description":"Free-text filter by action description","example":"changed password","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by operation status","schema":{"enum":["fail","success"],"type":"string"}},{"name":"permission","required":false,"in":"query","description":"Filter by permission value","schema":{"enum":["core-currency-view","core-currency-create","core-currency-edit","core-currency-delete","game-create","game-view","game-edit","game-delete","game-suspend","game-session-view","game-session-edit","game-transaction-view","game-deploy","game-view-logs","game-store-view","game-pricing-view","game-pricing-edit","game-testing-rtp-start","game-testing-rtp-cleanup","game-testing-rtp-view","game-asset-view","game-asset-upload","game-asset-delete","game-certificate-view","game-certificate-create","game-certificate-edit","game-certificate-delete","game-core-variable-create","game-core-variable-edit","game-core-variable-view","game-core-variable-overwrite","game-proposal-view","game-proposal-create","game-proposal-edit","game-variant-view","game-variant-create","game-variant-edit","game-variant-delete","free-bet-campaign-create","free-bet-campaign-edit","free-bet-campaign-view","free-bet-campaign-review","bet-tier-view","bet-tier-create","bet-tier-edit","core-function-view","core-function-create","core-function-edit","core-function-delete","core-function-deploy","core-function-view-logs","jurisdiction-create","jurisdiction-delete","jurisdiction-edit","jurisdiction-view","service-account-create","service-account-view","service-account-deactivate","service-account-edit","service-account-log-view","user-view","user-remove","user-deactivate","user-edit","user-log-view","user-invite-send","user-invite-revoke","user-invite-delete","user-invite-view","permission-create","permission-delete","permission-edit","permission-view","operator-view","operator-create","operator-edit","operator-deactivate","organization-update","integration-view","integration-create","integration-delete","integration-deploy","integration-manage","integration-view-logs","studio-view","studio-create","studio-edit","studio-deactivate","studio-game-category-view","studio-game-category-create","studio-game-category-edit","studio-game-category-delete","jackpot-template-create","jackpot-template-delete","jackpot-template-edit","jackpot-template-view","jackpot-template-overwrite-view","jackpot-template-overwrite-create","jackpot-template-overwrite-edit","jackpot-template-overwrite-delete","jackpot-live-view","jackpot-released-view","jackpot-contribution-view","player-view","role-view","role-create","role-delete","role-edit","repository-integrate","report-ggr-generate","report-bet-count-generate","report-game-certificates-generate","report-game-fees-generate","report-cost-generate","report-schedule-view","report-schedule-create","report-schedule-edit","report-schedule-delete","report-schedule-run","report-schedule-deactivate","report-history-view","translation-view","translation-create","translation-edit","translation-delete"],"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogListResponseDto"}}}}},"tags":["Audit Logs"]}},"/api/v2.0/audit-logs/action-types":{"get":{"operationId":"AuditLogsController_findActionTypes","summary":"Get audit action types","description":"Returns all available action-type keys used when audit entries are created from admin-panel activity or service-account operations.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogResponseDto"}}}}},"tags":["Audit Logs"]}},"/api/v2.0/operators":{"post":{"operationId":"OperatorController_create","summary":"Create operator","description":"Creates a new operator organization. Fireball users can create standalone operators; eligible operator organizations can create sub-operators, by doing so they become the parent organization aka Aggregator. The administrator user is automatically added as a member of the operator organization with an admin role. The operator can be optionally linked to an integration, in which case the integration ID must be provided and the integration must exist. Returns the created operator organization.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOperatorDto"}}}},"responses":{"201":{"description":"Operator created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationResponseDto"}}}}},"tags":["Operators"]},"get":{"operationId":"OperatorController_findAll","summary":"Get operators","description":"Returns operators visible to the requester, scoped by organization type and access rules. Supports optional filtering and pagination.","parameters":[{"name":"name","required":false,"in":"query","description":"Filter operators by name (case-insensitive contains).","example":"Acme","schema":{"type":"string"}},{"name":"id","required":false,"in":"query","description":"Filter by exact operator ID.","schema":{"format":"uuid","type":"string"}},{"name":"countryIsoCode","required":false,"in":"query","description":"Filter by ISO country code (2 letters).","example":"BG","schema":{"minLength":2,"maxLength":2,"type":"string"}},{"name":"showInactive","required":false,"in":"query","description":"Include inactive operators when true.","example":false,"schema":{"type":"boolean"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Operators fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationListResponseDto"}}}}},"tags":["Operators"]}},"/api/v2.0/operators/{id}":{"get":{"operationId":"OperatorController_findOne","summary":"Get operator by ID","description":"Returns a single operator by organization ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Operator fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationResponseDto"}}}}},"tags":["Operators"]}},"/api/v2.0/currencies/crypto":{"get":{"operationId":"CryptoController_findAll","summary":"List crypto currencies","description":"Returns paginated crypto currencies and converted values in target fiat currency.","parameters":[{"name":"term","required":false,"in":"query","example":"btc","schema":{"type":"string"}},{"name":"currencyIsoCode","required":true,"in":"query","description":"Target fiat currency ISO code for converted values.","example":"USD","schema":{"minLength":3,"maxLength":3,"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Crypto currencies retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoCurrencyListResponseDto"}}}}},"tags":["Currencies"]}},"/api/v2.0/currencies/virtual":{"get":{"operationId":"VirtualController_findAll","summary":"List virtual currencies","description":"Returns paginated virtual currencies.","parameters":[{"name":"term","required":false,"in":"query","example":"gold","schema":{"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Virtual currencies retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirtualCurrencyListResponseDto"}}}}},"tags":["Currencies"]}},"/api/v2.0/currencies":{"get":{"operationId":"CurrenciesController_findAll","summary":"List fiat currencies","description":"Returns currencies with optional search and optional conversion value using target currency code.","parameters":[{"name":"term","required":false,"in":"query","example":"usd","schema":{"type":"string"}},{"name":"currencyIsoCode","required":false,"in":"query","description":"Target currency ISO code for mapped currency value.","example":"EUR","schema":{"minLength":3,"maxLength":3,"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Currencies retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrencyListResponseDto"}}}}},"tags":["Currencies"]}},"/api/v2.0/currencies/rate":{"get":{"operationId":"CurrenciesController_getRate","summary":"Get currency exchange rate","description":"Returns exchange rate from one currency ISO code to another currency ISO code.","parameters":[{"name":"fromCurrency","required":false,"in":"query","example":"USD","schema":{"minLength":3,"maxLength":3,"type":"string"}},{"name":"toCurrency","required":false,"in":"query","example":"EUR","schema":{"minLength":3,"maxLength":3,"type":"string"}},{"name":"values","required":false,"in":"query","description":"Values to convert from source currency to target currency. Not yet implemented!","example":[10,50.5],"schema":{"type":"array","items":{"type":"number"}}}],"responses":{"200":{"description":"Exchange rate retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrencyRateResponseDto"}}}}},"tags":["Currencies"]}},"/api/v2.0/currencies/{isoCode}":{"get":{"operationId":"CurrenciesController_findOne","summary":"Get currency by ISO code","description":"Returns a single currency by ISO code.","parameters":[{"name":"isoCode","required":true,"in":"path","description":"Currency ISO code (3 chars).","schema":{"type":"string"}}],"responses":{"200":{"description":"Currency retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrencyResponseDto"}}}}},"tags":["Currencies"]}},"/api/v2.0/translations/languages":{"post":{"operationId":"LanguagesController_create","summary":"Create custom language","description":"Creates custom language for current organization.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLanguageDto"}}}},"responses":{"200":{"description":"Custom language created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomLanguageResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Translations"]},"get":{"operationId":"LanguagesController_findAll","summary":"List custom languages","description":"Returns custom languages filtered by organization, name, and base language.","parameters":[{"name":"organizationId","required":false,"in":"query","description":"Organization id (Fireball only).","schema":{"format":"uuid","type":"string"}},{"name":"name","required":false,"in":"query","example":"French (Custom)","schema":{"type":"string"}},{"name":"languageIsoCode","required":false,"in":"query","example":"fr","schema":{"type":"string"}}],"responses":{"200":{"description":"Custom languages retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomLanguageListResponseDto"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/languages/{isoCode}":{"put":{"operationId":"LanguagesController_update","summary":"Update custom language","description":"Updates custom language metadata by ISO code.","parameters":[{"name":"isoCode","required":true,"in":"path","description":"Custom language ISO code.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLanguageDto"}}}},"responses":{"200":{"description":"Custom language updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomLanguageResponseDto"}}}}},"tags":["Translations"]},"delete":{"operationId":"LanguagesController_remove","summary":"Delete custom language","description":"Deletes custom language by ISO code.","parameters":[{"name":"isoCode","required":true,"in":"path","description":"Custom language ISO code.","schema":{"type":"string"}}],"responses":{"200":{"description":"Custom language deleted successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomLanguageResponseDto"}}}}},"tags":["Translations"]}},"/api/v2.0/games":{"post":{"operationId":"GamesController_create","summary":"Create game","description":"Creates a new game for the current studio organization.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGameDto"}}}},"responses":{"201":{"description":"Game created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game"]},"get":{"operationId":"GamesController_findAll","summary":"Get games","description":"Returns paginated games visible to the requester, with optional filtering by name and studio. For studios it returns all games they own; for operators it returns games enabled for them.","parameters":[{"name":"name","required":false,"in":"query","description":"Filter games by name (case-insensitive contains).","example":"Zeus","schema":{"type":"string"}},{"name":"studioIds","required":false,"in":"query","description":"Filter by multiple studio IDs.","schema":{"format":"uuid","type":"array","items":{"type":"string"}}},{"name":"studioId","required":false,"in":"query","description":"Filter by single studio ID.","schema":{"format":"uuid","type":"string"}},{"name":"productionOnly","required":false,"in":"query","description":"When true, return only games with production deployment.","example":false,"schema":{"type":"boolean"}},{"name":"includeCategories","required":false,"in":"query","description":"When true, include categories in lightweight list queries.","example":false,"schema":{"type":"boolean"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Games fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameListResponseDto"}}}}},"tags":["Game"]}},"/api/v2.0/games/external":{"get":{"operationId":"GamesController_findExternal","summary":"Get games external","description":"Returns games available for external consumption filtered by operator/studio/integration context. Endpoint does not required authentication","parameters":[{"name":"enabledOnly","required":true,"in":"query","description":"When true, return only games enabled for the specified operator.","schema":{"default":true,"type":"boolean"}},{"name":"includeVariables","required":true,"in":"query","description":"When true, includes core variables and game overwrites for them.","schema":{"default":false,"type":"boolean"}},{"name":"includeVariants","required":true,"in":"query","description":"When true, includes game variants.","schema":{"default":false,"type":"boolean"}},{"name":"studioId","required":false,"in":"query","description":"Filter games by specific studio ID.","schema":{"format":"uuid","type":"string"}},{"name":"studioSlug","required":false,"in":"query","description":"Filter games by specific studio by slug.","schema":{"format":"string","type":"string"}},{"name":"operatorId","required":true,"in":"query","description":"Operator ID requesting the external game list. You can see your operator ID in [https://app.fireballserver.com/settings/organization](https://app.fireballserver.com/settings/organization)","schema":{"format":"uuid","type":"string"}},{"name":"integrationId","required":false,"in":"query","description":"Optional integration ID for integration-specific metadata. If provided any integration categories or images will be returned accordingly.","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"External games fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameListResponseDto"}}}}},"tags":["Game"]}},"/api/v2.0/games/categories":{"get":{"operationId":"GamesController_findCategories","summary":"Get game categories","description":"Returns all available game categories.","parameters":[],"responses":{"200":{"description":"Game categories fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameListResponseDto"}}}}},"tags":["Game"]}},"/api/v2.0/games/progress":{"get":{"operationId":"GamesController_sse","summary":"Get game deployment or deletion progress","description":"Uses [Server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events) to track the progress of either deploying or deleting games.","parameters":[],"responses":{"200":{"description":""}},"tags":["Game"]}},"/api/v2.0/games/replay/{id}":{"get":{"operationId":"ReplayController_findOne","summary":"Get replay by ID","description":"Returns replay payload for a public replay identifier.","parameters":[{"name":"id","required":true,"in":"path","schema":{"minLength":2,"maxLength":100,"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Replay fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionLogResponseDto"}}}}},"tags":["Game Replays"]}},"/api/v2.0/games/sessions":{"get":{"operationId":"SessionsController_findSessions","summary":"Get sessions","description":"Returns game sessions by filters, paging, and sorting.","parameters":[{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"type":"string"}},{"name":"gameMode","required":false,"in":"query","schema":{"enum":["money","coins"],"type":"string"}},{"name":"operatorId","required":false,"in":"query","schema":{"type":"string"}},{"name":"operatorSessionId","required":false,"in":"query","schema":{"type":"string"}},{"name":"sessionId","required":false,"in":"query","schema":{"type":"string"}},{"name":"playerId","required":false,"in":"query","schema":{"type":"string"}},{"name":"createdFrom","required":false,"in":"query","schema":{"type":"string"}},{"name":"createdTo","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Sessions fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionListResponseDto"}}}}},"tags":["Game Sessions"]}},"/api/v2.0/games/sessions/{sessionId}/state":{"patch":{"operationId":"SessionsController_updateSessionState","summary":"Update session state","description":"Updates the state payload for a specific session.","parameters":[{"name":"sessionId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Session state updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionResponseDto"}}}}},"tags":["Game Sessions"]}},"/api/v2.0/games/sessions/{sessionId}/replay":{"post":{"operationId":"SessionsController_getBetHistoryReplayUrl","summary":"Generate session replay URL","description":"Generates a replay URL for session bet history based on request options.","parameters":[{"name":"sessionId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSessionLogReplayUrlDto"}}}},"responses":{"200":{"description":"Replay URL generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Sessions"]}},"/api/v2.0/games/sessions/{sessionId}":{"get":{"operationId":"SessionsController_findOneSession","summary":"Get session by ID","description":"Returns full details for a single game session.","parameters":[{"name":"sessionId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Session fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionResponseDto"}}}}},"tags":["Game Sessions"]}},"/api/v2.0/games/sessions/{sessionId}/state-history":{"get":{"operationId":"SessionsController_findSessionStateHistory","summary":"Get session state history","description":"Returns state change history for a specific session.","parameters":[{"name":"sessionId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"Session state history fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionListResponseDto"}}}}},"tags":["Game Sessions"]}},"/api/v2.0/games/sessions/{sessionId}/logs":{"get":{"operationId":"SessionsController_getSessionLogs","summary":"Get session logs","description":"Returns logs related to a specific session.","parameters":[{"name":"sessionId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}},{"name":"createdFrom","required":false,"in":"query","schema":{"type":"string"}},{"name":"createdTo","required":false,"in":"query","schema":{"type":"string"}},{"name":"sessionLogStatus","required":false,"in":"query","schema":{"enum":["all","accepted","rejected"],"type":"string"}},{"name":"actionId","required":false,"in":"query","schema":{"type":"string"}},{"name":"operatorSessionId","required":false,"in":"query","schema":{"type":"string"}},{"name":"operatorBetId","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Session logs fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionListResponseDto"}}}}},"tags":["Game Sessions"]}},"/api/v2.0/games/sessions/action/{actionId}/logs":{"get":{"operationId":"SessionsController_getSessionLogsByAction","summary":"Get session logs by action ID","description":"Returns session logs that belong to a specific action ID.","parameters":[{"name":"actionId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Action logs fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameSessionListResponseDto"}}}}},"tags":["Game Sessions"]}},"/api/v2.0/games/insights":{"get":{"operationId":"InsightsController_findInsights","summary":"Get insights","description":"Returns game insights using the provided query filters.","parameters":[{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"type":"string"}},{"name":"key","required":false,"in":"query","schema":{"type":"string"}},{"name":"title","required":false,"in":"query","schema":{"type":"string"}},{"name":"description","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Insights fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameInsightListResponseDto"}}}}},"tags":["Game Insights"]},"post":{"operationId":"InsightsController_createInsight","summary":"Create insight","description":"Creates a new game insight entry.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInsightDto"}}}},"responses":{"200":{"description":"Insight created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameInsightResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Insights"]}},"/api/v2.0/games/insights/{insightId}":{"put":{"operationId":"InsightsController_updateInsight","summary":"Update insight","description":"Updates an existing insight by ID.","parameters":[{"name":"insightId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInsightDto"}}}},"responses":{"200":{"description":"Insight updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameInsightResponseDto"}}}}},"tags":["Game Insights"]},"delete":{"operationId":"InsightsController_deleteInsight","summary":"Delete insight","description":"Deletes an insight by ID.","parameters":[{"name":"insightId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Insight deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameInsightResponseDto"}}}}},"tags":["Game Insights"]}},"/api/v2.0/games/insights/{insightId}/subscribers":{"put":{"operationId":"InsightsController_updateSubscribers","summary":"Update insight subscribers","description":"Updates subscribers for an existing insight.","parameters":[{"name":"insightId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInsightSubscribersDto"}}}},"responses":{"200":{"description":"Insight subscribers updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameInsightResponseDto"}}}}},"tags":["Game Insights"]}},"/api/v2.0/games/achievements":{"get":{"operationId":"AchievementsController_findAchievements","summary":"Get game achievements","description":"Returns achievements for a game filtered by environment, with optional name/description search.","parameters":[{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"gameId","required":true,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"name","required":false,"in":"query","description":"Filter by achievement name (contains, case-insensitive).","schema":{"type":"string"}},{"name":"description","required":false,"in":"query","description":"Filter by achievement description (contains, case-insensitive).","schema":{"type":"string"}}],"responses":{"200":{"description":"Achievements fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAchievementListResponseDto"}}}}},"tags":["Game Achievements"]},"post":{"operationId":"AchievementsController_createAchievement","summary":"Create game achievement","description":"Creates an achievement for a game in a specific environment and optionally uploads an icon.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAchievementDto"}}}},"responses":{"200":{"description":"Achievement created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAchievementResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Achievements"]}},"/api/v2.0/games/achievements/{achievementId}":{"put":{"operationId":"AchievementsController_updateAchievement","summary":"Update game achievement","description":"Updates achievement details, insights and optionally icon by achievement ID.","parameters":[{"name":"achievementId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAchievementDto"}}}},"responses":{"200":{"description":"Achievement updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAchievementResponseDto"}}}}},"tags":["Game Achievements"]},"delete":{"operationId":"AchievementsController_deleteAchievement","summary":"Delete game achievement","description":"Deletes achievement by ID and removes its icon asset if present.","parameters":[{"name":"achievementId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Achievement deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAchievementResponseDto"}}}}},"tags":["Game Achievements"]}},"/api/v2.0/games/store":{"get":{"operationId":"StoreController_findStoreAll","summary":"Get store games","description":"Returns game store entries according to requester filters.","parameters":[{"name":"name","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Store games fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameListResponseDto"}}}}},"tags":["Game Store"]}},"/api/v2.0/games/store/{gameId}":{"get":{"operationId":"StoreController_findStoreOne","summary":"Get store game by ID","description":"Returns details for one game in store context.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Store game fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game Store"]}},"/api/v2.0/games/store/{gameId}/manage":{"patch":{"operationId":"StoreController_manageGame","summary":"Manage game in store","description":"Updates game management flags/settings in store context.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManageGameDto"}}}},"responses":{"200":{"description":"Game management updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game Store"]}},"/api/v2.0/games/store/{gameId}/enable":{"patch":{"operationId":"StoreController_enableGame","summary":"Enable game in store","description":"Enables a game for store availability.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableGameDto"}}}},"responses":{"200":{"description":"Game enabled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game Store"]}},"/api/v2.0/games/store/{gameId}/disable":{"patch":{"operationId":"StoreController_disableGame","summary":"Disable game from store","description":"Disables a game for a specific operator.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Game disabled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game Store"]}},"/api/v2.0/games/store/{gameId}/favorite":{"patch":{"operationId":"StoreController_toggleFavorite","summary":"Toggle game favorite","description":"Toggles favorite status for a game in store view.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Game favorite status updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game Store"]}},"/api/v2.0/games/transactions":{"get":{"operationId":"TransactionsController_findTransactions","summary":"Get transactions","description":"Returns game transactions by internal filters.","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}},{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"type":"string"}},{"name":"operatorId","required":false,"in":"query","schema":{"type":"string"}},{"name":"playerId","required":false,"in":"query","schema":{"type":"string"}},{"name":"gameSessionId","required":false,"in":"query","schema":{"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"enum":["jackpot-paid","winning-paid","bet-placed","bet-refund","jackpot-contribution"],"type":"string"}},{"name":"amountFrom","required":false,"in":"query","schema":{"minimum":0,"type":"number"}},{"name":"amountTo","required":false,"in":"query","schema":{"type":"number"}},{"name":"createdFrom","required":false,"in":"query","schema":{"type":"string"}},{"name":"createdTo","required":false,"in":"query","schema":{"type":"string"}},{"name":"currencyIsoCode","required":false,"in":"query","schema":{"minLength":3,"maxLength":3,"type":"string"}}],"responses":{"200":{"description":"Transactions fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameTransactionListResponseDto"}}}}},"tags":["Game Transactions"]}},"/api/v2.0/games/transactions/external":{"get":{"operationId":"TransactionsController_findTransactionsExternal","summary":"Get external transactions","description":"Returns external provider transaction projections.","parameters":[{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"actionId","required":false,"in":"query","schema":{"type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"type":"string"}},{"name":"operatorId","required":false,"in":"query","schema":{"type":"string"}},{"name":"operatorPlayerId","required":false,"in":"query","schema":{"type":"string"}},{"name":"playerId","required":false,"in":"query","schema":{"type":"string"}},{"name":"gameSessionId","required":false,"in":"query","schema":{"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"enum":["jackpot-paid","winning-paid","bet-placed","bet-refund","jackpot-contribution"],"type":"string"}},{"name":"amountFrom","required":false,"in":"query","schema":{"minimum":0,"type":"number"}},{"name":"amountTo","required":false,"in":"query","schema":{"type":"number"}},{"name":"createdFrom","required":false,"in":"query","schema":{"type":"string"}},{"name":"createdTo","required":false,"in":"query","schema":{"type":"string"}},{"name":"currencyIsoCode","required":false,"in":"query","schema":{"minLength":3,"maxLength":3,"type":"string"}}],"responses":{"200":{"description":"External transactions fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameTransactionListResponseDto"}}}}},"tags":["Game Transactions"]}},"/api/v2.0/games/testing/rtp/cleanup":{"patch":{"operationId":"RtpController_cleanupRTPTest","summary":"Cleanup RTP test","description":"Cleans up test resources for a given RTP test ID.","parameters":[{"name":"testId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"RTP test cleaned up successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game Testing RTP"]}},"/api/v2.0/games/testing/rtp/start":{"post":{"operationId":"RtpController_startRTPTest","summary":"Start RTP test","description":"Starts a new RTP testing run for the requested game setup.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartRTPTestDto"}}}},"responses":{"200":{"description":"RTP test started successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Testing RTP"]}},"/api/v2.0/games/testing/rtp/stop":{"patch":{"operationId":"RtpController_stopRTPTest","summary":"Stop RTP test","description":"Stops a running RTP test by test ID.","parameters":[],"responses":{"200":{"description":"RTP test stopped successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game Testing RTP"]}},"/api/v2.0/games/testing/rtp":{"get":{"operationId":"RtpController_findAllRTP","summary":"Get RTP tests","description":"Returns RTP tests with filtering and pagination options.","parameters":[{"name":"studioId","required":false,"in":"query","schema":{"type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"type":"string"}},{"name":"createdFrom","required":false,"in":"query","schema":{"type":"string"}},{"name":"createdTo","required":false,"in":"query","schema":{"type":"string"}},{"name":"lastTestId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"RTP tests fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameListResponseDto"}}}}},"tags":["Game Testing RTP"]}},"/api/v2.0/games/testing/rtp/{id}":{"get":{"operationId":"RtpController_findSingleCompletedRTP","summary":"Get RTP test by ID","description":"Returns details for a completed RTP test.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"RTP test fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game Testing RTP"]}},"/api/v2.0/games/testing/rtp/{id}/logs":{"get":{"operationId":"RtpController_findRTPLogs","summary":"Get RTP test logs","description":"Returns cloud function logs for a specific RTP test ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"severity","required":true,"in":"query","schema":{"enum":["DEFAULT","DEBUG","INFO","NOTICE","WARNING","ERROR","CRITICAL","ALERT","EMERGENCY"],"type":"string"}},{"name":"seconds","required":false,"in":"query","schema":{"type":"number"}},{"name":"nanos","required":false,"in":"query","schema":{"type":"number"}},{"name":"insertId","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"RTP test logs fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameListResponseDto"}}}}},"tags":["Game Testing RTP"]}},"/api/v2.0/games/{gameId}/client/version/signed-url":{"get":{"operationId":"ClientController_getVersionSingledUrl","summary":"Generate client version upload signed URL","description":"Generates a signed upload URL for client version zip upload (max 1GB).","parameters":[{"name":"size","required":true,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"Signed URL generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientVersionResponseDto"}}}}},"tags":["Game Clients"]}},"/api/v2.0/games/{gameId}/client/version":{"post":{"operationId":"ClientController_createVersion","summary":"Create game client version","description":"Creates a new game client version from a previously uploaded zip file.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateClientVersionDto"}}}},"responses":{"200":{"description":"Client version creation started successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientVersionResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Clients"]},"get":{"operationId":"ClientController_findAllVersions","summary":"Get all client versions","description":"Returns all client versions for the selected game.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Client versions fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientVersionListResponseDto"}}}}},"tags":["Game Clients"]}},"/api/v2.0/games/{gameId}/client/version/{versionId}":{"delete":{"operationId":"ClientController_deleteVersion","summary":"Delete client version","description":"Deletes a client version if it is not currently deployed.","parameters":[{"name":"versionId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Client version deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientVersionResponseDto"}}}}},"tags":["Game Clients"]}},"/api/v2.0/games/{gameId}/client/progress":{"get":{"operationId":"ClientController_sse","summary":"Stream version deployment progress","description":"Uses [Server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events) to stream deployment/version progress updates.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"SSE stream established successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientVersionResponseDto"}}}}},"tags":["Game Clients"]}},"/api/v2.0/games/{gameId}/client/deployed":{"get":{"operationId":"ClientController_findAllDeployedVersions","summary":"Get deployed client versions","description":"Returns currently deployed game client versions by environment for the selected game.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Deployed client versions fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientVersionListResponseDto"}}}}},"tags":["Game Clients"]}},"/api/v2.0/games/{gameId}/client/deploy":{"post":{"operationId":"ClientController_deployVersion","summary":"Deploy or promote client version","description":"Deploys/promotes the selected client version to the provided environment for the selected game.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clientVersionId":{"type":"string","format":"uuid"},"environment":{"enum":["development","staging","production"]}},"required":["clientVersionId","environment"]}}}},"responses":{"200":{"description":"Client version deployed/promoted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientVersionResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Clients"]}},"/api/v2.0/games/{gameId}/assets/screenshot":{"delete":{"operationId":"AssetsController_deleteScreenshot","summary":"Delete game screenshot","description":"Deletes a screenshot from a specific game and screenshot type bucket (desktop/tablet/mobile).","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"path","required":true,"in":"query","schema":{"type":"string"}},{"name":"type","required":true,"in":"query","schema":{"enum":["desktop","tablet","mobile"],"type":"string"}}],"responses":{"200":{"description":"Screenshot deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAssetResponseDto"}}}}},"tags":["Game Assets"]}},"/api/v2.0/games/{gameId}/assets":{"delete":{"operationId":"AssetsController_delete","summary":"Delete game assets","description":"Deletes one or more assets by IDs for the selected game and removes files from storage.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"ids","required":true,"in":"query","description":"JSON array string of asset UUIDs.","example":"[\"uuid-1\",\"uuid-2\"]","schema":{"type":"string"}}],"responses":{"200":{"description":"Assets deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAssetResponseDto"}}}}},"tags":["Game Assets"]},"get":{"operationId":"AssetsController_findAll","summary":"Get game assets","description":"Returns all assets for the selected game.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Assets fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAssetListResponseDto"}}}}},"tags":["Game Assets"]},"post":{"operationId":"AssetsController_create","summary":"Create game asset metadata","description":"Creates or updates asset metadata entry for a game. File upload is performed separately via signed URL.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAssetDto"}}}},"responses":{"200":{"description":"Asset metadata created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAssetResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Assets"]}},"/api/v2.0/games/{gameId}/assets/{assetId}/download-link":{"get":{"operationId":"AssetsController_getDownloadLink","summary":"Get asset download link","description":"Returns a signed download URL for an asset. Use preview=true for inline preview links.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"assetId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"preview","required":true,"in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Asset download link generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAssetResponseDto"}}}}},"tags":["Game Assets"]}},"/api/v2.0/games/{gameId}/assets/{assetId}":{"put":{"operationId":"AssetsController_update","summary":"Update game asset","description":"Updates asset metadata fields such as name, description, and labels.","parameters":[{"name":"assetId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAssetDto"}}}},"responses":{"200":{"description":"Asset updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAssetResponseDto"}}}}},"tags":["Game Assets"]}},"/api/v2.0/games/{gameId}/assets/signed-url":{"get":{"operationId":"AssetsController_generateSingedUrl","summary":"Generate asset upload signed URL","description":"Generates a signed upload URL for game asset file upload to cloud storage.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"size","required":true,"in":"query","schema":{"type":"number"}},{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed upload URL generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameAssetResponseDto"}}}}},"tags":["Game Assets"]}},"/api/v2.0/games/variables":{"post":{"operationId":"VariablesController_create","summary":"Create game variable","description":"Creates a new game variable.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVariableDto"}}}},"responses":{"200":{"description":"Variable created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariableResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Variables"]},"get":{"operationId":"VariablesController_findAll","summary":"Get game variables","description":"Returns game variables by query filters.","parameters":[{"name":"gameId","required":true,"in":"query","schema":{"type":"string"}},{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"name","required":false,"in":"query","schema":{"type":"string"}},{"name":"key","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Variables fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariableListResponseDto"}}}}},"tags":["Game Variables"]}},"/api/v2.0/games/variables/history":{"get":{"operationId":"VariablesController_findHistory","summary":"Get variable history","description":"Returns variable overwrite/update history for a game.","parameters":[{"name":"gameVariableId","required":true,"in":"query","schema":{"type":"string"}},{"name":"gameId","required":true,"in":"query","schema":{"type":"string"}},{"name":"environment","required":false,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}}],"responses":{"200":{"description":"Variable history fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariableListResponseDto"}}}}},"tags":["Game Variables"]}},"/api/v2.0/games/variables/merge":{"get":{"operationId":"VariablesController_merge","summary":"Merge variables","description":"Returns effective merged variable values for game/environment context.","parameters":[{"name":"gameId","required":true,"in":"query","schema":{"type":"string"}},{"name":"from","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}}],"responses":{"200":{"description":"Variables merged successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariableResponseDto"}}}}},"tags":["Game Variables"]}},"/api/v2.0/games/variables/{id}":{"put":{"operationId":"VariablesController_update","summary":"Update game variable","description":"Updates an existing game variable by ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVariableDto"}}}},"responses":{"200":{"description":"Variable updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariableResponseDto"}}}}},"tags":["Game Variables"]},"delete":{"operationId":"VariablesController_remove","summary":"Delete game variable","description":"Deletes a game variable by ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Variable deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariableResponseDto"}}}}},"tags":["Game Variables"]}},"/api/v2.0/games/{gameId}/bet-settings":{"post":{"operationId":"BetSettingsController_create","summary":"Create bet setting","description":"Creates a new bet setting for the selected game.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBetSettingDto"}}}},"responses":{"200":{"description":"Bet setting created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetSettingResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Bet Settings"]},"get":{"operationId":"BetSettingsController_findAll","summary":"Get bet settings","description":"Returns all bet settings for the selected game.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Bet settings fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetSettingListResponseDto"}}}}},"tags":["Game Bet Settings"]}},"/api/v2.0/games/{gameId}/bet-settings/{id}":{"put":{"operationId":"BetSettingsController_update","summary":"Update bet setting","description":"Updates an existing bet setting by ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBetSettingDto"}}}},"responses":{"200":{"description":"Bet setting updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetSettingResponseDto"}}}}},"tags":["Game Bet Settings"]},"delete":{"operationId":"BetSettingsController_remove","summary":"Delete bet setting","description":"Deletes a bet setting by ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Bet setting deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetSettingResponseDto"}}}}},"tags":["Game Bet Settings"]}},"/api/v2.0/games/core-variables/overwrite":{"delete":{"operationId":"CoreVariablesController_clearOverwrite","summary":"Clear core variable overwrite","description":"Clears an existing overwrite by type and overwrite ID (game, operator, or jurisdiction).","parameters":[{"name":"type","required":true,"in":"query","schema":{"enum":["jurisdiction","game","operator"],"type":"string"}},{"name":"id","required":true,"in":"query","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Overwrite cleared successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoreVariableResponseDto"}}}}},"tags":["Game Core Variables"]}},"/api/v2.0/games/core-variables/overwrite/operator":{"patch":{"operationId":"CoreVariablesController_overwriteForOperator","summary":"Overwrite core variable for operator","description":"Creates or updates an operator-level overwrite for a core variable, optionally scoped to a game.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverwriteCVOperatorDto"}}}},"responses":{"200":{"description":"Operator overwrite saved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoreVariableResponseDto"}}}}},"tags":["Game Core Variables"]}},"/api/v2.0/games/core-variables/overwrite/game":{"patch":{"operationId":"CoreVariablesController_overwriteForGame","summary":"Overwrite core variable for game","description":"Creates or updates a game/environment-level overwrite for a core variable.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverwriteCVGameDto"}}}},"responses":{"200":{"description":"Game overwrite saved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoreVariableResponseDto"}}}}},"tags":["Game Core Variables"]}},"/api/v2.0/games/core-variables":{"get":{"operationId":"CoreVariablesController_findAll","summary":"Get core variables","description":"Returns core variables with optional filtering by key/name/category and optional overwrite preview by operator or game context.","parameters":[{"name":"gameCategoryId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"operatorId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"environment","required":false,"in":"query","schema":{"enum":["production","staging"],"type":"string"}},{"name":"name","required":false,"in":"query","schema":{"type":"string"}},{"name":"key","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Core variables fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoreVariableListResponseDto"}}}}},"tags":["Game Core Variables"]}},"/api/v2.0/games/core-variables/overwrite/history":{"get":{"operationId":"CoreVariablesController_findHistory","summary":"Get core variable overwrite history","description":"Returns overwrite history records for a core variable, with optional filters by game/environment/operator/jurisdiction.","parameters":[{"name":"coreVariableId","required":true,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"environment","required":false,"in":"query","schema":{"enum":["production","staging"],"type":"string"}},{"name":"operatorId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"jurisdictionId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Overwrite history fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoreVariableListResponseDto"}}}}},"tags":["Game Core Variables"]}},"/api/v2.0/games/pricing":{"get":{"operationId":"PricingController_findAll","summary":"Get pricing lists","description":"Returns all configured game pricing lists.","parameters":[],"responses":{"200":{"description":"Pricing lists fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GamePricingListListResponseDto"}}}}},"tags":["Game Pricing"]},"post":{"operationId":"PricingController_create","summary":"Create pricing list","description":"Creates a new pricing list and applies its rules.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListDto"}}}},"responses":{"200":{"description":"Pricing list created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GamePricingListResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Pricing"]}},"/api/v2.0/games/pricing/current":{"get":{"operationId":"PricingController_findLatest","summary":"Get current pricing list","description":"Returns the currently active pricing list.","parameters":[],"responses":{"200":{"description":"Current pricing list fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GamePricingListListResponseDto"}}}}},"tags":["Game Pricing"]}},"/api/v2.0/games/pricing/game":{"get":{"operationId":"PricingController_findForGame","summary":"Get pricing for game","description":"Returns pricing data for a specific game and context.","parameters":[{"name":"gameId","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Game pricing fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GamePricingListResponseDto"}}}}},"tags":["Game Pricing"]}},"/api/v2.0/games/pricing/fees-updated":{"get":{"operationId":"PricingController_feesUpdates","summary":"Get fee update status","description":"Returns whether related game fees were recently updated.","parameters":[],"responses":{"200":{"description":"Fee update status fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GamePricingListResponseDto"}}}}},"tags":["Game Pricing"]}},"/api/v2.0/games/variants":{"post":{"operationId":"VariantsController_create","summary":"Create game variant","description":"Creates a new variant for a game and environment.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVariantDto"}}}},"responses":{"200":{"description":"Variant created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariantResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Variants"]},"get":{"operationId":"VariantsController_findAll","summary":"Get game variants","description":"Returns variants by game/environment and optional filters.","parameters":[{"name":"gameId","required":true,"in":"query","schema":{"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Variants fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariantListResponseDto"}}}}},"tags":["Game Variants"]}},"/api/v2.0/games/variants/select":{"get":{"operationId":"VariantsController_findAllForSelect","summary":"Get variants for select","description":"Returns simplified variant data used in select/dropdown UI.","parameters":[{"name":"gameId","required":true,"in":"query","schema":{"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Variant select data fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariantListResponseDto"}}}}},"tags":["Game Variants"]}},"/api/v2.0/games/variants/{id}":{"put":{"operationId":"VariantsController_update","summary":"Update game variant","description":"Updates an existing variant by ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVariantDto"}}}},"responses":{"200":{"description":"Variant updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariantResponseDto"}}}}},"tags":["Game Variants"]},"delete":{"operationId":"VariantsController_remove","summary":"Delete game variant","description":"Deletes a variant by ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Variant deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameVariantResponseDto"}}}}},"tags":["Game Variants"]}},"/api/v2.0/games/{gameId}/certificates":{"post":{"operationId":"CertificatesController_create","summary":"Create game certificate","description":"Creates a game certificate with jurisdiction, version references, and attached certificate files.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCertificateDto"}}}},"responses":{"200":{"description":"Certificate created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameCertificateResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Certificates"]},"get":{"operationId":"CertificatesController_findAll","summary":"Get game certificates","description":"Returns all game certificates with related jurisdiction, versions, files, and historical versions grouped by jurisdiction.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Certificates fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameCertificateListResponseDto"}}}}},"tags":["Game Certificates"]}},"/api/v2.0/games/{gameId}/certificates/signed-url":{"get":{"operationId":"CertificatesController_generateSingedUrl","summary":"Generate certificate upload signed URL","description":"Generates a signed upload URL for a certificate PDF file (max 5MB).","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"size","required":true,"in":"query","schema":{"type":"number"}},{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Signed upload URL generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameCertificateResponseDto"}}}}},"tags":["Game Certificates"]}},"/api/v2.0/games/{gameId}/certificates/select":{"get":{"operationId":"CertificatesController_findAllForSelect","summary":"Get game certificates for select","description":"Returns current (non-history) certificates for selection lists and store views.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Certificates for select fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameCertificateListResponseDto"}}}}},"tags":["Game Certificates"]}},"/api/v2.0/games/{gameId}/certificates/{id}":{"delete":{"operationId":"CertificatesController_remove","summary":"Delete game certificate","description":"Deletes a certificate and all associated stored certificate files.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Certificate deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameCertificateResponseDto"}}}}},"tags":["Game Certificates"]}},"/api/v2.0/games/{gameId}/integrations/{integrationId}/signed-url":{"get":{"operationId":"IntegrationsController_getSignedUrl","summary":"Generate integration image upload signed URL","description":"Generates a signed upload URL for a game integration image file.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"integrationId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"size","required":true,"in":"query","schema":{"type":"number"}},{"name":"type","required":true,"in":"query","schema":{"enum":["thumbnail","background"],"type":"string"}}],"responses":{"200":{"description":"Signed URL generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameIntegrationImageResponseDto"}}}}},"tags":["Game Integrations"]}},"/api/v2.0/games/{gameId}/integrations/{integrationId}/image":{"post":{"operationId":"IntegrationsController_createImage","summary":"Create integration image","description":"Creates a game integration image record after upload.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"integrationId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIntegrationImageDto"}}}},"responses":{"200":{"description":"Integration image created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameIntegrationImageResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Game Integrations"]}},"/api/v2.0/games/{gameId}/integrations/{integrationId}":{"put":{"operationId":"IntegrationsController_update","summary":"Update game integration category settings","description":"Updates integration category configuration for a game.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"integrationId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGameIntegrationCategoryDto"}}}},"responses":{"200":{"description":"Integration category updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameIntegrationImageResponseDto"}}}}},"tags":["Game Integrations"]}},"/api/v2.0/games/{gameId}":{"get":{"operationId":"GameController_findOne","summary":"Get game details","description":"Returns complete details for a single game including studio, categories, default variant and exclusivity information.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Game details fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game"]},"put":{"operationId":"GameController_update","summary":"Update game","description":"Updates game metadata, assets, categories and restrictions.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGameDto"}}}},"responses":{"200":{"description":"Game updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game"]},"delete":{"operationId":"GameController_remove","summary":"Delete game","description":"Starts asynchronous game deletion and returns immediately. Track deletion progress via [GET /api/v2.0/games/progress](#tag/games/GET/api/v2.0/games/progress).","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Game deletion process started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game"]}},"/api/v2.0/games/{gameId}/integration-settings":{"get":{"operationId":"GameController_findOneIntegrationSettings","summary":"Get game integration settings","description":"Returns integration-specific images and mapped integration categories for the given game.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Game integration settings fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game"]}},"/api/v2.0/games/{gameId}/links":{"get":{"operationId":"GameController_findOneLinks","summary":"Get game links","description":"Returns generated game play links by environment for the given game.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Game links fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameListResponseDto"}}}}},"tags":["Game"]}},"/api/v2.0/games/{gameId}/suspend":{"patch":{"operationId":"GameController_suspend","summary":"Suspend game","description":"Suspends a game in a specific environment and stores suspension reason/history.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendGameDto"}}}},"responses":{"200":{"description":"Game suspended successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game"]}},"/api/v2.0/games/{gameId}/resume":{"patch":{"operationId":"GameController_resume","summary":"Resume game","description":"Resumes a previously suspended game in a specific environment and stores resume reason/history.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendGameDto"}}}},"responses":{"200":{"description":"Game resumed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameResponseDto"}}}}},"tags":["Game"]}},"/api/v2.0/games/{gameId}/suspensions":{"get":{"operationId":"GameController_getSuspensionHistory","summary":"Get game suspension history","description":"Returns suspension/resume history entries for the selected game and environment.","parameters":[{"name":"gameId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}}],"responses":{"200":{"description":"Game suspension history fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameListResponseDto"}}}}},"tags":["Game"]}},"/api/v2.0/github/repository-connection":{"get":{"operationId":"GithubController_findRepositoryConnection","summary":"Get repository connection","description":"Returns repository connection for one target scope (game, integration, http middleware, or core function).","parameters":[{"name":"gameId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"integrationId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"httpMiddlewareId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"coreFunctionId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Repository connection fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryConnectionResponseDto"}}}}},"tags":["GitHub"]}},"/api/v2.0/github/commits":{"get":{"operationId":"GithubController_findCommits","summary":"Get repository commits","description":"Returns commits for a repository branch. If branch is invalid, the default branch is used and returned as updatedBranch.","parameters":[{"name":"owner","required":true,"in":"query","example":"fireball-org","schema":{"type":"string"}},{"name":"repo","required":true,"in":"query","example":"fireball-api","schema":{"type":"string"}},{"name":"branch","required":true,"in":"query","example":"main","schema":{"type":"string"}},{"name":"repoConnectionId","required":true,"in":"query","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Commits fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryConnectionResponseDto"}}}}},"tags":["GitHub"]}},"/api/v2.0/github/branches":{"get":{"operationId":"GithubController_findBranches","summary":"Get repository branches","description":"Returns available branches for a repository.","parameters":[{"name":"owner","required":true,"in":"query","example":"fireball-org","schema":{"type":"string"}},{"name":"repo","required":true,"in":"query","example":"fireball-api","schema":{"type":"string"}}],"responses":{"200":{"description":"Branches fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryConnectionListResponseDto"}}}}},"tags":["GitHub"]}},"/api/v2.0/github/repositories":{"get":{"operationId":"GithubController_findRepositories","summary":"Get accessible repositories","description":"Returns repositories accessible to the currently linked GitHub installation.","parameters":[],"responses":{"200":{"description":"Repositories fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryConnectionListResponseDto"}}}}},"tags":["GitHub"]}},"/api/v2.0/github/link":{"post":{"operationId":"GithubController_linkRepository","summary":"Link repository to target","description":"Creates a repository connection for a game/integration/http middleware/core function target.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectToRepositoryDto"}}}},"responses":{"200":{"description":"Repository linked successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryConnectionResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["GitHub"]}},"/api/v2.0/github/integration":{"get":{"operationId":"GithubController_getIntegration","summary":"Get GitHub integration","description":"Returns details of the GitHub integration linked to the selected organization.","parameters":[],"responses":{"200":{"description":"Integration fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryConnectionResponseDto"}}}}},"tags":["GitHub"]}},"/api/v2.0/github/integrate":{"get":{"operationId":"GithubController_integrate","summary":"Integrate organization with GitHub installation","description":"Stores or updates organization linkage to a GitHub app installation ID.","parameters":[{"name":"installationId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Organization integration updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryConnectionResponseDto"}}}}},"tags":["GitHub"]}},"/api/v2.0/integrations/{id}/game-settings":{"get":{"operationId":"GameSettingsController_find","summary":"Get integration game settings","description":"Returns game category and image requirements for an integration.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Integration game settings fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationGameSettingResponseDto"}}}}},"tags":["Integrations"]},"put":{"operationId":"GameSettingsController_update","summary":"Update integration game settings","description":"Updates category and image requirement rules for an integration.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGameSettingDto"}}}},"responses":{"200":{"description":"Integration game settings updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationGameSettingResponseDto"}}}}},"tags":["Integrations"]}},"/api/v2.0/integrations/{id}/game-categories":{"post":{"operationId":"GameCategoriesController_create","summary":"Create integration game category","description":"Creates a game category option for an integration.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGameCategoryDto"}}}},"responses":{"200":{"description":"Game category created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationGameCategoryResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Integrations"]},"get":{"operationId":"GameCategoriesController_findAll","summary":"Get integration game categories","description":"Returns game categories configured for an integration.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Game categories fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationGameCategoryListResponseDto"}}}}},"tags":["Integrations"]}},"/api/v2.0/integrations/{id}/game-categories/select":{"get":{"operationId":"GameCategoriesController_findAllForSelect","summary":"Get game categories for select","description":"Returns lightweight game category options for select fields.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Game category select options fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationGameCategoryListResponseDto"}}}}},"tags":["Integrations"]}},"/api/v2.0/integrations/{id}/game-categories/{catId}":{"put":{"operationId":"GameCategoriesController_update","summary":"Update integration game category","description":"Updates integration game category fields by category ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"catId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGameCategoryDto"}}}},"responses":{"200":{"description":"Game category updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationGameCategoryResponseDto"}}}}},"tags":["Integrations"]},"delete":{"operationId":"GameCategoriesController_remove","summary":"Delete integration game category","description":"Deletes a game category from an integration.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}},{"name":"catId","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Game category deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationGameCategoryResponseDto"}}}}},"tags":["Integrations"]}},"/api/v2.0/integrations":{"post":{"operationId":"IntegrationsController_create","summary":"Create integration","description":"Creates a new operator integration.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIntegrationDto"}}}},"responses":{"200":{"description":"Integration created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Integrations"]},"get":{"operationId":"IntegrationsController_findAll","summary":"Get integrations","description":"Returns integrations with filtering and pagination.","parameters":[{"name":"name","required":false,"in":"query","schema":{"type":"string"}},{"name":"id","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Integrations fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationListResponseDto"}}}}},"tags":["Integrations"]}},"/api/v2.0/integrations/settings":{"get":{"operationId":"IntegrationsController_findAllSettings","summary":"Get integration settings overview","description":"Returns integrations that have configured category/image requirements.","parameters":[],"responses":{"200":{"description":"Integration settings fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationListResponseDto"}}}}},"tags":["Integrations"]}},"/api/v2.0/integrations/progress":{"get":{"operationId":"IntegrationsController_sse","summary":"Stream integration deployment progress","description":"Streams server-sent integration deployment progress messages.","parameters":[],"responses":{"200":{"description":"SSE stream established successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponseDto"}}}}},"tags":["Integrations"]}},"/api/v2.0/integrations/{id}":{"get":{"operationId":"IntegrationsController_findOne","summary":"Get integration by ID","description":"Returns details for a specific integration.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Integration fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponseDto"}}}}},"tags":["Integrations"]},"delete":{"operationId":"IntegrationsController_remove","summary":"Delete integration","description":"Deletes integration resources and related deployment artifacts.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Integration deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponseDto"}}}}},"tags":["Integrations"]}},"/api/v2.0/integrations/{id}/http-middleware":{"patch":{"operationId":"IntegrationsController_enableHttpMiddleware","summary":"Enable HTTP middleware","description":"Enables HTTP middleware deployment for an integration with the provided function name.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableHttpMiddlewareDto"}}}},"responses":{"200":{"description":"HTTP middleware enabled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponseDto"}}}}},"tags":["Integrations"]}},"/api/v2.0/integrations/{id}/client-script":{"patch":{"operationId":"IntegrationsController_enableClientScript","summary":"Enable client scripts","description":"Enables client script support for the integration.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Client script enabled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponseDto"}}}}},"tags":["Integrations"]},"get":{"operationId":"IntegrationsController_findClientScripts","summary":"Get client scripts","description":"Returns client scripts configured for an integration.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Client scripts fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationListResponseDto"}}}}},"tags":["Integrations"]},"post":{"operationId":"IntegrationsController_createClientScript","summary":"Create or update client script","description":"Creates a new client script or updates existing one for the specified environment.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateClientScriptDto"}}}},"responses":{"200":{"description":"Client script saved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Integrations"]}},"/api/v2.0/integrations/{id}/repository-connection":{"get":{"operationId":"IntegrationsController_findRepositoryConnection","summary":"Get integration repository connection","description":"Returns repository linkage information for an integration.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Repository connection fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationResponseDto"}}}}},"tags":["Integrations"]}},"/api/v2.0/players":{"get":{"operationId":"PlayersController_findAll","summary":"Get players","description":"Returns players by environment and optional filters.","parameters":[{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"playerId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"operatorPlayerId","required":false,"in":"query","schema":{"type":"string"}},{"name":"operatorId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"createdFrom","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"createdTo","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Players fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerListResponseDto"}}}}},"tags":["Players"]}},"/api/v2.0/players/{id}":{"get":{"operationId":"PlayersController_findOne","summary":"Get player by ID","description":"Returns a single player by UUID with access filtering.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Player fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerResponseDto"}}}}},"tags":["Players"]}},"/api/v2.0/jackpots":{"post":{"operationId":"JackpotsController_createTemplate","summary":"Create jackpot template","description":"Creates a jackpot template for Fireball or studio scope.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJackpotTemplateDto"}}}},"responses":{"200":{"description":"Jackpot template created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JackpotTemplateResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Jackpots"]},"get":{"operationId":"JackpotsController_findAll","summary":"Get jackpot templates","description":"Returns jackpot templates with filtering and pagination.","parameters":[{"name":"name","required":false,"in":"query","schema":{"type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"id","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"currencyIsoCode","required":false,"in":"query","schema":{"minLength":3,"maxLength":3,"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"enum":["coins","money"],"type":"string"}},{"name":"dataType","required":false,"in":"query","schema":{"enum":["global","custom"],"type":"string"}},{"name":"studioId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Jackpot templates fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JackpotTemplateListResponseDto"}}}}},"tags":["Jackpots"]}},"/api/v2.0/jackpots/overwrites":{"post":{"operationId":"JackpotsController_createTemplateOverwrite","summary":"Create jackpot template overwrite","description":"Creates an operator overwrite for a jackpot template in a specific environment.","parameters":[{"name":"templateId","required":true,"in":"query","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJackpotTemplateOverwriteDto"}}}},"responses":{"200":{"description":"Template overwrite created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JackpotTemplateResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Jackpots"]}},"/api/v2.0/jackpots/overwrites/{id}":{"put":{"operationId":"JackpotsController_updateOverwrite","summary":"Update jackpot overwrite","description":"Updates jackpot overwrite values by overwrite ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJackpotTemplateOverwriteDto"}}}},"responses":{"200":{"description":"Overwrite updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JackpotTemplateResponseDto"}}}}},"tags":["Jackpots"]},"delete":{"operationId":"JackpotsController_removeOverwrite","summary":"Delete jackpot overwrite","description":"Deletes an existing jackpot overwrite by overwrite ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Overwrite deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JackpotTemplateResponseDto"}}}}},"tags":["Jackpots"]}},"/api/v2.0/jackpots/live":{"get":{"operationId":"JackpotsController_findAllLive","summary":"Get live jackpots","description":"Returns active live jackpots based on environment and filters.","parameters":[{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"currencyIsoCode","required":false,"in":"query","schema":{"minLength":3,"maxLength":3,"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"enum":["coins","money"],"type":"string"}},{"name":"id","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Live jackpots fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JackpotTemplateListResponseDto"}}}}},"tags":["Jackpots"]}},"/api/v2.0/jackpots/released":{"get":{"operationId":"JackpotsController_findAllReleased","summary":"Get released jackpots","description":"Returns released jackpots with optional operator/session filters.","parameters":[{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"jackpotTemplateId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"currencyIsoCode","required":false,"in":"query","schema":{"minLength":3,"maxLength":3,"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"enum":["coins","money"],"type":"string"}},{"name":"operatorId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"gameSessionId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"playerId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Released jackpots fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JackpotTemplateListResponseDto"}}}}},"tags":["Jackpots"]}},"/api/v2.0/jackpots/contributions":{"get":{"operationId":"JackpotsController_findAllContributions","summary":"Get jackpot contributions","description":"Returns contributions for live or released jackpots based on jackpotType.","parameters":[{"name":"environment","required":true,"in":"query","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"jackpotType","required":true,"in":"query","schema":{"enum":["released","live"],"type":"string"}},{"name":"jackpotTemplateId","required":true,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"operatorId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"operatorPlayerSessionId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"createdFrom","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"createdTo","required":false,"in":"query","schema":{"format":"date-time","type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Jackpot contributions fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JackpotTemplateListResponseDto"}}}}},"tags":["Jackpots"]}},"/api/v2.0/jackpots/{id}":{"put":{"operationId":"JackpotsController_update","summary":"Update jackpot template","description":"Updates mutable jackpot template fields by template ID.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJackpotDto"}}}},"responses":{"200":{"description":"Jackpot template updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JackpotTemplateResponseDto"}}}}},"tags":["Jackpots"]},"delete":{"operationId":"JackpotsController_remove","summary":"Delete jackpot template","description":"Deletes a jackpot template and dependent records.","parameters":[{"name":"id","required":true,"in":"path","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Jackpot template deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JackpotTemplateResponseDto"}}}}},"tags":["Jackpots"]}},"/api/v2.0/translations":{"post":{"operationId":"TranslationsController_createApp","summary":"Create translation app","description":"Creates a translation app and initializes its root folder.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTranslationAppDto"}}}},"responses":{"200":{"description":"Translation app created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Translations"]},"get":{"operationId":"TranslationsController_findAllApps","summary":"List translation apps","description":"Returns paginated translation apps filtered by name, game, and organization access.","parameters":[{"name":"name","required":false,"in":"query","example":"casino","schema":{"type":"string"}},{"name":"gameId","required":false,"in":"query","schema":{"format":"uuid","type":"string"}},{"name":"organizationId","required":false,"in":"query","description":"Filter by organization id (Fireball only).","schema":{"format":"uuid","type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Translation apps retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppListResponseDto"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/{id}":{"get":{"operationId":"TranslationsController_findOneApp","summary":"Get translation app by id","description":"Returns translation app details and counters by app UUID.","parameters":[{"name":"id","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Translation app retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppResponseDto"}}}}},"tags":["Translations"]},"patch":{"operationId":"TranslationsController_updateSettings","summary":"Update app settings","description":"Partially updates translation app settings (e.g. autoTranslate).","parameters":[{"name":"id","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTranslationDto"}}}},"responses":{"200":{"description":"App settings updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppResponseDto"}}}}},"tags":["Translations"]},"put":{"operationId":"TranslationsController_updateApp","summary":"Update translation app","description":"Updates translation app basic fields such as name and gameId.","parameters":[{"name":"id","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTranslationDto"}}}},"responses":{"200":{"description":"Translation app updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppResponseDto"}}}}},"tags":["Translations"]},"delete":{"operationId":"TranslationsController_removeApp","summary":"Delete translation app","description":"Deletes translation app by id.","parameters":[{"name":"id","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Translation app deleted successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppResponseDto"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/{id}/translations":{"delete":{"operationId":"TranslationsController_removeAppTranslation","summary":"Remove app translation language","description":"Removes a translation language from an app and deletes associated key locales.","parameters":[{"name":"id","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}},{"name":"languageIsoCode","required":true,"in":"query","description":"Native or custom language ISO code to remove.","schema":{"type":"string"}}],"responses":{"200":{"description":"App translation language removed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppResponseDto"}}}}},"tags":["Translations"]},"post":{"operationId":"TranslationsController_translateApp","summary":"Translate app","description":"Starts machine translation for selected app language ISO codes.","parameters":[{"name":"id","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateAppDto"}}}},"responses":{"200":{"description":"App translation started successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/translate/keys":{"get":{"operationId":"TranslateController_findAllKeys","summary":"List keys for translation view","description":"Returns selected apps and keys filtered by appIds and languageIsoCodes for translation workflows.","parameters":[{"name":"appIds","required":true,"in":"query","description":"Comma-separated app ids in query string or [\"all\"].","example":["all"],"schema":{"type":"array","items":{"type":"string"}}},{"name":"languageIsoCodes","required":true,"in":"query","description":"Comma-separated language/custom-language ISO codes in query string.","example":["en","fr"],"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Translation keys retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateFindKeysResponseDto"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/translate":{"post":{"operationId":"TranslateController_translateKey","summary":"Create translated key locale version","description":"Creates new translated locale version for a translation key locale.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateKeyDto"}}}},"responses":{"200":{"description":"Translated key locale version created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslateResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/{appId}/folders/root":{"get":{"operationId":"FoldersController_findRoot","summary":"Get root folder","description":"Returns root folder for translation app.","parameters":[{"name":"appId","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Root folder retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppFolderResponseDto"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/{appId}/folders":{"post":{"operationId":"FoldersController_create","summary":"Create folder","description":"Creates a folder in translation app tree.","parameters":[{"name":"appId","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFolderDto"}}}},"responses":{"200":{"description":"Folder created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppFolderResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/{appId}/folders/{folderId}/children":{"get":{"operationId":"FoldersController_findChildren","summary":"Get folder children","description":"Returns direct child folders and keys for selected folder.","parameters":[{"name":"folderId","required":true,"in":"path","description":"Folder id (UUID).","schema":{"type":"string"}},{"name":"appId","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Folder children retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppFolderResponseDto"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/{appId}/folders/{folderId}":{"patch":{"operationId":"FoldersController_update","summary":"Update folder","description":"Updates folder name.","parameters":[{"name":"folderId","required":true,"in":"path","description":"Folder id (UUID).","schema":{"type":"string"}},{"name":"appId","required":true,"in":"path","description":"Translation app id (UUID).","schema":{}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFolderDto"}}}},"responses":{"200":{"description":"Folder updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppFolderResponseDto"}}}}},"tags":["Translations"]},"delete":{"operationId":"FoldersController_remove","summary":"Delete folder","description":"Deletes folder by id.","parameters":[{"name":"folderId","required":true,"in":"path","description":"Folder id (UUID).","schema":{"type":"string"}},{"name":"appId","required":true,"in":"path","description":"Translation app id (UUID).","schema":{}}],"responses":{"200":{"description":"Folder deleted successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationAppFolderResponseDto"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/{appId}/folders/{folderId}/keys":{"post":{"operationId":"KeysController_create","summary":"Create translation key","description":"Creates a translation key in a folder and initializes default locale/version.","parameters":[{"name":"folderId","required":true,"in":"path","description":"Folder id (UUID).","schema":{"type":"string"}},{"name":"appId","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyDto"}}}},"responses":{"200":{"description":"Translation key created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationKeyResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Translations"]}},"/api/v2.0/translations/{appId}/folders/{folderId}/keys/{keyId}":{"patch":{"operationId":"KeysController_update","summary":"Update translation key","description":"Updates key metadata and creates a new locale version value.","parameters":[{"name":"keyId","required":true,"in":"path","description":"Translation key id (UUID).","schema":{"type":"string"}},{"name":"appId","required":true,"in":"path","description":"Translation app id (UUID).","schema":{"type":"string"}},{"name":"folderId","required":true,"in":"path","description":"Folder id (UUID).","schema":{}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateKeyDto"}}}},"responses":{"200":{"description":"Translation key updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationKeyResponseDto"}}}}},"tags":["Translations"]},"delete":{"operationId":"KeysController_remove","summary":"Delete translation key","description":"Deletes translation key and cascades locales/versions.","parameters":[{"name":"keyId","required":true,"in":"path","description":"Translation key id (UUID).","schema":{"type":"string"}},{"name":"folderId","required":true,"in":"path","description":"Folder id (UUID).","schema":{}},{"name":"appId","required":true,"in":"path","description":"Translation app id (UUID).","schema":{}}],"responses":{"200":{"description":"Translation key deleted successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationKeyResponseDto"}}}}},"tags":["Translations"]}},"/api/v2.0/reports/generate/ggr":{"post":{"operationId":"GenerateController_generateGGR","summary":"Generate GGR report","description":"Generates a gross gaming revenue report with chart/table breakdown and totals for the requested period.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateGRRDto"}}}},"responses":{"200":{"description":"GGR report generated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GgrReportResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Reports"]}},"/api/v2.0/reports/generate/bet-count":{"post":{"operationId":"GenerateController_generateBetPlaced","summary":"Generate bet-count report","description":"Generates bet-count report data split by zero/non-zero bet amount with chart and totals.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateBetCountDto"}}}},"responses":{"200":{"description":"Bet-count report generated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BetCountReportResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Reports"]}},"/api/v2.0/reports/generate/game-certificates":{"post":{"operationId":"GenerateController_generateCertificates","summary":"Generate game certificates report","description":"Generates game certificate status/expiration report across games and jurisdictions.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateCertificatesDto"}}}},"responses":{"200":{"description":"Game certificates report generated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameCertificatesReportResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Reports"]}},"/api/v2.0/reports/generate/game-fee":{"post":{"operationId":"GenerateController_generateGameFee","summary":"Generate game-fee report","description":"Generates game fee report totals and charts based on calculated GGR fee rules.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateGameFeeDto"}}}},"responses":{"200":{"description":"Game-fee report generated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameFeeReportResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Reports"]}},"/api/v2.0/promotions/free-bets":{"post":{"operationId":"FreeBetsController_create","summary":"Create free-bet campaign","description":"Creates a free-bet campaign for an operator and assigns players according to the selected player type.","parameters":[],"requestBody":{"required":true,"description":"Free-bet campaign creation payload.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFreeBetDto"}}}},"responses":{"200":{"description":"Campaign created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeBetCampaignResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Promotional Free Bets"]},"get":{"operationId":"FreeBetsController_findAll","summary":"List free-bet campaigns","description":"Returns paginated free-bet campaigns filtered by environment and optional campaign attributes.","parameters":[{"name":"gameId","required":false,"in":"query","description":"Filter by game id.","schema":{"format":"uuid","type":"string"}},{"name":"environment","required":true,"in":"query","example":"production","description":"Target environment.","schema":{"enum":["development","staging","production"],"type":"string"}},{"name":"currencyIsoCode","required":false,"in":"query","example":"EUR","description":"Filter by campaign currency ISO code.","schema":{"type":"string"}},{"name":"operatorCampaignId","required":false,"in":"query","description":"Filter by operator campaign id.","schema":{"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Free-bet campaigns retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeBetCampaignListResponseDto"}}}}},"tags":["Promotional Free Bets"]}},"/api/v2.0/promotions/free-bets/{id}":{"get":{"operationId":"FreeBetsController_findOne","summary":"Get free-bet campaign by id","description":"Returns detailed campaign information, including computed campaign stats.","parameters":[{"name":"id","required":true,"in":"path","description":"Free-bet campaign id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Campaign retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeBetCampaignResponseDto"}}}}},"tags":["Promotional Free Bets"]}},"/api/v2.0/promotions/free-bets/{id}/player/{playerId}":{"get":{"operationId":"FreeBetsController_findPlayer","summary":"Retrieves campaign bet information for a specific player","description":"Accepts either operatorPlayerId or Fireball player UUID.","parameters":[{"name":"id","required":true,"in":"path","description":"Free-bet campaign id (UUID).","schema":{"type":"string"}},{"name":"playerId","required":true,"in":"path","description":"Player UUID or operator player id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Player campaign bet information retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeBetCampaignResponseDto"}}}},"400":{"description":"Returned when player does not exist in Fireball yet or has no campaign bet records.","content":{"application/json":{"schema":{"oneOf":[{"example":{"statusCode":400,"message":"Player does not exist or has not yet participated in capaign","error":"Bad Request"}},{"example":{"statusCode":400,"message":"Player is not part of campaign or has not yet participated in the campaign","error":"Bad Request"}}]}}}},"404":{"description":"Returned when campaign does not exist or is not accessible for the current requester.","content":{"application/json":{"schema":{"example":{"statusCode":404,"message":"Cannot find campaign with id: \"f72fd1af-0aec-4ea4-b3ff-526a9ca62157\"","error":"Not Found"}}}}}},"tags":["Promotional Free Bets"]}},"/api/v2.0/promotions/free-bets/{id}/players":{"get":{"operationId":"FreeBetsController_findPlayers","summary":"List campaign players","description":"Returns free-bet campaign player records for a campaign, including total records count.","parameters":[{"name":"id","required":true,"in":"path","description":"Free-bet campaign id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Campaign players retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeBetCampaignListResponseDto"}}}},"404":{"description":"Returned when campaign does not exist or is not accessible for the current requester.","content":{"application/json":{"schema":{"example":{"statusCode":404,"message":"Cannot find campaign with id: \"f72fd1af-0aec-4ea4-b3ff-526a9ca62157\"","error":"Not Found"}}}}}},"tags":["Promotional Free Bets"]},"post":{"operationId":"FreeBetsController_addPlayers","summary":"Adds players to an existing campaign","description":"Accepts either \"playerIds\" or \"operatorPlayerIds\" and grants each selected player campaign free-bet entries.","parameters":[{"name":"id","required":true,"in":"path","description":"Free-bet campaign id (UUID).","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"Request body consists of either an array of Fireball \"playerIds\" or \"operatorPlayerIds\"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPlayersDto"}}}},"responses":{"200":{"description":"Returns total campaign free-bet rows added for selected players.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeBetCampaignResponseDto"}}}},"400":{"description":"Returned when campaign player selection type is all players.","content":{"application/json":{"schema":{"example":{"statusCode":400,"message":"Cannot remove players from campaign with player selection of all players","error":"Bad Request"}}}}},"404":{"description":"Returned when campaign does not exist or is not accessible for the current requester.","content":{"application/json":{"schema":{"example":{"statusCode":404,"message":"Cannot find campaign with id: \"f72fd1af-0aec-4ea4-b3ff-526a9ca62157\"","error":"Not Found"}}}}}},"tags":["Promotional Free Bets"]},"delete":{"operationId":"FreeBetsController_removePlayers","summary":"Removes players from an existing campaign","description":"Removes remaining free bets for each players by either \"playerIds\" or \"operatorPlayerIds\"","parameters":[{"name":"id","required":true,"in":"path","description":"Free-bet campaign id (UUID).","schema":{"type":"string"}},{"name":"playerIds","required":false,"in":"query","description":"Comma-separated Fireball player UUIDs in query string. Example: playerIds=id1,id2","example":["a6df5ef4-d14e-4720-a7eb-1dc33f0548e7"],"schema":{"type":"array","items":{"type":"string"}}},{"name":"operatorPlayerIds","required":false,"in":"query","description":"Comma-separated operator player ids in query string. Example: operatorPlayerIds=ext1,ext2","example":["ext-player-1","ext-player-2"],"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Returns total campaign free-bet rows removed for selected players.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeBetCampaignResponseDto"}}}},"400":{"description":"Returned when campaign player selection type is all players or no players are found.","content":{"application/json":{"schema":{"oneOf":[{"example":{"statusCode":400,"message":"Cannot remove players from campaign with player selection of all players","error":"Bad Request"}},{"example":{"statusCode":400,"message":"Cannot find any campaign players with such ids","error":"Bad Request"}}]}}}},"404":{"description":"Returned when campaign does not exist or is not accessible for the current requester.","content":{"application/json":{"schema":{"example":{"statusCode":404,"message":"Cannot find campaign with id: \"f72fd1af-0aec-4ea4-b3ff-526a9ca62157\"","error":"Not Found"}}}}}},"tags":["Promotional Free Bets"]}},"/api/v2.0/reports/schedules":{"post":{"operationId":"ScheduleController_create","summary":"Create report schedule","description":"Creates a report schedule for the selected organization.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScheduleDto"}}}},"responses":{"200":{"description":"Report schedule created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportScheduleResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Reports Scheduling"]},"get":{"operationId":"ScheduleController_findAll","summary":"List report schedules","description":"Returns report schedules filtered by organization, name, type, and frequency.","parameters":[{"name":"organizationId","required":false,"in":"query","description":"Filter by organization id (Fireball users only).","schema":{"format":"uuid","type":"string"}},{"name":"name","required":false,"in":"query","example":"Daily","schema":{"type":"string"}},{"name":"type","required":false,"in":"query","example":"GGR","schema":{"enum":["GGR","Bet count","Game certificates","Game fees","Cost"],"type":"string"}},{"name":"frequency","required":false,"in":"query","example":"Weekly","schema":{"enum":["Hourly","Daily","Weekly","Monthly"],"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Report schedules retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportScheduleListResponseDto"}}}}},"tags":["Reports Scheduling"]}},"/api/v2.0/reports/schedules/{id}":{"put":{"operationId":"ScheduleController_update","summary":"Update report schedule","description":"Updates a report schedule by id.","parameters":[{"name":"id","required":true,"in":"path","description":"Report schedule id (UUID).","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScheduleDto"}}}},"responses":{"200":{"description":"Report schedule updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportScheduleResponseDto"}}}}},"tags":["Reports Scheduling"]},"delete":{"operationId":"ScheduleController_remove","summary":"Delete report schedule","description":"Deletes a report schedule by id.","parameters":[{"name":"id","required":true,"in":"path","description":"Report schedule id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Report schedule deleted successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportScheduleResponseDto"}}}}},"tags":["Reports Scheduling"]}},"/api/v2.0/reports/schedules/{id}/activate":{"patch":{"operationId":"ScheduleController_activate","summary":"Activate report schedule","description":"Marks a report schedule as active.","parameters":[{"name":"id","required":true,"in":"path","description":"Report schedule id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Schedule activation successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportScheduleResponseDto"}}}}},"tags":["Reports Scheduling"]}},"/api/v2.0/reports/schedules/{id}/deactivate":{"patch":{"operationId":"ScheduleController_deactivate","summary":"Deactivate report schedule","description":"Marks a report schedule as inactive.","parameters":[{"name":"id","required":true,"in":"path","description":"Report schedule id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Schedule deactivation successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportScheduleResponseDto"}}}}},"tags":["Reports Scheduling"]}},"/api/v2.0/reports/schedules/{id}/run":{"post":{"operationId":"ScheduleController_forceRun","summary":"Force run report schedule","description":"Runs a schedule immediately regardless of its cadence.","parameters":[{"name":"id","required":true,"in":"path","description":"Report schedule id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Report schedule ran successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportScheduleResponseDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Reports Scheduling"]}},"/api/v2.0/reports/history":{"get":{"operationId":"HistoryController_findAll","summary":"List report history entries","description":"Returns paginated report schedule history entries filtered by organization and/or schedule.","parameters":[{"name":"organizationId","required":false,"in":"query","description":"Filter by organization id (Fireball users only).","schema":{"format":"uuid","type":"string"}},{"name":"scheduleId","required":false,"in":"query","description":"Filter by report schedule id.","schema":{"format":"uuid","type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"size","required":true,"in":"query","schema":{"minimum":1,"maximum":1000,"type":"number"}}],"responses":{"200":{"description":"Report history entries retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportScheduleHistoryListResponseDto"}}}}},"tags":["Reports History"]}},"/api/v2.0/reports/history/{id}":{"get":{"operationId":"HistoryController_findOne","summary":"Get report history entry by id","description":"Returns a single report schedule history entry by UUID.","parameters":[{"name":"id","required":true,"in":"path","description":"Report history entry id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Report history entry retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportScheduleHistoryResponseDto"}}}},"404":{"description":"Returned when history entry is not found.","content":{"application/json":{"schema":{"example":{"statusCode":404,"message":"Cannot find report history entry with id: \"f72fd1af-0aec-4ea4-b3ff-526a9ca62157\"","error":"Not Found"}}}}}},"tags":["Reports History"]}}},"info":{"title":"Fireball API documentation","description":"This API supports both interactive admin usage and server-to-server integrations. Most endpoints in this documentation can be used securely through **service accounts**.\n\n## Service accounts\n\n- Create and manage service accounts in IAM: [https://app.fireballserver.com/iam/service-accounts](https://app.fireballserver.com/iam/service-accounts)\n- Assign only the permissions your integration needs (least-privilege access).\n- Use separate service accounts per environment/integration where possible for clearer audit and rotation.\n\n## Authentication (Bearer token)\n\nAuthenticate requests using a service account bearer token:\n\n```http\nAuthorization: Bearer <service_account_token>\n```\n\nAll protected endpoints require a valid token and matching permissions. Unauthorized or insufficiently scoped tokens will be rejected.\n\n## Testing endpoints from the docs\n\nIf you are already authenticated in [https://app.fireballserver.com](https://app.fireballserver.com), you can test endpoints directly from this documentation UI as well.\n\n- Open the target endpoint and execute requests from the docs interface.\n- If a request requires bearer authentication, provide the same valid service account token in the `Authorization` header.\n- Responses will reflect your current access scope and permissions.","version":"2.0","contact":{}},"tags":[{"name":"Audit Logs","description":"Tracks administrative and service-account activity. A log entry is created for every audited API action executed from the admin panel (authenticated user) or through a service account token, including metadata such as actor, endpoint, method, status, payload, and timestamp."},{"name":"Operators","description":"Manage operator organizations, including creation, listing, and retrieval by ID according to requester access rules and permissions."},{"name":"Integrations","description":"Manage operator integrations including lifecycle operations, deployment toggles (HTTP middleware/client scripts), integration game category requirements, and integration game settings."},{"name":"Jackpots","description":"Manage jackpot templates, operator overwrites, live/released jackpot views, and contribution tracking across environments."},{"name":"Players","description":"Manage player listing and details with environment and organization-aware access controls."},{"name":"Currencies","description":"Retrieve fiat, crypto, and virtual currencies and exchange-rate data."},{"name":"Currencies V2","description":"Currencies V2 coming soon with enhanced features and management capabilities."},{"name":"Promotional Free Bets","description":"Manage free-bet campaigns, campaign players, and per-player campaign bet progress across environments."},{"name":"Translations","description":"Manage translation apps, folders, keys, key locale versions, and translation workflows. Translations are generally used for games, but also can be used for whatever the organization desires. More information of how to query the actual translations is available [here](https://docs.fireballserver.com/reference/get-translation)"},{"name":"Reports","description":"Generate on-demand analytical reports including GGR, bet-count, game certificates, and game fee reports."},{"name":"Reports History","description":"View historical executions of report schedules with captured inputs and output snapshots."},{"name":"Reports Scheduling","description":"Manage report schedules, activation lifecycle, and immediate/queued execution."},{"name":"GitHub","description":"Manage GitHub integration and repository linkage, including installation binding, repository connection lookup, and repository/branch/commit discovery."},{"name":"Game","description":"Manage game catalog operations including creation, retrieval, categories, and external game listing."},{"name":"Game Achievements","description":"Manage game achievements for specific games and environments, including list, create, update and delete operations."},{"name":"Game Assets","description":"Manage game assets and screenshots, including metadata operations, signed upload URLs, download links, and delete operations."},{"name":"Game Bet Settings","description":"Manage per-game bet settings, including create, list, update, and delete operations."},{"name":"Game Certificates","description":"Manage game certification records, including signed upload URL generation, listing, selection view, and certificate deletion."},{"name":"Game Clients","description":"Manage game client versions, deployment/promotion across environments, upload signed URLs, and progress streaming."},{"name":"Game Core Variables","description":"Manage reusable core game variables and overwrite flows at game, operator, and jurisdiction scope, including history and rollback/clear operations. Core variables are managed by Fireball."},{"name":"Game Insights","description":"Manage game insights, including listing, creation, updates, subscriber management, and deletion."},{"name":"Game Integrations","description":"Some operator integrations require specific configurations like custom images or categories. In order for the game to available to operators those need to be set."},{"name":"Game Pricing","description":"Manage game pricing lists, current pricing lookup, per-game pricing views, and fee update checks."},{"name":"Game Replays","description":"Retrieve public replay data for completed game sessions by replay ID."},{"name":"Game Sessions","description":"Manage and inspect game sessions, including state updates, replay URL generation, history, and logs."},{"name":"Game Store","description":"Manage controls including enable/disable and favorites."},{"name":"Game Testing RTP","description":"Run RTP testing workflows, including test start/stop/cleanup, status retrieval, and test log access."},{"name":"Game Transactions","description":"Retrieve internal and external game transaction records with filtering support."},{"name":"Game Variables","description":"Manage game variables, merged variable views, history, and lifecycle operations."},{"name":"Game Variants","description":"Manage game variants, including list/select retrieval, creation, updates, and deletion."}],"servers":[],"components":{"schemas":{"AuditLogItemResponseDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"userOrganizationId":{"type":"string","format":"uuid"},"serviceAccountId":{"type":"string","format":"uuid"},"userOrganization":{"type":"object"},"serviceAccount":{"type":"object"},"ip":{"type":"string"},"deviceInfo":{"type":"object"},"host":{"type":"string"},"method":{"type":"string"},"endpoint":{"type":"string"},"status":{"type":"string"},"actionEntity":{"type":"string"},"actionType":{"type":"string"},"action":{"type":"string"},"permission":{"type":"string"},"requestBody":{"type":"object"},"responseBody":{"type":"object"},"query":{"type":"object"}},"required":["id","createdAt","ip","host","method","endpoint","actionEntity","actionType","action"]},"AuditLogListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/AuditLogItemResponseDto"}}},"required":["statusCode","data"]},"AuditLogResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"object","description":"Map of available audit action types."}},"required":["statusCode","data"]},"Address":{"type":"object","properties":{"city":{"type":"string"},"street":{"type":"string"}},"required":["city","street"]},"CreateOperatorDto":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":70},"logo":{"type":"string"},"legalName":{"type":"string","minLength":2,"maxLength":70},"countryIsoCode":{"type":"string","minLength":2,"maxLength":2},"address":{"$ref":"#/components/schemas/Address"},"administratorFirstName":{"type":"string","minLength":2,"maxLength":70},"administratorLastName":{"type":"string","minLength":2,"maxLength":70},"administratorEmail":{"type":"string"}}},"OrganizationDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"name":{"type":"string"},"slug":{"type":"string"},"legalName":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"organizationTypeName":{"enum":["Studio","Operator","Fireball"],"type":"string"},"address":{"type":"object","nullable":true},"countryIsoCode":{"type":"string","nullable":true},"integrationId":{"type":"string","nullable":true},"individual":{"type":"boolean"},"githubIntegrationInstallationId":{"type":"number","nullable":true},"operatorIds":{"type":"array","items":{"type":"string"}},"aggregatorIds":{"type":"array","items":{"type":"string"}}},"required":["id","createdAt","updatedAt","active","name","slug","organizationTypeName","address","individual","operatorIds","aggregatorIds"]},"OrganizationResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/OrganizationDto"}},"required":["statusCode","data"]},"OrganizationListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationDto"}}},"required":["statusCode","data"]},"CryptoCurrencyDto":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":"string"},"fullName":{"type":"string"},"maxSupply":{"type":"string","nullable":true},"iconUrl":{"type":"string"},"value":{"type":"number"}},"required":["symbol","name","fullName","iconUrl","value"]},"CryptoCurrencyListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/CryptoCurrencyDto"}}},"required":["statusCode","data"]},"VirtualCurrencyCreatedByDto":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"}},"required":["id","firstName","lastName"]},"VirtualCurrencyCurrencyDto":{"type":"object","properties":{"isoCode":{"type":"string"},"name":{"type":"string"}},"required":["isoCode","name"]},"VirtualCurrencyDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdBy":{"$ref":"#/components/schemas/VirtualCurrencyCreatedByDto"},"createdById":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"currency":{"$ref":"#/components/schemas/VirtualCurrencyCurrencyDto"},"currencyIsoCode":{"type":"string"},"value":{"type":"number"}},"required":["id","createdAt","updatedAt","active","createdById","code","name","url","currencyIsoCode","value"]},"VirtualCurrencyListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/VirtualCurrencyDto"}}},"required":["statusCode","data"]},"CurrencyDto":{"type":"object","properties":{"isoCode":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"multiplier":{"type":"number","nullable":false},"isCrypto":{"type":"boolean","nullable":false},"value":{"type":"number"}},"required":["isoCode","name","multiplier","isCrypto"]},"CurrencyListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/CurrencyDto"}}},"required":["statusCode","data"]},"CurrencyRateResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"number"}},"required":["statusCode","data"]},"CurrencyResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/CurrencyDto"}},"required":["statusCode","data"]},"CreateLanguageDto":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":50},"description":{"type":"string","minLength":10,"maxLength":200},"languageIsoCode":{"type":"string","description":"Base/native language ISO code.","example":"fr"},"isoCode":{"type":"string","minLength":2,"maxLength":10,"description":"Custom language ISO code.","example":"fr-CA-custom"}},"required":["name","description","languageIsoCode","isoCode"]},"CustomLanguageDto":{"type":"object","properties":{"isoCode":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"createdById":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"organizationId":{"type":"string"},"languageIsoCode":{"type":"string"}},"required":["isoCode","createdAt","updatedAt","createdById","name","organizationId","languageIsoCode"]},"CustomLanguageResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/CustomLanguageDto"}},"required":["statusCode","data"]},"CustomLanguageListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/CustomLanguageDto"}}},"required":["statusCode","data"]},"UpdateLanguageDto":{"type":"object","properties":{}},"CreateGameDto":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":70,"description":"Game name"},"description":{"type":"string","minLength":10,"maxLength":500,"description":"Game description"},"categoryIds":{"description":"Game category IDs","type":"array","items":{"type":"string","format":"uuid"}},"studioCategoryIds":{"default":[],"description":"Studio category IDs","type":"array","items":{"type":"string","format":"uuid"}},"supportedCountries":{"description":"Supported country ISO codes","example":["BG","DE"],"type":"array","items":{"type":"string"}},"supportedLanguages":{"description":"Supported language codes","example":["en","bg"],"type":"array","items":{"type":"string"}},"supportedCurrencies":{"description":"Supported currency codes","example":["EUR","USD"],"type":"array","items":{"type":"string"}},"rtp":{"type":"string","default":null,"description":"RTP percentage as string value","example":"96.50"},"hitFrequency":{"type":"number","minimum":1,"maximum":100,"description":"Hit frequency percentage","example":45},"volatility":{"type":"string","description":"Volatility level","enum":["low","medium","high"]},"icon":{"type":"string","description":"Base64-encoded png game icon image with dimensions of 1024x1024 pixels"},"thumb":{"type":"string","description":"Base64-encoded png game thumbnail image with dimensions of 2048x1536 pixels"},"thumbPortrait":{"type":"string","description":"Base64-encoded png second game thumbnail image with dimensions of 1536x2048 pixels"},"screenshots":{"type":"object","description":"Screenshots grouped by device type"},"exclusiveOperatorIds":{"default":[],"description":"Exclusive operator IDs for this game","type":"array","items":{"type":"string","format":"uuid"}},"jackpotTemplateIds":{"default":[],"description":"Jackpot template IDs to attach to default variant","type":"array","items":{"type":"string","format":"uuid"}}},"required":["name","description","categoryIds","supportedCountries","supportedLanguages","supportedCurrencies","icon"]},"GameDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"rtp":{"type":"number","nullable":true},"hitFrequency":{"type":"number","nullable":true},"volatility":{"type":"string","nullable":true},"icon":{"type":"string","nullable":true},"thumb":{"type":"string","nullable":true},"screenshots":{"type":"object","nullable":true},"supportedCountries":{"type":"array","items":{"type":"string"}},"supportedLanguages":{"type":"array","items":{"type":"string"}},"supportedCurrencies":{"type":"array","items":{"type":"string"}},"studioId":{"type":"string"},"suspensions":{"type":"array","items":{"type":"string","enum":["development","staging","production"]}},"variantIds":{"type":"array","items":{"type":"string"}},"studioCategoryIds":{"type":"array","items":{"type":"string"}},"integrationCategoryIds":{"type":"array","items":{"type":"string"}},"exclusiveOperatorIds":{"type":"array","items":{"type":"string"}},"favorite":{"type":"boolean","nullable":true},"operatorInfo":{"type":"object","nullable":true}},"required":["id","createdAt","updatedAt","active","name","slug","supportedCountries","supportedLanguages","supportedCurrencies","studioId","suspensions"]},"GameResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameDto"}},"required":["statusCode","data"]},"GameListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GameDto"}}},"required":["statusCode","data"]},"GameSessionLogDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"type":"string","nullable":true},"environment":{"enum":["development","staging","production"],"type":"string"},"gameMode":{"enum":["money","coins"],"type":"string"},"message":{"type":"object","nullable":true},"gameSessionId":{"type":"string","nullable":true},"actionId":{"type":"string"},"operatorId":{"type":"string"},"gameId":{"type":"string"},"type":{"enum":["bet-place","bet-place-rejected","bet-placed","winning-pay","winning-pay-rejected","winning-paid","authenticate","authenticate-reject","session","player-disconnected","jackpot-pay","jackpot-pay-rejected","jackpot-paid","pay-display","ping","bet-refund","balance","balance-updated"],"type":"string"},"operatorPlayerId":{"type":"string","nullable":true},"operatorSessionId":{"type":"string","nullable":true},"messageId":{"type":"string"},"routerResponse":{"type":"object","nullable":true}},"required":["id","createdAt","environment","gameMode","actionId","operatorId","gameId","type","messageId"]},"GameSessionLogResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameSessionLogDto"}},"required":["statusCode","data"]},"GameSessionDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"gameState":{"type":"object"},"gameId":{"type":"string"},"environment":{"enum":["development","staging","production"],"type":"string"},"gameMode":{"enum":["money","coins"],"type":"string"},"replayId":{"type":"string","nullable":true},"lockId":{"type":"string","nullable":true},"lockTimeout":{"type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","gameState","gameId","environment","gameMode"]},"GameSessionListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GameSessionDto"}}},"required":["statusCode","data"]},"GameSessionResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameSessionDto"}},"required":["statusCode","data"]},"GetSessionLogReplayUrlDto":{"type":"object","properties":{"playerId":{"type":"string"},"operatorId":{"type":"string"},"gameId":{"type":"string"},"environment":{"type":"string","enum":["development","staging","production"]},"actionIds":{"type":"array","items":{"type":"string"}}},"required":["playerId","operatorId","gameId","environment","actionIds"]},"GameInsightDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"gameId":{"type":"string","nullable":true},"key":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"environment":{"enum":["development","staging","production"],"type":"string"},"subscribedOrgIds":{"type":"array","items":{"type":"string"}}},"required":["id","createdAt","updatedAt","active","key","title","description","environment","subscribedOrgIds"]},"GameInsightListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GameInsightDto"}}},"required":["statusCode","data"]},"CreateInsightDto":{"type":"object","properties":{"environment":{"type":"string","enum":["development","staging","production"]},"key":{"type":"string","minLength":2,"maxLength":70},"title":{"type":"string","minLength":2,"maxLength":70},"description":{"type":"string","minLength":5,"maxLength":200},"gameId":{"type":"string"}},"required":["environment","key","title","description","gameId"]},"GameInsightResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameInsightDto"}},"required":["statusCode","data"]},"UpdateInsightDto":{"type":"object","properties":{"title":{"type":"string","minLength":2,"maxLength":70},"description":{"type":"string","minLength":5,"maxLength":200}},"required":["title","description"]},"UpdateInsightSubscribersDto":{"type":"object","properties":{"subscribedOrgIds":{"type":"array","items":{"type":"string"}}},"required":["subscribedOrgIds"]},"GameAchievementDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"gameId":{"type":"string"},"icon":{"type":"string","nullable":true},"name":{"type":"string"},"description":{"type":"string"},"environment":{"enum":["development","staging","production"],"type":"string"},"insights":{"type":"array","items":{"type":"object"}}},"required":["id","createdAt","updatedAt","active","gameId","name","description","environment","insights"]},"GameAchievementListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GameAchievementDto"}}},"required":["statusCode","data"]},"CreateAchievementDto":{"type":"object","properties":{"environment":{"enum":["development","staging","production"],"type":"string"},"name":{"type":"string","minLength":2,"maxLength":70},"description":{"type":"string","minLength":5,"maxLength":200},"gameId":{"type":"string","format":"uuid"},"insights":{"type":"array","description":"Insights linked to this achievement.","items":{"type":"object","properties":{"insightId":{"type":"string","format":"uuid"},"amount":{"type":"number","example":100}},"required":["insightId","amount"]}},"icon":{"type":"string","description":"Base64 encoded achievement icon image."}},"required":["environment","name","description","gameId","insights"]},"GameAchievementResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameAchievementDto"}},"required":["statusCode","data"]},"UpdateAchievementDto":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":70},"description":{"type":"string","minLength":5,"maxLength":200},"icon":{"type":"string","description":"Base64 encoded achievement icon image."},"insights":{"type":"array","description":"Updated insights linked to this achievement.","items":{"type":"object","properties":{"insightId":{"type":"string","format":"uuid"},"amount":{"type":"number","example":100}},"required":["insightId","amount"]}}},"required":["name","description","insights"]},"ManageSingleGameDto":{"type":"object","properties":{"gameId":{"type":"string"},"gameVariantId":{"type":"string"},"operatorId":{"type":"string"}},"required":["gameId","gameVariantId","operatorId"]},"ManageGameDto":{"type":"object","properties":{"gameOperators":{"type":"array","items":{"$ref":"#/components/schemas/ManageSingleGameDto"}}},"required":["gameOperators"]},"EnableGameDto":{"type":"object","properties":{"gameVariantId":{"type":"string"},"operatorIds":{"type":"array","items":{"type":"string"}}},"required":["gameVariantId"]},"GameTransactionDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"type":"string","nullable":true},"environment":{"enum":["development","staging","production"],"type":"string"},"amount":{"type":"number"},"amountInUSD":{"type":"string","nullable":true},"type":{"enum":["jackpot-paid","winning-paid","bet-placed","bet-refund","jackpot-contribution"],"type":"string"},"currencyIsoCode":{"type":"string","nullable":true},"messageId":{"type":"string"},"actionId":{"type":"string"},"operatorId":{"type":"string"},"gameId":{"type":"string"},"gameSessionId":{"type":"string"},"playerId":{"type":"string"},"operatorPlayerId":{"type":"string","nullable":true},"operatorBetId":{"type":"string","nullable":true},"replayId":{"type":"string","nullable":true},"freeBetId":{"type":"string","nullable":true}},"required":["id","createdAt","environment","amount","type","messageId","actionId","operatorId","gameId","gameSessionId","playerId"]},"GameTransactionListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GameTransactionDto"}}},"required":["statusCode","data"]},"StartRTPTestDto":{"type":"object","properties":{"gameId":{"type":"string"},"gameVersionId":{"type":"string"},"gameVariantId":{"type":"string"},"cycles":{"type":"number","minimum":1000000,"maximum":200000000},"testType":{"type":"number","enum":[0,1]},"currencyIsoCode":{"type":"string"},"betAmount":{"type":"number","minimum":1,"maximum":1000000},"state":{"type":"string"},"customSettings":{"type":"array","items":{"type":"object"}}},"required":["gameId","gameVersionId","gameVariantId","cycles","testType","currencyIsoCode","betAmount","state","customSettings"]},"ClientVersionDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string"},"gameId":{"type":"string"},"version":{"type":"number"},"entryPoint":{"type":"string"},"link":{"type":"string"},"filesCount":{"type":"number"},"unpackedSize":{"type":"number"},"technology":{"type":"string"},"studioVersion":{"type":"string"},"description":{"type":"string"},"checksum":{"type":"string"}},"required":["id","createdAt","updatedAt","active","createdById","gameId","version","entryPoint","link","filesCount","unpackedSize","checksum"]},"ClientVersionResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/ClientVersionDto"}},"required":["statusCode","data"]},"CreateClientVersionDto":{"type":"object","properties":{"version":{"type":"number","description":"Numeric game client version.","example":12},"fileUUID":{"type":"string","description":"Temporary uploaded zip file UUID returned by signed-url endpoint.","format":"uuid"},"technology":{"type":"string","description":"Client technology stack.","example":"pixi"},"entryPoint":{"type":"string","description":"Entry point file path inside uploaded package.","example":"index.html"},"studioVersion":{"type":"string","description":"Studio-facing semantic version label.","example":"1.0.0"},"versionDescription":{"type":"string","description":"Optional release notes/description for this version."}},"required":["version","fileUUID","technology","entryPoint"]},"ClientVersionListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/ClientVersionDto"}}},"required":["statusCode","data"]},"GameAssetDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string"},"gameId":{"type":"string"},"path":{"type":"string"},"originalName":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"labels":{"type":"array","items":{"type":"string"}},"size":{"type":"number"},"type":{"type":"string"},"width":{"type":"number","nullable":true},"height":{"type":"number","nullable":true}},"required":["id","createdAt","updatedAt","active","createdById","gameId","path","originalName","name","description","labels","size","type"]},"GameAssetResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameAssetDto"}},"required":["statusCode","data"]},"UpdateAssetDto":{"type":"object","properties":{"name":{"type":"string","description":"Asset display name."},"description":{"type":"string","minLength":5,"maxLength":200,"description":"Asset description."},"labels":{"description":"Asset labels for search/filtering.","example":["marketing","banner"],"type":"array","items":{"type":"string"}},"size":{"type":"number","description":"Asset file size in bytes.","example":1048576},"type":{"type":"string","description":"Asset MIME type or logical type.","example":"image/png"},"width":{"type":"number","description":"Image width in pixels (if applicable).","example":1920},"height":{"type":"number","description":"Image height in pixels (if applicable).","example":1080}}},"GameAssetListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GameAssetDto"}}},"required":["statusCode","data"]},"CreateAssetDto":{"type":"object","properties":{"name":{"type":"string","description":"Asset display name."},"description":{"type":"string","minLength":5,"maxLength":200,"description":"Asset description."},"labels":{"description":"Asset labels for search/filtering.","example":["marketing","banner"],"type":"array","items":{"type":"string"}},"size":{"type":"number","description":"Asset file size in bytes.","example":1048576},"type":{"type":"string","description":"Asset MIME type or logical type.","example":"image/png"},"width":{"type":"number","description":"Image width in pixels (if applicable).","example":1920},"height":{"type":"number","description":"Image height in pixels (if applicable).","example":1080}},"required":["name","description","labels","size","type"]},"CreateVariableDto":{"type":"object","properties":{"key":{"type":"string","minLength":2,"maxLength":70,"pattern":"/^(?!core_).*$/"},"name":{"type":"string","minLength":2,"maxLength":70},"description":{"type":"string","minLength":5,"maxLength":200},"type":{"type":"string","enum":["int","float","string","bool","json"]},"serverSide":{"type":"boolean"},"clientSide":{"type":"boolean"},"value":{"type":"string"},"environment":{"type":"string","enum":["development","staging","production"]},"gameId":{"type":"string"}},"required":["key","name","description","type","serverSide","clientSide","value","environment","gameId"]},"GameVariableDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"type":{"enum":["int","float","string","bool","json"],"type":"string"},"serverSide":{"type":"boolean"},"clientSide":{"type":"boolean"},"value":{"type":"string"},"environment":{"enum":["development","staging","production"],"type":"string","nullable":true},"gameId":{"type":"string"}},"required":["id","createdAt","updatedAt","active","key","name","description","type","serverSide","clientSide","value","gameId"]},"GameVariableResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameVariableDto"}},"required":["statusCode","data"]},"GameVariableListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GameVariableDto"}}},"required":["statusCode","data"]},"UpdateVariableDto":{"type":"object","properties":{}},"CreateBetSettingDto":{"type":"object","properties":{"key":{"type":"string","pattern":"VALID_OBJECT_KEY","description":"Unique setting key used in game configuration (letters, numbers, _, $; cannot start with number).","example":"bet_size"},"name":{"type":"string","description":"Human-readable setting name.","example":"Bet Size"},"description":{"type":"string","description":"Description of the setting behavior."},"type":{"enum":["int","enum","float"],"type":"string"},"minValue":{"type":"string","description":"Minimum value (required for non-enum types).","example":"0.1"},"maxValue":{"type":"string","description":"Maximum value (required for non-enum types).","example":"100"},"defaultValue":{"type":"string","description":"Default value for this setting.","example":"1"},"enumValues":{"description":"Allowed values when type is enum.","example":["low","medium","high"],"type":"array","items":{"type":"string"}}},"required":["key","name","description","type","defaultValue"]},"BetSettingDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string"},"gameId":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"type":{"enum":[],"type":"number"},"minValue":{"type":"string","nullable":true},"maxValue":{"type":"string","nullable":true},"enumValues":{"nullable":true,"type":"array","items":{"type":"string"}},"defaultValue":{"type":"string"},"affectsBetAmount":{"type":"boolean"},"usedByCampaign":{"type":"boolean"}},"required":["id","createdAt","updatedAt","active","createdById","gameId","key","name","description","type","defaultValue","affectsBetAmount","usedByCampaign"]},"BetSettingResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/BetSettingDto"}},"required":["statusCode","data"]},"BetSettingListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/BetSettingDto"}}},"required":["statusCode","data"]},"UpdateBetSettingDto":{"type":"object","properties":{"key":{"type":"string","pattern":"VALID_OBJECT_KEY","description":"Unique setting key used in game configuration (letters, numbers, _, $; cannot start with number).","example":"bet_size"},"name":{"type":"string","description":"Human-readable setting name.","example":"Bet Size"},"description":{"type":"string","description":"Description of the setting behavior."},"type":{"enum":["int","enum","float"],"type":"string"},"minValue":{"type":"string","description":"Minimum value (required for non-enum types).","example":"0.1"},"maxValue":{"type":"string","description":"Maximum value (required for non-enum types).","example":"100"},"defaultValue":{"type":"string","description":"Default value for this setting.","example":"1"},"enumValues":{"description":"Allowed values when type is enum.","example":["low","medium","high"],"type":"array","items":{"type":"string"}}}},"CoreVariableDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"type":{"enum":["int","float","string","bool","json"],"type":"string"},"value":{"type":"string","nullable":true},"gameCategoryId":{"type":"string","nullable":true},"gameVariableIds":{"type":"array","items":{"type":"string"}}},"required":["id","createdAt","updatedAt","active","key","name","description","type"]},"CoreVariableResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/CoreVariableDto"}},"required":["statusCode","data"]},"OverwriteCVOperatorDto":{"type":"object","properties":{"coreVariableId":{"type":"string","format":"uuid"},"operatorId":{"type":"string","format":"uuid"},"gameId":{"type":"string","format":"uuid"},"value":{"type":"string","description":"Overwrite value serialized as string."},"type":{"enum":["int","float","string","bool","json"],"type":"string"}},"required":["coreVariableId","operatorId","value","type"]},"OverwriteCVGameDto":{"type":"object","properties":{"coreVariableId":{"type":"string","format":"uuid"},"gameId":{"type":"string","format":"uuid"},"environment":{"enum":["development","staging","production"],"type":"string"},"type":{"enum":["int","float","string","bool","json"],"type":"string"},"serverSide":{"type":"boolean"},"clientSide":{"type":"boolean"},"value":{"type":"string","description":"Overwrite value serialized as string."}},"required":["coreVariableId","gameId","environment","type","serverSide","clientSide","value"]},"CoreVariableListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/CoreVariableDto"}}},"required":["statusCode","data"]},"GamePricingListDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string","nullable":true},"studioId":{"type":"string"},"version":{"type":"number"}},"required":["id","createdAt","updatedAt","active","studioId","version"]},"GamePricingListListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GamePricingListDto"}}},"required":["statusCode","data"]},"GamePricingListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GamePricingListDto"}},"required":["statusCode","data"]},"Currency":{"type":"object","properties":{"isoCode":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"multiplier":{"type":"number","nullable":false},"isCrypto":{"type":"boolean","nullable":false},"value":{"type":"number"}},"required":["isoCode","name","multiplier","isCrypto","value"]},"PermissionCategory":{"type":"object","properties":{"id":{"type":"string","nullable":false},"name":{"type":"string","nullable":false}},"required":["id","name"]},"Permission":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"enum":["core-currency-view","core-currency-create","core-currency-edit","core-currency-delete","game-create","game-view","game-edit","game-delete","game-suspend","game-session-view","game-session-edit","game-transaction-view","game-deploy","game-view-logs","game-store-view","game-pricing-view","game-pricing-edit","game-testing-rtp-start","game-testing-rtp-cleanup","game-testing-rtp-view","game-asset-view","game-asset-upload","game-asset-delete","game-certificate-view","game-certificate-create","game-certificate-edit","game-certificate-delete","game-core-variable-create","game-core-variable-edit","game-core-variable-view","game-core-variable-overwrite","game-proposal-view","game-proposal-create","game-proposal-edit","game-variant-view","game-variant-create","game-variant-edit","game-variant-delete","free-bet-campaign-create","free-bet-campaign-edit","free-bet-campaign-view","free-bet-campaign-review","bet-tier-view","bet-tier-create","bet-tier-edit","core-function-view","core-function-create","core-function-edit","core-function-delete","core-function-deploy","core-function-view-logs","jurisdiction-create","jurisdiction-delete","jurisdiction-edit","jurisdiction-view","service-account-create","service-account-view","service-account-deactivate","service-account-edit","service-account-log-view","user-view","user-remove","user-deactivate","user-edit","user-log-view","user-invite-send","user-invite-revoke","user-invite-delete","user-invite-view","permission-create","permission-delete","permission-edit","permission-view","operator-view","operator-create","operator-edit","operator-deactivate","organization-update","integration-view","integration-create","integration-delete","integration-deploy","integration-manage","integration-view-logs","studio-view","studio-create","studio-edit","studio-deactivate","studio-game-category-view","studio-game-category-create","studio-game-category-edit","studio-game-category-delete","jackpot-template-create","jackpot-template-delete","jackpot-template-edit","jackpot-template-view","jackpot-template-overwrite-view","jackpot-template-overwrite-create","jackpot-template-overwrite-edit","jackpot-template-overwrite-delete","jackpot-live-view","jackpot-released-view","jackpot-contribution-view","player-view","role-view","role-create","role-delete","role-edit","repository-integrate","report-ggr-generate","report-bet-count-generate","report-game-certificates-generate","report-game-fees-generate","report-cost-generate","report-schedule-view","report-schedule-create","report-schedule-edit","report-schedule-delete","report-schedule-run","report-schedule-deactivate","report-history-view","translation-view","translation-create","translation-edit","translation-delete"],"type":"string","nullable":false},"description":{"type":"string","nullable":false},"organizationTypes":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationType"}},"organizationTypeNames":{"type":"string","items":{"type":"string","enum":["Studio","Operator","Fireball"]}},"permissionCategory":{"$ref":"#/components/schemas/PermissionCategory"},"permissionCategoryId":{"type":"string"}},"required":["id","createdAt","updatedAt","active","name","description","organizationTypeNames","permissionCategoryId"]},"OrganizationType":{"type":"object","properties":{"name":{"enum":["Studio","Operator","Fireball"],"type":"string","nullable":false},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/Permission"}}},"required":["name"]},"Country":{"type":"object","properties":{"isoCode":{"type":"string","nullable":false},"name":{"type":"string","nullable":false}},"required":["isoCode","name"]},"ClientScript":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"integration":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Integration"}]},"integrationId":{"type":"string","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string","nullable":false},"content":{"type":"string","nullable":false}},"required":["id","createdAt","updatedAt","active","createdById","integrationId","environment","content"]},"RepositoryConnection":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"coreFunctionId":{"type":"string","nullable":true},"coreFunction":{"$ref":"#/components/schemas/CoreFunction"},"integrationId":{"type":"string","nullable":true},"integration":{"$ref":"#/components/schemas/Integration"},"httpMiddlewareId":{"type":"string","nullable":true},"httpMiddleware":{"$ref":"#/components/schemas/HttpMiddleware"},"gameId":{"type":"string","nullable":true},"game":{"$ref":"#/components/schemas/Game"},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"owner":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"defaultBranch":{"type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","coreFunctionId","integrationId","httpMiddlewareId","gameId","createdById","owner","name","description","defaultBranch"]},"HttpMiddleware":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"type":"string","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"integration":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Integration"}]},"integrationId":{"type":"string","nullable":false},"cloudFunctions":{"type":"array","items":{"$ref":"#/components/schemas/CloudFunction"}},"versions":{"type":"array","items":{"$ref":"#/components/schemas/CloudFunctionVersion"}},"currentMessageData":{"type":"object"},"repositoryConnection":{"$ref":"#/components/schemas/RepositoryConnection"},"pubSubs":{"default":[],"type":"array","items":{"$ref":"#/components/schemas/PubSub"}}},"required":["id","createdAt","updatedAt","active","name","createdById","integrationId","cloudFunctions","versions","currentMessageData"]},"CloudFunction":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"type":"string","nullable":false},"author":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"authorId":{"type":"string","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string","nullable":false},"deployedVersion":{"type":"number","nullable":true},"labels":{"type":"string","nullable":false},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":true},"integration":{"$ref":"#/components/schemas/Integration"},"integrationId":{"type":"string","nullable":true},"httpMiddleware":{"$ref":"#/components/schemas/HttpMiddleware"},"httpMiddlewareId":{"type":"string","nullable":true},"coreFunction":{"$ref":"#/components/schemas/CoreFunction"},"coreFunctionId":{"type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","name","authorId","environment","deployedVersion","labels","gameId","integrationId","httpMiddlewareId","coreFunctionId"]},"CoreFunction":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"type":{"enum":["http","pub-sub"],"type":"string","nullable":false},"pubSubs":{"type":"array","items":{"$ref":"#/components/schemas/PubSub"}},"versions":{"type":"array","items":{"$ref":"#/components/schemas/CloudFunctionVersion"}},"cloudFunctions":{"type":"array","items":{"$ref":"#/components/schemas/CloudFunction"}},"currentMessageData":{"type":"object"},"repositoryConnection":{"$ref":"#/components/schemas/RepositoryConnection"}},"required":["id","createdAt","updatedAt","active","name","description","type","versions","cloudFunctions","currentMessageData"]},"PubSub":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"topicName":{"type":"string","nullable":false},"subscriptionName":{"type":"string","nullable":false},"options":{"type":"string","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string","nullable":true},"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/Integration"}},"coreFunctions":{"type":"array","items":{"$ref":"#/components/schemas/CoreFunction"}}},"required":["id","createdAt","updatedAt","active","topicName","subscriptionName","options"]},"IntegrationGameCategory":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"integration":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Integration"}]},"integrationId":{"type":"string","nullable":false},"gameToIntegrationCategory":{"type":"array","items":{"$ref":"#/components/schemas/Game"}}},"required":["id","createdAt","updatedAt","active","createdById","name","description","integrationId","gameToIntegrationCategory"]},"GameIntegrationImage":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"type":{"enum":["thumbnail","background"],"type":"string","nullable":false},"url":{"type":"string","nullable":false},"integration":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Integration"}]},"integrationId":{"type":"string","nullable":false},"game":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Game"}]},"gameId":{"type":"string","nullable":false}},"required":["id","createdAt","updatedAt","active","createdById","type","url","integrationId","gameId"]},"IntegrationGameSetting":{"type":"object","properties":{"integrationId":{"type":"string"},"integration":{"$ref":"#/components/schemas/Integration"},"gameCategorySettings":{"type":"object"},"gameImageSettings":{"type":"object"}},"required":["integrationId","gameCategorySettings","gameImageSettings"]},"Integration":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"clientScriptEnabled":{"type":"boolean","nullable":false},"clientScripts":{"type":"array","items":{"$ref":"#/components/schemas/ClientScript"}},"operator":{"$ref":"#/components/schemas/Organization"},"pubSubs":{"type":"array","items":{"$ref":"#/components/schemas/PubSub"}},"cloudFunctions":{"type":"array","items":{"$ref":"#/components/schemas/CloudFunction"}},"versions":{"type":"array","items":{"$ref":"#/components/schemas/CloudFunctionVersion"}},"currentMessageData":{"type":"object"},"repositoryConnection":{"$ref":"#/components/schemas/RepositoryConnection"},"httpMiddleware":{"$ref":"#/components/schemas/HttpMiddleware"},"gameCategories":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationGameCategory"}},"gameImages":{"type":"array","items":{"$ref":"#/components/schemas/GameIntegrationImage"}},"gameSettings":{"$ref":"#/components/schemas/IntegrationGameSetting"}},"required":["id","createdAt","updatedAt","active","createdById","name","clientScriptEnabled","cloudFunctions","versions","currentMessageData"]},"CloudFunctionVersionDeployment":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"cloudFunctionVersion":{"$ref":"#/components/schemas/CloudFunctionVersion"},"cloudFunctionVersionId":{"type":"string","nullable":true},"environment":{"enum":["development","staging","production"],"type":"string","nullable":false},"environmentVariables":{"type":"object"},"timeout":{"type":"number"},"availableMemory":{"enum":["custom","128Mi","256Mi","512Mi","1Gi","2Gi","4Gi","8Gi","16Gi","32Gi"],"type":"string"},"customMemory":{"type":"number"},"customMemoryUnit":{"type":"string"},"availableCpu":{"type":"string"},"customCpu":{"type":"number","nullable":true},"minInstanceCount":{"type":"number"},"maxInstanceCount":{"type":"number"},"maxInstanceRequestConcurrency":{"type":"number"},"maximumBackoff":{"type":"number"},"minimumBackoff":{"type":"number"},"deployed":{"type":"boolean"},"deployError":{"type":"string"},"deployErrorDetails":{"type":"string"}},"required":["id","createdAt","updatedAt","active","createdById","cloudFunctionVersionId","environment","environmentVariables","timeout","availableMemory","customMemory","customMemoryUnit","availableCpu","customCpu","minInstanceCount","maxInstanceCount","maxInstanceRequestConcurrency","maximumBackoff","minimumBackoff","deployed","deployError","deployErrorDetails"]},"CloudFunctionVersion":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"integration":{"$ref":"#/components/schemas/Integration"},"integrationId":{"type":"string","nullable":false},"httpMiddleware":{"$ref":"#/components/schemas/HttpMiddleware"},"httpMiddlewareId":{"type":"string","nullable":false},"coreFunction":{"$ref":"#/components/schemas/CoreFunction"},"coreFunctionId":{"type":"string","nullable":false},"deployments":{"$ref":"#/components/schemas/CloudFunctionVersionDeployment"},"version":{"type":"number"},"commitMessage":{"type":"string"},"commitSha":{"type":"string"},"commitUrl":{"type":"string"},"sourceUploadUrl":{"type":"string"},"branch":{"type":"string"},"entryPoint":{"type":"string"},"runtime":{"type":"string"},"environmentVariables":{"type":"object"},"functionVersion":{"type":"string"},"versionDescription":{"type":"string"},"checksum":{"type":"string"},"gameCertificates":{"type":"array","items":{"$ref":"#/components/schemas/GameCertificate"}}},"required":["id","createdAt","updatedAt","active","createdById","gameId","integrationId","httpMiddlewareId","coreFunctionId","version","commitMessage","commitSha","commitUrl","sourceUploadUrl","branch","entryPoint","runtime","environmentVariables","functionVersion","versionDescription","checksum"]},"GameClientVersion":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"clientVersion":{"$ref":"#/components/schemas/ClientVersion"},"clientVersionId":{"type":"string","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string"}},"required":["id","createdAt","updatedAt","active","createdById","gameId","clientVersionId","environment"]},"ClientVersionDeployment":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"clientVersion":{"$ref":"#/components/schemas/ClientVersion"},"clientVersionId":{"type":"string","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string"}},"required":["id","createdAt","updatedAt","active","clientVersionId","environment"]},"ClientVersion":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"gameClientVersions":{"type":"array","items":{"$ref":"#/components/schemas/GameClientVersion"}},"clientVersionDeployments":{"type":"array","items":{"$ref":"#/components/schemas/ClientVersionDeployment"}},"version":{"type":"number"},"entryPoint":{"type":"string"},"link":{"type":"string"},"filesCount":{"type":"number"},"unpackedSize":{"type":"number"},"technology":{"type":"string"},"studioVersion":{"type":"string"},"description":{"type":"string"},"checksum":{"type":"string"},"gameCertificates":{"type":"array","items":{"required":false,"type":"array","items":{"$ref":"#/components/schemas/GameCertificate"}}}},"required":["id","createdAt","updatedAt","active","createdById","gameId","version","entryPoint","link","filesCount","unpackedSize","technology","studioVersion","description","checksum","gameCertificates"]},"GameCertificateFile":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"certificate":{"$ref":"#/components/schemas/GameCertificate"},"certificateId":{"type":"string","nullable":false},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"url":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"size":{"type":"number","nullable":false}},"required":["id","createdAt","certificateId","gameId","url","name","size"]},"GameCertificate":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"gameId":{"type":"string"},"game":{"$ref":"#/components/schemas/Game"},"serverVersion":{"$ref":"#/components/schemas/CloudFunctionVersion"},"serverVersionId":{"type":"string"},"clientVersion":{"$ref":"#/components/schemas/ClientVersion"},"clientVersionId":{"type":"string"},"jurisdictionId":{"type":"string"},"jurisdiction":{"$ref":"#/components/schemas/Jurisdiction"},"testCompany":{"type":"string"},"issueDate":{"type":"string"},"expireDate":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/GameCertificateFile"}},"history":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GameCertificate"}},"timezoneName":{"type":"string"}},"required":["id","createdAt","updatedAt","active","createdById","gameId","serverVersionId","clientVersionId","jurisdictionId","testCompany","issueDate","expireDate","files","timezoneName"]},"Jurisdiction":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"authority":{"type":"string","nullable":false},"abbreviation":{"type":"string","nullable":false},"authorityUrl":{"type":"string","nullable":false},"country":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Country"}]},"countryIsoCode":{"type":"string","nullable":false},"areas":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/Country"}},"areaIsoCodes":{"type":"array","items":{"type":"string"}},"restrictedAreas":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/Country"}},"restrictedAreaIsoCodes":{"type":"array","items":{"type":"string"}},"coreVariableOverwrites":{"type":"array","items":{"$ref":"#/components/schemas/CVJurisdictionOverwrite"}},"gameCertificates":{"type":"array","items":{"$ref":"#/components/schemas/GameCertificate"}}},"required":["id","createdAt","updatedAt","active","authority","abbreviation","authorityUrl","countryIsoCode","areas"]},"CVJurisdictionOverwrite":{"type":"object","properties":{"id":{"type":"string","nullable":false},"coreVariable":{"$ref":"#/components/schemas/CoreVariable"},"coreVariableId":{"type":"string"},"jurisdiction":{"$ref":"#/components/schemas/Jurisdiction"},"jurisdictionId":{"type":"string"},"value":{"type":"string"}},"required":["id","coreVariableId","jurisdictionId","value"]},"CVOperatorOverwrite":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"operator":{"$ref":"#/components/schemas/Organization"},"operatorId":{"type":"string","nullable":false},"game":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Game"}]},"gameId":{"type":"string","nullable":true},"coreVariable":{"$ref":"#/components/schemas/CoreVariable"},"coreVariableId":{"type":"string","nullable":false},"value":{"type":"string","nullable":false}},"required":["id","createdAt","updatedAt","active","operatorId","gameId","coreVariableId","value"]},"CVGameOverwrite":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"game":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Game"}]},"gameId":{"type":"string","nullable":false},"serverSide":{"type":"boolean"},"clientSide":{"type":"boolean"},"environment":{"enum":["development","staging","production"],"type":"string"},"coreVariable":{"$ref":"#/components/schemas/CoreVariable"},"coreVariableId":{"type":"string","nullable":false},"value":{"type":"string","nullable":false}},"required":["id","createdAt","updatedAt","active","gameId","serverSide","clientSide","environment","coreVariableId","value"]},"ServiceAccount":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"organization":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"organizationId":{"type":"string"},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/Permission"}},"permissionIds":{"type":"array","items":{"type":"string"}},"auditLogs":{"$ref":"#/components/schemas/AuditLog"}},"required":["id","createdAt","updatedAt","active","createdById","organizationId","name","description"]},"AuditLog":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"format":"date-time","type":"string","nullable":false},"userOrganization":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/UserOrganization"}]},"userOrganizationId":{"type":"string"},"serviceAccount":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ServiceAccount"}]},"serviceAccountId":{"type":"string"},"ip":{"type":"string","nullable":false},"deviceInfo":{"type":"object","nullable":false},"host":{"type":"string","nullable":false},"method":{"type":"string","nullable":false},"endpoint":{"type":"string","nullable":false},"status":{"type":"string","nullable":false},"actionEntity":{"type":"string","nullable":false},"actionType":{"type":"string","nullable":false},"action":{"type":"string","nullable":false},"permission":{"type":"string","nullable":false},"requestBody":{"type":"object","nullable":false},"responseBody":{"type":"object","nullable":false},"query":{"type":"object","nullable":false}},"required":["id","createdAt","userOrganizationId","serviceAccountId","ip","deviceInfo","host","method","endpoint","status","actionEntity","actionType","action","permission","requestBody","responseBody","query"]},"Role":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"default":{"type":"boolean","nullable":false},"administrative":{"type":"boolean","nullable":false},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/Permission"}},"permissionIds":{"type":"array","items":{"type":"string"}},"organization":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"organizationOwnerId":{"type":"string"},"organizationType":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/OrganizationType"}]},"organizationTypeName":{"enum":["Studio","Operator","Fireball"],"type":"string","nullable":false},"userOrganizations":{"type":"array","items":{"$ref":"#/components/schemas/UserOrganization"}}},"required":["id","createdAt","updatedAt","active","name","description","default","administrative","organizationTypeName","userOrganizations"]},"DashboardSetting":{"type":"object","properties":{"userOrganization":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/UserOrganization"}]},"userOrganizationId":{"type":"string"},"setting":{"type":"object"}},"required":["userOrganizationId","setting"]},"UserOrganization":{"type":"object","properties":{"id":{"type":"string"},"auditLogs":{"$ref":"#/components/schemas/AuditLog"},"user":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"userId":{"type":"string","nullable":false},"organization":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"organizationId":{"type":"string","nullable":false},"roles":{"type":"array","items":{"$ref":"#/components/schemas/Role"}},"dashboardSetting":{"$ref":"#/components/schemas/DashboardSetting"}},"required":["id","userId","organizationId","roles","dashboardSetting"]},"CVOverwriteHistory":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"userOrganization":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/UserOrganization"}]},"userOrganizationId":{"type":"string"},"serviceAccount":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ServiceAccount"}]},"serviceAccountId":{"type":"string"},"coreVariable":{"$ref":"#/components/schemas/CoreVariable"},"coreVariableId":{"type":"string","nullable":false},"game":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Game"}]},"gameId":{"type":"string","nullable":true},"serverSide":{"type":"boolean"},"clientSide":{"type":"boolean"},"environment":{"enum":["development","staging","production"],"type":"string"},"operator":{"$ref":"#/components/schemas/Organization"},"operatorId":{"type":"string","nullable":false},"jurisdiction":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Jurisdiction"}]},"jurisdictionId":{"type":"string","nullable":true},"oldValue":{"type":"string","nullable":false},"newValue":{"type":"string","nullable":false},"deleted":{"type":"boolean"}},"required":["id","createdAt","userOrganizationId","serviceAccountId","coreVariableId","gameId","serverSide","clientSide","environment","operatorId","jurisdictionId","oldValue","newValue","deleted"]},"CoreVariable":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"key":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"type":{"enum":["int","float","string","bool","json"],"type":"string","nullable":false},"value":{"type":"string","nullable":true},"gameCategoryId":{"type":"string","nullable":false},"gameCategory":{"$ref":"#/components/schemas/GameCategory"},"jurisdictionOverwrites":{"type":"array","items":{"$ref":"#/components/schemas/CVJurisdictionOverwrite"}},"operatorOverwrites":{"type":"array","items":{"$ref":"#/components/schemas/CVOperatorOverwrite"}},"gameOverwrites":{"type":"array","items":{"$ref":"#/components/schemas/CVGameOverwrite"}},"gameVariableIds":{"type":"array","items":{"type":"string"}},"overwriteHistory":{"type":"array","items":{"$ref":"#/components/schemas/CVOverwriteHistory"}}},"required":["id","createdAt","updatedAt","active","key","name","description","type","value","gameCategoryId"]},"GameCategory":{"type":"object","properties":{"id":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"coreVariables":{"$ref":"#/components/schemas/CoreVariable"}},"required":["id","name"]},"GameAchievement":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"game":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Game"}]},"gameId":{"type":"string"},"icon":{"type":"string","nullable":true},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string"},"insights":{"type":"array","items":{"type":"object"}}},"required":["id","createdAt","updatedAt","active","gameId","name","description","environment","insights"]},"GameInsight":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"game":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Game"}]},"gameId":{"type":"string"},"key":{"type":"string","nullable":false},"title":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string"},"subscribedOrgIds":{"type":"array","items":{"type":"string"}}},"required":["id","createdAt","updatedAt","active","key","title","description","environment","subscribedOrgIds"]},"GameSessionTimeout":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"gameSession":{"$ref":"#/components/schemas/GameSession"},"gameSessionId":{"type":"string","nullable":false},"timeout":{"format":"date-time","type":"string","nullable":false},"operatorExtra":{"type":"string","nullable":false}},"required":["id","createdAt","updatedAt","active","gameSessionId","timeout","operatorExtra"]},"GameSessionState":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"expiresAt":{"type":"string","nullable":false},"gameSession":{"$ref":"#/components/schemas/GameSession"},"gameSessionId":{"type":"string","nullable":false},"gameState":{"type":"string","nullable":false},"replayId":{"type":"string","nullable":false}},"required":["id","createdAt","expiresAt","gameSessionId","gameState","replayId"]},"GameSessionLog":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"format":"date-time","type":"string","nullable":false},"expiresAt":{"format":"date-time","type":"string","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string"},"gameMode":{"enum":["money","coins"],"type":"string"},"message":{"type":"string","nullable":false},"gameSession":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/GameSession"}]},"gameSessionId":{"type":"string","nullable":false},"actionId":{"type":"string","nullable":false},"operator":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"operatorId":{"type":"string"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"type":{"enum":["bet-place","bet-place-rejected","bet-placed","winning-pay","winning-pay-rejected","winning-paid","authenticate","authenticate-reject","session","player-disconnected","jackpot-pay","jackpot-pay-rejected","jackpot-paid","pay-display","ping","bet-refund","balance","balance-updated"],"type":"string","nullable":false},"operatorPlayerId":{"type":"string","nullable":false},"operatorSessionId":{"type":"string","nullable":false},"messageId":{"type":"string","nullable":false},"routerResponse":{"type":"string","nullable":false}},"required":["id","createdAt","expiresAt","environment","gameMode","message","gameSessionId","actionId","operatorId","gameId","type","operatorPlayerId","operatorSessionId","messageId","routerResponse"]},"FreeBetCampaign":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"$ref":"#/components/schemas/User"},"createdById":{"type":"string"},"environment":{"enum":[],"type":"number"},"name":{"type":"string"},"operatorCampaignId":{"type":"string","nullable":true},"startDate":{"type":"string"},"expireDate":{"type":"string"},"numberOfBets":{"type":"number"},"betAmount":{"type":"number"},"currency":{"$ref":"#/components/schemas/Currency"},"currencyIsoCode":{"type":"string"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string"},"betSettings":{"type":"object"},"operator":{"$ref":"#/components/schemas/Organization"},"operatorId":{"type":"string"},"freeBetToPlayer":{"type":"array","items":{"$ref":"#/components/schemas/FreeBetCampaignToPlayer"}},"excludedPlayers":{"type":"array","items":{"$ref":"#/components/schemas/Player"}},"excludedPlayersCount":{"type":"number"},"excludePlayers":{"type":"boolean"},"type":{"enum":[],"type":"number"},"stats":{"type":"object"},"totalPlayerFreeBets":{"type":"number"}},"required":["id","createdAt","updatedAt","active","createdById","environment","name","operatorCampaignId","startDate","expireDate","numberOfBets","betAmount","currencyIsoCode","gameId","betSettings","operatorId","excludePlayers","type"]},"FreeBetCampaignToPlayer":{"type":"object","properties":{"id":{"type":"string","nullable":false},"player":{"$ref":"#/components/schemas/Player"},"playerId":{"type":"string"},"freeBetCampaign":{"$ref":"#/components/schemas/FreeBetCampaign"},"freeBetCampaignId":{"type":"string"},"gameTransactions":{"type":"array","items":{"$ref":"#/components/schemas/GameTransaction"}},"actionId":{"type":"string","nullable":true}},"required":["id","playerId","freeBetCampaignId","actionId"]},"Player":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string","nullable":false},"operator":{"$ref":"#/components/schemas/Organization"},"operatorId":{"type":"string","nullable":false},"operatorPlayerId":{"type":"string","nullable":false},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/GameTransaction"}},"gameSessionPlayer":{"type":"array","items":{"$ref":"#/components/schemas/GameSessionPlayer"}},"freeBetToPlayer":{"type":"array","items":{"$ref":"#/components/schemas/FreeBetCampaignToPlayer"}},"campaignExlusions":{"type":"array","items":{"$ref":"#/components/schemas/FreeBetCampaign"}}},"required":["id","createdAt","updatedAt","active","environment","operatorId","operatorPlayerId","gameSessionPlayer"]},"GameSessionPlayer":{"type":"object","properties":{"operatorSessionId":{"type":"string"},"playerId":{"type":"string"},"gameSessionId":{"type":"string"},"player":{"$ref":"#/components/schemas/Player"},"gameSession":{"$ref":"#/components/schemas/GameSession"}},"required":["operatorSessionId","playerId","gameSessionId","player","gameSession"]},"GameSession":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"gameState":{"type":"string","nullable":false},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"timeouts":{"type":"array","items":{"$ref":"#/components/schemas/GameSessionTimeout"}},"states":{"type":"array","items":{"$ref":"#/components/schemas/GameSessionState"}},"logs":{"type":"array","items":{"$ref":"#/components/schemas/GameSessionLog"}},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/GameTransaction"}},"gameSessionPlayer":{"type":"array","items":{"$ref":"#/components/schemas/GameSessionPlayer"}},"environment":{"enum":["development","staging","production"],"type":"string","nullable":false},"gameMode":{"enum":["money","coins"],"type":"string"},"replayId":{"type":"string","nullable":false},"lockId":{"type":"string","nullable":true},"lockTimeout":{"format":"date-time","type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","gameState","gameId","gameSessionPlayer","environment","gameMode","replayId","lockId","lockTimeout"]},"GameTransaction":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"format":"date-time","type":"string","nullable":false},"expiresAt":{"format":"date-time","type":"string","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string"},"amount":{"type":"number","nullable":false},"amountInUSD":{"type":"string","nullable":true},"type":{"enum":["jackpot-paid","winning-paid","bet-placed","bet-refund","jackpot-contribution"],"type":"string","nullable":false},"currency":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Currency"}]},"currencyIsoCode":{"type":"string","nullable":true},"messageId":{"type":"string","nullable":false},"actionId":{"type":"string","nullable":false},"operator":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"operatorId":{"type":"string"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"gameSession":{"$ref":"#/components/schemas/GameSession"},"gameSessionId":{"type":"string","nullable":false},"player":{"$ref":"#/components/schemas/Player"},"playerId":{"type":"string","nullable":false},"operatorPlayerId":{"type":"string","nullable":true},"operatorBetId":{"type":"string","nullable":false},"replayId":{"type":"string","nullable":true},"freeBet":{"$ref":"#/components/schemas/FreeBetCampaignToPlayer"},"freeBetId":{"type":"string"}},"required":["id","createdAt","expiresAt","environment","amount","amountInUSD","type","messageId","actionId","operatorId","gameId","gameSessionId","playerId","operatorBetId","replayId","freeBetId"]},"GameLink":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"link":{"type":"string"},"environment":{"enum":["development","staging","production"],"type":"string"}},"required":["id","createdAt","updatedAt","active","gameId","link","environment"]},"GameVariable":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"key":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"type":{"enum":["int","float","string","bool","json"],"type":"string","nullable":false},"serverSide":{"type":"boolean"},"clientSide":{"type":"boolean"},"value":{"type":"string","nullable":false},"environment":{"enum":["development","staging","production"],"type":"string","nullable":true},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false}},"required":["id","createdAt","updatedAt","active","key","name","description","type","serverSide","clientSide","value","environment","gameId"]},"CustomLanguage":{"type":"object","properties":{"isoCode":{"type":"string"},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"organization":{"$ref":"#/components/schemas/Organization"},"organizationId":{"type":"string"},"language":{"$ref":"#/components/schemas/Language"},"languageIsoCode":{"type":"string"}},"required":["isoCode","createdAt","updatedAt","createdById","name","description","organizationId","languageIsoCode"]},"Language":{"type":"object","properties":{"isoCode":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"nativeName":{"type":"string","nullable":false},"customLanguages":{"type":"array","items":{"$ref":"#/components/schemas/CustomLanguage"}}},"required":["isoCode","name","nativeName"]},"TranslationKeyLocaleVersion":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":true},"version":{"type":"string","nullable":false},"keyLocale":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/TranslationKeyLocale"}]},"keyLocaleId":{"type":"string","nullable":false},"value":{"type":"string","nullable":false},"machineService":{"type":"string","nullable":true},"defaultVersion":{"$ref":"#/components/schemas/TranslationKeyLocaleVersion"},"defaultVersionId":{"type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","createdById","version","keyLocaleId","value","machineService","defaultVersionId"]},"TranslationKeyLocale":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":true},"country":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Country"}]},"countryIsoCode":{"type":"string","nullable":true},"language":{"$ref":"#/components/schemas/Language"},"languageIsoCode":{"type":"string","nullable":true},"customLanguage":{"$ref":"#/components/schemas/CustomLanguage"},"customLanguageIsoCode":{"type":"string"},"key":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/TranslationKey"}]},"keyId":{"type":"string","nullable":false},"versions":{"type":"array","items":{"$ref":"#/components/schemas/TranslationKeyLocaleVersion"}}},"required":["id","createdAt","updatedAt","active","createdById","countryIsoCode","languageIsoCode","customLanguageIsoCode","keyId"]},"TranslationKey":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"folder":{"$ref":"#/components/schemas/TranslationAppFolder"},"folderId":{"type":"string"},"labels":{"type":"array","items":{"type":"string"}},"locales":{"type":"array","items":{"$ref":"#/components/schemas/TranslationKeyLocale"}},"localesCount":{"type":"number"},"translate":{"type":"string","nullable":false},"appId":{"type":"string"}},"required":["id","createdAt","updatedAt","active","name","description","createdById","folderId","labels","translate"]},"TranslationAppFolder":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"type":"string","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"translationApp":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/TranslationApp"}]},"appId":{"type":"string"},"parentFolder":{"$ref":"#/components/schemas/TranslationAppFolder"},"parentFolderId":{"type":"string"},"children":{"type":"array","items":{"$ref":"#/components/schemas/TranslationAppFolder"}},"keys":{"type":"array","items":{"$ref":"#/components/schemas/TranslationKey"}},"hasKeys":{"type":"boolean"},"hasChildren":{"type":"boolean"}},"required":["id","createdAt","updatedAt","active","name","createdById","appId","parentFolderId","hasKeys","hasChildren"]},"TranslationAppTranslation":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"format":"date-time","type":"string","nullable":false},"translationApp":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/TranslationApp"}]},"appId":{"type":"string","nullable":false},"language":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Language"}]},"languageIsoCode":{"type":"string"},"customLanguage":{"$ref":"#/components/schemas/CustomLanguage"},"customLanguageIsoCode":{"type":"string"}},"required":["id","createdAt","appId","languageIsoCode","customLanguageIsoCode"]},"TranslationApp":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"autoTranslate":{"type":"boolean","nullable":false},"organization":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"organizationId":{"type":"string"},"game":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Game"}]},"gameId":{"type":"string"},"defaultLanguage":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Language"}]},"defaultLanguageIsoCode":{"type":"string"},"defaultCountry":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Country"}]},"defaultCountryIsoCode":{"type":"string"},"folders":{"type":"array","items":{"$ref":"#/components/schemas/TranslationAppFolder"}},"translations":{"type":"array","items":{"$ref":"#/components/schemas/TranslationAppTranslation"}},"keysCount":{"type":"number","default":0},"localesCount":{"type":"number","default":0},"lastVersionUpdate":{"type":"string"}},"required":["id","createdAt","updatedAt","active","createdById","name","autoTranslate","organizationId","gameId","defaultLanguageIsoCode","defaultCountryIsoCode","keysCount","localesCount"]},"GameSuspensionHistory":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"userOrganization":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/UserOrganization"}]},"userOrganizationId":{"type":"string"},"serviceAccount":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ServiceAccount"}]},"serviceAccountId":{"type":"string"},"suspended":{"type":"boolean","nullable":false},"environment":{"type":"array","items":{"type":"string"}},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"reason":{"type":"string","nullable":false}},"required":["id","createdAt","userOrganizationId","serviceAccountId","suspended","environment","gameId","reason"]},"GameAsset":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"path":{"type":"string","nullable":false},"originalName":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"labels":{"type":"string","nullable":false},"size":{"type":"string","nullable":false},"type":{"type":"string","nullable":false},"width":{"type":"number","nullable":true},"height":{"type":"number","nullable":true}},"required":["id","createdAt","updatedAt","active","createdById","gameId","path","originalName","name","description","labels","size","type"]},"BetSetting":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"game":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Game"}]},"gameId":{"type":"string","nullable":false},"key":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"type":{"enum":[],"type":"number","nullable":false},"minValue":{"type":"string","nullable":true},"maxValue":{"type":"string","nullable":true},"enumValues":{"type":"string","nullable":true},"defaultValue":{"type":"string","nullable":false},"affectsBetAmount":{"type":"boolean","nullable":false},"usedByCampaign":{"type":"boolean","default":false}},"required":["id","createdAt","updatedAt","active","createdById","gameId","key","name","description","type","minValue","maxValue","enumValues","defaultValue","affectsBetAmount","usedByCampaign"]},"JackpotTemplateOverwrite":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"currency":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Currency"}]},"currencyIsoCode":{"type":"string","nullable":true},"operator":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"operatorId":{"type":"string"},"jackpotTemplate":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/JackpotTemplate"}]},"jackpotTemplateId":{"type":"string"},"liveJackpotId":{"type":"string"},"environment":{"enum":["development","staging","production"],"type":"string"},"startAmount":{"type":"number","nullable":false},"savingsPercentage":{"type":"number","nullable":false},"ppcc":{"type":"number","nullable":false},"deadline":{"type":"number","nullable":true}},"required":["id","createdAt","updatedAt","active","currencyIsoCode","operatorId","jackpotTemplateId","environment","startAmount","savingsPercentage","ppcc","deadline"]},"JackpotTemplate":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"type":"string","nullable":false},"currency":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Currency"}]},"currencyIsoCode":{"type":"string","nullable":true},"startAmount":{"type":"number","nullable":false},"savingsPercentage":{"type":"number","nullable":false},"type":{"enum":["coins","money"],"type":"string"},"ppcc":{"type":"number","nullable":false},"deadline":{"type":"number","nullable":true},"studio":{"$ref":"#/components/schemas/Organization"},"studioId":{"type":"string"},"variants":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GameVariant"}},"templateOverwrites":{"type":"array","items":{"$ref":"#/components/schemas/JackpotTemplateOverwrite"}}},"required":["id","createdAt","updatedAt","active","name","currencyIsoCode","startAmount","savingsPercentage","type","ppcc","deadline","studioId"]},"GameVariant":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":true},"serviceAccount":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ServiceAccount"}]},"serviceAccountId":{"type":"string","nullable":true},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":false},"operators":{"type":"array","items":{"$ref":"#/components/schemas/GameOperator"}},"jackpotTemplates":{"type":"array","items":{"$ref":"#/components/schemas/JackpotTemplate"}},"jackpotTemplateIds":{"type":"array","items":{"type":"string"}},"number":{"type":"number"},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"rtp":{"type":"number","nullable":true}},"required":["id","createdAt","updatedAt","active","createdById","serviceAccountId","gameId","jackpotTemplateIds","number","name","description","rtp"]},"GameMatchmakerSetting":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"gameId":{"type":"string"},"minPlayers":{"type":"number"},"maxPlayers":{"type":"number"},"maxPlayerWaitSeconds":{"type":"number"},"game":{"$ref":"#/components/schemas/Game"}},"required":["id","createdAt","updatedAt","gameId","minPlayers","maxPlayers","maxPlayerWaitSeconds"]},"Proposal":{"type":"object","properties":{"id":{"type":"number","nullable":false},"createdAt":{"type":"string","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string","nullable":true},"name":{"type":"string"},"reason":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"status":{"enum":[],"type":"number"},"relevanceCode":{"type":"string"},"client":{"type":"boolean"},"server":{"type":"boolean"},"reviewedBy":{"$ref":"#/components/schemas/User"},"reviewedById":{"type":"string"},"technicalBenefits":{"type":"string"},"risks":{"type":"string"},"implications":{"type":"string"},"confidentiality":{"type":"string"},"integrity":{"type":"string"},"availability":{"type":"string"},"accountability":{"type":"string"},"approvalReason":{"type":"string"},"rejectionReason":{"type":"string"},"implementedBy":{"type":"string"},"implementationDetails":{"type":"string"},"testingDetails":{"type":"string"},"components":{"type":"object"}},"required":["id","createdAt","createdById","gameId","name","reason","description","category","status","relevanceCode","client","server","reviewedBy","reviewedById","technicalBenefits","risks","implications","confidentiality","integrity","availability","accountability","approvalReason","rejectionReason","implementedBy","implementationDetails","testingDetails"]},"StudioGameCategory":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"studio":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"studioId":{"type":"string","nullable":false},"gameToStudioCategory":{"type":"array","items":{"$ref":"#/components/schemas/Game"}}},"required":["id","createdAt","updatedAt","active","createdById","name","description","studioId"]},"Game":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"type":"string","nullable":false},"slug":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"rtp":{"type":"number","nullable":true},"hitFrequency":{"type":"number","nullable":false},"volatility":{"type":"number","nullable":true},"icon":{"type":"string","nullable":true},"thumb":{"type":"string","nullable":true},"thumbPortrait":{"type":"string","nullable":true},"supportedCountries":{"type":"array","items":{"type":"string"}},"supportedLanguages":{"type":"array","items":{"type":"string"}},"supportedCurrencies":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"$ref":"#/components/schemas/GameCategory"}},"categoryIds":{"type":"array","items":{"type":"string"}},"achievements":{"type":"array","items":{"$ref":"#/components/schemas/GameAchievement"}},"insights":{"type":"array","items":{"$ref":"#/components/schemas/GameInsight"}},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/GameTransaction"}},"sessions":{"type":"array","items":{"$ref":"#/components/schemas/GameSession"}},"sessionLogs":{"type":"array","items":{"$ref":"#/components/schemas/GameSessionLog"}},"studio":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"studioId":{"type":"string","nullable":false},"links":{"type":"array","items":{"$ref":"#/components/schemas/GameLink"}},"gameClientVersions":{"type":"array","items":{"$ref":"#/components/schemas/GameClientVersion"}},"gameOperators":{"type":"array","items":{"$ref":"#/components/schemas/GameOperator"}},"exclusiveOperators":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}},"exclusiveOperatorIds":{"type":"array","items":{"type":"string"}},"variables":{"type":"array","items":{"$ref":"#/components/schemas/GameVariable"}},"favorite":{"type":"boolean"},"pubSubs":{"type":"array","items":{"$ref":"#/components/schemas/PubSub"}},"cloudFunctions":{"type":"array","items":{"$ref":"#/components/schemas/CloudFunction"}},"versions":{"type":"array","items":{"$ref":"#/components/schemas/CloudFunctionVersion"}},"translationApps":{"type":"array","items":{"$ref":"#/components/schemas/TranslationApp"}},"currentMessageData":{"type":"object"},"suspensions":{"items":{"type":"string"},"type":"array"},"suspensionHistory":{"type":"array","items":{"$ref":"#/components/schemas/GameSuspensionHistory"}},"repositoryConnection":{"$ref":"#/components/schemas/RepositoryConnection"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/GameAsset"}},"freeBetCampaigns":{"type":"array","items":{"$ref":"#/components/schemas/FreeBetCampaign"}},"betSettings":{"type":"array","items":{"$ref":"#/components/schemas/BetSetting"}},"coreVariableOverwrites":{"type":"array","items":{"$ref":"#/components/schemas/CVGameOverwrite"}},"variants":{"type":"array","items":{"$ref":"#/components/schemas/GameVariant"}},"variantIds":{"type":"array","items":{"type":"string"}},"certificates":{"type":"array","items":{"$ref":"#/components/schemas/GameCertificate"}},"matchMakerSetting":{"$ref":"#/components/schemas/GameMatchmakerSetting"},"proposals":{"type":"array","items":{"$ref":"#/components/schemas/Proposal"}},"studioCategories":{"type":"array","items":{"$ref":"#/components/schemas/StudioGameCategory"}},"studioCategoryIds":{"type":"array","items":{"type":"string"}},"integrationCategories":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationGameCategory"}},"integrationCategoryIds":{"type":"array","items":{"type":"string"}},"integrationImages":{"type":"array","items":{"$ref":"#/components/schemas/GameIntegrationImage"}},"screenshots":{"type":"object"},"supportedCountriesLiteral":{"type":"string"},"supportedLanguagesLiteral":{"type":"string"},"supportedCurrenciesLiteral":{"type":"string"},"operatorInfo":{"type":"object"},"coreVariables":{"type":"array","items":{"$ref":"#/components/schemas/CoreVariable"}}},"required":["id","createdAt","updatedAt","active","name","slug","description","rtp","hitFrequency","volatility","supportedCountries","supportedLanguages","supportedCurrencies","studioId","links","exclusiveOperatorIds","variables","cloudFunctions","versions","currentMessageData","suspensions","screenshots"]},"GameOperator":{"type":"object","properties":{"game":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/Game"}},"gameId":{"type":"string"},"operator":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/Organization"}},"operatorId":{"type":"string"},"gameVariant":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/GameVariant"}},"gameVariantId":{"type":"string"},"createdAt":{"type":"string"}},"required":["gameId","operatorId","gameVariantId","createdAt"]},"UserInvite":{"type":"object","properties":{"name":{"type":"string","nullable":false},"id":{"type":"string","nullable":false},"createdAt":{"format":"date-time","type":"string","nullable":false},"firstName":{"type":"string","nullable":false},"lastName":{"type":"string","nullable":false},"email":{"type":"string","nullable":false},"organizationInvites":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationInvite"}}},"required":["name","id","createdAt","firstName","lastName","email","organizationInvites"]},"OrganizationInvite":{"type":"object","properties":{"link":{"type":"string","nullable":false},"resendable":{"type":"string","nullable":false},"id":{"type":"string","nullable":false},"createdAt":{"format":"date-time","type":"string","nullable":false},"sentAt":{"format":"date-time","type":"string","nullable":false},"expiresAt":{"format":"date-time","type":"string","nullable":false},"fromUser":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"fromUserId":{"type":"string","nullable":false},"toUser":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/User"}]},"toUserId":{"type":"string","nullable":true},"userInvite":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/UserInvite"}]},"userInviteId":{"type":"string","nullable":true},"organization":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"organizationId":{"type":"string","nullable":false},"roles":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/Role"}},"state":{"enum":["Pending","Revoked","Expired"],"type":"string","nullable":false}},"required":["resendable","id","createdAt","sentAt","expiresAt","fromUserId","toUserId","userInviteId","organizationId","roles","state"]},"GithubIntegration":{"type":"object","properties":{"createdAt":{"format":"date-time","type":"string","nullable":false},"user":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"userId":{"type":"string","nullable":false},"installationId":{"type":"string"},"repositorySelection":{"type":"string"},"githubUser":{"type":"string"},"repositoriesCount":{"type":"number"},"organization":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Organization"}]}},"required":["createdAt","userId","installationId","repositorySelection","githubUser","repositoriesCount"]},"ReportScheduleHistory":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"schedule":{"$ref":"#/components/schemas/ReportSchedule"},"scheduleId":{"type":"string","nullable":false},"scheduleState":{"$ref":"#/components/schemas/ReportSchedule"},"startDate":{"type":"string"},"endDate":{"type":"string"},"result":{"type":"object"}},"required":["id","createdAt","scheduleId","scheduleState","startDate","endDate","result"]},"ReportSchedule":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/User"}]},"createdById":{"type":"string","nullable":false},"name":{"type":"string","nullable":false},"type":{"enum":[],"type":"number","nullable":false},"organization":{"$ref":"#/components/schemas/Organization"},"organizationId":{"type":"string","nullable":false},"filters":{"type":"object"},"frequency":{"enum":[],"type":"number"},"period":{"enum":[],"type":"number"},"periodHours":{"type":"number"},"periodUntilMidnight":{"type":"number","enum":[]},"preferredReceiveTime":{"type":"string"},"preferredReceiveTz":{"type":"string"},"actions":{"type":"object"},"lastRunAt":{"type":"string"},"history":{"type":"array","items":{"$ref":"#/components/schemas/ReportScheduleHistory"}}},"required":["id","createdAt","updatedAt","active","createdById","name","type","organizationId","filters","frequency","period","periodHours","periodUntilMidnight","preferredReceiveTime","preferredReceiveTz","actions","lastRunAt"]},"Organization":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"type":"string","nullable":false},"slug":{"type":"string","nullable":false},"legalName":{"type":"string","nullable":false},"logo":{"type":"string","nullable":true},"organizationType":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/OrganizationType"}]},"organizationTypeName":{"enum":["Studio","Operator","Fireball"],"type":"string","nullable":false},"operators":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/Organization"}},"operatorIds":{"type":"array","items":{"type":"string"}},"aggregators":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/Organization"}},"aggregatorIds":{"type":"array","items":{"type":"string"}},"address":{"type":"object","nullable":false},"country":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Country"}]},"countryIsoCode":{"type":"string"},"operatorGames":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GameOperator"}},"exclusiveGames":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/Game"}},"players":{"type":"array","items":{"$ref":"#/components/schemas/Player"}},"jackpotTemplates":{"type":"array","items":{"$ref":"#/components/schemas/JackpotTemplate"}},"integration":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Integration"}]},"integrationId":{"type":"string"},"individual":{"type":"boolean","nullable":true,"default":false},"games":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"userOrganizations":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/UserOrganization"}},"translationApps":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/UserOrganization"}},"organizationInvites":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationInvite"}},"githubIntegration":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/GithubIntegration"}]},"githubIntegrationInstallationId":{"type":"string"},"serviceAccounts":{"type":"array","items":{"$ref":"#/components/schemas/ServiceAccount"}},"freeBetCampaigns":{"type":"array","items":{"$ref":"#/components/schemas/FreeBetCampaign"}},"coreVariableOverwrites":{"type":"array","items":{"$ref":"#/components/schemas/CVOperatorOverwrite"}},"gamePricingLists":{"type":"array","items":{"$ref":"#/components/schemas/GamePricingList"}},"scheduledReports":{"type":"array","items":{"$ref":"#/components/schemas/ReportSchedule"}},"customLanguages":{"type":"array","items":{"$ref":"#/components/schemas/CustomLanguage"}},"studioGameCategories":{"type":"array","items":{"$ref":"#/components/schemas/StudioGameCategory"}}},"required":["id","createdAt","updatedAt","active","name","slug","legalName","logo","organizationType","organizationTypeName","operatorIds","aggregatorIds","address","countryIsoCode","individual","userOrganizations","organizationInvites"]},"CurrencyOperatorOverwrite":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"createdBy":{"$ref":"#/components/schemas/User"},"createdById":{"type":"string"},"operator":{"$ref":"#/components/schemas/Organization"},"operatorId":{"type":"string"},"virtualCurrency":{"$ref":"#/components/schemas/Currency2"},"virtualCurrencyId":{"type":"string"},"name":{"type":"string","nullable":true},"symbol":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"currency":{"$ref":"#/components/schemas/Currency2"},"currencyId":{"type":"string"},"value":{"type":"number"},"decimals":{"type":"number"}},"required":["id","createdAt","updatedAt","createdById","operatorId","virtualCurrencyId","name","symbol","url","currencyId","value","decimals"]},"Currency2":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"createdBy":{"$ref":"#/components/schemas/User"},"createdById":{"type":"string"},"type":{"enum":["FIAT","CRYPTO","VIRTUAL"],"type":"string","nullable":false},"code":{"type":"string","nullable":false},"name":{"type":"string","nullable":true},"iconUrl":{"type":"string","nullable":true},"maxSupply":{"format":"int64","type":"integer","nullable":true},"value":{"type":"number"},"operatorOverwrites":{"type":"array","items":{"$ref":"#/components/schemas/CurrencyOperatorOverwrite"}}},"required":["id","createdAt","updatedAt","createdById","type","code","name","iconUrl","maxSupply","value"]},"User":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"name":{"type":"string","nullable":false},"firstName":{"type":"string","nullable":false},"lastName":{"type":"string","nullable":false},"email":{"type":"string","nullable":false},"profilePicture":{"type":"string","nullable":true},"address":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Address"}]},"password":{"type":"string","nullable":false},"currency":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Currency"}]},"currencyIsoCode":{"type":"string","nullable":true},"currency2":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Currency2"}]},"currencyId":{"type":"string","nullable":true},"country":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Country"}]},"countryIsoCode":{"type":"string","nullable":true},"language":{"$ref":"#/components/schemas/Language"},"languageIsoCode":{"type":"string","nullable":true},"timezoneName":{"type":"string","nullable":true},"selectedOrganization":{"nullable":false,"allOf":[{"$ref":"#/components/schemas/Organization"}]},"selectedOrganizationId":{"type":"string","nullable":false},"userOrganizations":{"nullable":false,"type":"array","items":{"$ref":"#/components/schemas/UserOrganization"}},"receivedOrganizationInvites":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationInvite"}},"sentOrganizationInvites":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationInvite"}},"favoriteGames":{"type":"array","items":{"$ref":"#/components/schemas/Game"}},"lastSignIn":{"format":"date-time","type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","name","firstName","lastName","email","profilePicture","address","password","currencyIsoCode","currencyId","countryIsoCode","languageIsoCode","timezoneName","selectedOrganizationId","userOrganizations","receivedOrganizationInvites","sentOrganizationInvites","lastSignIn"]},"GamePricingList":{"type":"object","properties":{"id":{"type":"string","nullable":false},"createdAt":{"type":"string","nullable":false},"updatedAt":{"type":"string","nullable":false},"active":{"type":"boolean","nullable":false},"createdBy":{"$ref":"#/components/schemas/User"},"createdById":{"type":"string"},"studio":{"$ref":"#/components/schemas/Organization"},"studioId":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/GamePricingRule"}},"version":{"type":"number"}},"required":["id","createdAt","updatedAt","active","createdBy","createdById","studioId","rules","version"]},"GamePricingRule":{"type":"object","properties":{"id":{"type":"string","nullable":false},"gamePricingList":{"$ref":"#/components/schemas/GamePricingList"},"gamePricingListId":{"type":"string"},"jurisdiction":{"$ref":"#/components/schemas/Jurisdiction"},"jurisdictionId":{"type":"string"},"country":{"$ref":"#/components/schemas/Country"},"countryIsoCode":{"type":"string"},"operator":{"$ref":"#/components/schemas/Organization"},"operatorId":{"type":"string"},"gameCategory":{"$ref":"#/components/schemas/GameCategory"},"gameCategoryId":{"type":"string"},"game":{"$ref":"#/components/schemas/Game"},"gameId":{"type":"string"},"ggrFee":{"type":"number"},"priority":{"type":"number"}},"required":["id","gamePricingListId","jurisdictionId","countryIsoCode","operatorId","gameCategoryId","gameId","ggrFee","priority"]},"CreateListDto":{"type":"object","properties":{"rules":{"type":"array","items":{"$ref":"#/components/schemas/GamePricingRule"}}},"required":["rules"]},"CreateVariantDto":{"type":"object","properties":{"gameId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"jackpotTemplateIds":{"type":"array","items":{"type":"string"}},"rtp":{"type":"string"}},"required":["gameId","name","description","jackpotTemplateIds","rtp"]},"GameVariantDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string","nullable":true},"serviceAccountId":{"type":"string","nullable":true},"gameId":{"type":"string"},"jackpotTemplateIds":{"type":"array","items":{"type":"string"}},"number":{"type":"number"},"name":{"type":"string"},"description":{"type":"string"},"rtp":{"type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","gameId","jackpotTemplateIds","number","name","description"]},"GameVariantResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameVariantDto"}},"required":["statusCode","data"]},"GameVariantListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GameVariantDto"}}},"required":["statusCode","data"]},"UpdateVariantDto":{"type":"object","properties":{}},"CertificateFileInfoDto":{"type":"object","properties":{"name":{"type":"string","description":"Certificate file name.","example":"cert.pdf"},"size":{"type":"number","description":"Certificate file size in bytes.","example":524288},"url":{"type":"string","description":"Uploaded file URL (cloud storage path/url).","example":"https://storage.googleapis.com/.../cert.pdf"}},"required":["name","size","url"]},"CreateCertificateDto":{"type":"object","properties":{"jurisdictionId":{"type":"string","format":"uuid"},"testCompany":{"type":"string","description":"Name of the testing/certification company."},"issueDate":{"type":"string","description":"Issue date in ISO format.","example":"2026-03-12T10:00:00.000Z"},"expireDate":{"type":"string","description":"Expire date in ISO format.","example":"2027-03-12T10:00:00.000Z"},"timezoneName":{"type":"string","description":"Timezone name used for date interpretation."},"filesInfo":{"description":"Certificate files metadata included in this certificate.","type":"array","items":{"$ref":"#/components/schemas/CertificateFileInfoDto"}},"serverVersionId":{"type":"string","format":"uuid","description":"Server version ID."},"clientVersionId":{"type":"string","format":"uuid","description":"Client version ID."}},"required":["jurisdictionId","testCompany","issueDate","expireDate","timezoneName","filesInfo","serverVersionId","clientVersionId"]},"GameCertificateFileDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"url":{"type":"string"}},"required":["id","name","size","url"]},"GameCertificateDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string"},"gameId":{"type":"string"},"serverVersionId":{"type":"string"},"clientVersionId":{"type":"string"},"jurisdictionId":{"type":"string"},"testCompany":{"type":"string"},"issueDate":{"type":"string"},"expireDate":{"type":"string"},"timezoneName":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/GameCertificateFileDto"}},"history":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GameCertificateDto"}}},"required":["id","createdAt","updatedAt","active","createdById","gameId","serverVersionId","clientVersionId","jurisdictionId","testCompany","issueDate","expireDate","timezoneName","files"]},"GameCertificateResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameCertificateDto"}},"required":["statusCode","data"]},"GameCertificateListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GameCertificateDto"}}},"required":["statusCode","data"]},"GameIntegrationImageDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string"},"type":{"enum":["thumbnail","background"],"type":"string"},"url":{"type":"string"},"integrationId":{"type":"string"},"gameId":{"type":"string"}},"required":["id","createdAt","updatedAt","active","createdById","type","url","integrationId","gameId"]},"GameIntegrationImageResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameIntegrationImageDto"}},"required":["statusCode","data"]},"CreateIntegrationImageDto":{"type":"object","properties":{"type":{"type":"string","enum":["thumbnail","background"]}},"required":["type"]},"UpdateGameIntegrationCategoryDto":{"type":"object","properties":{"categoryIds":{"type":"array","items":{"type":"string"}}},"required":["categoryIds"]},"SuspendGameDto":{"type":"object","properties":{"environment":{"enum":["development","staging","production"],"type":"string","description":"Target environment to suspend/resume."},"reason":{"type":"string","minLength":10,"maxLength":255,"description":"Reason for suspension/resume operation."}},"required":["environment","reason"]},"UpdateGameDto":{"type":"object","properties":{}},"RepositoryConnectionDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"coreFunctionId":{"type":"string","nullable":true},"integrationId":{"type":"string","nullable":true},"httpMiddlewareId":{"type":"string","nullable":true},"gameId":{"type":"string","nullable":true},"createdById":{"type":"string"},"owner":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"defaultBranch":{"type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","createdById"]},"RepositoryConnectionResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/RepositoryConnectionDto"}},"required":["statusCode","data"]},"RepositoryConnectionListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryConnectionDto"}}},"required":["statusCode","data"]},"ConnectToRepositoryDto":{"type":"object","properties":{"repository":{"type":"object","description":"Repository metadata from GitHub repository selection.","example":{"name":"fireball-api","description":"Fireball admin API","owner":{"login":"fireball-org"}}},"branch":{"type":"string","example":"main"},"gameId":{"type":"string"},"integrationId":{"type":"string"},"httpMiddlewareId":{"type":"string"},"coreFunctionId":{"type":"string"},"version":{"type":"number"}},"required":["repository","branch"]},"IntegrationGameSettingDto":{"type":"object","properties":{"integrationId":{"type":"string"},"gameCategorySettings":{"type":"object","nullable":true},"gameImageSettings":{"type":"object","nullable":true}},"required":["integrationId","gameCategorySettings","gameImageSettings"]},"IntegrationGameSettingResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/IntegrationGameSettingDto"}},"required":["statusCode","data"]},"GameCategorySettingDto":{"type":"object","properties":{"required":{"type":"boolean"},"multiple":{"type":"boolean"}},"required":["required","multiple"]},"GameImageSizeRestrictionDto":{"type":"object","properties":{"exactWidth":{"type":"number"},"exactHeight":{"type":"number"},"minWidth":{"type":"number"},"minHeight":{"type":"number"},"maxWidth":{"type":"number"},"maxHeight":{"type":"number"},"aspectRatio":{"type":"number"},"ratioLiteral":{"type":"string"}}},"GameImageSettingDto":{"type":"object","properties":{"type":{"enum":["thumbnail","background"],"type":"string"},"acceptedFormats":{"type":"string","example":"image/png"},"description":{"type":"string","minLength":10,"maxLength":200},"sizeRestriction":{"$ref":"#/components/schemas/GameImageSizeRestrictionDto"}},"required":["type","acceptedFormats","description","sizeRestriction"]},"UpdateGameSettingDto":{"type":"object","properties":{"gameCategorySettings":{"$ref":"#/components/schemas/GameCategorySettingDto"},"gameImageSettings":{"type":"array","items":{"$ref":"#/components/schemas/GameImageSettingDto"}}},"required":["gameCategorySettings","gameImageSettings"]},"CreateGameCategoryDto":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":30,"example":"Table Games"},"description":{"type":"string","minLength":10,"maxLength":500,"example":"Games optimized for tables and mobile portrait layouts"}},"required":["name"]},"IntegrationGameCategoryDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"integrationId":{"type":"string"}},"required":["id","createdAt","updatedAt","active","createdById","name","integrationId"]},"IntegrationGameCategoryResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/IntegrationGameCategoryDto"}},"required":["statusCode","data"]},"IntegrationGameCategoryListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationGameCategoryDto"}}},"required":["statusCode","data"]},"UpdateGameCategoryDto":{"type":"object","properties":{}},"CreateIntegrationDto":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":70,"example":"Acme Integration"}},"required":["name"]},"IntegrationDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string"},"name":{"type":"string"},"clientScriptEnabled":{"type":"boolean"}},"required":["id","createdAt","updatedAt","active","createdById","name","clientScriptEnabled"]},"IntegrationResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/IntegrationDto"}},"required":["statusCode","data"]},"IntegrationListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationDto"}}},"required":["statusCode","data"]},"EnableHttpMiddlewareDto":{"type":"object","properties":{"name":{"type":"string","example":"acme-middleware","description":"Cloud Function base name. Must start with a letter and can contain letters, digits, or hyphens."}},"required":["name"]},"CreateClientScriptDto":{"type":"object","properties":{"environment":{"enum":["development","staging","production"],"type":"string"},"content":{"type":"string"}},"required":["environment","content"]},"PlayerDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"environment":{"enum":["development","staging","production"],"type":"string"},"operatorId":{"type":"string"},"operatorPlayerId":{"type":"string"}},"required":["id","createdAt","updatedAt","active","environment","operatorId","operatorPlayerId"]},"PlayerListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/PlayerDto"}}},"required":["statusCode","data"]},"PlayerResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/PlayerDto"}},"required":["statusCode","data"]},"CreateJackpotTemplateDto":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":70,"example":"Daily Prize Pool"},"currencyIsoCode":{"type":"string","minLength":3,"maxLength":3,"example":"EUR"},"startAmount":{"type":"number","example":1000},"ppcc":{"type":"number","example":0.001},"savingsPercentage":{"type":"number","example":15},"type":{"enum":["coins","money"],"type":"string"},"deadline":{"type":"number","minimum":1,"example":30}},"required":["name","startAmount","ppcc","savingsPercentage","type"]},"JackpotTemplateDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"name":{"type":"string"},"currencyIsoCode":{"type":"string","nullable":true},"startAmount":{"type":"number"},"savingsPercentage":{"type":"number"},"type":{"enum":["coins","money"],"type":"string"},"ppcc":{"type":"number"},"deadline":{"type":"string","nullable":true},"studioId":{"type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","name","startAmount","savingsPercentage","type","ppcc"]},"JackpotTemplateResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/JackpotTemplateDto"}},"required":["statusCode","data"]},"CreateJackpotTemplateOverwriteDto":{"type":"object","properties":{"environment":{"enum":["development","staging","production"],"type":"string"},"currencyIsoCode":{"type":"string","minLength":3,"maxLength":3,"example":"USD"},"startAmount":{"type":"number","example":500},"ppcc":{"type":"number","example":0.001},"savingsPercentage":{"type":"number","example":10},"deadline":{"type":"number","minimum":1,"example":14}},"required":["environment","startAmount","ppcc","savingsPercentage"]},"UpdateJackpotTemplateOverwriteDto":{"type":"object","properties":{}},"JackpotTemplateListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/JackpotTemplateDto"}}},"required":["statusCode","data"]},"UpdateJackpotDto":{"type":"object","properties":{}},"CreateTranslationAppDto":{"type":"object","properties":{"name":{"type":"string","example":"Backoffice App"},"gameId":{"type":"string","format":"uuid","description":"Optional game id linked to this translation app."},"defaultLanguageIsoCode":{"type":"string","example":"en"},"defaultCountryIsoCode":{"type":"string","example":"US"},"autoTranslate":{"type":"boolean","description":"Auto-translate new values when possible.","example":false}},"required":["name","defaultLanguageIsoCode","autoTranslate"]},"TranslationAppDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string"},"name":{"type":"string"},"autoTranslate":{"type":"boolean"},"organizationId":{"type":"string"},"gameId":{"type":"string","nullable":true},"defaultLanguageIsoCode":{"type":"string"},"defaultCountryIsoCode":{"type":"string","nullable":true},"keysCount":{"type":"number"},"localesCount":{"type":"number"},"lastVersionUpdate":{"type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","createdById","name","autoTranslate","organizationId","defaultLanguageIsoCode","keysCount","localesCount"]},"TranslationAppResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/TranslationAppDto"}},"required":["statusCode","data"]},"TranslationAppListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/TranslationAppDto"}}},"required":["statusCode","data"]},"TranslateAppDto":{"type":"object","properties":{"languageIsoCodes":{"description":"Target native/custom language ISO codes.","example":["fr","es-MX"],"type":"array","items":{"type":"string","maxLength":10,"minLength":2}}},"required":["languageIsoCodes"]},"UpdateTranslationDto":{"type":"object","properties":{}},"TranslationKeyDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"createdById":{"type":"string"},"folderId":{"type":"string"},"labels":{"type":"array","items":{"type":"string"}},"translate":{"type":"boolean"},"localesCount":{"type":"number","nullable":true},"appId":{"type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","name","createdById","folderId","labels","translate"]},"TranslateFindKeysDataDto":{"type":"object","properties":{"apps":{"type":"array","items":{"$ref":"#/components/schemas/TranslationAppDto"}},"keys":{"type":"array","items":{"$ref":"#/components/schemas/TranslationKeyDto"}}},"required":["apps","keys"]},"TranslateFindKeysResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/TranslateFindKeysDataDto"}},"required":["statusCode","data"]},"TranslateKeyDto":{"type":"object","properties":{"defaultVersionId":{"type":"string","format":"uuid"},"keyLocaleId":{"type":"string","format":"uuid"},"keyId":{"type":"string","format":"uuid"},"languageIsoCode":{"type":"string","minLength":2,"maxLength":12,"description":"Native language ISO code."},"customLanguageIsoCode":{"type":"string","minLength":2,"maxLength":12,"description":"Custom language ISO code."},"value":{"type":"string","example":"Bienvenue"},"version":{"type":"number","example":2}},"required":["defaultVersionId","value","version"]},"TranslateResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/TranslationAppDto"}},"required":["statusCode","data"]},"TranslationAppFolderDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"name":{"type":"string"},"createdById":{"type":"string"},"appId":{"type":"string"},"parentFolderId":{"type":"string","nullable":true},"hasKeys":{"type":"boolean"},"hasChildren":{"type":"boolean"}},"required":["id","createdAt","updatedAt","active","name","createdById","appId","hasKeys","hasChildren"]},"TranslationAppFolderResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/TranslationAppFolderDto"}},"required":["statusCode","data"]},"CreateFolderDto":{"type":"object","properties":{"name":{"type":"string","example":"Main Menu"},"parentFolderId":{"type":"string","format":"uuid","nullable":true,"description":"Parent folder id, null for root-level folder."}},"required":["name"]},"UpdateFolderDto":{"type":"object","properties":{}},"CreateKeyDto":{"type":"object","properties":{"name":{"type":"string","example":"login.button.label"},"description":{"type":"string","example":"Login button caption"},"value":{"type":"string","example":"Log in"},"labels":{"description":"Search labels for key organization.","example":["auth","login"],"type":"array","items":{"type":"string","maxLength":50,"minLength":1}},"translate":{"type":"boolean","description":"Whether to trigger machine translation for additional languages.","example":true}},"required":["name","value","labels","translate"]},"TranslationKeyResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/TranslationKeyDto"}},"required":["statusCode","data"]},"UpdateKeyDto":{"type":"object","properties":{"languageIsoCode":{"type":"string","example":"en"},"countryIsoCode":{"type":"string","example":"US"}},"required":["languageIsoCode"]},"GenerateGRRDto":{"type":"object","properties":{"environment":{"enum":["development","staging","production"],"type":"string","example":"production"},"start":{"type":"string","format":"date-time","description":"Start date/time in ISO format."},"end":{"type":"string","format":"date-time","description":"End date/time in ISO format."},"gameIds":{"description":"List of game ids or [\"all\"].","example":["all"],"type":"array","items":{"type":"string"}},"operatorIds":{"description":"List of operator ids or [\"all\"] depending on requester type.","example":["all"],"type":"array","items":{"type":"string"}},"currencies":{"description":"List of currency ISO codes or [\"all\"].","example":["EUR","USD"],"type":"array","items":{"type":"string"}},"currencyIsoCode":{"type":"string","minLength":3,"maxLength":3,"description":"Target output currency ISO code.","example":"EUR"},"historicalExchangeRate":{"type":"boolean","description":"Use historical exchange rates when converting to currencyIsoCode.","example":false},"splitBy":{"type":"string","default":"game","enum":["game","operator","currency"],"example":"game"}},"required":["start"]},"GgrRowModel":{"type":"object","properties":{"timestamp":{"type":"string"},"id":{"type":"string"},"icon":{"type":"string"},"name":{"type":"string"},"bet":{"type":"number"},"win":{"type":"number"},"jackpot":{"type":"number"},"jackpotContribution":{"type":"number"},"rtp":{"type":"number"},"ggr":{"type":"number"}},"required":["bet","win","jackpot","jackpotContribution","ggr"]},"GgrTotalsModel":{"type":"object","properties":{"bet":{"type":"number"},"win":{"type":"number"},"jackpotContribution":{"type":"number"},"rtp":{"type":"number"},"ggr":{"type":"number"}},"required":["bet","win","jackpotContribution","rtp","ggr"]},"GgrReportDataModel":{"type":"object","properties":{"chart":{"type":"array","items":{"$ref":"#/components/schemas/GgrRowModel"}},"table":{"type":"array","items":{"$ref":"#/components/schemas/GgrRowModel"}},"totals":{"$ref":"#/components/schemas/GgrTotalsModel"},"daysDiff":{"type":"number"}},"required":["chart","table","totals","daysDiff"]},"GgrReportResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GgrReportDataModel"}},"required":["statusCode","data"]},"GenerateBetCountDto":{"type":"object","properties":{"environment":{"enum":["development","staging","production"],"type":"string","example":"production"},"start":{"type":"string","format":"date-time","description":"Start date/time in ISO format."},"end":{"type":"string","format":"date-time","description":"End date/time in ISO format."},"gameIds":{"description":"List of game ids or [\"all\"].","example":["all"],"type":"array","items":{"type":"string"}},"operatorIds":{"description":"List of operator ids or [\"all\"] depending on requester type.","example":["all"],"type":"array","items":{"type":"string"}},"currencies":{"description":"List of currency ISO codes or [\"all\"].","example":["EUR","USD"],"type":"array","items":{"type":"string"}},"currencyIsoCode":{"type":"string","minLength":3,"maxLength":3,"description":"Target output currency ISO code.","example":"EUR"},"splitBy":{"type":"string","default":"game","enum":["game","operator","currency"],"example":"game"}},"required":["start"]},"BetCountChartModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"icon":{"type":"string"},"timestamp":{"type":"string"},"total":{"type":"string"}},"required":["id","name","icon","timestamp","total"]},"BetCountTableModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"equalZero":{"type":"string"},"greaterThanZero":{"type":"string"},"all":{"type":"string"}},"required":["id","name","equalZero","greaterThanZero","all"]},"BetCountTotalsModel":{"type":"object","properties":{"equalZero":{"type":"string"},"greaterThanZero":{"type":"string"},"all":{"type":"string"}},"required":["equalZero","greaterThanZero","all"]},"BetCountReportDataModel":{"type":"object","properties":{"chart":{"type":"array","items":{"$ref":"#/components/schemas/BetCountChartModel"}},"table":{"type":"array","items":{"$ref":"#/components/schemas/BetCountTableModel"}},"totals":{"$ref":"#/components/schemas/BetCountTotalsModel"},"daysDiff":{"type":"number"}},"required":["chart","table","totals","daysDiff"]},"BetCountReportResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/BetCountReportDataModel"}},"required":["statusCode","data"]},"GenerateCertificatesDto":{"type":"object","properties":{"gameIds":{"description":"List of game ids or [\"all\"].","example":["all"],"type":"array","items":{"type":"string"}},"jurisdictionIds":{"description":"List of jurisdiction ids or [\"all\"].","example":["all"],"type":"array","items":{"type":"string"}},"timezoneName":{"type":"string","description":"IANA timezone used for expiration delta calculation.","example":"Europe/Sofia"}}},"JurisdictionDto":{"type":"object","properties":{"id":{"type":"string"},"authority":{"type":"string"},"abbreviation":{"type":"string"},"authorityUrl":{"type":"string"},"countryIsoCode":{"type":"string"},"areaIsoCodes":{"nullable":true,"type":"array","items":{"type":"string"}},"restrictedAreaIsoCodes":{"nullable":true,"type":"array","items":{"type":"string"}}},"required":["id","authority","abbreviation","authorityUrl","countryIsoCode"]},"GameCertificatesReportDataModel":{"type":"object","properties":{"id":{"type":"string"},"issueDate":{"type":"string"},"expireDate":{"type":"string"},"timezoneName":{"type":"string"},"jurisdictionId":{"type":"string"},"jurisdiction":{"$ref":"#/components/schemas/JurisdictionDto"},"gameId":{"type":"string"},"icon":{"type":"string"},"name":{"type":"string"},"daysUntilExpiration":{"oneOf":[{"type":"number"},{"type":"string"}]}},"required":["id","issueDate","expireDate","timezoneName","jurisdictionId","gameId","icon","name","daysUntilExpiration"]},"GameCertificatesReportResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/GameCertificatesReportDataModel"}}},"required":["statusCode","data"]},"GenerateGameFeeDto":{"type":"object","properties":{"environment":{"enum":["development","staging","production"],"type":"string","example":"production"},"start":{"type":"string","format":"date-time","description":"Start date/time in ISO-8601 format."},"end":{"type":"string","format":"date-time","description":"End date/time in ISO-8601 format."},"gameIds":{"description":"List of game ids or [\"all\"].","example":["all"],"type":"array","items":{"type":"string"}},"operatorIds":{"description":"List of operator ids or [\"all\"] depending on requester type.","example":["all"],"type":"array","items":{"type":"string"}},"currencies":{"description":"List of currency ISO codes or [\"all\"].","example":["EUR","USD"],"type":"array","items":{"type":"string"}},"currencyIsoCode":{"type":"string","minLength":3,"maxLength":3,"description":"Target output currency ISO code.","example":"EUR"},"splitBy":{"type":"string","default":"game","enum":["game","operator","currency"],"example":"game"}},"required":["start","end"]},"GameFeeOperatorPartialModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"logo":{"type":"string"}}},"GameFeeChartRowModel":{"type":"object","properties":{"timestamp":{"type":"string"},"operator":{"$ref":"#/components/schemas/GameFeeOperatorPartialModel"},"operatorId":{"type":"string"},"currencyIsoCode":{"type":"string"},"name":{"type":"string"},"total":{"type":"number"}},"required":["timestamp","total"]},"GameFeeGameRowModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"icon":{"type":"string"},"ggr":{"type":"number"}},"required":["id","name"]},"GameFeeOperatorRowModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo":{"type":"string"},"ggr":{"type":"number"}},"required":["id","name"]},"GameFeeCurrencyRowModel":{"type":"object","properties":{"isoCode":{"type":"string"},"name":{"type":"string"},"ggr":{"type":"number"}}},"GameFeeTableRowModel":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/GameFeeOperatorPartialModel"},"games":{"type":"array","items":{"$ref":"#/components/schemas/GameFeeGameRowModel"}},"operators":{"type":"array","items":{"$ref":"#/components/schemas/GameFeeOperatorRowModel"}},"currencies":{"type":"array","items":{"$ref":"#/components/schemas/GameFeeCurrencyRowModel"}},"total":{"type":"number"}}},"GameFeeReportDataModel":{"type":"object","properties":{"chart":{"type":"array","items":{"$ref":"#/components/schemas/GameFeeChartRowModel"}},"table":{"type":"array","items":{"$ref":"#/components/schemas/GameFeeTableRowModel"}},"total":{"type":"number"},"daysDiff":{"type":"number"}},"required":["chart","table","total","daysDiff"]},"GameFeeReportResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/GameFeeReportDataModel"}},"required":["statusCode","data"]},"CreateFreeBetDto":{"type":"object","properties":{"environment":{"enum":["development","staging","production"],"type":"string","example":"production"},"operatorId":{"type":"string","format":"uuid","description":"Optional target sub-operator id for aggregator organizations."},"name":{"type":"string","minLength":10,"maxLength":256,"example":"Summer Campaign","description":"Name of the free bet campaign."},"operatorCampaignId":{"type":"string","example":"operator-campaign-2025-07-<playerId>","description":"Must be unique per operator. Used for idempotency and reference in external systems."},"startDate":{"type":"string","format":"date-time","description":"Campaign start date in ISO format. If omitted, campaign will start immediately."},"expireDate":{"type":"string","format":"date-time","description":"Campaign expiration date in ISO format."},"gameId":{"type":"string","format":"uuid","description":"Game ID for which the free bet can be used. Game must be enabled for the operator."},"betSettings":{"type":"object","description":"Optional game bet settings overrides. See [Get bet settings](#tag/game-bet-settings/GET/api/v2.0/games/{gameId}/bet-settings)"},"numberOfBets":{"type":"number","example":10,"description":"Number of free bets to be awarded to each eligible player."},"betAmount":{"type":"number","example":100,"description":"Bet amount in minor units i.e. multiplied by the currency's multiplier. See [Get currency by ISO code](#tag/currencies/GET/api/v2.0/currencies/{isoCode}) multiplier property"},"currencyIsoCode":{"type":"string","example":"EUR","description":"Optional ISO currency code. If omitted, campaign will be created for coins."},"playerType":{"enum":["all","single","csv"],"type":"string","example":"single","description":"Defines how players are selected for the campaign. If \"all\" is selected, all players will be included in the campaign except those specified in \"operatorPlayerIds\". If \"single\" is selected, only the player at index 0 of \"operatorPlayerIds\" will be included in the campaign. If \"csv\" is selected, only the players specified in \"operatorPlayerIds\" will be included in the campaign."},"excludePlayers":{"type":"boolean","description":"Required when \"playerType\" is \"all\". If true \"operatorPlayerIds\" will be excluded from campaign and all players will be included. If false, only the players specified in \"operatorPlayerIds\" will be included.","example":false},"operatorPlayerIds":{"description":"External player ids to be included in the campaign. Required when \"playerType\" is not \"all\". If provided, only these players will be included in the campaign.","example":["ext-player-1","ext-player-2"],"type":"array","items":{"type":"string"}}},"required":["environment","name","operatorCampaignId","expireDate","gameId","numberOfBets","betAmount","playerType"]},"FreeBetCampaignDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string","nullable":true},"environment":{"enum":["development","staging","production"],"type":"string"},"name":{"type":"string"},"operatorCampaignId":{"type":"string","nullable":true},"startDate":{"type":"string","nullable":true},"expireDate":{"type":"string"},"numberOfBets":{"type":"number"},"betAmount":{"type":"number"},"currencyIsoCode":{"type":"string"},"gameId":{"type":"string"},"betSettings":{"type":"object"},"operatorId":{"type":"string"},"excludePlayers":{"type":"boolean"},"type":{"enum":["all_players","specific_players"],"type":"string"},"stats":{"type":"object","nullable":true},"totalPlayerFreeBets":{"type":"number","nullable":true},"excludedPlayersCount":{"type":"number","nullable":true}},"required":["id","createdAt","updatedAt","active","environment","name","expireDate","numberOfBets","betAmount","currencyIsoCode","gameId","betSettings","operatorId","excludePlayers","type"]},"FreeBetCampaignResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/FreeBetCampaignDto"}},"required":["statusCode","data"]},"FreeBetCampaignListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/FreeBetCampaignDto"}}},"required":["statusCode","data"]},"AddPlayersDto":{"type":"object","properties":{"playerIds":{"description":"Array of UUIDs","type":"array","items":{"type":"string"}},"operatorPlayerIds":{"description":"Array of strings","type":"array","items":{"type":"string"}}},"required":["playerIds","operatorPlayerIds"]},"ReportActionConditionDto":{"type":"object","properties":{"metric":{"type":"string","enum":["Bet","Win","Jackpot contribution","GGR","RTP(%)","Amount = 0","Amount > 0","All","Days until expiration"],"example":"GGR"},"operator":{"enum":["==","!=","<","<=",">",">="],"type":"string","example":">"},"value":{"type":"number","example":1000}},"required":["metric","operator","value"]},"ReportActionDto":{"type":"object","properties":{"type":{"enum":["Send email","Webhook"],"type":"string","example":"Send email"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/ReportActionConditionDto"}},"anyConditionMet":{"type":"boolean","description":"When true, action executes if any condition is met."},"recipientEmails":{"description":"Required for Send email action.","example":["ops@example.com"],"type":"array","items":{"type":"string"}},"webhookId":{"type":"string","format":"uuid","description":"Required for Webhook action."}},"required":["type","conditions","anyConditionMet"]},"CreateScheduleDto":{"type":"object","properties":{"name":{"type":"string","example":"Daily GGR Summary"},"type":{"enum":["GGR","Bet count","Game certificates","Game fees","Cost"],"type":"string","example":"GGR"},"filters":{"type":"object","description":"Report filters payload matching selected report type."},"frequency":{"enum":["Hourly","Daily","Weekly","Monthly"],"type":"string","example":"Daily"},"period":{"enum":["Yesterday","Last 7 days","Last 14 days","Last 30 days","Last month"],"type":"string","example":"Yesterday"},"periodHours":{"type":"number","minimum":1,"maximum":23,"example":6,"description":"Used for hourly schedules."},"periodUntilMidnight":{"type":"boolean","description":"Whether report period ends at midnight in preferred timezone.","example":true},"preferredReceiveTime":{"type":"string","format":"date-time","description":"Preferred report receive time."},"preferredReceiveTz":{"type":"string","example":"Europe/Sofia"},"actions":{"type":"array","items":{"$ref":"#/components/schemas/ReportActionDto"}}},"required":["name","type","filters","frequency","actions"]},"ReportScheduleDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"active":{"type":"boolean"},"createdById":{"type":"string"},"name":{"type":"string"},"type":{"enum":["GGR","Bet count","Game certificates","Game fees","Cost"],"type":"string"},"organizationId":{"type":"string"},"filters":{"type":"object"},"frequency":{"type":"string"},"period":{"type":"string","nullable":true},"periodHours":{"type":"number","nullable":true},"periodUntilMidnight":{"type":"boolean","nullable":true},"preferredReceiveTime":{"type":"string","nullable":true},"preferredReceiveTz":{"type":"string","nullable":true},"actions":{"type":"object"},"lastRunAt":{"type":"string","nullable":true}},"required":["id","createdAt","updatedAt","active","createdById","name","type","organizationId","filters","frequency","actions"]},"ReportScheduleResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/ReportScheduleDto"}},"required":["statusCode","data"]},"ReportScheduleListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportScheduleDto"}}},"required":["statusCode","data"]},"UpdateScheduleDto":{"type":"object","properties":{}},"ReportScheduleHistoryDto":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"scheduleId":{"type":"string"},"scheduleState":{"type":"string"},"startDate":{"type":"string","nullable":true},"endDate":{"type":"string","nullable":true},"result":{"type":"object"}},"required":["id","createdAt","scheduleId","scheduleState","result"]},"ReportScheduleHistoryListResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportScheduleHistoryDto"}}},"required":["statusCode","data"]},"ReportScheduleHistoryResponseDto":{"type":"object","properties":{"statusCode":{"enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505],"type":"number","example":200},"message":{"type":"string","description":"Optional message payload returned by endpoint."},"total":{"type":"number","description":"Optional total count for paginated responses.","example":25},"data":{"$ref":"#/components/schemas/ReportScheduleHistoryDto"}},"required":["statusCode","data"]}}}}