# Models

## The AddressFamily object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"AddressFamily":{"enum":["unspecified","unix","inter_network","imp_link","pup","chaos","ns","iso","ecma","data_kit","ccitt","sna","dec_net","data_link","lat","hyper_channel","apple_talk","net_bios","voice_view","fire_fox","banyan","atm","inter_network_v6","cluster","ieee12844","irda","network_designers","max","packet","controller_area_network","unknown"],"type":"string"}}}}
```

## The FlakeId object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"FlakeId":{"type":"string","additionalProperties":false,"format":"flake-id"}}}}
```

## The GameServerEventDto object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"GameServerEventDto":{"enum":["invalid","player_join"],"type":"string","description":"Represents the types of events that can occur on a game server."}}}}
```

## The GetQueuedCommandsWithOnlinePlayersRequestDto object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"GetQueuedCommandsWithOnlinePlayersRequestDto":{"type":"object","properties":{"steam_ids":{"type":["null","array"],"items":{"$ref":"#/components/schemas/SteamId"}},"minecraft_uuids":{"type":["null","array"],"items":{"type":"string"}},"customer_names":{"type":["null","array"],"items":{"type":"string"}}},"additionalProperties":false},"SteamId":{"type":"string","additionalProperties":false,"description":"A 64-bit Steam account identifier. Accepts string or numeric format.","format":"steam-id"}}}}
```

## The IPAddress object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"IPAddress":{"type":"string","additionalProperties":false,"format":"ip-address"}}}}
```

## The LinkGameServerRequestDto object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"LinkGameServerRequestDto":{"required":["hostname","ip","platform","version"],"type":"object","properties":{"ip":{"type":"string"},"hostname":{"type":"string"},"platform":{"type":"string"},"version":{"type":"string"}},"additionalProperties":false}}}}
```

## The LinkGameServerResponseDto object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"LinkGameServerResponseDto":{"required":["gameserver","update_avaliable"],"type":"object","properties":{"update_avaliable":{"type":"boolean"},"latest_version":{"type":["null","string"]},"previously_linked":{"$ref":"#/components/schemas/PreviousGameServerLinkDto"},"gameserver":{"$ref":"#/components/schemas/MinimalGameServerDto"}},"additionalProperties":false},"PreviousGameServerLinkDto":{"required":["host_name","ip","last_linked_at"],"type":"object","properties":{"ip":{"type":"string"},"host_name":{"type":"string"},"last_linked_at":{"type":"string","format":"date-time"}},"additionalProperties":false},"MinimalGameServerDto":{"required":["enabled","id","name","store_id"],"type":"object","properties":{"id":{"$ref":"#/components/schemas/FlakeId"},"store_id":{"$ref":"#/components/schemas/FlakeId"},"name":{"type":"string","description":"The display name of the game server."},"enabled":{"type":"boolean","description":"Indicates whether the game server is currently enabled."}},"additionalProperties":false,"description":"A minimal representation of a Game Server"},"FlakeId":{"type":"string","additionalProperties":false,"format":"flake-id"}}}}
```

## The MarkQueuedCommandAsExecutedDto object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"MarkQueuedCommandAsExecutedDto":{"required":["attempt_id"],"type":"object","properties":{"attempt_id":{"$ref":"#/components/schemas/FlakeId"}},"additionalProperties":false},"FlakeId":{"type":"string","additionalProperties":false,"format":"flake-id"}}}}
```

## The MinimalGameServerDto object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"MinimalGameServerDto":{"required":["enabled","id","name","store_id"],"type":"object","properties":{"id":{"$ref":"#/components/schemas/FlakeId"},"store_id":{"$ref":"#/components/schemas/FlakeId"},"name":{"type":"string","description":"The display name of the game server."},"enabled":{"type":"boolean","description":"Indicates whether the game server is currently enabled."}},"additionalProperties":false,"description":"A minimal representation of a Game Server"},"FlakeId":{"type":"string","additionalProperties":false,"format":"flake-id"}}}}
```

## The PayNowError object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"PayNowError":{"required":["code","message","status"],"type":"object","properties":{"status":{"type":"integer","description":"The HTTP status code.","format":"int32"},"code":{"type":"string","description":"The PayNow parseable error code."},"message":{"type":"string","description":"The human-readable error message."},"trace_id":{"type":["null","string"],"description":"A distributed trace ID used for debugging."},"errors":{"type":["null","array"],"items":{"$ref":"#/components/schemas/ValidationError"},"description":"An array of multiple errors. Only used by some API services."}},"additionalProperties":false,"description":"Represents a PayNow error"},"ValidationError":{"required":["code","message","path","validation"],"type":"object","properties":{"code":{"type":"string","description":"The parseable error code."},"message":{"type":"string","description":"The human-readable error message."},"path":{"type":"string","description":"The path leading to the validation error."},"validation":{"type":"string","description":"Type of the validation that failed."}},"additionalProperties":false,"description":"A validation error."}}}}
```

