Skip to content

OpenAPI Reference

The Gate API is fully documented using OpenAPI 3.1.0 specification. This provides a machine-readable description of the API that can be used to generate client libraries, interactive documentation, and testing tools.

Type-Safe Client Libraries

We provide official, type-safe client libraries for multiple programming languages. These are the recommended way to interact with the Gate API as they provide compile-time type safety, better error handling, and are automatically kept in sync with API changes.

Official SDKs

Gate's API definitions are hosted on buf.build/minekube/gate, where you can directly pull client libraries using your preferred language's package manager:

OpenAPI Specification

If you still want to use the OpenAPI specification, you can find it below or in the GitHub repository here gate_service.openapi.yaml or as a raw text link gate_service.openapi.yaml.

yaml
openapi: 3.1.0
info:
  title: minekube.gate.v1
paths:
  /minekube.gate.v1.GateService/ApplyConfig:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: ApplyConfig parses, validates, and applies a new config payload.
      description: ApplyConfig parses, validates, and applies a new config payload.
      operationId: minekube.gate.v1.GateService.ApplyConfig
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.ApplyConfigRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.ApplyConfigResponse'
  /minekube.gate.v1.GateService/ConnectPlayer:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: ConnectPlayer connects a player to a specified server.  Returns NOT_FOUND if either the player or target server doesn't exist.  Returns FAILED_PRECONDITION if the connection attempt fails.
      description: |-
        ConnectPlayer connects a player to a specified server.
         Returns NOT_FOUND if either the player or target server doesn't exist.
         Returns FAILED_PRECONDITION if the connection attempt fails.
      operationId: minekube.gate.v1.GateService.ConnectPlayer
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.ConnectPlayerRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.ConnectPlayerResponse'
  /minekube.gate.v1.GateService/DisconnectPlayer:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: DisconnectPlayer disconnects a player from the proxy.  Returns NOT_FOUND if the player doesn't exist.  Returns INVALID_ARGUMENT if the reason text is malformed.
      description: |-
        DisconnectPlayer disconnects a player from the proxy.
         Returns NOT_FOUND if the player doesn't exist.
         Returns INVALID_ARGUMENT if the reason text is malformed.
      operationId: minekube.gate.v1.GateService.DisconnectPlayer
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.DisconnectPlayerRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.DisconnectPlayerResponse'
  /minekube.gate.v1.GateService/GetConfig:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: GetConfig returns the current effective config.
      description: GetConfig returns the current effective config.
      operationId: minekube.gate.v1.GateService.GetConfig
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.GetConfigRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.GetConfigResponse'
  /minekube.gate.v1.GateService/GetPlayer:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: GetPlayer returns the player by the given id or username.  Returns NOT_FOUND if the player is not online.  Returns INVALID_ARGUMENT if neither id nor username is provided, or if the id format is invalid.
      description: |-
        GetPlayer returns the player by the given id or username.
         Returns NOT_FOUND if the player is not online.
         Returns INVALID_ARGUMENT if neither id nor username is provided, or if the id format is invalid.
      operationId: minekube.gate.v1.GateService.GetPlayer
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.GetPlayerRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.GetPlayerResponse'
  /minekube.gate.v1.GateService/GetStatus:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: GetStatus returns current proxy metadata including version, mode, players and servers.
      description: GetStatus returns current proxy metadata including version, mode, players and servers.
      operationId: minekube.gate.v1.GateService.GetStatus
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.GetStatusRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.GetStatusResponse'
  /minekube.gate.v1.GateService/ListPlayers:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: ListPlayers returns all online players.  If servers are specified in the request, only returns players on those servers.
      description: |-
        ListPlayers returns all online players.
         If servers are specified in the request, only returns players on those servers.
      operationId: minekube.gate.v1.GateService.ListPlayers
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.ListPlayersRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.ListPlayersResponse'
  /minekube.gate.v1.GateService/ListServers:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: ListServers returns all registered servers.
      description: ListServers returns all registered servers.
      operationId: minekube.gate.v1.GateService.ListServers
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.ListServersRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.ListServersResponse'
  /minekube.gate.v1.GateService/RegisterServer:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: RegisterServer adds a server to the proxy.  Returns ALREADY_EXISTS if a server with the same name is already registered.  Returns INVALID_ARGUMENT if the server name or address is invalid.
      description: |-
        RegisterServer adds a server to the proxy.
         Returns ALREADY_EXISTS if a server with the same name is already registered.
         Returns INVALID_ARGUMENT if the server name or address is invalid.
      operationId: minekube.gate.v1.GateService.RegisterServer
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.RegisterServerRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.RegisterServerResponse'
  /minekube.gate.v1.GateService/RequestCookie:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: RequestCookie requests a cookie from a player's client.  The payload in RequestCookieResponse may be empty if the cookie is not found.
      description: |-
        RequestCookie requests a cookie from a player's client.
         The payload in RequestCookieResponse may be empty if the cookie is not found.
      operationId: minekube.gate.v1.GateService.RequestCookie
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.RequestCookieRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.RequestCookieResponse'
  /minekube.gate.v1.GateService/StoreCookie:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: StoreCookie stores a cookie on a player's client.  Returns NOT_FOUND if the player doesn't exist.  Passing an empty payload will remove the cookie.
      description: |-
        StoreCookie stores a cookie on a player's client.
         Returns NOT_FOUND if the player doesn't exist.
         Passing an empty payload will remove the cookie.
      operationId: minekube.gate.v1.GateService.StoreCookie
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.StoreCookieRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.StoreCookieResponse'
  /minekube.gate.v1.GateService/UnregisterServer:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: UnregisterServer removes a server from the proxy.  Returns NOT_FOUND if no matching server is found.  Returns INVALID_ARGUMENT if neither name nor address is provided.
      description: |-
        UnregisterServer removes a server from the proxy.
         Returns NOT_FOUND if no matching server is found.
         Returns INVALID_ARGUMENT if neither name nor address is provided.
      operationId: minekube.gate.v1.GateService.UnregisterServer
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.UnregisterServerRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.UnregisterServerResponse'
  /minekube.gate.v1.GateService/ValidateConfig:
    post:
      tags:
        - minekube.gate.v1.GateService
      summary: ValidateConfig parses and validates a config payload without applying it.
      description: ValidateConfig parses and validates a config payload without applying it.
      operationId: minekube.gate.v1.GateService.ValidateConfig
      parameters:
        - name: Connect-Protocol-Version
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
        - name: Connect-Timeout-Ms
          in: header
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/minekube.gate.v1.ValidateConfigRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/minekube.gate.v1.ValidateConfigResponse'
components:
  schemas:
    connect-protocol-version:
      type: number
      title: Connect-Protocol-Version
      enum:
        - 1
      description: Define the version of the Connect protocol
      const: 1
    connect-timeout-header:
      type: number
      title: Connect-Timeout-Ms
      description: Define the timeout, in ms
    connect.error:
      type: object
      properties:
        code:
          type: string
          examples:
            - not_found
          enum:
            - canceled
            - unknown
            - invalid_argument
            - deadline_exceeded
            - not_found
            - already_exists
            - permission_denied
            - resource_exhausted
            - failed_precondition
            - aborted
            - out_of_range
            - unimplemented
            - internal
            - unavailable
            - data_loss
            - unauthenticated
          description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
        message:
          type: string
          description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
        details:
          type: array
          items:
            $ref: '#/components/schemas/connect.error_details.Any'
          description: A list of messages that carry the error details. There is no limit on the number of messages.
      title: Connect Error
      additionalProperties: true
      description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation'
    connect.error_details.Any:
      type: object
      properties:
        type:
          type: string
          description: 'A URL that acts as a globally unique identifier for the type of the serialized message. For example: `type.googleapis.com/google.rpc.ErrorInfo`. This is used to determine the schema of the data in the `value` field and is the discriminator for the `debug` field.'
        value:
          type: string
          format: binary
          description: The Protobuf message, serialized as bytes and base64-encoded. The specific message type is identified by the `type` field.
        debug:
          oneOf:
            - type: object
              title: Any
              additionalProperties: true
              description: Detailed error information.
          discriminator:
            propertyName: type
          title: Debug
          description: Deserialized error detail payload. The 'type' field indicates the schema. This field is for easier debugging and should not be relied upon for application logic.
      additionalProperties: true
      description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message, with an additional debug field for ConnectRPC error details.
    minekube.gate.v1.ApplyConfigRequest:
      type: object
      allOf:
        - properties:
            persist:
              type: boolean
              title: persist
              description: |-
                Whether to persist the config to disk by overwriting the existing config file.
                 Only works if a config file exists. Defaults to false (in-memory only).
            ifMatch:
              type: string
              title: if_match
              description: Version returned by GetConfig. The apply is rejected when it is stale.
        - oneOf:
            - properties:
                config:
                  type: string
                  title: config
                  description: Complete configuration data as a YAML or JSON string.
              title: config
              required:
                - config
            - properties:
                mergePatch:
                  type: string
                  title: merge_patch
                  description: RFC 7396 JSON Merge Patch applied to the current configuration.
              title: merge_patch
              required:
                - mergePatch
      title: ApplyConfigRequest
      additionalProperties: false
      description: |-
        ApplyConfigRequest is the request for ApplyConfig method.
         The config payload is parsed with a YAML decoder (which supports JSON as YAML is a superset).
    minekube.gate.v1.ApplyConfigResponse:
      type: object
      properties:
        warnings:
          type: array
          items:
            type: string
          title: warnings
        version:
          type: string
          title: version
          description: Version of the effective configuration after the apply.
      title: ApplyConfigResponse
      additionalProperties: false
      description: ApplyConfigResponse contains validation warnings emitted while applying the config.
    minekube.gate.v1.BedrockDeviceOS:
      type: string
      title: BedrockDeviceOS
      enum:
        - BEDROCK_DEVICE_OS_UNSPECIFIED
        - BEDROCK_DEVICE_OS_UNKNOWN
        - BEDROCK_DEVICE_OS_ANDROID
        - BEDROCK_DEVICE_OS_IOS
        - BEDROCK_DEVICE_OS_MACOS
        - BEDROCK_DEVICE_OS_AMAZON
        - BEDROCK_DEVICE_OS_GEAR_VR
        - BEDROCK_DEVICE_OS_HOLOLENS
        - BEDROCK_DEVICE_OS_WINDOWS_UWP
        - BEDROCK_DEVICE_OS_WINDOWS_X86
        - BEDROCK_DEVICE_OS_DEDICATED
        - BEDROCK_DEVICE_OS_APPLE_TV
        - BEDROCK_DEVICE_OS_PLAYSTATION
        - BEDROCK_DEVICE_OS_SWITCH
        - BEDROCK_DEVICE_OS_XBOX
        - BEDROCK_DEVICE_OS_WINDOWS_PHONE
        - BEDROCK_DEVICE_OS_LINUX
      description: BedrockDeviceOS represents the operating system of a Bedrock Edition player's device.
    minekube.gate.v1.BedrockInputMode:
      type: string
      title: BedrockInputMode
      enum:
        - BEDROCK_INPUT_MODE_UNSPECIFIED
        - BEDROCK_INPUT_MODE_UNKNOWN
        - BEDROCK_INPUT_MODE_MOUSE
        - BEDROCK_INPUT_MODE_TOUCH
        - BEDROCK_INPUT_MODE_GAMEPAD
        - BEDROCK_INPUT_MODE_MOTION_CONTROLLER
      description: BedrockInputMode represents the input method used by a Bedrock Edition player.
    minekube.gate.v1.BedrockPlayerData:
      type: object
      properties:
        xuid:
          type:
            - integer
            - string
          title: xuid
          format: int64
          description: Xbox User ID (XUID) - unique identifier for Bedrock players
        deviceOs:
          title: device_os
          description: Device operating system the player is using
          $ref: '#/components/schemas/minekube.gate.v1.BedrockDeviceOS'
        language:
          type: string
          title: language
          description: Client language code (e.g., "en_US")
        uiProfile:
          title: ui_profile
          description: UI profile (Classic or Pocket)
          $ref: '#/components/schemas/minekube.gate.v1.BedrockUIProfile'
        inputMode:
          title: input_mode
          description: Input method (mouse, touch, gamepad, etc.)
          $ref: '#/components/schemas/minekube.gate.v1.BedrockInputMode'
        behindProxy:
          type: boolean
          title: behind_proxy
          description: Whether the player is connecting through a proxy
        linkedPlayer:
          type: string
          title: linked_player
          description: Linked Java Edition username (if any)
      title: BedrockPlayerData
      additionalProperties: false
      description: |-
        BedrockPlayerData contains information specific to Bedrock Edition players.
         This data is only available for players connecting through Geyser/Floodgate.
    minekube.gate.v1.BedrockUIProfile:
      type: string
      title: BedrockUIProfile
      enum:
        - BEDROCK_UI_PROFILE_UNSPECIFIED
        - BEDROCK_UI_PROFILE_CLASSIC
        - BEDROCK_UI_PROFILE_POCKET
      description: BedrockUIProfile represents the UI profile used by a Bedrock Edition player.
    minekube.gate.v1.ClassicStats:
      type: object
      properties:
        players:
          type: integer
          title: players
          format: int32
          description: Number of online players
        servers:
          type: integer
          title: servers
          format: int32
          description: Number of registered servers
      title: ClassicStats
      additionalProperties: false
      description: ClassicStats contains statistics for classic proxy mode.
    minekube.gate.v1.ConnectPlayerRequest:
      type: object
      properties:
        player:
          type: string
          title: player
          description: The player's username or ID to connect
        server:
          type: string
          title: server
          description: The target server name to connect the player to
      title: ConnectPlayerRequest
      additionalProperties: false
      description: ConnectPlayerRequest is the request for ConnectPlayer method.
    minekube.gate.v1.ConnectPlayerResponse:
      type: object
      title: ConnectPlayerResponse
      additionalProperties: false
      description: ConnectPlayerResponse is the response for ConnectPlayer method.
    minekube.gate.v1.DisconnectPlayerRequest:
      type: object
      properties:
        player:
          type: string
          title: player
          description: The player's username or ID to disconnect
        reason:
          type: string
          title: reason
          description: |-
            The reason displayed to the player when they are disconnected.

             Formats:

             - `{"text":"Hello, world!"}` - JSON text component. See https://wiki.vg/Text_formatting for details.

             - `§aHello,\n§bworld!` - Simple color codes. See https://wiki.vg/Text_formatting#Colors

             Optional, if empty no reason will be shown.
      title: DisconnectPlayerRequest
      additionalProperties: false
      description: DisconnectPlayerRequest is the request for DisconnectPlayer method.
    minekube.gate.v1.DisconnectPlayerResponse:
      type: object
      title: DisconnectPlayerResponse
      additionalProperties: false
      description: DisconnectPlayerResponse is the response for DisconnectPlayer method.
    minekube.gate.v1.GetConfigRequest:
      type: object
      title: GetConfigRequest
      additionalProperties: false
      description: GetConfigRequest is the request for GetConfig method.
    minekube.gate.v1.GetConfigResponse:
      type: object
      properties:
        payload:
          type: string
          title: payload
          description: YAML-serialized configuration data
        version:
          type: string
          title: version
          description: Opaque version of the effective configuration, used as an ETag.
      title: GetConfigResponse
      additionalProperties: false
      description: GetConfigResponse contains the serialized config payload.
    minekube.gate.v1.GetPlayerRequest:
      type: object
      properties:
        id:
          type: string
          title: id
          description: |-
            Gets the player by their Minecraft UUID.
             Optional, if not set the username will be used.
             If both id and username are set, the id will be used.
             Must be a valid Minecraft UUID format (e.g. "550e8400-e29b-41d4-a716-446655440000")
        username:
          type: string
          title: username
          description: |-
            Gets the player by their username.
             Optional, if not set the id will be used.
             Case-sensitive.
      title: GetPlayerRequest
      additionalProperties: false
      description: GetPlayerRequest is the request for GetPlayer method.
    minekube.gate.v1.GetPlayerResponse:
      type: object
      properties:
        player:
          title: player
          description: The player matching the request criteria
          $ref: '#/components/schemas/minekube.gate.v1.Player'
      title: GetPlayerResponse
      additionalProperties: false
      description: GetPlayerResponse is the response for GetPlayer method.
    minekube.gate.v1.GetStatusRequest:
      type: object
      title: GetStatusRequest
      additionalProperties: false
      description: GetStatusRequest is the request for GetStatus method.
    minekube.gate.v1.GetStatusResponse:
      type: object
      allOf:
        - properties:
            version:
              type: string
              title: version
              description: Gate version string
            mode:
              title: mode
              description: Current operating mode (classic or lite)
              $ref: '#/components/schemas/minekube.gate.v1.ProxyMode'
        - oneOf:
            - properties:
                classic:
                  title: classic
                  description: Statistics for classic mode
                  $ref: '#/components/schemas/minekube.gate.v1.ClassicStats'
              title: classic
              required:
                - classic
            - properties:
                lite:
                  title: lite
                  description: Statistics for lite mode
                  $ref: '#/components/schemas/minekube.gate.v1.LiteStats'
              title: lite
              required:
                - lite
      title: GetStatusResponse
      additionalProperties: false
      description: GetStatusResponse contains proxy runtime metadata.
    minekube.gate.v1.ListPlayersRequest:
      type: object
      properties:
        servers:
          type: array
          items:
            type: string
          title: servers
          description: |-
            Filter players by server names.
             Optional, if empty all online players are returned.
             If specified, only returns players on the listed servers.
      title: ListPlayersRequest
      additionalProperties: false
      description: ListPlayersRequest is the request for ListPlayers method.
    minekube.gate.v1.ListPlayersResponse:
      type: object
      properties:
        players:
          type: array
          items:
            $ref: '#/components/schemas/minekube.gate.v1.Player'
          title: players
      title: ListPlayersResponse
      additionalProperties: false
      description: ListPlayersResponse is the response for ListPlayers method.
    minekube.gate.v1.ListServersRequest:
      type: object
      title: ListServersRequest
      additionalProperties: false
      description: ListServersRequest is the request for ListServers method.
    minekube.gate.v1.ListServersResponse:
      type: object
      properties:
        servers:
          type: array
          items:
            $ref: '#/components/schemas/minekube.gate.v1.Server'
          title: servers
      title: ListServersResponse
      additionalProperties: false
      description: ListServersResponse is the response for ListServers method.
    minekube.gate.v1.LiteStats:
      type: object
      properties:
        connections:
          type: integer
          title: connections
          format: int32
          description: Number of active connections being proxied
        routes:
          type: integer
          title: routes
          format: int32
          description: Number of configured routes
      title: LiteStats
      additionalProperties: false
      description: LiteStats contains statistics for lite proxy mode.
    minekube.gate.v1.Player:
      type: object
      properties:
        id:
          type: string
          title: id
          description: The player's Minecraft UUID
        username:
          type: string
          title: username
          description: The player's username
        bedrock:
          title: bedrock
          description: Optional Bedrock player data (only present for Bedrock players)
          $ref: '#/components/schemas/minekube.gate.v1.BedrockPlayerData'
      title: Player
      additionalProperties: false
      description: Player represents an online player on the proxy.
    minekube.gate.v1.ProxyMode:
      type: string
      title: ProxyMode
      enum:
        - PROXY_MODE_UNSPECIFIED
        - PROXY_MODE_CLASSIC
        - PROXY_MODE_LITE
      description: ProxyMode enumerates the current operating mode of Gate.
    minekube.gate.v1.RegisterServerRequest:
      type: object
      properties:
        name:
          type: string
          title: name
          description: The unique name of the server
        address:
          type: string
          title: address
          description: The network address of the server (e.g. "localhost:25565")
      title: RegisterServerRequest
      additionalProperties: false
      description: RegisterServerRequest is the request for RegisterServer method.
    minekube.gate.v1.RegisterServerResponse:
      type: object
      title: RegisterServerResponse
      additionalProperties: false
      description: RegisterServerResponse is the response for RegisterServer method.
    minekube.gate.v1.RequestCookieRequest:
      type: object
      properties:
        player:
          type: string
          title: player
          description: The player's username or ID
        key:
          type: string
          title: key
          description: The key of the cookie in format `namespace:key`
      title: RequestCookieRequest
      additionalProperties: false
      description: RequestCookieRequest is the request for RequestCookie method.
    minekube.gate.v1.RequestCookieResponse:
      type: object
      properties:
        payload:
          type: string
          title: payload
          format: byte
          description: |-
            The payload of the cookie.
             May be empty if the cookie is not found.
      title: RequestCookieResponse
      additionalProperties: false
      description: RequestCookieResponse is the response for RequestCookie method.
    minekube.gate.v1.Server:
      type: object
      properties:
        name:
          type: string
          title: name
          description: The unique name of the server.
        address:
          type: string
          title: address
          description: The network address of the server.
        players:
          type: integer
          title: players
          format: int32
          description: The number of players currently on the server.
      title: Server
      additionalProperties: false
      description: Server represents a backend server where Gate can connect players to.
    minekube.gate.v1.StoreCookieRequest:
      type: object
      properties:
        player:
          type: string
          title: player
          description: The player's username or ID
        key:
          type: string
          title: key
          description: The key of the cookie in format `namespace:key`
        payload:
          type: string
          title: payload
          format: byte
          description: |-
            The payload to store.
             Passing an empty payload will remove the cookie.
      title: StoreCookieRequest
      additionalProperties: false
      description: StoreCookieRequest is the request for StoreCookie method.
    minekube.gate.v1.StoreCookieResponse:
      type: object
      title: StoreCookieResponse
      additionalProperties: false
      description: StoreCookieResponse is the response for StoreCookie method.
    minekube.gate.v1.UnregisterServerRequest:
      type: object
      properties:
        name:
          type: string
          title: name
          description: |-
            The name of the server.
             Optional, if not set, the address will be used to match servers.
        address:
          type: string
          title: address
          description: |-
            The address of the server.
             Optional, if not set, the name will be used to match servers.
             If both name and address are set, only the server that matches both properties exactly will be unregistered.
             If only the address is set, the first server matching that address will be unregistered.
      title: UnregisterServerRequest
      additionalProperties: false
      description: UnregisterServerRequest is the request for UnregisterServer method.
    minekube.gate.v1.UnregisterServerResponse:
      type: object
      title: UnregisterServerResponse
      additionalProperties: false
      description: UnregisterServerResponse is the response for UnregisterServer method.
    minekube.gate.v1.ValidateConfigRequest:
      type: object
      properties:
        config:
          type: string
          title: config
          description: Configuration data as YAML or JSON string
      title: ValidateConfigRequest
      additionalProperties: false
      description: |-
        ValidateConfigRequest is the request for ValidateConfig method.
         The config payload is parsed with a YAML decoder (which supports JSON as YAML is a superset).
    minekube.gate.v1.ValidateConfigResponse:
      type: object
      properties:
        warnings:
          type: array
          items:
            type: string
          title: warnings
        errors:
          type: array
          items:
            type: string
          title: errors
      title: ValidateConfigResponse
      additionalProperties: false
      description: ValidateConfigResponse contains validation results when the config is processed.
security: []
tags:
  - name: minekube.gate.v1.GateService
    description: |-
      GateService is the service API for managing a Gate proxy instance.
       It provides methods for managing players and servers.
       All methods follow standard gRPC error codes and include detailed error messages.

Released under the Apache 2.0 License. (web version: dev)