{
  "name": "WebSocketConnect",
  "plane": "internal",
  "terraformEligible": false,
  "protocol": {
    "kind": "cloudJson",
    "target": "CloudGateway.WebSocketConnect",
    "service": "gateway"
  },
  "requestBody": "typed",
  "responseBody": "typed",
  "requestSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": false,
    "definitions": {
      "AuthorizerContext": {
        "additionalProperties": false,
        "properties": {
          "authorizerType": {
            "anyOf": [
              {
                "$ref": "#/definitions/AuthorizerType"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "principal": {
            "default": null,
            "type": [
              "string",
              "null"
            ]
          },
          "tenantId": {
            "default": null,
            "type": [
              "string",
              "null"
            ]
          },
          "userPoolId": {
            "default": null,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "AuthorizerType": {
        "enum": [
          "JWT",
          "SIGV4",
          "USER_POOL",
          "NONE"
        ],
        "type": "string"
      }
    },
    "properties": {
      "apiId": {
        "type": "string"
      },
      "authorizerContext": {
        "$ref": "#/definitions/AuthorizerContext"
      },
      "gatewayNodeId": {
        "type": "string"
      },
      "tenantId": {
        "default": null,
        "type": [
          "string",
          "null"
        ]
      }
    },
    "required": [
      "apiId",
      "authorizerContext",
      "gatewayNodeId"
    ],
    "title": "WebSocketConnectRequest",
    "type": "object"
  },
  "responseSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {
      "connectedAt": {
        "type": "string"
      },
      "connectionId": {
        "type": "string"
      }
    },
    "required": [
      "connectedAt",
      "connectionId"
    ],
    "title": "WebSocketConnectResponse",
    "type": "object"
  }
}