## The PreviousGameServerLinkDto object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"PreviousGameServerLinkDto":{"required":["host_name","ip","last_linked_at"],"type":"object","properties":{"ip":{"type":"string"},"host_name":{"type":"string"},"last_linked_at":{"type":"string","format":"date-time"}},"additionalProperties":false}}}}
```

## The QueuedCommandDto object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"QueuedCommandDto":{"required":["attempt_id","command","online_only","queued_at"],"type":"object","properties":{"attempt_id":{"$ref":"#/components/schemas/FlakeId"},"steam_id":{"$ref":"#/components/schemas/SteamId"},"minecraft_uuid":{"type":["null","string"],"description":"The Minecraft UUID of the customer, if applicable."},"customer_name":{"type":["null","string"],"description":"The name of the customer, if applicable."},"command":{"type":"string","description":"The command to be executed."},"online_only":{"type":"boolean","description":"Indicates if the command should be executed only if the customer is online (Connected to the gameserver)"},"queued_at":{"type":"string","description":"Represents when the command was queued.","format":"date-time"}},"additionalProperties":false,"description":"Represents a command to be executed on a Gameserver"},"FlakeId":{"type":"string","additionalProperties":false,"format":"flake-id"},"SteamId":{"type":"string","additionalProperties":false,"description":"A 64-bit Steam account identifier. Accepts string or numeric format.","format":"steam-id"}}}}
```

## The ReportGameServerEventsEntryDto object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"ReportGameServerEventsEntryDto":{"required":["event","timestamp"],"type":"object","properties":{"event":{"$ref":"#/components/schemas/GameServerEventDto"},"player_join":{"$ref":"#/components/schemas/ReportGameServerEventsEntryPlayerJoinDto"},"timestamp":{"type":"string","description":"When did this event occur.","format":"date-time"}},"additionalProperties":false,"description":"Represents a single game server event entry in a report."},"GameServerEventDto":{"enum":["invalid","player_join"],"type":"string","description":"Represents the types of events that can occur on a game server."},"ReportGameServerEventsEntryPlayerJoinDto":{"required":["ip_address"],"type":"object","properties":{"ip_address":{"$ref":"#/components/schemas/IPAddress"},"steam_id":{"$ref":"#/components/schemas/SteamId"},"minecraft_uuid":{"type":["null","string"],"description":"The Minecraft UUID of the player."},"minecraft_name":{"maxLength":128,"type":["null","string"],"description":"The Minecraft username of the player."}},"additionalProperties":false,"description":"Contains detailed information about a player joining a game server."},"IPAddress":{"type":"string","additionalProperties":false,"format":"ip-address"},"SteamId":{"type":"string","additionalProperties":false,"description":"A 64-bit Steam account identifier. Accepts string or numeric format.","format":"steam-id"}}}}
```

## The ReportGameServerEventsEntryPlayerJoinDto object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"ReportGameServerEventsEntryPlayerJoinDto":{"required":["ip_address"],"type":"object","properties":{"ip_address":{"$ref":"#/components/schemas/IPAddress"},"steam_id":{"$ref":"#/components/schemas/SteamId"},"minecraft_uuid":{"type":["null","string"],"description":"The Minecraft UUID of the player."},"minecraft_name":{"maxLength":128,"type":["null","string"],"description":"The Minecraft username of the player."}},"additionalProperties":false,"description":"Contains detailed information about a player joining a game server."},"IPAddress":{"type":"string","additionalProperties":false,"format":"ip-address"},"SteamId":{"type":"string","additionalProperties":false,"description":"A 64-bit Steam account identifier. Accepts string or numeric format.","format":"steam-id"}}}}
```

## The SteamId object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"SteamId":{"type":"string","additionalProperties":false,"description":"A 64-bit Steam account identifier. Accepts string or numeric format.","format":"steam-id"}}}}
```

## The ValidationError object

```json
{"openapi":"3.1.1","info":{"title":"PayNow Game Server API","version":"v1"},"components":{"schemas":{"ValidationError":{"required":["code","message","path","validation"],"type":"object","properties":{"code":{"type":"string","description":"The parseable error code."},"message":{"type":"string","description":"The human-readable error message."},"path":{"type":"string","description":"The path leading to the validation error."},"validation":{"type":"string","description":"Type of the validation that failed."}},"additionalProperties":false,"description":"A validation error."}}}}
```
