{
  "openapi": "3.0.4",
  "info": {
    "title": "Beamable API",
    "contact": {
      "name": "Beamable Support",
      "url": "https://beamable.com/contact-us",
      "email": "support@beamable.com"
    },
    "version": "1.0",
    "x-beamable-semantic-type": "Semantic type information for use in automatic SDK generation"
  },
  "servers": [
    {
      "url": "https://api.beamable.com"
    }
  ],
  "paths": {
    "/api/.well-known/openid-configuration": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Returns the OpenID Connect discovery document.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OpenIdConfigResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/keys": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Returns the public keys used for JWT verification in JWKS format.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonWebKeySet"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/refresh-token": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Generate a new access token for a previously authenticated account. DEPRECATED: Use\n`tokens/refresh-token` instead.",
        "requestBody": {
          "description": "`RefreshTokenAuthRequest`",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenAuthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenAuthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenAuthRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/tokens/refresh-token": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Generate a new access token for a previously authenticated account.",
        "requestBody": {
          "description": "`RefreshTokenAuthRequest`",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenAuthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenAuthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenAuthRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/tokens/guest": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Generate a new access token for a brand-new player.",
        "requestBody": {
          "description": "`GuestAuthRequest`",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GuestAuthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GuestAuthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GuestAuthRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/tokens/password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Generate a new access token when given email and password credentials",
        "requestBody": {
          "description": "`PasswordAuthRequest`",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordAuthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordAuthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordAuthRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/tokens/external": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Generate a new access token using external OAuth credentials. These include\nFacebook, Google, etc. For external providers we haven't implemented, we're going\nto make a federated authentication request.",
        "requestBody": {
          "description": "External authentication request containing provider and token",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAuthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAuthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalAuthRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalAuthResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/tokens/device-id": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Generate a new access token using a device identifier.",
        "requestBody": {
          "description": "Device ID authentication request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceIdAuthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceIdAuthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceIdAuthRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/tokens": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "List all active refresh tokens for an account or player.",
        "parameters": [
          {
            "name": "playerIdOrAccountId",
            "in": "query",
            "description": "The gamer tag or account ID to list tokens for",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "Skips N items",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Max number of items to return",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTokensResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Auth"
        ],
        "summary": "Revoke one or more refresh tokens.",
        "requestBody": {
          "description": "Request body with the token ids to revoke",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokeRefreshTokensRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokeRefreshTokensRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RevokeRefreshTokensRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/tokens/{tokenId}": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Retrieve full details of a refresh token.",
        "parameters": [
          {
            "name": "tokenId",
            "in": "path",
            "description": "The refresh token id to look up",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefreshToken"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/tokens/access/{tokenId}": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Validate an access token and retrieve its details.",
        "parameters": [
          {
            "name": "tokenId",
            "in": "path",
            "description": "The access token to validate",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "Customer ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "realmId",
            "in": "query",
            "description": "Realm ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegacyAccessToken"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/tokens/auth-code": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Generate a new access token using an OAuth 2.0 authorization code.",
        "requestBody": {
          "description": "Authorization code authentication request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationCodeAuthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationCodeAuthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationCodeAuthRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/auth-codes": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "[Internal] Generate an authorization code for OAuth 2.0 flow.",
        "requestBody": {
          "description": "Authorization code grant request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthCodeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthCodeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthCodeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthCode"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/auth/server": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Generate a new access token for a machine with a shared secret",
        "requestBody": {
          "description": "`ServerTokenAuthRequest`",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServerTokenAuthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ServerTokenAuthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ServerTokenAuthRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerTokenResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/manifests": {
      "post": {
        "tags": [
          "Beamo"
        ],
        "summary": "Submit a new manifest describing the desired state of microservices.",
        "requestBody": {
          "description": "Manifest definition to post.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostManifestRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PostManifestRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PostManifestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManifestChecksum"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "List manifests with optional pagination and archive filtering.",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "description": "Number of items to skip.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of items to return.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "archived",
            "in": "query",
            "description": "Whether to include archived manifests. Defaults to true.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetManifestsResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/manifests/{manifestId}": {
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "Retrieve a manifest by its ID.",
        "parameters": [
          {
            "name": "manifestId",
            "in": "path",
            "description": "GUID identifier of the manifest.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "archived",
            "in": "query",
            "description": "Whether to include archived manifests. Defaults to true.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Manifest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/manifests/current": {
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "Retrieve the current (latest) manifest.",
        "parameters": [
          {
            "name": "archived",
            "in": "query",
            "description": "Whether to include archived manifests. Defaults to true.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Manifest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtoError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Beamo"
        ],
        "summary": "Redeploy the current manifest to all microservices.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/manifests/promote": {
      "post": {
        "tags": [
          "Beamo"
        ],
        "summary": "Promote the current manifest from a source realm to the requesting realm.\nDEPRECATED: This endpoint is required for legacy Scala proxy calls.",
        "requestBody": {
          "description": "Promotion request including the source realm ID.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromoteBeamoManifestRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PromoteBeamoManifestRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PromoteBeamoManifestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/templates": {
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "List available service template IDs.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetTemplatesResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/status": {
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get the deployment status of microservices in the current realm.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStatusResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/registry-uri": {
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get the Docker container registry URI for the current platform.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UriResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/services/registrations": {
      "post": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get service registrations matching the provided query.",
        "requestBody": {
          "description": "Filter query for service registrations.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceRegistrationQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceRegistrationQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceRegistrationQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceRegistrationResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/services/federation": {
      "post": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get federation support registrations for services matching the query.",
        "requestBody": {
          "description": "Filter query for service registrations.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceRegistrationQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceRegistrationQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceRegistrationQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FederationRegistrationResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/services/{serviceName}/federation/traffic": {
      "put": {
        "tags": [
          "Beamo"
        ],
        "summary": "Register a federation routing entry for a service.",
        "parameters": [
          {
            "name": "serviceName",
            "in": "path",
            "description": "Name of the service to register federation for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Federation registration details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceRegistrationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceRegistrationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceRegistrationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Beamo"
        ],
        "summary": "Remove a federation routing entry for a service.",
        "parameters": [
          {
            "name": "serviceName",
            "in": "path",
            "description": "Name of the service to remove the registration from.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Delete registration request with the routing key.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteRegistrationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteRegistrationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteRegistrationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/services/{serviceName}/metrics-request": {
      "post": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get a signed request for fetching service metrics from AWS CloudWatch.",
        "parameters": [
          {
            "name": "serviceName",
            "in": "path",
            "description": "Name of the service to fetch metrics for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Metrics request parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetMetricsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetMetricsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetMetricsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignedRequest"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/services/{serviceName}/logs/query": {
      "post": {
        "tags": [
          "Beamo"
        ],
        "summary": "Start an Athena query to fetch service logs.",
        "parameters": [
          {
            "name": "serviceName",
            "in": "path",
            "description": "Name of the service to query logs for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Log query request parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartServiceLogsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StartServiceLogsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StartServiceLogsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/services/logs/query/{queryId}": {
      "delete": {
        "tags": [
          "Beamo"
        ],
        "summary": "Stop an in-progress service logs query.",
        "parameters": [
          {
            "name": "queryId",
            "in": "path",
            "description": "ID of the query to stop.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get a signed URI to retrieve service logs query results from S3.",
        "parameters": [
          {
            "name": "queryId",
            "in": "path",
            "description": "ID of the completed query.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignedRequest"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/services/secret": {
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get the shared service secret for the current realm. DEPRECATED.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetServiceSecretResponse"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/storage/connection": {
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get the MongoDB Atlas connection string for the current realm's storage.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionStringResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/storage/{storageObjectName}/performance": {
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get MongoDB Atlas performance metrics for a storage object.",
        "parameters": [
          {
            "name": "storageObjectName",
            "in": "path",
            "description": "Name of the storage object (collection) to query.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Period",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Granularity",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoragePerformance"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/services/{serviceName}/logs/context": {
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get the logging context configuration for a specific service.",
        "parameters": [
          {
            "name": "serviceName",
            "in": "path",
            "description": "Name of the service.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "routingKey",
            "in": "query",
            "description": "Optional routing key for multi-instance services.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceLoggingContext"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Beamo"
        ],
        "summary": "Save or update the logging context configuration for a service.",
        "parameters": [
          {
            "name": "serviceName",
            "in": "path",
            "description": "Name of the service.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Logging context configuration to save.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceLoggingContext"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceLoggingContext"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceLoggingContext"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Beamo"
        ],
        "summary": "Delete the logging context configuration for a service.",
        "parameters": [
          {
            "name": "serviceName",
            "in": "path",
            "description": "Name of the service.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "routingKey",
            "in": "query",
            "description": "Routing key identifying the logging context to delete.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/services/logs/context": {
      "get": {
        "tags": [
          "Beamo"
        ],
        "summary": "Get logging context configurations for all services in the realm.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllServiceLoggingContexts"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/otel/views": {
      "get": {
        "tags": [
          "BeamoOtel"
        ],
        "summary": "Get available OpenTelemetry views for a specific player.",
        "parameters": [
          {
            "name": "playerId",
            "in": "query",
            "description": "Player ID to retrieve views for.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OtelViewsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtelViewsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtelViewsResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "BeamoOtel"
        ],
        "summary": "Save or update an OpenTelemetry view configuration.",
        "requestBody": {
          "description": "The OTel view to save.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OtelView"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OtelView"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OtelView"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OtelView"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtelView"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtelView"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/otel/views/{viewId}": {
      "delete": {
        "tags": [
          "BeamoOtel"
        ],
        "summary": "Delete an OpenTelemetry view by ID.",
        "parameters": [
          {
            "name": "viewId",
            "in": "path",
            "description": "ID of the view to delete.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "BeamoOtel"
        ],
        "summary": "Update an existing OpenTelemetry view.",
        "parameters": [
          {
            "name": "viewId",
            "in": "path",
            "description": "ID of the view to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Fields to update on the view.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOtelViewRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOtelViewRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOtelViewRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OtelView"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtelView"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtelView"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/otel/auth/reader/config": {
      "get": {
        "tags": [
          "BeamoOtel"
        ],
        "summary": "Get OTel authentication configuration for the ClickHouse reader role.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OtelAuthConfig"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtelAuthConfig"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtelAuthConfig"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/beamo/otel/auth/writer/config": {
      "get": {
        "tags": [
          "BeamoOtel"
        ],
        "summary": "Get OTel authentication configuration for the ClickHouse writer role. Requires admin access.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OtelAuthConfig"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtelAuthConfig"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtelAuthConfig"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/billing/portal-session": {
      "post": {
        "tags": [
          "Billing"
        ],
        "summary": "Create a Stripe Customer Portal session so the\ncustomer can manage payment methods and\nsubscriptions.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PortalSessionResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Create a new customer (org) and automatically activate it.",
        "requestBody": {
          "description": "Customer creation request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewCustomerRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NewCustomerRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NewCustomerRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewCustomerResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "List all customers visible to the requesting user.",
        "parameters": [
          {
            "name": "showHiddenRealms",
            "in": "query",
            "description": "Whether to include hidden realms in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomersResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/verify": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Create a new customer and hold it in a pending state until email verification is\ncomplete.",
        "requestBody": {
          "description": "Customer creation request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewCustomerRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NewCustomerRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NewCustomerRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewCustomerResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/activate": {
      "put": {
        "tags": [
          "Customer"
        ],
        "summary": "Activate a pending customer account. Returns an HTML redirect page to the portal.",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get a specific customer by ID.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer ID to look up.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "showHiddenRealms",
            "in": "query",
            "description": "Whether to include hidden realms in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerView"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/admin-view": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get the full admin view of a customer (includes all fields).",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "The customer ID to look up.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "showHiddenRealms",
            "in": "query",
            "description": "Whether to include hidden realms in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/stripe/subscription": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get the current Stripe subscription tier for a customer.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StripeSubscriptionResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/realms/{realmId}": {
      "put": {
        "tags": [
          "Customer"
        ],
        "summary": "Update the hidden or archive status of a realm.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer that owns the realm.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "realmId",
            "in": "path",
            "description": "ID of the realm to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Realm status update request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRealmRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRealmRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRealmRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get a specific realm by customer and realm ID.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "realmId",
            "in": "path",
            "description": "ID of the realm to retrieve.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealmView"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Customer"
        ],
        "summary": "Archive (soft-delete) a realm.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer that owns the realm.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "realmId",
            "in": "path",
            "description": "ID of the realm to archive.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/config": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get the customer-level realm configuration.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer to retrieve config for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealmConfigResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/games": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "List all games (top-level realms) for a customer.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "showHiddenRealms",
            "in": "query",
            "description": "Whether to include hidden realms.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetGamesResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Create a new game (top-level realm) under a customer.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer to create the game under.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Game creation request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewGameRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NewGameRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NewGameRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealmView"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/games/{gameId}": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get all realms under a specific game.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gameId",
            "in": "path",
            "description": "ID of the game realm to retrieve realms for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "showHiddenRealms",
            "in": "query",
            "description": "Whether to include hidden realms.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetGamesResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Customer"
        ],
        "summary": "Update the realm hierarchy for a game (add/remove/reorder child realms).",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gameId",
            "in": "path",
            "description": "ID of the game realm to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated realm hierarchy.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGameHierarchyRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGameHierarchyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGameHierarchyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/realms": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Create a new realm under a customer's game.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer to create the realm under.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Realm creation request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRealmRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRealmRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRealmRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/realms/{realmId}/rename": {
      "put": {
        "tags": [
          "Customer"
        ],
        "summary": "Rename a realm.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer that owns the realm.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "realmId",
            "in": "path",
            "description": "ID of the realm to rename.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Rename request with the new name.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RenameRealmRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RenameRealmRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RenameRealmRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/realms/{realmId}/config": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get the configuration for a specific realm.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "realmId",
            "in": "path",
            "description": "ID of the realm to retrieve config for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealmConfigResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Customer"
        ],
        "summary": "Replace the entire configuration of a realm.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "realmId",
            "in": "path",
            "description": "ID of the realm to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Replacement configuration values.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RealmConfigSaveRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RealmConfigSaveRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RealmConfigSaveRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Customer"
        ],
        "summary": "Apply incremental changes to a realm's configuration.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "realmId",
            "in": "path",
            "description": "ID of the realm to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Config change request with keys to add, update, or remove.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RealmConfigChangeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RealmConfigChangeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RealmConfigChangeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyMessage"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/realms/{realmId}/client-defaults": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Get the client-facing realm configuration defaults.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "realmId",
            "in": "path",
            "description": "ID of the realm.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealmConfiguration"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/{customerId}/realms/{destinationRealmId}/promotion": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Promote realm configuration and content from a source realm to a destination realm.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "destinationRealmId",
            "in": "path",
            "description": "ID of the realm to promote content into.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Promotion request specifying source realm and what to promote.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromoteRealmRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PromoteRealmRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PromoteRealmRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromoteRealmResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Preview what would be promoted from one realm to another without applying changes.",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "description": "ID of the customer.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "destinationRealmId",
            "in": "path",
            "description": "ID of the destination realm.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sourceRealmId",
            "in": "query",
            "description": "ID of the source realm.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "promotables",
            "in": "query",
            "description": "Comma-separated list of promotable types to include.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contentIds",
            "in": "query",
            "description": "Comma-separated list of content IDs to filter by.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromoteRealmResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/customers/aliases/{alias}": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Check whether a customer alias is available.",
        "parameters": [
          {
            "name": "alias",
            "in": "path",
            "description": "The alias to check.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AliasAvailableResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/lobbies": {
      "get": {
        "tags": [
          "Lobby"
        ],
        "summary": "Query for active lobbies",
        "parameters": [
          {
            "name": "Skip",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MatchType",
            "in": "query",
            "schema": {
              "type": "string",
              "x-beamable-semantic-type": "ContentId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LobbyQueryResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Lobby"
        ],
        "summary": "Create a lobby. A leader is not necessary to create a lobby.",
        "requestBody": {
          "description": "The create lobby request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLobby"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLobby"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLobby"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lobby"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Lobby"
        ],
        "summary": "Exposes the internal \"SetLobby\" behavior as an Admin only endpoint.",
        "requestBody": {
          "description": "The lobby to create or replace.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Lobby"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Lobby"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Lobby"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetLobbyResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/lobbies/{id}": {
      "get": {
        "tags": [
          "Lobby"
        ],
        "summary": "Get the current status of a lobby by id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The lobby id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lobby"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Lobby"
        ],
        "summary": "Join a lobby",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the lobby",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The join lobby request. Includes tags.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JoinLobby"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/JoinLobby"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/JoinLobby"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lobby"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Lobby"
        ],
        "summary": "Remove the requested player from the lobby. The host is able to remove anyone. Others\nmay\nonly remove themselves without error.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the lobby",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Request including the player requested to remove",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveFromLobby"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveFromLobby"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveFromLobby"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Acknowledge"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/lobbies/passcode": {
      "put": {
        "tags": [
          "Lobby"
        ],
        "summary": "Join a lobby by passcode.",
        "requestBody": {
          "description": "The join lobby request. Includes tags.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JoinLobby"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/JoinLobby"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/JoinLobby"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lobby"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/lobbies/{id}/metadata": {
      "put": {
        "tags": [
          "Lobby"
        ],
        "summary": "Update the properties of a lobby",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the lobby",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The update lobby request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLobby"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLobby"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLobby"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lobby"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/lobbies/{id}/tags": {
      "put": {
        "tags": [
          "Lobby"
        ],
        "summary": "Add the request tags to the requested player.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the lobby",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Includes the player ID and tags to add.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddTags"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddTags"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddTags"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lobby"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Lobby"
        ],
        "summary": "Remove the request tags from the requested player.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the lobby",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Includes the player ID and the tags to remove.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveTags"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveTags"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveTags"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lobby"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/lobbies/{id}/server": {
      "post": {
        "tags": [
          "Lobby"
        ],
        "summary": "Invoke the Lobby actor to make the federated game server request.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the lobby",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Includes an optional matchtype",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFederatedGameServer"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFederatedGameServer"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFederatedGameServer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/mailbox/publish": {
      "post": {
        "tags": [
          "Mailbox"
        ],
        "summary": "Publish a message to a player mailbox, channel mailbox, or realm broadcast.",
        "requestBody": {
          "description": "Message request. Use PlayerId for player mailbox, Channel for channel mailbox,\nor RealmId for realm broadcast.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MessageRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/matchmaking/matches/{id}": {
      "get": {
        "tags": [
          "Match"
        ],
        "summary": "Fetch a match by ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Match ID",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Match"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/parties": {
      "post": {
        "tags": [
          "Party"
        ],
        "summary": "Create a party for the current player.",
        "requestBody": {
          "description": "Argument to pass to the party actor to initialize state.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateParty"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateParty"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateParty"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Party"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Party"
        ],
        "summary": "Exposes the internal \"SetParty\" behavior as an Admin only endpoint.",
        "requestBody": {
          "description": "The party to create or replace.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Party"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Party"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Party"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Party"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/parties/{id}/metadata": {
      "put": {
        "tags": [
          "Party"
        ],
        "summary": "Updates party state.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the party",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Argument to pass to the party actor to update state.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateParty"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateParty"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateParty"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Party"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/parties/{id}": {
      "get": {
        "tags": [
          "Party"
        ],
        "summary": "Return the status of a party.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the party",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Party"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Party"
        ],
        "summary": "Join a party",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the party",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The list of player tags when joining the party",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartyMemberTags"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PartyMemberTags"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PartyMemberTags"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Party"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/parties/{id}/promote": {
      "put": {
        "tags": [
          "Party"
        ],
        "summary": "Promote a party member to leader.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the party",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Player to promote to leader",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromoteNewLeader"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PromoteNewLeader"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PromoteNewLeader"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Party"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/parties/{id}/invite": {
      "post": {
        "tags": [
          "Party"
        ],
        "summary": "Invite a player to a party",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the party",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Player to invite to the party",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteToParty"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteToParty"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InviteToParty"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "delete": {
        "tags": [
          "Party"
        ],
        "summary": "Cancel party invitation.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the party",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Player to be uninvited",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelInviteToParty"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelInviteToParty"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CancelInviteToParty"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/parties/{id}/members": {
      "delete": {
        "tags": [
          "Party"
        ],
        "summary": "Remove the requested player from the party. The leader is able to remove anyone. Others may\nonly remove themselves without error.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the party",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The leave party request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LeaveParty"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LeaveParty"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LeaveParty"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/parties/{id}/tags": {
      "put": {
        "tags": [
          "Party"
        ],
        "summary": "Update the tags for the player.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the party",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Tags to update for the player.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePartyTags"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePartyTags"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePartyTags"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Party"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/players/{playerId}/lobbies": {
      "get": {
        "tags": [
          "PlayerLobby"
        ],
        "summary": "Fetch the requested player's lobby information",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "description": "Player Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lobby"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "PlayerLobby"
        ],
        "summary": "If the requested player is in a lobby, remove the player",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "description": "Player Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/players/{playerId}/parties": {
      "get": {
        "tags": [
          "PlayerParty"
        ],
        "summary": "Fetch the requested player's party information",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "description": "Player Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Party"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "PlayerParty"
        ],
        "summary": "If the requested player is in a party, remove the player",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "description": "Player Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/players/{playerId}/parties/invites": {
      "get": {
        "tags": [
          "PlayerParty"
        ],
        "summary": "Return list of party invites for player.",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "description": "PlayerId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartyInvitesForPlayerResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/players/{playerId}/party/invites": {
      "get": {
        "tags": [
          "PlayerParty"
        ],
        "summary": "Return list of party invites for player.",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "description": "PlayerId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartyInvitesForPlayerResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/players/{playerId}/presence": {
      "put": {
        "tags": [
          "PlayerPresence"
        ],
        "summary": "Submit a heartbeat to mark the requesting player as online.",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "description": "The player ID to heartbeat. Must match the authenticated player.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "get": {
        "tags": [
          "PlayerPresence"
        ],
        "summary": "Get the current online status of a player.",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "description": "Player ID to retrieve online status for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OnlineStatus"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/players/{playerId}/presence/status": {
      "put": {
        "tags": [
          "PlayerPresence"
        ],
        "summary": "Set a custom presence status for the requesting player.",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "description": "The player ID to update. Must match the authenticated player.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Presence status to set.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetPresenceStatusRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetPresenceStatusRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetPresenceStatusRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OnlineStatus"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/players/{playerId}/sessions": {
      "get": {
        "tags": [
          "PlayerSession"
        ],
        "summary": "Get session history for a player.",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "month",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "year",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionHistoryResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/players/{playerId}/sessions/client": {
      "get": {
        "tags": [
          "PlayerSession"
        ],
        "summary": "Get session history for the requesting player (client endpoint).",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "month",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "year",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionClientHistoryResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/players/{playerId}/stats": {
      "get": {
        "tags": [
          "PlayerStats"
        ],
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "game"
            }
          },
          {
            "name": "visibility",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/StatsVisibility"
            }
          },
          {
            "name": "keys",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStatsResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "PlayerStats"
        ],
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "game"
            }
          },
          {
            "name": "visibility",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/StatsVisibility"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetStatsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetStatsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetStatsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "PlayerStats"
        ],
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "game"
            }
          },
          {
            "name": "visibility",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/StatsVisibility"
            }
          },
          {
            "name": "keys",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/players/{playerId}/matchmaking/tickets": {
      "get": {
        "tags": [
          "PlayerTicket"
        ],
        "summary": "Fetch the requested player's active Ticket information",
        "parameters": [
          {
            "name": "playerId",
            "in": "path",
            "description": "Player Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketQueryResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/presence/query": {
      "post": {
        "tags": [
          "Presence"
        ],
        "summary": "Query the online status for a batch of players.",
        "requestBody": {
          "description": "Query containing the player IDs to look up.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OnlineStatusQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OnlineStatusQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OnlineStatusQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayersStatusResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/internal/scheduler/job/execute": {
      "post": {
        "tags": [
          "Scheduler"
        ],
        "summary": "Called by the Dispatcher lambda function to start a job execution at the appropriate time.",
        "requestBody": {
          "description": "Job execution request from the Dispatcher Lambda.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExecuteJobRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ExecuteJobRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ExecuteJobRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobExecutionResult"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/scheduler/job": {
      "post": {
        "tags": [
          "Scheduler"
        ],
        "summary": "Create or update a job definition.",
        "requestBody": {
          "description": "Job definition to create or update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobDefinitionSaveRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/JobDefinitionSaveRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/JobDefinitionSaveRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobDefinitionView"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/internal/scheduler/job": {
      "post": {
        "tags": [
          "Scheduler"
        ],
        "summary": "Create or update a job definition.",
        "requestBody": {
          "description": "Job definition to create or update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobDefinitionSaveRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/JobDefinitionSaveRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/JobDefinitionSaveRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobDefinitionView"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/scheduler/jobs": {
      "get": {
        "tags": [
          "Scheduler"
        ],
        "summary": "List job definitions for the current realm. DEPRECATED: Use jobs-paged instead.",
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "description": "Optional source filter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Optional name filter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of results. Cannot exceed 10000.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JobDefinition"
                  }
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/scheduler/jobs-paged": {
      "get": {
        "tags": [
          "Scheduler"
        ],
        "summary": "List job definitions for the current realm with cursor-based pagination.",
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "description": "Optional source filter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Optional name filter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "onlyUnique",
            "in": "query",
            "description": "When true, only returns unique jobs.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Pagination cursor from a previous response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobDefinitionViewCursorPagedResult"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/scheduler/jobs/suspended": {
      "get": {
        "tags": [
          "Scheduler"
        ],
        "summary": "List suspended job definitions with cursor-based pagination.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "Return jobs suspended from this datetime. Mutually exclusive with cursor.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Pagination cursor from a previous response. Mutually exclusive with from.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobDefinitionViewCursorPagedResult"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/scheduler/job/{jobId}": {
      "get": {
        "tags": [
          "Scheduler"
        ],
        "summary": "Get a single job definition by ID.",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "ID of the job to retrieve.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobDefinitionView"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Scheduler"
        ],
        "summary": "Delete a job definition and remove it from the scheduler.",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "ID of the job to delete.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/scheduler/job/{jobId}/activity": {
      "get": {
        "tags": [
          "Scheduler"
        ],
        "summary": "List activity records for a specific job. DEPRECATED: Use job/{jobId}/activity-paged instead.",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "ID of the job to retrieve activity for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of results. Cannot exceed 10000.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JobActivity"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "deprecated": true
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/scheduler/job/{jobId}/activity-paged": {
      "get": {
        "tags": [
          "Scheduler"
        ],
        "summary": "List activity records for a specific job with cursor-based pagination.",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "ID of the job to retrieve activity for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Pagination cursor from a previous response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobActivityViewCursorPagedResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/scheduler/jobs/activity-paged": {
      "get": {
        "tags": [
          "Scheduler"
        ],
        "summary": "List activity records across all jobs in the realm with cursor-based pagination.",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "description": "Pagination cursor from a previous response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobActivityViewCursorPagedResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/scheduler/job/{jobId}/next-executions": {
      "get": {
        "tags": [
          "Scheduler"
        ],
        "summary": "Preview the next scheduled execution times for a job.",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "ID of the job to compute schedules for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Start time for the schedule preview. Defaults to now.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of executions to return. Cannot exceed 1000.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "date-time"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/scheduler/job/{jobId}/cancel": {
      "put": {
        "tags": [
          "Scheduler"
        ],
        "summary": "Cancel a job's triggers, preventing future executions without deleting the job definition.",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "ID of the job to cancel.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/sessions": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Start a session for a player. Used by old clients whose POST /basic/session\nis forwarded by the Scala proxy.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartSessionRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StartSessionRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StartSessionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "deprecated": true
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/sessions/heartbeat": {
      "post": {
        "tags": [
          "Session"
        ],
        "summary": "Legacy session heartbeat. Bridges into the actor presence system\nso old clients that don't use WebSocket presence pings appear online.",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "deprecated": true
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/sessions/status": {
      "get": {
        "tags": [
          "Session"
        ],
        "summary": "Legacy online status endpoint. Handles GET /sessions/status forwarded\nby the Scala proxy for old clients that query online status via the\nsession service rather than the presence API.",
        "parameters": [
          {
            "name": "playerIds",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "intervalSecs",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "deprecated": true
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/stats/{itemType}/{id}": {
      "get": {
        "tags": [
          "Stats"
        ],
        "parameters": [
          {
            "name": "itemType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "game"
            }
          },
          {
            "name": "visibility",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/StatsVisibility"
            }
          },
          {
            "name": "keys",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStatsResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stats"
        ],
        "parameters": [
          {
            "name": "itemType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visibility",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/StatsVisibility"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetStatsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetStatsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetStatsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Stats"
        ],
        "parameters": [
          {
            "name": "itemType",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visibility",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/StatsVisibility"
            }
          },
          {
            "name": "keys",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/stats/subscription": {
      "put": {
        "tags": [
          "Stats"
        ],
        "summary": "Subscribe a service to stat change notifications.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatsSubscribeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StatsSubscribeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StatsSubscribeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Stats"
        ],
        "summary": "Unsubscribe a service from stat change notifications.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatsUnsubscribeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StatsUnsubscribeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StatsUnsubscribeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/stats/batch": {
      "post": {
        "tags": [
          "Stats"
        ],
        "summary": "Batch get stats for multiple targets.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchGetRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchGetRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchGetRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchGetStatsResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Stats"
        ],
        "summary": "Batch write stats for multiple targets.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchWriteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchWriteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchWriteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/stats/query": {
      "post": {
        "tags": [
          "Stats"
        ],
        "summary": "Query for objects by stat criteria. Returns matching object IDs.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatsSearchRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StatsSearchRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StatsSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatsSearchResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/stats/query/extended": {
      "post": {
        "tags": [
          "Stats"
        ],
        "summary": "Query for objects by stat criteria. Returns matching object IDs\nwith their stat values, optionally filtered by statKeys.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatsSearchExtendedRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StatsSearchExtendedRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StatsSearchExtendedRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatsSearchExtendedResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/matchmaking/tickets": {
      "get": {
        "tags": [
          "Ticket"
        ],
        "summary": "Query for active tickets",
        "parameters": [
          {
            "name": "Players",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "x-beamable-semantic-type": "Gamertag"
            }
          },
          {
            "name": "IncludeInactive",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketQueryResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Ticket"
        ],
        "summary": "Create a ticket representing 1 or more players to be matched\nwith others.",
        "requestBody": {
          "description": "Ticket reservation request specifying players and match types.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketReservationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketReservationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TicketReservationRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketReservationResponse"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    },
    "/api/matchmaking/tickets/{id}": {
      "get": {
        "tags": [
          "Ticket"
        ],
        "summary": "Fetch a ticket by ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Ticket ID",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ticket"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Ticket"
        ],
        "summary": "Cancel a pending ticket. If no ticket with the id exists, this will\nstill return a 204.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Ticket ID to cancel.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      },
      "parameters": [
        {
          "name": "X-BEAM-SCOPE",
          "in": "header",
          "description": "Customer and project scope. This should be in the form of '{customerId}.{projectId}'. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-GAMERTAG",
          "in": "header",
          "description": "Override the playerId of the requester. This is only necessary when not using a JWT bearer token.",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "X-BEAM-TIMEOUT",
          "in": "header",
          "description": "Set the request timeout in seconds. Defaults to 10 seconds.",
          "schema": {
            "type": "integer"
          }
        }
      ]
    }
  },
  "components": {
    "schemas": {
      "Account": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "integer",
            "format": "int64"
          },
          "createdTimeMs": {
            "type": "integer",
            "format": "int64"
          },
          "updatedTimeMs": {
            "type": "integer",
            "format": "int64"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "passwordRaw": {
            "type": "string",
            "nullable": true,
            "writeOnly": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "realmAssociations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RealmAssociation"
            }
          },
          "thirdPartyAssociations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ThirdPartyAssociation"
            }
          },
          "external": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalIdentity"
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "roleString": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleAssociation"
            },
            "nullable": true
          },
          "deviceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "realmId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Acknowledge": {
        "type": "object",
        "additionalProperties": false
      },
      "ActivationStatus": {
        "enum": [
          "PENDING",
          "ACTIVATED"
        ],
        "type": "string"
      },
      "AddTags": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true,
            "readOnly": true
          },
          "replace": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "AliasAvailableResponse": {
        "required": [
          "alias",
          "available"
        ],
        "type": "object",
        "properties": {
          "alias": {
            "type": "string"
          },
          "available": {
            "type": "boolean"
          },
          "customerId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthCode": {
        "required": [
          "accountId",
          "code",
          "redirectUri"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "accountId": {
            "type": "integer",
            "format": "int64"
          },
          "redirectUri": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "ttl": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthCodeRequest": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "AccountId"
          },
          "redirectUri": {
            "type": "string",
            "nullable": true
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "customerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Cid"
          },
          "realmId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Pid"
          },
          "context": {
            "$ref": "#/components/schemas/ContextInfo"
          }
        },
        "additionalProperties": false
      },
      "AuthResponse": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string",
            "nullable": true
          },
          "refreshToken": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthorizationCodeAuthRequest": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "redirectUri": {
            "type": "string",
            "nullable": true
          },
          "scope": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Cid"
          },
          "realmId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Pid"
          },
          "context": {
            "$ref": "#/components/schemas/ContextInfo"
          }
        },
        "additionalProperties": false
      },
      "BatchGetItem": {
        "required": [
          "target"
        ],
        "type": "object",
        "properties": {
          "target": {
            "$ref": "#/components/schemas/StatsTarget"
          },
          "keys": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BatchGetRequest": {
        "required": [
          "requests"
        ],
        "type": "object",
        "properties": {
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BatchGetItem"
            }
          }
        },
        "additionalProperties": false
      },
      "BatchGetStatsResponse": {
        "required": [
          "results"
        ],
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetStatsResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "BatchWriteItem": {
        "required": [
          "request",
          "target"
        ],
        "type": "object",
        "properties": {
          "target": {
            "$ref": "#/components/schemas/StatsTarget"
          },
          "request": {
            "$ref": "#/components/schemas/SetStatsRequest"
          }
        },
        "additionalProperties": false
      },
      "BatchWriteRequest": {
        "required": [
          "requests"
        ],
        "type": "object",
        "properties": {
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BatchWriteItem"
            }
          }
        },
        "additionalProperties": false
      },
      "BoolListValue": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "boolean"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CancelInviteToParty": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          }
        },
        "additionalProperties": false
      },
      "ChallengeSolution": {
        "type": "object",
        "properties": {
          "challengeToken": {
            "type": "string",
            "nullable": true
          },
          "solution": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CommonResponse": {
        "type": "object",
        "properties": {
          "result": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ConnectionStringResponse": {
        "type": "object",
        "properties": {
          "connectionString": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ContextInfo": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string",
            "nullable": true
          },
          "device": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ContextRuleFilter": {
        "type": "object",
        "properties": {
          "playerIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "playerIdOperationType": {
            "$ref": "#/components/schemas/PlayerRuleOperationType"
          },
          "paths": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pathsOperationType": {
            "$ref": "#/components/schemas/PathRuleOperationType"
          }
        },
        "additionalProperties": false
      },
      "CreateFederatedGameServer": {
        "type": "object",
        "properties": {
          "matchType": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "ContentId"
          }
        },
        "additionalProperties": false
      },
      "CreateLobby": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "restriction": {
            "$ref": "#/components/schemas/LobbyRestriction"
          },
          "matchType": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "ContentId"
          },
          "playerTags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true,
            "readOnly": true
          },
          "passcodeLength": {
            "type": "integer",
            "format": "int32"
          },
          "maxPlayers": {
            "type": "integer",
            "format": "int32"
          },
          "data": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CreateParty": {
        "type": "object",
        "properties": {
          "restriction": {
            "type": "string",
            "nullable": true
          },
          "leader": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "maxSize": {
            "type": "integer",
            "format": "int32"
          },
          "memberTags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CreateRealmRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "plan": {
            "type": "string",
            "nullable": true
          },
          "sharded": {
            "type": "boolean",
            "nullable": true
          },
          "parent": {
            "type": "string",
            "nullable": true
          },
          "isHidden": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CronTrigger": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "expression": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Customer": {
        "required": [
          "customerId",
          "name"
        ],
        "type": "object",
        "properties": {
          "customerId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "alias": {
            "type": "string",
            "nullable": true
          },
          "realms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Realm"
            }
          },
          "accounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Account"
            },
            "readOnly": true,
            "deprecated": true
          },
          "paymentStatus": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "activationStatus": {
            "$ref": "#/components/schemas/ActivationStatus"
          },
          "contact": {
            "type": "string",
            "nullable": true
          },
          "stripeCustomerId": {
            "type": "string",
            "nullable": true
          },
          "billingAlertTriggered": {
            "type": "boolean"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "updated": {
            "type": "string",
            "format": "date-time"
          },
          "config": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "CustomerView": {
        "required": [
          "customerId",
          "name"
        ],
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "alias": {
            "type": "string",
            "nullable": true
          },
          "realms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RealmView"
            }
          }
        },
        "additionalProperties": false
      },
      "CustomersResponse": {
        "type": "object",
        "properties": {
          "customers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Customer"
            }
          }
        },
        "additionalProperties": false
      },
      "DataPoint": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "timeStamp": {
            "type": "string",
            "format": "date-time"
          },
          "value": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "DatabaseMeasurement": {
        "required": [
          "name",
          "units"
        ],
        "type": "object",
        "properties": {
          "dataPoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataPoint"
            }
          },
          "name": {
            "type": "string"
          },
          "units": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DatabaseMeasurements": {
        "required": [
          "databaseName"
        ],
        "type": "object",
        "properties": {
          "databaseName": {
            "type": "string"
          },
          "granularity": {
            "type": "string",
            "nullable": true
          },
          "groupId": {
            "type": "string",
            "nullable": true
          },
          "hostId": {
            "type": "string",
            "nullable": true
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "measurements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DatabaseMeasurement"
            },
            "nullable": true
          },
          "processId": {
            "type": "string",
            "nullable": true
          },
          "start": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "end": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeleteRegistrationRequest": {
        "type": "object",
        "properties": {
          "routingKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeviceIdAuthRequest": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "string",
            "nullable": true
          },
          "scope": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Cid"
          },
          "realmId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Pid"
          },
          "context": {
            "$ref": "#/components/schemas/ContextInfo"
          }
        },
        "additionalProperties": false
      },
      "DoubleListValue": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "EmptyMessage": {
        "type": "object",
        "additionalProperties": false
      },
      "ExactTrigger": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "executeAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ExecuteJobRequest": {
        "type": "object",
        "properties": {
          "jobDefinition": {
            "$ref": "#/components/schemas/JobDefinition"
          },
          "executionId": {
            "type": "string",
            "nullable": true
          },
          "executionTime": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ExtensionContentReference": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "contentId": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ExternalAuthRequest": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "nullable": true
          },
          "providerNamespace": {
            "type": "string",
            "nullable": true
          },
          "hasProviderNamespace": {
            "type": "boolean",
            "readOnly": true
          },
          "token": {
            "type": "string",
            "nullable": true
          },
          "challengeSolution": {
            "$ref": "#/components/schemas/ChallengeSolution"
          },
          "scope": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Cid"
          },
          "realmId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Pid"
          },
          "context": {
            "$ref": "#/components/schemas/ContextInfo"
          }
        },
        "additionalProperties": false
      },
      "ExternalAuthResponse": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string",
            "nullable": true
          },
          "hasAccessToken": {
            "type": "boolean",
            "readOnly": true
          },
          "refreshToken": {
            "type": "string",
            "nullable": true
          },
          "hasRefreshToken": {
            "type": "boolean",
            "readOnly": true
          },
          "challengeToken": {
            "type": "string",
            "nullable": true
          },
          "hasChallengeToken": {
            "type": "boolean",
            "readOnly": true
          },
          "expiresInMs": {
            "type": "integer",
            "format": "int64"
          },
          "hasExpiresInMs": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ExternalIdentity": {
        "type": "object",
        "properties": {
          "providerService": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "providerNamespace": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "FederationRegistration": {
        "type": "object",
        "properties": {
          "serviceName": {
            "type": "string"
          },
          "routingKey": {
            "type": "string",
            "nullable": true
          },
          "federation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportedFederation"
            },
            "nullable": true
          },
          "trafficFilterEnabled": {
            "type": "boolean",
            "nullable": true
          },
          "ttl": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FederationRegistrationResponse": {
        "type": "object",
        "properties": {
          "registrations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FederationRegistration"
            }
          }
        },
        "additionalProperties": false
      },
      "FederationType": {
        "enum": [
          "IFederatedLogin",
          "IFederatedInventory",
          "IFederatedCommerce",
          "IFederatedGameServer",
          "IFederatedPlayerInit"
        ],
        "type": "string"
      },
      "GetAllServiceLoggingContexts": {
        "type": "object",
        "properties": {
          "contexts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceLoggingContext"
            }
          }
        },
        "additionalProperties": false
      },
      "GetGamesResponse": {
        "type": "object",
        "properties": {
          "realms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RealmView"
            }
          }
        },
        "additionalProperties": false
      },
      "GetManifestsResponse": {
        "type": "object",
        "properties": {
          "manifests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Manifest"
            }
          }
        },
        "additionalProperties": false
      },
      "GetMetricsRequest": {
        "type": "object",
        "properties": {
          "metricName": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "format": "date-time"
          },
          "period": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetServiceSecretResponse": {
        "type": "object",
        "properties": {
          "secret": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "GetStatsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "stats": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/StatsValue"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "GetStatusResponse": {
        "type": "object",
        "properties": {
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceStatus"
            }
          },
          "isCurrent": {
            "type": "boolean"
          },
          "storageStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceStorageStatus"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetTemplatesResponse": {
        "type": "object",
        "properties": {
          "templates": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceTemplateView"
            }
          }
        },
        "additionalProperties": false
      },
      "GuestAuthRequest": {
        "type": "object",
        "properties": {
          "scope": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Cid"
          },
          "realmId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Pid"
          },
          "context": {
            "$ref": "#/components/schemas/ContextInfo"
          },
          "initProperties": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "HttpCall": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StringStringKeyValuePair"
            },
            "nullable": true
          },
          "body": {
            "type": "string",
            "nullable": true
          },
          "contentType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Int32ListValue": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Int64ListValue": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "InviteToParty": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          }
        },
        "additionalProperties": false
      },
      "JobActivity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "jobId": {
            "type": "string"
          },
          "executionId": {
            "type": "string",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "state": {
            "$ref": "#/components/schemas/JobState"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "jobName": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "JobActivityView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "jobId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "state": {
            "$ref": "#/components/schemas/JobState"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "jobName": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "JobActivityViewCursorPagedResult": {
        "type": "object",
        "properties": {
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobActivityView"
            }
          },
          "nextCursor": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JobAnalytics": {
        "type": "object",
        "properties": {
          "consecutiveFailures": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "JobDefinition": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "triggers": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CronTrigger"
                },
                {
                  "$ref": "#/components/schemas/ExactTrigger"
                }
              ]
            }
          },
          "jobAction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/HttpCall"
              },
              {
                "$ref": "#/components/schemas/PublishMessage"
              },
              {
                "$ref": "#/components/schemas/ServiceCall"
              }
            ]
          },
          "retryPolicy": {
            "$ref": "#/components/schemas/JobRetryPolicy"
          },
          "lastUpdate": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "nonce": {
            "type": "string",
            "nullable": true
          },
          "isUnique": {
            "type": "boolean"
          },
          "suspendedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "analytics": {
            "$ref": "#/components/schemas/JobAnalytics"
          }
        },
        "additionalProperties": false
      },
      "JobDefinitionSaveRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "triggers": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CronTrigger"
                },
                {
                  "$ref": "#/components/schemas/ExactTrigger"
                }
              ]
            }
          },
          "jobAction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/HttpCall"
              },
              {
                "$ref": "#/components/schemas/PublishMessage"
              },
              {
                "$ref": "#/components/schemas/ServiceCall"
              }
            ]
          },
          "retryPolicy": {
            "$ref": "#/components/schemas/JobRetryPolicy"
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "isUnique": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JobDefinitionView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "triggers": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CronTrigger"
                },
                {
                  "$ref": "#/components/schemas/ExactTrigger"
                }
              ]
            }
          },
          "jobAction": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/HttpCall"
              },
              {
                "$ref": "#/components/schemas/PublishMessage"
              },
              {
                "$ref": "#/components/schemas/ServiceCall"
              }
            ]
          },
          "retryPolicy": {
            "$ref": "#/components/schemas/JobRetryPolicy"
          },
          "lastUpdate": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "isUnique": {
            "type": "boolean"
          },
          "suspendedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "analytics": {
            "$ref": "#/components/schemas/JobAnalytics"
          },
          "owner": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "JobDefinitionViewCursorPagedResult": {
        "type": "object",
        "properties": {
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobDefinitionView"
            }
          },
          "nextCursor": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JobExecutionResult": {
        "type": "object",
        "properties": {
          "isSuccess": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "JobRetryPolicy": {
        "type": "object",
        "properties": {
          "maxRetryCount": {
            "type": "integer",
            "format": "int32"
          },
          "retryDelayMs": {
            "type": "integer",
            "format": "int32"
          },
          "useExponentialBackoff": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "JobState": {
        "enum": [
          "ENQUEUED",
          "DISPATCHED",
          "RUNNING",
          "DONE",
          "CANCELED",
          "SUSPENDED",
          "ERROR"
        ],
        "type": "string"
      },
      "JoinLobby": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true,
            "readOnly": true
          },
          "passcode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JsonWebKey": {
        "type": "object",
        "properties": {
          "alg": {
            "type": "string",
            "nullable": true
          },
          "crv": {
            "type": "string",
            "nullable": true
          },
          "d": {
            "type": "string",
            "nullable": true
          },
          "dp": {
            "type": "string",
            "nullable": true
          },
          "dq": {
            "type": "string",
            "nullable": true
          },
          "e": {
            "type": "string",
            "nullable": true
          },
          "k": {
            "type": "string",
            "nullable": true
          },
          "key_ops": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "kid": {
            "type": "string",
            "nullable": true
          },
          "kty": {
            "type": "string",
            "nullable": true
          },
          "n": {
            "type": "string",
            "nullable": true
          },
          "oth": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "p": {
            "type": "string",
            "nullable": true
          },
          "q": {
            "type": "string",
            "nullable": true
          },
          "qi": {
            "type": "string",
            "nullable": true
          },
          "use": {
            "type": "string",
            "nullable": true
          },
          "x": {
            "type": "string",
            "nullable": true
          },
          "x5c": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "x5t": {
            "type": "string",
            "nullable": true
          },
          "x5t#S256": {
            "type": "string",
            "nullable": true
          },
          "x5u": {
            "type": "string",
            "nullable": true
          },
          "y": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "JsonWebKeySet": {
        "type": "object",
        "properties": {
          "keys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonWebKey"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": { }
      },
      "LeaveParty": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          }
        },
        "additionalProperties": false
      },
      "LegacyAccessToken": {
        "type": "object",
        "properties": {
          "ttl": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accountIdRaw": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "cid": {
            "type": "integer",
            "format": "int64"
          },
          "gamerTag": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "type": "string"
          },
          "expiresMs": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "deviceId": {
            "type": "string",
            "nullable": true
          },
          "platform": {
            "type": "string",
            "nullable": true
          },
          "token": {
            "type": "string"
          },
          "revoked": {
            "type": "boolean",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "readOnly": true
          },
          "gameId": {
            "type": "string",
            "nullable": true
          },
          "realmId": {
            "type": "string",
            "nullable": true
          },
          "accountId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "playerId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Link": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string"
          },
          "rel": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ListTokensResponse": {
        "type": "object",
        "properties": {
          "tokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RefreshTokenResponse"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Lobby": {
        "type": "object",
        "properties": {
          "lobbyId": {
            "type": "string",
            "nullable": true
          },
          "matchType": {
            "$ref": "#/components/schemas/MatchType"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "host": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "players": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LobbyPlayer"
            },
            "nullable": true,
            "readOnly": true
          },
          "passcode": {
            "type": "string",
            "nullable": true
          },
          "restriction": {
            "$ref": "#/components/schemas/LobbyRestriction"
          },
          "maxPlayers": {
            "type": "integer",
            "format": "int32"
          },
          "data": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "LobbyPlayer": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true,
            "readOnly": true
          },
          "joined": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LobbyQueryResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Lobby"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "LobbyRestriction": {
        "enum": [
          "Null",
          "Closed",
          "Open"
        ],
        "type": "string"
      },
      "LogContextRule": {
        "required": [
          "enabled",
          "logLevel",
          "ruleFilters"
        ],
        "type": "object",
        "properties": {
          "ruleId": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "author": {
            "$ref": "#/components/schemas/LogContextRuleAuthor"
          },
          "whoLastEdit": {
            "$ref": "#/components/schemas/LogContextRuleAuthor"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64"
          },
          "updatedAt": {
            "type": "integer",
            "format": "int64"
          },
          "expiresAt": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "logLevel": {
            "$ref": "#/components/schemas/LogLevel"
          },
          "ruleFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContextRuleFilter"
            }
          }
        },
        "additionalProperties": false
      },
      "LogContextRuleAuthor": {
        "required": [
          "accountId"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          },
          "accountId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "LogLevel": {
        "enum": [
          "Trace",
          "Debug",
          "Information",
          "Warning",
          "Error",
          "Critical",
          "None"
        ],
        "type": "string"
      },
      "LogProvider": {
        "enum": [
          "Cloudwatch",
          "Clickhouse"
        ],
        "type": "string"
      },
      "Manifest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "serviceReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceReference"
            }
          },
          "created": {
            "type": "integer",
            "format": "int64"
          },
          "createdByAccountId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "checksum": {
            "type": "string",
            "readOnly": true
          },
          "comments": {
            "type": "string",
            "nullable": true
          },
          "storageReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceStorageReference"
            }
          },
          "storageGroupId": {
            "type": "string",
            "nullable": true
          },
          "portalExtensionReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PortalExtensionReference"
            }
          }
        },
        "additionalProperties": false
      },
      "ManifestChecksum": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "checksum": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Match": {
        "type": "object",
        "properties": {
          "matchId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "matchType": {
            "$ref": "#/components/schemas/MatchType"
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Team"
            },
            "nullable": true,
            "readOnly": true
          },
          "tickets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ticket"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "MatchType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "ContentId"
          },
          "teams": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamContentProto"
            },
            "nullable": true,
            "readOnly": true
          },
          "waitAfterMinReachedSecs": {
            "type": "integer",
            "format": "int32"
          },
          "maxWaitDurationSecs": {
            "type": "integer",
            "format": "int32"
          },
          "matchingIntervalSecs": {
            "type": "integer",
            "format": "int32"
          },
          "federatedGameServerNamespace": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageRequest": {
        "type": "object",
        "properties": {
          "body": {
            "type": "string",
            "nullable": true
          },
          "pid": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Pid"
          },
          "playerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "channel": {
            "type": "string",
            "nullable": true
          },
          "realmId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Pid"
          },
          "singleDelivery": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "NewCustomerRequest": {
        "required": [
          "email",
          "password",
          "realmName"
        ],
        "type": "object",
        "properties": {
          "realmName": {
            "type": "string"
          },
          "customerName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "hierarchy": {
            "type": "boolean"
          },
          "alias": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NewCustomerResponse": {
        "required": [
          "customerId",
          "name",
          "realmId",
          "realmName",
          "token"
        ],
        "type": "object",
        "properties": {
          "token": {
            "$ref": "#/components/schemas/AuthResponse"
          },
          "customerId": {
            "type": "string"
          },
          "realmId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "alias": {
            "type": "string",
            "nullable": true
          },
          "realmName": {
            "type": "string"
          },
          "activationPending": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "NewGameRequest": {
        "required": [
          "gameName"
        ],
        "type": "object",
        "properties": {
          "gameName": {
            "type": "string"
          },
          "isHidden": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ObjectId": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "creationTime": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "OnlineStatus": {
        "type": "object",
        "properties": {
          "online": {
            "type": "boolean"
          },
          "lastOnline": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "playerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "status": {
            "$ref": "#/components/schemas/PresenceStatus"
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OnlineStatusQuery": {
        "type": "object",
        "properties": {
          "playerIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "OpenIdConfigResponse": {
        "required": [
          "issuer",
          "jwks_uri"
        ],
        "type": "object",
        "properties": {
          "issuer": {
            "type": "string"
          },
          "jwks_uri": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "OrderDirection": {
        "enum": [
          "Desc",
          "Asc"
        ],
        "type": "string"
      },
      "OtelAuthConfig": {
        "required": [
          "endpoint",
          "password",
          "username"
        ],
        "type": "object",
        "properties": {
          "endpoint": {
            "type": "string",
            "format": "uri"
          },
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OtelView": {
        "required": [
          "name",
          "playerId",
          "query"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/ObjectId"
          },
          "playerId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "isPublic": {
            "type": "boolean"
          },
          "isFavorite": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "OtelViewsResponse": {
        "required": [
          "views"
        ],
        "type": "object",
        "properties": {
          "views": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OtelView"
            }
          }
        },
        "additionalProperties": false
      },
      "PANamespace": {
        "required": [
          "namespace",
          "type"
        ],
        "type": "object",
        "properties": {
          "namespace": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PASlowQuery": {
        "required": [
          "line",
          "namespace"
        ],
        "type": "object",
        "properties": {
          "line": {
            "type": "string"
          },
          "namespace": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PASuggestedIndex": {
        "required": [
          "id",
          "impact",
          "index",
          "namespace",
          "weight"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "impact": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "index": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          "namespace": {
            "type": "string"
          },
          "weight": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Party": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "restriction": {
            "type": "string",
            "nullable": true
          },
          "leader": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "maxSize": {
            "type": "integer",
            "format": "int32"
          },
          "pendingInvites": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "membersTags": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/TagList"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PartyInvitation": {
        "type": "object",
        "properties": {
          "partyId": {
            "type": "string",
            "nullable": true
          },
          "invitedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PartyInvitesForPlayerResponse": {
        "type": "object",
        "properties": {
          "invitations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartyInvitation"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PartyMemberTags": {
        "type": "object",
        "properties": {
          "memberTags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PasswordAuthRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "scope": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Cid"
          },
          "realmId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Pid"
          },
          "context": {
            "$ref": "#/components/schemas/ContextInfo"
          }
        },
        "additionalProperties": false
      },
      "PathRuleOperationType": {
        "enum": [
          "Include",
          "Contain",
          "StartsWith",
          "EndsWith"
        ],
        "type": "string"
      },
      "PaymentStatus": {
        "enum": [
          "Free",
          "Paid",
          "Banned"
        ],
        "type": "string"
      },
      "PaymentTotal": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PlayerRuleOperationType": {
        "enum": [
          "Include",
          "GreaterThan",
          "LesserThan"
        ],
        "type": "string"
      },
      "PlayersStatusResponse": {
        "type": "object",
        "properties": {
          "playersStatus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OnlineStatus"
            }
          }
        },
        "additionalProperties": false
      },
      "PortalExtensionReference": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "archived": {
            "type": "boolean"
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExtensionContentReference"
            }
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "dependencies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "checksum": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PortalSessionResponse": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PostManifestRequest": {
        "type": "object",
        "properties": {
          "manifest": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceReference"
            }
          },
          "storageReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceStorageReference"
            }
          },
          "portalExtensionReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PortalExtensionReference"
            },
            "nullable": true
          },
          "comments": {
            "type": "string",
            "nullable": true
          },
          "autoDeploy": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PresenceStatus": {
        "enum": [
          "Visible",
          "Invisible",
          "Dnd",
          "Away"
        ],
        "type": "string"
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "Promotable": {
        "required": [
          "checksum",
          "createdAt"
        ],
        "type": "object",
        "properties": {
          "checksum": {
            "type": "string"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "PromotableType": {
        "enum": [
          "Content",
          "Microservices"
        ],
        "type": "string"
      },
      "PromoteBeamoManifestRequest": {
        "required": [
          "sourceRealmId"
        ],
        "type": "object",
        "properties": {
          "sourceRealmId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PromoteNewLeader": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          }
        },
        "additionalProperties": false
      },
      "PromoteRealmRequest": {
        "required": [
          "sourceRealmId"
        ],
        "type": "object",
        "properties": {
          "sourceRealmId": {
            "type": "string"
          },
          "promotions": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromotableType"
            },
            "nullable": true
          },
          "contentManifestIds": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PromoteRealmResponse": {
        "required": [
          "sourceRealmId"
        ],
        "type": "object",
        "properties": {
          "sourceRealmId": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromotionScope"
            }
          }
        },
        "additionalProperties": false
      },
      "Promotion": {
        "required": [
          "destination",
          "id",
          "source"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/Promotable"
          },
          "destination": {
            "$ref": "#/components/schemas/Promotable"
          }
        },
        "additionalProperties": false
      },
      "PromotionScope": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/PromotableType"
          },
          "promotions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotion"
            }
          }
        },
        "additionalProperties": false
      },
      "ProtoError": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "format": "int32"
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PublishMessage": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "topic": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "persist": {
            "type": "boolean"
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QueryResponse": {
        "type": "object",
        "properties": {
          "queryId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Realm": {
        "required": [
          "name",
          "plan"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "secret": {
            "type": "string"
          },
          "plan": {
            "type": "string"
          },
          "sharded": {
            "type": "boolean",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "parent": {
            "type": "string",
            "nullable": true
          },
          "children": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "config": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "isArchived": {
            "type": "boolean",
            "nullable": true
          },
          "hidden": {
            "type": "boolean",
            "nullable": true
          },
          "customCharts": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "deprecated": true
          }
        },
        "additionalProperties": false
      },
      "RealmAssociation": {
        "type": "object",
        "properties": {
          "realmId": {
            "type": "string"
          },
          "playerId": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RealmConfigChangeRequest": {
        "type": "object",
        "properties": {
          "upserts": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "deletes": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RealmConfigResponse": {
        "type": "object",
        "properties": {
          "config": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "RealmConfigSaveRequest": {
        "type": "object",
        "properties": {
          "config": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "RealmConfiguration": {
        "required": [
          "environment",
          "microserviceEcrUri",
          "microserviceUri",
          "portalUri",
          "storageBrowserUri",
          "websocketConfig"
        ],
        "type": "object",
        "properties": {
          "environment": {
            "type": "string"
          },
          "websocketConfig": {
            "$ref": "#/components/schemas/WebSocketConfiguration"
          },
          "microserviceUri": {
            "type": "string"
          },
          "microserviceEcrUri": {
            "type": "string"
          },
          "portalUri": {
            "type": "string"
          },
          "storageBrowserUri": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RealmView": {
        "required": [
          "displayName",
          "realmId"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string"
          },
          "realmId": {
            "type": "string"
          },
          "customerId": {
            "type": "string",
            "nullable": true
          },
          "sharded": {
            "type": "boolean",
            "nullable": true
          },
          "parent": {
            "type": "string",
            "nullable": true
          },
          "children": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "archived": {
            "type": "boolean"
          },
          "secret": {
            "type": "string",
            "nullable": true
          },
          "hidden": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "RefreshToken": {
        "type": "object",
        "properties": {
          "ttl": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accountIdRaw": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "cid": {
            "type": "integer",
            "format": "int64"
          },
          "gamerTag": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "type": "string"
          },
          "expiresMs": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "deviceId": {
            "type": "string",
            "nullable": true
          },
          "platform": {
            "type": "string",
            "nullable": true
          },
          "token": {
            "type": "string"
          },
          "revoked": {
            "type": "boolean",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "readOnly": true
          },
          "gameId": {
            "type": "string",
            "nullable": true
          },
          "realmId": {
            "type": "string",
            "nullable": true
          },
          "accountId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "playerId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "RefreshTokenAuthRequest": {
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Cid"
          },
          "realmId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Pid"
          },
          "context": {
            "$ref": "#/components/schemas/ContextInfo"
          }
        },
        "additionalProperties": false
      },
      "RefreshTokenResponse": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RemoveFromLobby": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          }
        },
        "additionalProperties": false
      },
      "RemoveTags": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "RenameRealmRequest": {
        "required": [
          "newName"
        ],
        "type": "object",
        "properties": {
          "newName": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RevokeRefreshTokensRequest": {
        "required": [
          "tokens"
        ],
        "type": "object",
        "properties": {
          "tokens": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "RoleAssociation": {
        "type": "object",
        "properties": {
          "realmId": {
            "type": "string"
          },
          "roleString": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ServerTokenAuthRequest": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "clientSecret": {
            "type": "string",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Cid"
          },
          "realmId": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "Pid"
          }
        },
        "additionalProperties": false
      },
      "ServerTokenResponse": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ServiceCall": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "body": {
            "type": "string",
            "nullable": true
          },
          "headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StringStringKeyValuePair"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ServiceComponent": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ServiceDependencyReference": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "storageType": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ServiceLoggingContext": {
        "required": [
          "defaultLogLevel",
          "routingKey",
          "serviceName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "serviceName": {
            "type": "string"
          },
          "routingKey": {
            "type": "string"
          },
          "defaultLogLevel": {
            "$ref": "#/components/schemas/LogLevel"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LogContextRule"
            }
          }
        },
        "additionalProperties": false
      },
      "ServiceReference": {
        "type": "object",
        "properties": {
          "serviceName": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "imageId": {
            "type": "string"
          },
          "templateId": {
            "type": "string"
          },
          "comments": {
            "type": "string",
            "nullable": true
          },
          "containerHealthCheckPort": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "dependencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceDependencyReference"
            },
            "nullable": true
          },
          "archived": {
            "type": "boolean"
          },
          "imageCpuArch": {
            "type": "string",
            "nullable": true
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceComponent"
            },
            "nullable": true
          },
          "logProvider": {
            "$ref": "#/components/schemas/LogProvider"
          },
          "checksum": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ServiceRegistration": {
        "type": "object",
        "properties": {
          "instanceCount": {
            "type": "integer",
            "format": "int32"
          },
          "serviceName": {
            "type": "string"
          },
          "cid": {
            "type": "string"
          },
          "pid": {
            "type": "string"
          },
          "beamoName": {
            "type": "string",
            "nullable": true
          },
          "routingKey": {
            "type": "string",
            "nullable": true
          },
          "startedById": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "federation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportedFederation"
            },
            "nullable": true
          },
          "trafficFilterEnabled": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ServiceRegistrationQuery": {
        "type": "object",
        "properties": {
          "serviceName": {
            "type": "string",
            "nullable": true
          },
          "routingKey": {
            "type": "string",
            "nullable": true
          },
          "localOnly": {
            "type": "boolean",
            "nullable": true
          },
          "federation": {
            "$ref": "#/components/schemas/SupportedFederation"
          }
        },
        "additionalProperties": false
      },
      "ServiceRegistrationRequest": {
        "type": "object",
        "properties": {
          "routingKey": {
            "type": "string",
            "nullable": true
          },
          "federation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportedFederation"
            },
            "nullable": true
          },
          "trafficFilterEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ServiceRegistrationResponse": {
        "type": "object",
        "properties": {
          "registrations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceRegistration"
            }
          }
        },
        "additionalProperties": false
      },
      "ServiceStatus": {
        "type": "object",
        "properties": {
          "serviceName": {
            "type": "string"
          },
          "running": {
            "type": "boolean"
          },
          "imageId": {
            "type": "string"
          },
          "isCurrent": {
            "type": "boolean"
          },
          "serviceDependencyReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceDependencyReference"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ServiceStorageReference": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "storageType": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "templateId": {
            "type": "string",
            "nullable": true
          },
          "archived": {
            "type": "boolean"
          },
          "checksum": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ServiceStorageStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "storageType": {
            "type": "string"
          },
          "isRunning": {
            "type": "boolean"
          },
          "isCurrent": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ServiceTemplateView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SessionClientHistoryResponse": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "sessions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "installDate": {
            "type": "string",
            "nullable": true
          },
          "daysPlayed": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SessionHistoryResponse": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "sessions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "payments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "installDate": {
            "type": "string",
            "nullable": true
          },
          "totalPaid": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentTotal"
            }
          },
          "daysPlayed": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SessionLanguageContextDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "ctx": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SetLobbyResponse": {
        "type": "object",
        "properties": {
          "lobbyId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SetPresenceStatusRequest": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/PresenceStatus"
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SetStatsRequest": {
        "type": "object",
        "properties": {
          "set": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/StatsValue"
            },
            "nullable": true,
            "readOnly": true
          },
          "add": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/StatsValue"
            },
            "nullable": true,
            "readOnly": true
          },
          "emitAnalytics": {
            "type": "boolean"
          },
          "hasEmitAnalytics": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "SignedRequest": {
        "type": "object",
        "properties": {
          "headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StringStringKeyValuePair"
            }
          },
          "url": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "method": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "StartServiceLogsRequest": {
        "type": "object",
        "properties": {
          "serviceName": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "order": {
            "$ref": "#/components/schemas/OrderDirection"
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StartSessionRequest": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string",
            "nullable": true
          },
          "device": {
            "type": "string",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "locale": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "$ref": "#/components/schemas/SessionLanguageContextDto"
          },
          "customParams": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StatsSearchCriteria": {
        "required": [
          "rel",
          "stat"
        ],
        "type": "object",
        "properties": {
          "stat": {
            "type": "string"
          },
          "rel": {
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/StatsValue"
          }
        },
        "additionalProperties": false
      },
      "StatsSearchExtendedRequest": {
        "required": [
          "domain",
          "itemType",
          "visibility"
        ],
        "type": "object",
        "properties": {
          "domain": {
            "type": "string"
          },
          "visibility": {
            "$ref": "#/components/schemas/StatsVisibility"
          },
          "itemType": {
            "type": "string"
          },
          "criteria": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatsSearchCriteria"
            }
          },
          "statKeys": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "StatsSearchExtendedResponse": {
        "required": [
          "limit",
          "offset",
          "results",
          "total"
        ],
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetStatsResponse"
            }
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "total": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "StatsSearchRequest": {
        "required": [
          "domain",
          "itemType",
          "visibility"
        ],
        "type": "object",
        "properties": {
          "domain": {
            "type": "string"
          },
          "visibility": {
            "$ref": "#/components/schemas/StatsVisibility"
          },
          "itemType": {
            "type": "string"
          },
          "criteria": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatsSearchCriteria"
            }
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "StatsSearchResponse": {
        "required": [
          "ids",
          "limit",
          "offset",
          "total"
        ],
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "total": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "StatsSubscribeRequest": {
        "required": [
          "service",
          "subscriptions"
        ],
        "type": "object",
        "properties": {
          "service": {
            "type": "string"
          },
          "subscriptions": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "StatsTarget": {
        "required": [
          "domain",
          "id",
          "itemType",
          "visibility"
        ],
        "type": "object",
        "properties": {
          "domain": {
            "type": "string"
          },
          "visibility": {
            "$ref": "#/components/schemas/StatsVisibility"
          },
          "itemType": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "StatsUnsubscribeRequest": {
        "required": [
          "service"
        ],
        "type": "object",
        "properties": {
          "service": {
            "type": "string"
          },
          "subscriptions": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StatsValue": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          },
          {
            "type": "number",
            "format": "double"
          },
          {
            "type": "boolean"
          },
          {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "number",
                  "format": "double"
                },
                {
                  "type": "boolean"
                }
              ]
            }
          }
        ],
        "description": "A stat value: string, integer, number (double), boolean, or a homogeneous array of primitives."
      },
      "StatsVisibility": {
        "enum": [
          "Private",
          "Public"
        ],
        "type": "string"
      },
      "StoragePerformance": {
        "required": [
          "databaseMeasurements",
          "indexes",
          "namespaces",
          "queries"
        ],
        "type": "object",
        "properties": {
          "namespaces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PANamespace"
            }
          },
          "indexes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PASuggestedIndex"
            }
          },
          "queries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PASlowQuery"
            }
          },
          "databaseMeasurements": {
            "$ref": "#/components/schemas/DatabaseMeasurements"
          }
        },
        "additionalProperties": false
      },
      "StringListValue": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "StringStringKeyValuePair": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StripeSubscriptionResponse": {
        "required": [
          "status",
          "tier"
        ],
        "type": "object",
        "properties": {
          "tier": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SupportedFederation": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/FederationType"
          },
          "nameSpace": {
            "type": "string",
            "nullable": true
          },
          "settings": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Tag": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TagList": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Team": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "players": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true,
            "x-beamable-semantic-type": "Gamertag"
          }
        },
        "additionalProperties": false
      },
      "TeamContentProto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "maxPlayers": {
            "type": "integer",
            "format": "int32"
          },
          "minPlayers": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ThirdPartyAssociation": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "appId": {
            "type": "string"
          },
          "userAppId": {
            "type": "string"
          },
          "userBusinessId": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "Ticket": {
        "type": "object",
        "properties": {
          "ticketId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expires": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "players": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "matchType": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "ContentId"
          },
          "matchId": {
            "type": "string",
            "nullable": true
          },
          "stringProperties": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true,
            "readOnly": true
          },
          "numberProperties": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "nullable": true,
            "readOnly": true
          },
          "team": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "partyId": {
            "type": "string",
            "nullable": true
          },
          "watchOnlineStatus": {
            "type": "boolean"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/TagList"
            },
            "nullable": true,
            "readOnly": true
          },
          "lobbyId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TicketQueryResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ticket"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "TicketReservationRequest": {
        "type": "object",
        "properties": {
          "players": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true,
            "x-beamable-semantic-type": "Gamertag"
          },
          "matchTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true,
            "x-beamable-semantic-type": "ContentId"
          },
          "maxWaitDurationSecs": {
            "type": "integer",
            "format": "int32"
          },
          "team": {
            "type": "string",
            "nullable": true
          },
          "watchOnlineStatus": {
            "type": "boolean"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/TagList"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "TicketReservationResponse": {
        "type": "object",
        "properties": {
          "tickets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ticket"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "UpdateData": {
        "type": "object",
        "properties": {
          "updates": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true,
            "readOnly": true
          },
          "deletes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "UpdateGameHierarchyRequest": {
        "required": [
          "realms"
        ],
        "type": "object",
        "properties": {
          "realms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RealmView"
            }
          }
        },
        "additionalProperties": false
      },
      "UpdateLobby": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "restriction": {
            "$ref": "#/components/schemas/LobbyRestriction"
          },
          "matchType": {
            "type": "string",
            "nullable": true,
            "x-beamable-semantic-type": "ContentId"
          },
          "maxPlayers": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "newHost": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/UpdateData"
          }
        },
        "additionalProperties": false
      },
      "UpdateOtelViewRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "query": {
            "type": "string",
            "nullable": true
          },
          "isPublic": {
            "type": "boolean",
            "nullable": true
          },
          "isFavorite": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateParty": {
        "type": "object",
        "properties": {
          "restriction": {
            "type": "string",
            "nullable": true
          },
          "maxSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UpdatePartyTags": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "nullable": true
          },
          "memberTags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "UpdateRealmRequest": {
        "type": "object",
        "properties": {
          "archiveStatus": {
            "type": "boolean",
            "nullable": true
          },
          "hiddenStatus": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UriResponse": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "ValueOneofCase": {
        "enum": [
          "None",
          "StringValue",
          "DoubleValue",
          "BoolValue",
          "LongValue",
          "IntValue",
          "StringListValue",
          "DoubleListValue",
          "BoolListValue",
          "LongListValue",
          "IntListValue"
        ],
        "type": "string"
      },
      "WebSocketConfiguration": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string"
          },
          "uri": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "user": {
        "type": "http",
        "description": "Bearer authentication with a player access token in the Authorization header.",
        "scheme": "bearer",
        "bearerFormat": "Bearer {token}"
      },
      "server": {
        "type": "apiKey",
        "description": "Signed Request authentication using project secret key.",
        "name": "X-BEAM-SIGNATURE",
        "in": "header"
      }
    }
  },
  "externalDocs": {
    "description": "Beamable Documentation",
    "url": "https://docs.beamable.com"
  }
}