Last active
June 7, 2023 21:21
-
-
Save dbernazal/42edb54781708c604e12d14330663c3b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# yaml-language-server: $schema=https://raw.githubusercontent.com/asyncapi/spec-json-schemas/c03428dcb043156d254f2387183bb71bacdb1fa3/schemas/2.6.0-without-%24id.json | |
asyncapi: "2.6.0" | |
info: | |
title: Simplebet Gaming | |
version: 0.0.1 | |
description: The backend that powers the Betr mobile applications | |
servers: | |
staging_f2p: | |
url: wss://betr-f2p.staging.simplebet.io/socket/websocket | |
protocol: wss | |
staging_rmb: | |
url: wss://betr-rmb.staging.simplebet.io/socket/websocket | |
protocol: wss | |
prod_f2p: | |
url: wss://betr-f2p.simplebet.io/socket/websocket | |
protocol: wss | |
prod_oh_rmb: | |
url: wss://betr-rmb.oh.simplebet.io/socket/websocket | |
protocol: wss | |
channels: | |
schedule: | |
subscribe: | |
operationId: ScheduleChannelSub | |
message: | |
oneOf: | |
- messageId: ScheduleChannel_join | |
title: Join the Schedule Channel | |
payload: | |
type: object | |
properties: | |
leagues: | |
type: array | |
items: | |
$ref: "#/components/schemas/League" | |
x-reply: | |
status: ok | |
response: | |
type: object | |
properties: | |
schedule: | |
type: array | |
items: | |
$ref: "#/components/schemas/Match" | |
- messageId: ScheduleChannel_subscribe | |
title: Subscribe to a set of leagues. | |
payload: | |
type: object | |
properties: | |
leagues: | |
type: array | |
items: | |
$ref: "#/components/schemas/League" | |
x-reply: | |
status: ok | |
response: | |
type: object | |
properties: | |
schedule: | |
type: array | |
items: | |
$ref: "#/components/schemas/Match" | |
- messageId: ScheduleChannel_unsubscribe | |
title: Unsubscribe to a set of leagues. | |
payload: | |
type: object | |
properties: | |
leagues: | |
type: array | |
items: | |
$ref: "#/components/schemas/League" | |
x-reply: | |
status: ok | |
publish: | |
operationId: scheduleChannelPub | |
message: | |
oneOf: | |
- messageId: ScheduleChannel_schedule_update | |
payload: | |
type: object | |
properties: | |
schedule: | |
$ref: "#/components/schemas/Match" | |
match:{match_id}: | |
parameters: | |
match_id: | |
description: Match ID | |
schema: | |
$ref: "#/components/schemas/UUID" | |
subscribe: | |
operationId: matchChannelSub | |
message: | |
oneOf: | |
- messageId: MatchChannel_join | |
title: Join the Match Channel | |
x-reply: | |
oneOf: | |
- status: ok | |
response: | |
$ref: "#/components/schemas/Match" | |
- status: error | |
response: | |
type: object | |
reason: | |
type: string | |
enum: ["match not found"] | |
- messageId: MatchChannel_subscribe | |
title: subscribe | |
payload: | |
type: object | |
properties: | |
match_id: | |
$ref: "#/components/schemas/UUID" | |
x-reply: | |
status: ok | |
- messageId: MatchChannel_unsubscribe | |
title: unsubscribe | |
payload: | |
type: object | |
properties: | |
match_id: | |
$ref: "#/components/schemas/UUID" | |
x-reply: | |
status: ok | |
publish: | |
operationId: MatchChannelPub | |
message: | |
oneOf: | |
- messageId: MatchChannel_match_update | |
payload: | |
type: object | |
properties: | |
league: | |
$ref: "#/components/schemas/League" | |
match: | |
$ref: "#/components/schemas/Match" | |
- messageId: MatchChannel_period_changed | |
payload: | |
type: object | |
properties: | |
league: | |
$ref: "#/components/schemas/League" | |
match: | |
$ref: "#/components/schemas/Match" | |
- messageId: MatchChannel_match_ended | |
payload: | |
type: object | |
properties: | |
match_id: | |
$ref: "#/components/schemas/UUID" | |
market:{market_id}: | |
parameters: | |
market_id: | |
description: Market ID | |
schema: | |
type: string | |
format: uuid | |
subscribe: | |
operationId: marketChannelSub | |
message: | |
oneOf: | |
- messageId: MarketChannel_join | |
title: Join the Market Channel | |
x-reply: | |
oneOf: | |
- status: ok | |
response: | |
type: object | |
properties: | |
markets: | |
type: array | |
items: | |
$ref: "#/components/schemas/Market" | |
- status: error | |
response: | |
type: object | |
properties: | |
reason: | |
type: string | |
enum: [ "match not found" ] | |
publish: | |
operationId: marketChannelPub | |
message: | |
messageId: MarketChannel_update | |
title: market_update | |
payload: | |
type: object | |
properties: | |
sport: | |
type: string | |
enum: [ baseball, basketball, football ] | |
market: | |
$ref: "#/components/schemas/Market" | |
user:{user_id}: | |
parameters: | |
user_id: | |
description: User ID | |
schema: | |
$ref: "#/components/schemas/UUID" | |
subscribe: | |
operationId: UserChannelSub | |
message: | |
oneOf: | |
- messageId: UserChannel_join | |
title: Join the user Channel | |
payload: | |
type: object | |
properties: | |
version: | |
type: string | |
enum: | |
- v3 | |
- v4 | |
token: | |
type: string | |
nullable: true | |
- messageId: UserChannel_write_session_event | |
payload: | |
type: object | |
properties: | |
user_id: | |
$ref: "#/components/schemas/UUID" | |
value: | |
type: string | |
expires_in: | |
type: string | |
format: seconds | |
x-reply: | |
oneOf: | |
- status: ok | |
response: | |
type: object | |
properties: | |
event: | |
type: object | |
properties: | |
uuid: | |
$ref: "#/components/schemas/UUID" | |
name: | |
type: string | |
value: | |
type: string | |
expires_at: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
user_id: | |
$ref: "#/components/schemas/UUID" | |
- status: error | |
response: | |
type: object | |
properties: | |
errors: | |
type: array | |
items: | |
$ref: "#/components/schemas/Error" | |
- messageId: UserChannel_get_session_events | |
x-reply: | |
status: ok | |
response: | |
type: object | |
properties: | |
events: | |
type: array | |
items: | |
type: object | |
properties: | |
uuid: | |
$ref: "#/components/schemas/UUID" | |
name: | |
type: string | |
value: | |
type: string | |
expires_at: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
user_id: | |
$ref: "#/components/schemas/UUID" | |
- messageId: UserChannel_get_token | |
payload: | |
type: object | |
properties: | |
type: | |
type: string | |
enum: [prizeout_session] | |
x-reply: | |
status: ok | |
response: | |
type: object | |
properties: | |
type: | |
type: string | |
enum: [prizeout_session] | |
token: | |
type: string | |
- messageId: UserChannel_get_maxed_out_markets | |
payload: | |
type: object | |
properties: | |
match_uuid: | |
$ref: "#/components/schemas/UUID" | |
wallet_id: | |
$ref: "#/components/schemas/UUID" | |
x-reply: | |
status: ok | |
response: | |
type: object | |
properties: | |
maxed_out_markets: | |
type: array | |
items: | |
type: object | |
properties: | |
wallet_id: | |
$ref: "#/components/schemas/UUID" | |
market_uuid: | |
$ref: "#/components/schemas/UUID" | |
match_uuid: | |
$ref: "#/components/schemas/UUID" | |
user_id: | |
$ref: "#/components/schemas/UUID" | |
selections: | |
type: array | |
items: | |
$ref: "#/components/schemas/UUID" | |
updated_at: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
inserted_at: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
publish: | |
operationId: UserChannelPub | |
message: | |
oneOf: | |
- messageId: UserChannel_wallet_update | |
payload: | |
type: object | |
properties: | |
amount: | |
type: integer | |
nullable: true | |
balance: | |
type: integer | |
cash_balance: | |
type: integer | |
bonus_balance: | |
type: integer | |
id: | |
$ref: "#/components/schemas/UUID" | |
last_updated: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
reason: | |
type: string | |
nullable: true | |
- messageId: UserChannel_maxed_out_market | |
payload: | |
type: object | |
properties: | |
wallet_id: | |
$ref: "#/components/schemas/UUID" | |
market_uuid: | |
$ref: "#/components/schemas/UUID" | |
match_uuid: | |
$ref: "#/components/schemas/UUID" | |
- messageId: UserChannel_bets_resolved | |
payload: | |
type: object | |
properties: | |
bets: | |
type: array | |
items: | |
$ref: "#/components/schemas/Bet" | |
- messageId: UserChannel_bet_resulted | |
payload: | |
type: object | |
properties: | |
bets: | |
$ref: "#/components/schemas/Bet" | |
- messageId: UserChannel_delayed_bet_placed | |
payload: | |
type: object | |
properties: | |
properties: | |
amount: | |
type: integer | |
user_id: | |
$ref: "#/components/schemas/UUID" | |
bet_id: | |
$ref: "#/components/schemas/UUID" | |
market_name: | |
type: string | |
error: | |
type: object | |
nullable: true | |
- messageId: UserChannel_session_event | |
payload: | |
type: object | |
properties: | |
uuid: | |
$ref: "#/components/schemas/UUID" | |
name: | |
type: string | |
value: | |
type: string | |
expires_at: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
user_id: | |
$ref: "#/components/schemas/UUID" | |
- messageId: UserChannel_user_update | |
payload: | |
properties: | |
id: | |
$ref: "#/components/schemas/UUID" | |
username: | |
type: string | |
external_id: | |
$ref: "#/components/schemas/UUID" | |
- messageId: UserChannel_session_terminated | |
payload: | |
type: object | |
properties: | |
reasons: | |
type: string | |
enum: [time_limit_exceeded] | |
message: | |
type: string | |
enum: ["Your daily time limit has been exceeded."] | |
components: | |
schemas: | |
Error: | |
type: object | |
properties: | |
name: | |
type: string | |
message: | |
type: string | |
reason: | |
oneOf: | |
- type: string | |
- type: array | |
items: | |
type: string | |
Match: | |
type: object | |
properties: | |
id: | |
$ref: "#/components/schemas/UUID" | |
home_team: | |
$ref: "#/components/schemas/Team" | |
away_team: | |
$ref: "#/components/schemas/Team" | |
featured: | |
type: boolean | |
start_time: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
away_team_score: | |
type: integer | |
home_team_score: | |
type: integer | |
league: | |
type: string | |
status: | |
type: string | |
network: | |
type: string | |
period: | |
type: integer | |
prize_summary: | |
type: string | |
sport_data: | |
$ref: "#/components/schemas/SportData" | |
Team: | |
type: object | |
properties: | |
uuid: | |
$ref: "#/components/schemas/UUID" | |
name: | |
type: string | |
abbrv: | |
type: string | |
league: | |
type: string | |
logo: | |
type: string | |
logo_alt: | |
type: string | |
official_logo: | |
type: string | |
color_hex_primary: | |
type: string | |
color_hex_secondary: | |
type: string | |
short_name: | |
type: string | |
metadata: | |
type: object | |
properties: | |
conference: | |
type: object | |
properties: | |
abbreviation: | |
type: string | |
name: | |
type: string | |
slug: | |
type: string | |
ap_ranking: | |
type: integer | |
city: | |
type: string | |
League: | |
type: string | |
enum: [nfl, cbb, nba, cfb, mlb] | |
PlayerEntityDetails: | |
type: object | |
properties: | |
type: | |
type: string | |
enum: [player] | |
label: | |
type: string | |
abbrv: | |
type: string | |
uuid: | |
$ref: "#/components/schemas/UUID" | |
id: | |
$ref: "#/components/schemas/UUID" | |
league: | |
$ref: "#/components/schemas/League" | |
image: | |
type: string | |
team_id: | |
$ref: "#/components/schemas/UUID" | |
SportData: | |
oneOf: | |
- type: object | |
properties: | |
league: | |
type: string | |
enum: [nfl, cfb] | |
match_drive_number: | |
type: integer | |
play_number: | |
type: integer | |
team_drive_number: | |
type: integer | |
distance: | |
type: integer | |
down: | |
type: integer | |
field_side: | |
type: string | |
possession: | |
type: string | |
yardline: | |
type: integer | |
game_clock: | |
type: integer | |
- type: object | |
properties: | |
league: | |
type: string | |
enum: [mlb] | |
balls: | |
type: integer | |
batter: | |
$ref: "#/components/schemas/PlayerEntityDetails" | |
pitcher: | |
$ref: "#/components/schemas/PlayerEntityDetails" | |
inning: | |
type: integer | |
outs: | |
type: integer | |
pitch_number: | |
type: integer | |
batter_plate_appearance_number: | |
type: integer | |
bases: | |
type: array | |
items: | |
type: boolean | |
strikes: | |
type: integer | |
market_inning_half: | |
type: string | |
pitcher_name: | |
type: string | |
market_inning: | |
type: integer | |
- type: object | |
properties: | |
game_clock: | |
type: integer | |
league: | |
type: string | |
enum: [nba, cbb] | |
possession: | |
type: string | |
team_fouls: | |
type: object | |
properties: | |
away_total: | |
type: integer | |
away_two_minute: | |
type: integer | |
home_total: | |
type: integer | |
home_two_minute: | |
type: integer | |
player_stats: | |
type: object | |
additionalProperties: | |
type: object | |
properties: | |
quarter_points: | |
type: integer | |
ISO8601Timestamp: | |
type: string | |
format: "iso8601-datetime" | |
Decimal: | |
type: string | |
format: decimal | |
UUID: | |
type: string | |
format: uuid | |
MatchStateMeta: | |
type: object | |
properties: | |
away_team_score: | |
type: integer | |
home_team_score: | |
type: integer | |
league: | |
type: string | |
period: | |
type: integer | |
sport_data: | |
type: string | |
game_clock: | |
type: string | |
league: | |
type: string | |
possession: | |
type: string | |
team_fouls: | |
type: string | |
away_total: | |
type: integer | |
home_total: | |
type: integer | |
uuid: | |
$ref: "#/components/schemas/UUID" | |
Bet: | |
type: object | |
description: Rendering of a bet | |
properties: | |
amount: | |
type: integer | |
description: Amount wagered in cents | |
coefficient: | |
$ref: "#/components/schemas/Decimal" | |
contest_id: | |
$ref: "#/components/schemas/UUID" | |
nullable: true | |
entity: | |
oneOf: | |
- $ref: "#/components/schemas/PlayerEntityDetails" | |
- $ref: "#/components/schemas/TeamEntityDetails" | |
- $ref: "#/components/schemas/MatchEntityDetails" | |
id: | |
$ref: "#/components/schemas/UUID" | |
inserted_at: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
selection_line: | |
$ref: "#/components/schemas/Decimal" | |
nullable: true | |
match_state_meta: | |
$ref: "#/components/schemas/MatchStateMeta" | |
current_match_details: | |
type: object | |
properties: | |
home_team: | |
type: object | |
properties: | |
abbrv: | |
type: string | |
score: | |
type: integer | |
nullable: true | |
away_team: | |
type: object | |
properties: | |
abbrv: | |
type: string | |
score: | |
type: integer | |
nullable: true | |
game_clock: | |
type: integer | |
nullable: true | |
league: | |
$ref: "#/components/schemas/League" | |
period: | |
type: integer | |
nullable: true | |
status: | |
type: string | |
enum: [prematch, active, ended] | |
winning_line: | |
$ref: "#/components/schemas/Decimal" | |
nullable: true | |
line: | |
type: string | |
nullable: true | |
market_category: | |
type: string | |
market_helper_image: | |
type: string | |
market_id: | |
$ref: "#/components/schemas/UUID" | |
market_image: | |
type: string | |
market_name: | |
type: string | |
market_title: | |
type: string | |
market_uuid: | |
$ref: "#/components/schemas/UUID" | |
match_id: | |
$ref: "#/components/schemas/UUID" | |
match_uuid: | |
$ref: "#/components/schemas/UUID" | |
payout: | |
type: integer | |
period: | |
type: integer | |
probability: | |
$ref: "#/components/schemas/Decimal" | |
result_history: | |
type: array | |
items: | |
type: object | |
properties: | |
winning_line: | |
type: string | |
nullable: true | |
status: | |
type: string | |
enum: [win, loss, void] | |
winning_selection_code: | |
type: string | |
nullable: true | |
description: The winning selection's label | |
id: | |
$ref: "#/components/schemas/UUID" | |
bet_id: | |
$ref: "#/components/schemas/UUID" | |
inserted_at: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
updated_at: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
selection_code: | |
type: string | |
description: The selection code chosen for the bet | |
selection_id: | |
$ref: "#/components/schemas/UUID" | |
selection_outcome_code: | |
type: string | |
description: The winning selection code on the market | |
selection_outcome_title: | |
type: string | |
description: The label suitable to be shown to the user for the winning selection on the market | |
selection_title: | |
type: string | |
description: The label suitable to be shown to the user for the selection chosen for the bet | |
selection_uuid: | |
$ref: "#/components/schemas/UUID" | |
short_selection_outcome_title: | |
type: string | |
short_selection_title: | |
type: string | |
status: | |
type: string | |
enum: [pending, open, win, loss, void] | |
status_reason: | |
type: string | |
nullable: true | |
updated_at: | |
$ref: "#/components/schemas/ISO8601Timestamp" | |
Market: | |
type: object | |
properties: | |
uuid: | |
$ref: "#/components/schemas/UUID" | |
match_uuid: | |
$ref: "#/components/schemas/UUID" | |
line: | |
type: string | |
market_category: | |
type: string | |
market_name: | |
type: string | |
market_title: | |
type: string | |
status: | |
type: string | |
enum: | |
- enabled | |
- suspended | |
- resulted | |
- reresulted | |
- void | |
- pending_result | |
market_status_reason: | |
type: string | |
timeframe_label: | |
type: string | |
enum: | |
- at_bat | |
- on_deck | |
- in_the_hole | |
timeframe_status: | |
type: string | |
enum: | |
- compeleted | |
- live | |
- upcoming | |
period: | |
type: integer | |
selections: | |
type: array | |
items: | |
type: object | |
properties: | |
code: | |
type: string | |
coefficient: | |
$ref: "#/components/schemas/Decimal" | |
probability: | |
$ref: "#/components/schemas/Decimal" | |
status: | |
type: string | |
enum: | |
- suspended | |
- enabled | |
- pending | |
- win | |
- loss | |
- void | |
title: | |
type: string | |
uuid: | |
$ref: "#/components/schemas/UUID" | |
entity_ids: | |
type: array | |
items: | |
$ref: "#/components/schemas/UUID" | |
line: | |
type: string | |
max_bet_limit: | |
type: integer | |
nullable: true | |
entities: | |
type: array | |
items: | |
oneOf: | |
- $ref: "#/components/schemas/PlayerEntityDetails" | |
- $ref: "#/components/schemas/TeamEntityDetails" | |
- $ref: "#/components/schemas/MatchEntityDetails" | |
sport_data: | |
$ref: "#/components/schemas/SportData" | |
TeamEntityDetails: | |
type: object | |
properties: | |
type: | |
type: string | |
enum: [team] | |
label: | |
type: string | |
abbrv: | |
type: string | |
uuid: | |
$ref: "#/components/schemas/UUID" | |
id: | |
$ref: "#/components/schemas/UUID" | |
league: | |
$ref: "#/components/schemas/League" | |
image: | |
type: string | |
team_id: | |
$ref: "#/components/schemas/UUID" | |
franchise_name: | |
type: string | |
primary_color: | |
type: string | |
secondary_color: | |
type: string | |
alt_image: | |
type: string | |
city: | |
type: string | |
MatchEntityDetails: | |
type: object | |
properties: | |
type: | |
type: string | |
enum: [match] | |
label: | |
type: string | |
league: | |
$ref: "#/components/schemas/League" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment