{
    "schemes": [],
    "swagger": "2.0",
    "info": {
        "description": "https://border0.com",
        "title": "Border0 API",
        "contact": {},
        "version": "1.0"
    },
    "host": "api.border0.com",
    "basePath": "/api/v1",
    "paths": {
        "/access_graph/policy/:policy_id": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show a policy's access graph by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Policy ID",
                        "name": "policy_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.AccessGraph"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/access_graph/service_account/:service_account_name": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show a service account's access graph by name",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "service_account_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.AccessGraph"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/access_graph/socket/:socket_id": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show a socket's access graph by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID",
                        "name": "socket_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.AccessGraph"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/approval_requests/{uuid}/approve": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Approve an approval request",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Approval request UUID",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Approval workflow payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.approveDeclineOrRevokePayload"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/serializer.ApprovalHistory"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/approval_workflows": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a new approval workflow",
                "parameters": [
                    {
                        "description": "Approval workflow payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.approvalWorkflowPayload"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/serializer.ApprovalWorkflow"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/audit_actions": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show all audit logs from organization",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Action Email",
                        "name": "actor_email",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Resource Type",
                        "name": "resource_type",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Resource id",
                        "name": "resource_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Page size",
                        "name": "page_size",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.AuditActionPublic"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/audit_actions/actors": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show all actors from a given organization",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/client/ai_assistants/database": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Generate SQL query from an input that has a question and database schemas",
                "parameters": [
                    {
                        "description": "Database AI assistant input",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/llm.DatabaseAgentInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "response": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/client/approval_request/requests": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "List approval requests for the current client user",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "list": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/serializer.ApprovalRequest"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create an approval request",
                "parameters": [
                    {
                        "description": "Approval request payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.approvalRequestPayload"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/serializer.ApprovalRequest"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/client/approval_request/requests/{uuid}/history": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "List approval histories for a given request",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Approval Request ID",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "list": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/serializer.ApprovalHistory"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/client/approval_request/resources": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "List client resources that are invisible to the client and can be requested for approval",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.clientRequestableResourceResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/client/auth/org/{slug}": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Authenticate a client with headers against organization email",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Organization email address the client will authenticate against",
                        "name": "slug",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Redirect URL path",
                        "name": "redirectpath",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Redirect URL port",
                        "name": "port",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Redirect URL",
                        "schema": {
                            "type": "string"
                        },
                        "headers": {
                            "Location": {
                                "type": "string",
                                "description": "http://localhost:{port}{redirectpath}?token={token} or http://localhost{port}{redirectpath}?token=\u0026error=org_not_found on error"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/client/cda/authorize": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Authorizes a device authorization code.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "API-issued client device authorization code",
                        "name": "x-client-device-authorization-code",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.getClientDeviceAuthorizationResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/client/cda/get_token": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Fetches a client token in exchange for a device authorization code previously authorized via the (OAuth2.0) client device authorization flow",
                "parameters": [
                    {
                        "type": "string",
                        "description": "API-issued client device authorization code",
                        "name": "x-client-device-authorization-code",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.getClientDeviceAuthorizationResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/client/device": {
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Register a device in the current organization.",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.deviceRegistrationResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/client/device_authorizations": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Posts details for a device initiating a new (OAuth2.0) client device authorization flow in exchange for a one-time-use code",
                "parameters": [
                    {
                        "description": "Client device details",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.postClientDeviceAuthorizationRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.postClientDeviceAuthorizationResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/client/resources": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show socket client resources",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.clientResourceResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/connect": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show all connected sockets",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.Socket"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a socket connection",
                "parameters": [
                    {
                        "description": "Connect to socket",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.createSocketRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.Socket"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/connector/{connector_id}/stats/bandwidth": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Get bandwidth statistic for a connector",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Connector ID to get bandwidth for",
                        "name": "connector_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/stats.Result"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/insights/findings": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show all findings (paginated).",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/finding.Page"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/login": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "User login",
                "parameters": [
                    {
                        "description": "Login credentials",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.loginRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "require_mfa": {
                                    "type": "boolean"
                                },
                                "token": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/login/refresh": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Refresh API token",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "token": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/mtls-ca/socket/{socket_dnsname}/auth": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Generate a JWT for CA request on socket's DNS name",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket DNS name",
                        "name": "socket_dnsname",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Redirect URL path",
                        "name": "redirectpath",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Redirect URL port",
                        "name": "port",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Redirect URL",
                        "schema": {
                            "type": "string"
                        },
                        "headers": {
                            "Location": {
                                "type": "string",
                                "description": "http://localhost:{port}{redirectpath}?token={token}"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/mtls-ca/socket/{socket_dnsname}/csr": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Generate a cert request and sign the CSR with socket's CA cert",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket DNS name",
                        "name": "socket_dnsname",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Update socket's custom cert",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.certificateSigningRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ca_certificate": {
                                    "type": "string"
                                },
                                "client_certificate": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/mtls-ca/socket/{socket_dnsname}/ssh": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Generate a signed SSH cert for socket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket DNS name",
                        "name": "socket_dnsname",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Update socket's custom cert",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.mtlsSSHRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "signed_ssh_cert": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organization/identity_provider": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Add a custom identity provider to the current organization",
                "parameters": [
                    {
                        "description": "Identity provider configuration",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.postIdentityProviderRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.postIdentityProviderResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "412": {
                        "description": "Precondition Failed",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "patch": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Update a custom identity provider in the current organization",
                "parameters": [
                    {
                        "description": "Identity provider configuration",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.patchIdentityProviderRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organization/identity_provider/{name}": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Get a custom identity provider for the current organization",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Identity provider name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.getIdentityProviderResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Remove a custom identity provider from the current organization",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Identity provider name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organization/identity_provider_status": {
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Toggle the status (enable/disable) of an identity provider in the current organization",
                "parameters": [
                    {
                        "description": "Identity provider status configuration",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.putIdentityProviderStatusRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organization/identity_providers": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "List all identity providers for the current organization",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.getIdentityProvidersResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a new organization",
                "parameters": [
                    {
                        "description": "Create organization",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.createOrg"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "org_id": {
                                    "type": "string"
                                },
                                "organization": {
                                    "type": "string"
                                },
                                "token": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/csr": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Generate a cert request and sign the CSR with organization CA",
                "parameters": [
                    {
                        "description": "certificate signing request",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.certificateSigningRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ca_certificate": {
                                    "type": "string"
                                },
                                "client_certificate": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/customdomains": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "List all custom domains",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.OrganizationCustomDomain"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Update a custom domain",
                "parameters": [
                    {
                        "description": "Update organization custom domain",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.customDomain"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.OrganizationCustomDomain"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a custom domain",
                "parameters": [
                    {
                        "description": "Create organization custom domain",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.customDomain"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.OrganizationCustomDomain"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Delete a custom domain",
                "parameters": [
                    {
                        "description": "Delete organization custom domain",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.customDomain"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/dns_settings": {
            "get": {
                "description": "Returns DNS configuration including global DNS servers and split DNS rules",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organizations"
                ],
                "summary": "Get DNS settings for an organization",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.dnsSettingsResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "description": "Updates DNS configuration including global DNS servers and split DNS rules",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organizations"
                ],
                "summary": "Update DNS settings for an organization",
                "parameters": [
                    {
                        "description": "DNS Settings",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.dnsSettingsRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/iam/service_accounts": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Retrieve the list of all service accounts in the current organization.",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serviceaccount.PaginatedServiceAccount"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a service account in the current organization.",
                "parameters": [
                    {
                        "description": "Service Account Creation Request",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.serviceAccountCreatePayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serviceaccount.Full"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/iam/service_accounts/{name}": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Retrieve a service account in the current organization by name.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serviceaccount.Full"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Update a service account in the current organization by name.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Service Account Update Request",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.serviceAccountUpdatePayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serviceaccount.Full"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Delete a service account in the current organization.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successfully deleted"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/iam/service_accounts/{name}/federation_rules": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Retrieve all federation rules for a service account.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.getFederationRulesResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a new federation rule for a service account.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Federation Rule Creation Request",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.federationRuleCreatePayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.FederationRule"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/iam/service_accounts/{name}/federation_rules/{id}": {
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Update a federation rule for a service account.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Federation Rule ID (UUID)",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Federation Rule Update Request",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.federationRuleUpdatePayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/models.FederationRule"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Delete a federation rule for a service account.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Federation Rule ID (UUID)",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successfully deleted"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/iam/service_accounts/{name}/tokens": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Retrieve a service account tokens based on a service account name.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.getServiceAccountsTokensResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a service account token in the current organization.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Service Account Token Creation Request",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.serviceAccountTokenDetailsPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.postServiceAccountTokenResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/iam/service_accounts/{name}/tokens/{token_id}": {
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Delete a service account token in the current organization by service account name and token id.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Service Account Name (slug)",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Service Account Token ID (uuid)",
                        "name": "token_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successfully deleted"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/notifications": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "List all notifications",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.OrganizationNotification"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a notification",
                "parameters": [
                    {
                        "description": "Create organization notification",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.notificationRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.OrganizationNotification"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/notifications/{name}": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Describe a notification",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Notification name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.OrganizationNotification"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Update a notification",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Notification name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Update organization notification",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.notificationUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.OrganizationNotification"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Delete a notification",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Notification name",
                        "name": "name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/recording_storage": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Verify the recording storage",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.OrganizationRecordingStorage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a recording storage",
                "parameters": [
                    {
                        "description": "Create organization recording strage",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.recordingStorageRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.OrganizationRecordingStorage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "summary": "Unset the organization's recording storage",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/resource_limits": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Get resource availability remaining for the paernt account of an organization.",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.orgUsageResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/settings": {
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Update organization settings",
                "parameters": [
                    {
                        "description": "Organization settings to update",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.orgSettings"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/sign_ssh": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Generate a signed SSH cert for organization",
                "parameters": [
                    {
                        "description": "sign the organization key",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.mtlsSSHRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "signed_ssh_cert": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/switch": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Switch Organization",
                "parameters": [
                    {
                        "description": "Organization name to switch to",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.switchOrgPayload"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "token": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/tokens": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Disable an access token",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Disable an access token",
                "parameters": [
                    {
                        "description": "Disable access token",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.deleteToken"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/organizations/users/leave": {
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Leave an organization",
                "parameters": [
                    {
                        "description": "Organization to leave",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.OrganizationRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully left the specified organization"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/policies": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "get policies paginated",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Page size",
                        "name": "page_size",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.Policy"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a new policy and attach sockets to them",
                "parameters": [
                    {
                        "description": "Policy Creation Request",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.createPolicyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.Policy"
                            }
                        }
                    },
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "$ref": "#/definitions/serializer.Policy"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/policies/find": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "find policies by a specific param",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Name",
                        "name": "name",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.Policy"
                            }
                        }
                    },
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "$ref": "#/definitions/serializer.Policy"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/policy/{uuid}": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "get a policy by id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Policy ID",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.Policy"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Updates a policy but not updates the associations",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Policy ID",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Policy data",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.updatePolicyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.Policy"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "delete a policy by id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Policy ID",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "$ref": "#/definitions/serializer.Policy"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/policy/{uuid}/sockets": {
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Attach and detach sockets for a policy",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Policy ID",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Actions to add or remove sockets",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.addOrRemoveSocketToPolicyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/session/{socket_id}": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show all sessions from a socket by socket ID, including active and killed sessions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID",
                        "name": "socket_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.SessionLogPublic"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/session/{socket_id}/{session_id}": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show a socket's session info by socket ID and session ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID",
                        "name": "socket_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "session_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.SessionLogPublic"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Kill a socket's session with socket ID, session ID and json payload with killed flag",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID",
                        "name": "socket_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "session_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Kill session flag",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.sessionLogRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.SessionLogPublic"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/session/{socket_id}/{session_id}/session_log": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Download a socket's session recording",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID",
                        "name": "socket_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Session ID",
                        "name": "session_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Recording ID",
                        "name": "recording_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/sessions": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show all sessions from a organization",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Current page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Socket names to filter by",
                        "name": "socket_names",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "User emails to filter by",
                        "name": "user_emails",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "success",
                            "denied"
                        ],
                        "type": "string",
                        "description": "Auth result to filter by",
                        "name": "auth_result",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Start date range start to filter by (RFC3339 format)",
                        "name": "start_date_after",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Start date range end filter by (RFC3339 format)",
                        "name": "start_date_before",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Filter by finished sessions (with end_time)",
                        "name": "finished",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.SessionLogPublicPaginatedExtended"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/sessions/stats/{stats_type}": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Get session stats by type (locations, sockets, users)",
                "parameters": [
                    {
                        "enum": [
                            "locations",
                            "sockets",
                            "users"
                        ],
                        "type": "string",
                        "description": "Stats type",
                        "name": "stats_type",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Socket names to filter by",
                        "name": "socket_names",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "User emails to filter by",
                        "name": "user_emails",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "success",
                            "denied"
                        ],
                        "type": "string",
                        "description": "Auth result to filter by",
                        "name": "auth_result",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Start date to filter by (RFC3339 format)",
                        "name": "start_date",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "End date to filter by (RFC3339 format)",
                        "name": "end_date",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Filter by finished sessions (with end_time)",
                        "name": "finished",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.SessionLogStats"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/restful.ErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a socket",
                "parameters": [
                    {
                        "description": "Create socket",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.createSocketRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.Socket"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show a socket by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or Name",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.Socket"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Update a socket by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or Name",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Update socket",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.updateSocketRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.Socket"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Delete a socket by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or name",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successfully deleted"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}/customcert": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show a custom cert from a socket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or Name from where the custom cert is configured",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "full_chain": {
                                    "type": "string"
                                },
                                "private_key": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}/evaluate": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Evaluate policy for a socket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID that the tunnel is associated with",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Metadata to evaluate policy",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.evaluatePolicyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.evaluatePolicyResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}/policies": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show all policies for a socket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or Name",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.GetSocketPoliciesResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Attach and detach policies for a socket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Actions to add or remove policies",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.addOrRemoveSocketToPolicyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}/signkey": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Generate a signed cert for a tunnel",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or Namethat the tunnel is associated with",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "SSH public key",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.signTunnelKeyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "signed_ssh_cert": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}/stats/bandwith": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Get bandwidth statistic for a socket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or name to get bandwidth for",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/stats.Result"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}/tunnel": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show all tunnels from a socket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or Namethat the tunnels are associated with",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/serializer.Tunnel"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Create a socket tunnel",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or name that the tunnel will be associated with",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Empty json object",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.Tunnel"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}/tunnel/{tunnel_id}": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show one tunnel from a socket by socket ID and tunnel ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or Name that the tunnel is associated with",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Tunnel ID",
                        "name": "tunnel_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.Tunnel"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Delete one tunnel from a socket by socket ID and tunnel ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or Name that the tunnel is associated with",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Tunnel ID",
                        "name": "tunnel_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successfully deleted"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}/tunnel/{tunnel_id}/signkey": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Generate a signed cert for a tunnel",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or name that the tunnel is associated with",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Tunnel ID that the cert will be signed for",
                        "name": "tunnel_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "SSH public key",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.signTunnelKeyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "signed_ssh_cert": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}/update_session": {
            "post": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Update session for a socket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID that the tunnel is associated with",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Metadata to evaluate policy",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.updateSessionRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successfully updated"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id_or_name}/upstream_configurations": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Get upstream configurations for a socket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID or Name",
                        "name": "socket_id_or_name",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "list": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/definitions/serializer.SocketUpstreamConfig"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/socket/{socket_id}/sessions": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show all sessions from a socket by socket ID, paginated including active and killed sessions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID",
                        "name": "socket_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.SessionLogPublicPaginated"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/sockets": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "List sockets with details incl. socket id, type, connectors, and tags.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Filter by socket name",
                        "name": "name",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Search strings in sockets",
                        "name": "search",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by socket type",
                        "name": "socket_type",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by socket tags with format `key:value` (multiple supported. At most 3, requests with more than 5 tag filters will be rejected)",
                        "name": "tag",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Page number (offset pagination; ignored when `cursor` is supplied)",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Page size (maximum of 100, requests with larger value will be rejected)",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Opaque cursor for stable pagination. When supplied, results are ordered by a unique immutable key and paged by this cursor instead of `page`; the response's `next_cursor` carries the token for the next page (empty when the scan is complete). Use this to reliably list all sockets.",
                        "name": "cursor",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.PaginatedSocket"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/stats/{socket_id}/bandwidth": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Get number of requests by status code",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID",
                        "name": "socket_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "Start timestamp, default to 1 hour ago",
                        "name": "start_time",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "End timestamp, default to 30 seconds ago",
                        "name": "end_time",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Traffic direction, received or sent, default to sent",
                        "name": "direction",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/stats.Result"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/stats/{socket_id}/requests": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Get number of requests by status code",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Socket ID",
                        "name": "socket_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "Start timestamp, default to 1 hour ago",
                        "name": "start_time",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "End timestamp, default to 30 seconds ago",
                        "name": "end_time",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/stats.Result"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/user": {
            "get": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Show user info for the current user",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.User"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Update user info for the current user",
                "parameters": [
                    {
                        "description": "Update user",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.updateUserRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.User"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Register a new user",
                "parameters": [
                    {
                        "description": "Create user",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.createUserRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/user/confirm/{token}": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Confirm and activate user with a temporary token",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Temporary token",
                        "name": "token",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/user/password": {
            "put": {
                "security": [
                    {
                        "Border0 Token": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Update an existing (authenticated) user's account password",
                "parameters": [
                    {
                        "description": "Update password request",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.updateUserPasswordRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/serializer.User"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/users/mfa_challenge": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "MFA Challenge",
                "parameters": [
                    {
                        "description": "MFA Code",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.mfaConfirm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "token": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/users/mfa_confirm": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "MFA Setup Confirm",
                "parameters": [
                    {
                        "description": "MFa Code",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.mfaConfirm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "token": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/users/mfa_disabled": {
            "put": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "summary": "Disable MFA",
                "parameters": [
                    {
                        "description": "Login credentials",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.checkPassword"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "token": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        },
        "/users/mfa_setup": {
            "get": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "image/png"
                ],
                "summary": "MFA Setup",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/v1.BaseErrorResponse"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "common.AwsCredentials": {
            "type": "object",
            "properties": {
                "aws_access_key_id": {
                    "type": "string"
                },
                "aws_profile": {
                    "type": "string"
                },
                "aws_secret_access_key": {
                    "type": "string"
                },
                "aws_session_token": {
                    "type": "string"
                }
            }
        },
        "datatypes.JSONMap": {
            "type": "object",
            "additionalProperties": true
        },
        "finding.Finding": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "details": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "entity_email": {
                    "type": "string"
                },
                "entity_image_url": {
                    "type": "string"
                },
                "iam_user_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "service_account_name": {
                    "type": "string"
                },
                "session_id": {
                    "type": "string"
                },
                "severity": {
                    "type": "number"
                },
                "socket_id": {
                    "type": "string"
                },
                "socket_name": {
                    "type": "string"
                },
                "socket_type": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "finding.Page": {
            "type": "object",
            "properties": {
                "findings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/finding.Finding"
                    }
                },
                "pagination": {
                    "$ref": "#/definitions/models.PaginationResult"
                }
            }
        },
        "llm.DatabaseAgentInput": {
            "type": "object",
            "properties": {
                "database_name": {
                    "type": "string"
                },
                "database_type": {
                    "type": "string"
                },
                "question": {
                    "type": "string"
                },
                "schemas": {
                    "type": "string"
                }
            }
        },
        "metadata.Device": {
            "type": "object",
            "properties": {
                "ip": {
                    "type": "string"
                },
                "metadata": {
                    "type": "object"
                },
                "name": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "metadata.IPMetadata": {
            "type": "object",
            "properties": {
                "city_name": {
                    "type": "string"
                },
                "country_code": {
                    "type": "string"
                },
                "country_name": {
                    "type": "string"
                },
                "isp": {
                    "type": "string"
                },
                "latitude": {
                    "type": "number"
                },
                "longitude": {
                    "type": "number"
                },
                "region_code": {
                    "type": "string"
                },
                "region_name": {
                    "type": "string"
                }
            }
        },
        "metadata.MicrosoftTeamsMetadata": {
            "type": "object",
            "properties": {
                "tenant_id": {
                    "type": "string"
                },
                "tenant_name": {
                    "type": "string"
                }
            }
        },
        "metadata.SlackMetadata": {
            "type": "object",
            "properties": {
                "team_id": {
                    "type": "string"
                },
                "team_name": {
                    "type": "string"
                }
            }
        },
        "models.ApprovalRequestMetadata": {
            "type": "object",
            "properties": {
                "from_microsoft_teams": {
                    "type": "boolean"
                },
                "from_slack": {
                    "type": "boolean"
                },
                "ip_address": {
                    "type": "string"
                },
                "ip_metadata": {
                    "$ref": "#/definitions/metadata.IPMetadata"
                },
                "microsoft_teams_metadata": {
                    "$ref": "#/definitions/metadata.MicrosoftTeamsMetadata"
                },
                "slack_metadata": {
                    "$ref": "#/definitions/metadata.SlackMetadata"
                }
            }
        },
        "models.ConnectorData": {
            "type": "object",
            "properties": {
                "config": {
                    "$ref": "#/definitions/service.Configuration"
                },
                "connector_id": {
                    "type": "string"
                }
            }
        },
        "models.FederationRule": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "issuer": {
                    "type": "string"
                },
                "subject_patterns": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "models.GoogleWorkspaceIdentityProviderConfig": {
            "type": "object",
            "properties": {
                "client_id": {
                    "description": "An identifier which uniquely identifies border0 as a client of the\nGoogle Workspace account. You get this and the client secret when\nyou create an \"App Integration\" in the Google API Console.\nThis is typically of the form ${GIBBERISH}.apps.googleusercontent.com",
                    "type": "string"
                },
                "client_secret": {
                    "description": "Secret to authenticate with Google Workspace.",
                    "type": "string"
                },
                "google_workspace_domain": {
                    "description": "Domain of the Google Workspace",
                    "type": "string"
                }
            }
        },
        "models.IdentityProvider": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "google_workspace_configuration": {
                    "$ref": "#/definitions/models.GoogleWorkspaceIdentityProviderConfig"
                },
                "id": {
                    "description": "unique identifier for identity provider / connection",
                    "type": "string"
                },
                "logo_url": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "oidc_configuration": {
                    "$ref": "#/definitions/models.OpenIDConnectIdentityProviderConfig"
                },
                "okta_workforce_configuration": {
                    "$ref": "#/definitions/models.OktaWorksforceIdentityProviderConfig"
                },
                "saml_configuration": {
                    "$ref": "#/definitions/models.SAMLIdentityProviderConfig"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "models.OktaWorksforceIdentityProviderConfig": {
            "type": "object",
            "properties": {
                "client_id": {
                    "description": "An identifier which uniquely identifies border0 as a client\nof the Okta Workforce account. You get this and the client\nsecret when you create an \"App Integration\" in Okta.",
                    "type": "string"
                },
                "client_secret": {
                    "description": "Secret to authenticate with Okta.",
                    "type": "string"
                },
                "okta_domain": {
                    "description": "Okta domain for Okta Workforce account e.g. mydomain.okta.com",
                    "type": "string"
                }
            }
        },
        "models.OpenIDConnectIdentityProviderConfig": {
            "type": "object",
            "properties": {
                "client_id": {
                    "description": "An identifier which uniquely identifies border0 as a client\nof the OpenID Connect provider.",
                    "type": "string"
                },
                "client_secret": {
                    "description": "A per-client secret generated by the identity provider.\nIt is used by the client to exchange OAuth2.0 auth codes\nfor ID Tokens issued by the identity provider.",
                    "type": "string"
                },
                "discovery_url": {
                    "description": "URL of the discovery document of the OpenID Connect provider.",
                    "type": "string"
                },
                "oidc_flow_type": {
                    "description": "FlowType determines the way in which the oidc provider\nwill transmit ID Tokens to border0's IDP.\nFront Channel will use OIDC protocol with response_mode=form_post and response_type=id_token.\nBack Channel will use response_type=code.\nSee https://darutk.medium.com/diagrams-of-all-the-openid-connect-flows-6968e3990660 for more.",
                    "type": "string"
                }
            }
        },
        "models.PaginationResult": {
            "type": "object",
            "properties": {
                "actual_page_size": {
                    "type": "integer"
                },
                "current_page": {
                    "type": "integer"
                },
                "next_page": {
                    "type": "integer"
                },
                "records_per_page": {
                    "type": "integer"
                },
                "total_pages": {
                    "type": "integer"
                },
                "total_records": {
                    "type": "integer"
                }
            }
        },
        "models.SAMLIdentityProviderConfig": {
            "type": "object",
            "properties": {
                "request_protocol_binding": {
                    "description": "The protocol to use for SAML assertion request binding, one of [ \"HTTP-POST\", \"HTTP-Redirect\" ].\nNote that the value of this field is shorthand, full value is of the form:\n\"urn:oasis:names:tc:SAML:2.0:bindings:{REQUEST_PROTOCOL_BINDING_SHORTHAND}\"",
                    "type": "string"
                },
                "request_signing_algorithm": {
                    "description": "Algorithm to use for assertion request signing, one of [ \"rsa-sha256\", \"rsa-sha1\" ].",
                    "type": "string"
                },
                "request_signing_digest_algorithm": {
                    "description": "Algorithm to use for the assertion request signing digest (hash), one of [ \"sha256\", \"sha1\" ].",
                    "type": "string"
                },
                "request_signing_enabled": {
                    "description": "Whether to have the SAML assertion consumer (border0) sign the assertion request.",
                    "type": "boolean"
                },
                "request_template": {
                    "description": "The template for the SAML assertion request. It may include any/all/none of the following parameters:\n- \"@@AssertServiceURLAndDestination@@\"\n- \"@@ID@@\"\n- \"@@IssueInstant@@\"\n- \"@@ProtocolBinding@@\"\n- \"@@Issuer@@\"\n\nExample Template (ignore the dashes '-'):\n--------------------------------------------------------------------------------------------\n\u003csamlp:AuthnRequest xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\"\n@@AssertServiceURLAndDestination@@\n    ID=\"@@ID@@\"\n    IssueInstant=\"@@IssueInstant@@\"\n    ProtocolBinding=\"@@ProtocolBinding@@\" Version=\"2.0\"\u003e\n    \u003csaml:Issuer xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\"\u003e@@Issuer@@\u003c/saml:Issuer\u003e\n\u003c/samlp:AuthnRequest\u003e\n--------------------------------------------------------------------------------------------",
                    "type": "string"
                },
                "sign_in_url": {
                    "description": "The SAML provider's sign-in URL (where users are redirected to)",
                    "type": "string"
                },
                "signing_certificate": {
                    "description": "The x509 certificate (public key) corresponding to the SAML provider's\nassertion signing (private) key.",
                    "type": "string"
                }
            }
        },
        "models.SessionLogSocketStats": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "socket_name": {
                    "type": "string"
                },
                "socket_type": {
                    "type": "string"
                }
            }
        },
        "models.SessionLogUserStats": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "picture": {
                    "type": "string"
                },
                "user_email": {
                    "type": "string"
                }
            }
        },
        "models.SplitDNSRule": {
            "type": "object",
            "properties": {
                "dns_servers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "domain": {
                    "type": "string"
                }
            }
        },
        "restful.ErrorResponse": {
            "type": "object",
            "properties": {
                "error_message": {
                    "type": "string"
                },
                "status_code": {
                    "type": "integer"
                }
            }
        },
        "serializer.AccessGraph": {
            "type": "object",
            "properties": {
                "edges": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.AccessGraphEdge"
                    }
                },
                "nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.AccessGraphNode"
                    }
                },
                "principal_resource_type": {
                    "$ref": "#/definitions/serializer.ResourceType"
                }
            }
        },
        "serializer.AccessGraphEdge": {
            "type": "object",
            "properties": {
                "dst_node_id": {
                    "type": "string"
                },
                "edge_id": {
                    "type": "string"
                },
                "src_node_id": {
                    "type": "string"
                }
            }
        },
        "serializer.AccessGraphNode": {
            "type": "object",
            "properties": {
                "label": {
                    "type": "string"
                },
                "metadata": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "node_id": {
                    "type": "string"
                },
                "resource_id": {
                    "type": "string"
                },
                "resource_type": {
                    "$ref": "#/definitions/serializer.ResourceType"
                },
                "warnings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Warning"
                    }
                }
            }
        },
        "serializer.ApprovalHistory": {
            "type": "object",
            "properties": {
                "action": {
                    "type": "string"
                },
                "approval_history_id": {
                    "type": "string"
                },
                "approval_request_id": {
                    "type": "string"
                },
                "approver": {
                    "$ref": "#/definitions/serializer.Approver"
                },
                "comment": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "decision_workflow_id": {
                    "type": "string"
                },
                "requester": {
                    "$ref": "#/definitions/serializer.Requester"
                },
                "sockets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.MinimalSocket"
                    }
                }
            }
        },
        "serializer.ApprovalRequest": {
            "type": "object",
            "properties": {
                "approval_request_id": {
                    "type": "string"
                },
                "approval_workflows": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.SlimApprovalWorkflow"
                    }
                },
                "approved_by": {
                    "$ref": "#/definitions/serializer.Approver"
                },
                "approvers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Approver"
                    }
                },
                "can_approver_approve": {
                    "type": "boolean"
                },
                "can_approver_revoke": {
                    "type": "boolean"
                },
                "comment": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "decision_workflow": {
                    "$ref": "#/definitions/serializer.SlimApprovalWorkflow"
                },
                "duration_in_seconds": {
                    "type": "integer"
                },
                "expired_at": {
                    "type": "string"
                },
                "expires_in_seconds": {
                    "type": "integer"
                },
                "is_approved": {
                    "type": "boolean"
                },
                "is_declined": {
                    "type": "boolean"
                },
                "is_expired": {
                    "type": "boolean"
                },
                "is_pending": {
                    "type": "boolean"
                },
                "is_revoked": {
                    "type": "boolean"
                },
                "metadata": {
                    "$ref": "#/definitions/models.ApprovalRequestMetadata"
                },
                "policy": {
                    "$ref": "#/definitions/serializer.SlimPolicy"
                },
                "policy_id": {
                    "type": "string"
                },
                "requester": {
                    "$ref": "#/definitions/serializer.Requester"
                },
                "seconds_since_created": {
                    "type": "integer"
                },
                "seconds_since_expired": {
                    "type": "integer"
                },
                "seconds_since_updated": {
                    "type": "integer"
                },
                "socket_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "sockets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.MinimalSocket"
                    }
                },
                "status": {
                    "type": "string"
                },
                "to_be_decided_workflows": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.SlimApprovalWorkflow"
                    }
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "serializer.ApprovalWorkflow": {
            "type": "object",
            "properties": {
                "allow_self_approval": {
                    "type": "boolean"
                },
                "approval_workflow_id": {
                    "type": "string"
                },
                "approver_group_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "approver_groups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.IAMGroup"
                    }
                },
                "approver_user_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "approvers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.IAMUser"
                    }
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "requester_group_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "requester_groups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.IAMGroup"
                    }
                },
                "requester_user_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "requesters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.IAMUser"
                    }
                },
                "socket_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "socket_tags": {
                    "$ref": "#/definitions/datatypes.JSONMap"
                },
                "sockets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.MinimalSocket"
                    }
                },
                "unique_approvers": {
                    "description": "all unique approvers including all group members",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.IAMUser"
                    }
                },
                "unique_requesters": {
                    "description": "all unique requesters including all group members",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.IAMUser"
                    }
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "serializer.Approver": {
            "type": "object",
            "properties": {
                "approver_id": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "image_url": {
                    "type": "string"
                }
            }
        },
        "serializer.AuditActionPublic": {
            "type": "object",
            "properties": {
                "action_type": {
                    "type": "string"
                },
                "actor_email": {
                    "type": "string"
                },
                "actor_id": {
                    "type": "string"
                },
                "changes": {
                    "$ref": "#/definitions/datatypes.JSONMap"
                },
                "performed_at": {
                    "type": "string"
                },
                "requestor_ip": {
                    "type": "string"
                },
                "resource_id": {
                    "type": "string"
                },
                "resource_name": {
                    "type": "string"
                },
                "resource_type": {
                    "type": "string"
                }
            }
        },
        "serializer.DirectoryService": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "service_type": {
                    "type": "string"
                }
            }
        },
        "serializer.Event": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "metadata": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "serializer.IAMGroup": {
            "type": "object",
            "properties": {
                "access_graph": {
                    "$ref": "#/definitions/serializer.AccessGraph"
                },
                "directory_service": {
                    "$ref": "#/definitions/serializer.DirectoryService"
                },
                "display_name": {
                    "type": "string"
                },
                "group_type": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.IAMUser"
                    }
                }
            }
        },
        "serializer.IAMUser": {
            "type": "object",
            "properties": {
                "access_graph": {
                    "$ref": "#/definitions/serializer.AccessGraph"
                },
                "directory_service": {
                    "$ref": "#/definitions/serializer.DirectoryService"
                },
                "display_name": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "image_url": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "user_type": {
                    "type": "string"
                }
            }
        },
        "serializer.Message": {
            "type": "object",
            "properties": {
                "level": {
                    "type": "string"
                },
                "text": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "serializer.MinimalSocket": {
            "type": "object",
            "properties": {
                "alive": {
                    "type": "boolean"
                },
                "dns_name": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "socket_id": {
                    "type": "string"
                },
                "socket_type": {
                    "type": "string"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "serializer.Organization": {
            "type": "object",
            "properties": {
                "accepted_insights_terms_at": {
                    "type": "string"
                },
                "account_id": {
                    "type": "integer"
                },
                "dns_management_enabled": {
                    "type": "boolean"
                },
                "id": {
                    "type": "string"
                },
                "metadata": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "mfa_required": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "needs_reauth": {
                    "type": "boolean"
                },
                "owner_email": {
                    "type": "string"
                },
                "private_network_enabled": {
                    "type": "boolean"
                },
                "role": {
                    "type": "string"
                },
                "setup_wizard": {
                    "$ref": "#/definitions/datatypes.JSONMap"
                },
                "subdomain": {
                    "type": "string"
                },
                "subscription": {
                    "description": "only returned in the single org case.",
                    "allOf": [
                        {
                            "$ref": "#/definitions/serializer.Subscription"
                        }
                    ]
                }
            }
        },
        "serializer.OrganizationCustomDomain": {
            "type": "object",
            "properties": {
                "default": {
                    "type": "boolean"
                },
                "domain": {
                    "type": "string"
                }
            }
        },
        "serializer.OrganizationNotification": {
            "type": "object",
            "properties": {
                "email_recipients": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "enabled": {
                    "type": "boolean"
                },
                "events": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "integration_configuration": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "webhook_url": {
                    "type": "string"
                }
            }
        },
        "serializer.OrganizationRecordingStorage": {
            "type": "object",
            "properties": {
                "aws_s3_config": {
                    "$ref": "#/definitions/serializer.awsS3Config"
                },
                "read_error": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "serializer.PaginatedSocket": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Socket"
                    }
                },
                "next_cursor": {
                    "description": "NextCursor is set only for cursor-based pagination. It is an opaque, URL-safe token to be\npassed back as the `cursor` query param to fetch the next page; empty when there are no more\npages. Omitted entirely from legacy offset-based responses so they are unchanged.",
                    "type": "string"
                },
                "pagination": {
                    "$ref": "#/definitions/models.PaginationResult"
                }
            }
        },
        "serializer.Plan": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "slug": {
                    "type": "string"
                }
            }
        },
        "serializer.Policy": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "deleted": {
                    "type": "boolean"
                },
                "description": {
                    "type": "string"
                },
                "expires": {
                    "type": "boolean"
                },
                "expires_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "messages": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Message"
                    }
                },
                "name": {
                    "type": "string"
                },
                "org_id": {
                    "type": "string"
                },
                "org_wide": {
                    "type": "boolean"
                },
                "policy_data": {
                    "$ref": "#/definitions/datatypes.JSONMap"
                },
                "read_only": {
                    "type": "boolean"
                },
                "socket_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tag_rules": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        }
                    }
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "serializer.PublicIP": {
            "type": "object",
            "properties": {
                "ip": {
                    "type": "string"
                },
                "metadata": {
                    "$ref": "#/definitions/metadata.IPMetadata"
                }
            }
        },
        "serializer.Recording": {
            "type": "object",
            "properties": {
                "data": {},
                "recording_id": {
                    "type": "string"
                },
                "recording_type": {
                    "type": "string"
                },
                "start_time": {
                    "type": "string"
                }
            }
        },
        "serializer.Requester": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "image_url": {
                    "type": "string"
                },
                "requester_id": {
                    "type": "string"
                }
            }
        },
        "serializer.ResourceType": {
            "type": "string",
            "enum": [
                "user",
                "group",
                "service account",
                "policy",
                "socket"
            ],
            "x-enum-varnames": [
                "ResourceTypeUser",
                "ResourceTypeGroup",
                "ResourceTypeServiceAccount",
                "ResourceTypePolicy",
                "ResourceTypeSocket"
            ]
        },
        "serializer.SessionLogLocationStats": {
            "type": "object",
            "properties": {
                "city_name": {
                    "type": "string"
                },
                "client_ip": {
                    "type": "string"
                },
                "count": {
                    "type": "integer"
                },
                "country_code": {
                    "type": "string"
                },
                "country_name": {
                    "type": "string"
                },
                "isp": {
                    "type": "string"
                },
                "latitude": {
                    "type": "number"
                },
                "longitude": {
                    "type": "number"
                },
                "metadata": {
                    "type": "object"
                },
                "region_code": {
                    "type": "string"
                },
                "region_name": {
                    "type": "string"
                }
            }
        },
        "serializer.SessionLogMetadata": {
            "type": "object",
            "properties": {
                "device": {
                    "$ref": "#/definitions/metadata.Device"
                },
                "ip_metadata": {
                    "$ref": "#/definitions/metadata.IPMetadata"
                },
                "matched_service_accounts": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "serializer.SessionLogPublic": {
            "type": "object",
            "properties": {
                "audit_log": {
                    "type": "boolean"
                },
                "auth_info": {
                    "type": "string"
                },
                "client_ip": {
                    "type": "string"
                },
                "client_port": {
                    "type": "string"
                },
                "country_code": {
                    "type": "string"
                },
                "country_flag": {
                    "type": "string"
                },
                "end_time": {
                    "type": "string"
                },
                "events": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Event"
                    }
                },
                "killed": {
                    "type": "boolean"
                },
                "last_seen": {
                    "type": "string"
                },
                "llm_emoji": {
                    "type": "string"
                },
                "llm_labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "llm_recommendations": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "llm_title": {
                    "type": "string"
                },
                "metadata": {
                    "$ref": "#/definitions/serializer.SessionLogMetadata"
                },
                "name": {
                    "type": "string"
                },
                "nickname": {
                    "type": "string"
                },
                "picture": {
                    "type": "string"
                },
                "recording_locked_by_plan": {
                    "description": "Pointer so the field is omitted for unrestricted plans.",
                    "type": "boolean"
                },
                "recordings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Recording"
                    }
                },
                "result": {
                    "type": "string"
                },
                "risk_details": {
                    "type": "string"
                },
                "risk_score": {
                    "type": "integer"
                },
                "server_name": {
                    "type": "string"
                },
                "server_port": {
                    "type": "string"
                },
                "session_details_url": {
                    "type": "string"
                },
                "session_id": {
                    "type": "string"
                },
                "session_type": {
                    "type": "string"
                },
                "socket_id": {
                    "type": "string"
                },
                "sshuser": {
                    "type": "string"
                },
                "start_time": {
                    "type": "string"
                },
                "sub": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "summary_extended": {
                    "type": "string"
                },
                "user_email": {
                    "type": "string"
                }
            }
        },
        "serializer.SessionLogPublicExtended": {
            "type": "object",
            "properties": {
                "audit_log": {
                    "type": "boolean"
                },
                "auth_info": {
                    "type": "string"
                },
                "client_ip": {
                    "type": "string"
                },
                "client_port": {
                    "type": "string"
                },
                "country_code": {
                    "type": "string"
                },
                "country_flag": {
                    "type": "string"
                },
                "end_time": {
                    "type": "string"
                },
                "events": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Event"
                    }
                },
                "killed": {
                    "type": "boolean"
                },
                "last_seen": {
                    "type": "string"
                },
                "llm_emoji": {
                    "type": "string"
                },
                "llm_labels": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "llm_recommendations": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "llm_title": {
                    "type": "string"
                },
                "metadata": {
                    "$ref": "#/definitions/serializer.SessionLogMetadata"
                },
                "name": {
                    "type": "string"
                },
                "nickname": {
                    "type": "string"
                },
                "picture": {
                    "type": "string"
                },
                "recording_locked_by_plan": {
                    "description": "Pointer so the field is omitted for unrestricted plans.",
                    "type": "boolean"
                },
                "recordings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Recording"
                    }
                },
                "result": {
                    "type": "string"
                },
                "risk_details": {
                    "type": "string"
                },
                "risk_score": {
                    "type": "integer"
                },
                "server_name": {
                    "type": "string"
                },
                "server_port": {
                    "type": "string"
                },
                "session_details_url": {
                    "type": "string"
                },
                "session_id": {
                    "type": "string"
                },
                "session_type": {
                    "type": "string"
                },
                "socket_display_name": {
                    "type": "string"
                },
                "socket_id": {
                    "type": "string"
                },
                "socket_name": {
                    "type": "string"
                },
                "sshuser": {
                    "type": "string"
                },
                "start_time": {
                    "type": "string"
                },
                "sub": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "summary_extended": {
                    "type": "string"
                },
                "user_email": {
                    "type": "string"
                }
            }
        },
        "serializer.SessionLogPublicPaginated": {
            "type": "object",
            "properties": {
                "pagination": {
                    "$ref": "#/definitions/models.PaginationResult"
                },
                "session_logs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.SessionLogPublic"
                    }
                }
            }
        },
        "serializer.SessionLogPublicPaginatedExtended": {
            "type": "object",
            "properties": {
                "pagination": {
                    "$ref": "#/definitions/models.PaginationResult"
                },
                "session_logs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.SessionLogPublicExtended"
                    }
                }
            }
        },
        "serializer.SessionLogStats": {
            "type": "object",
            "properties": {
                "locations": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.SessionLogLocationStats"
                    }
                },
                "sockets": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.SessionLogSocketStats"
                    }
                },
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.SessionLogUserStats"
                    }
                }
            }
        },
        "serializer.SlimApprovalWorkflow": {
            "type": "object",
            "properties": {
                "allow_self_approval": {
                    "type": "boolean"
                },
                "approval_workflow_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "serializer.SlimConnector": {
            "type": "object",
            "properties": {
                "connector_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "public_ips": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.PublicIP"
                    }
                }
            }
        },
        "serializer.SlimPolicy": {
            "type": "object",
            "properties": {
                "policy_data": {
                    "$ref": "#/definitions/datatypes.JSONMap"
                },
                "policy_id": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "serializer.Socket": {
            "type": "object",
            "properties": {
                "alive": {
                    "type": "boolean"
                },
                "autocreation_rule_id": {
                    "type": "integer"
                },
                "cloud_authentication_email_allowed_addressses": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cloud_authentication_email_allowed_domains": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cloud_authentication_enabled": {
                    "type": "boolean"
                },
                "connector_authentication_enabled": {
                    "type": "boolean"
                },
                "connector_managed": {
                    "type": "boolean"
                },
                "connectors": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.SlimConnector"
                    }
                },
                "custom_domains": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "description": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "dnsname": {
                    "type": "string"
                },
                "end_to_end_encryption_enabled": {
                    "type": "boolean"
                },
                "messages": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Message"
                    }
                },
                "name": {
                    "type": "string"
                },
                "org_custom_domain": {
                    "type": "string"
                },
                "policies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Policy"
                    }
                },
                "private_network_enabled": {
                    "type": "boolean"
                },
                "private_network_ipv4": {
                    "type": "string"
                },
                "private_network_ipv6": {
                    "type": "string"
                },
                "private_socket": {
                    "type": "boolean"
                },
                "protected_password": {
                    "type": "string"
                },
                "protected_socket": {
                    "type": "boolean"
                },
                "protected_username": {
                    "type": "string"
                },
                "recording_enabled": {
                    "type": "boolean"
                },
                "socket_id": {
                    "type": "string"
                },
                "socket_tcp_ports": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "socket_type": {
                    "type": "string"
                },
                "ssh_ca": {
                    "type": "string"
                },
                "sshkey": {
                    "type": "string"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "tunnels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Tunnel"
                    }
                },
                "upstream_ca": {
                    "type": "string"
                },
                "upstream_cert": {
                    "type": "string"
                },
                "upstream_http_hostname": {
                    "type": "string"
                },
                "upstream_key": {
                    "type": "string"
                },
                "upstream_password": {
                    "type": "string"
                },
                "upstream_type": {
                    "type": "string"
                },
                "upstream_username": {
                    "type": "string"
                },
                "user_name": {
                    "type": "string"
                }
            }
        },
        "serializer.SocketUpstreamConfig": {
            "type": "object",
            "properties": {
                "config": {
                    "$ref": "#/definitions/service.Configuration"
                },
                "created_at": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "serializer.Subscription": {
            "type": "object",
            "properties": {
                "plan": {
                    "$ref": "#/definitions/serializer.Plan"
                },
                "subscription_limit": {
                    "$ref": "#/definitions/serializer.SubscriptionLimit"
                }
            }
        },
        "serializer.SubscriptionLimit": {
            "type": "object",
            "properties": {
                "admin_user_count": {
                    "type": "integer"
                },
                "custom_domain_count": {
                    "type": "integer"
                },
                "custom_idp_count": {
                    "type": "integer"
                },
                "notification_count": {
                    "type": "integer"
                },
                "organization_count": {
                    "type": "integer"
                },
                "socket_count": {
                    "type": "integer"
                },
                "socket_tcp_count": {
                    "type": "integer"
                },
                "subscription_id": {
                    "type": "integer"
                },
                "user_count": {
                    "type": "integer"
                }
            }
        },
        "serializer.TokenSummary": {
            "type": "object",
            "properties": {
                "connector": {
                    "type": "string"
                },
                "created_by": {
                    "type": "string"
                },
                "directory_service": {
                    "type": "string"
                },
                "expires_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "role": {
                    "description": "will be deprecated",
                    "type": "string"
                },
                "service_account": {
                    "type": "string"
                },
                "token_id": {
                    "description": "deprecated in favour of ID",
                    "type": "string"
                }
            }
        },
        "serializer.Tunnel": {
            "type": "object",
            "properties": {
                "local_port": {
                    "type": "integer"
                },
                "tunnel_id": {
                    "type": "string"
                },
                "tunnel_server": {
                    "type": "string"
                }
            }
        },
        "serializer.User": {
            "type": "object",
            "properties": {
                "accepted_terms": {
                    "type": "boolean"
                },
                "default_org": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "mfa_enabled": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "primary_organization": {
                    "$ref": "#/definitions/serializer.Organization"
                },
                "role": {
                    "type": "string"
                },
                "sshkey": {
                    "type": "string"
                },
                "subscription": {
                    "$ref": "#/definitions/serializer.Subscription"
                },
                "survey_completed": {
                    "type": "boolean"
                },
                "user_id": {
                    "type": "string"
                },
                "user_name": {
                    "type": "string"
                }
            }
        },
        "serializer.Warning": {
            "type": "object",
            "properties": {
                "args": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "code": {
                    "type": "string"
                }
            }
        },
        "serializer.awsS3Config": {
            "type": "object",
            "properties": {
                "bucket_name": {
                    "type": "string"
                },
                "external_id": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "role_arn": {
                    "type": "string"
                }
            }
        },
        "service.AwsAccessServiceConfiguration": {
            "type": "object",
            "properties": {
                "aws_accounts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/service.AwsAccount"
                    }
                },
                "aws_credentials": {
                    "$ref": "#/definitions/common.AwsCredentials"
                }
            }
        },
        "service.AwsAccount": {
            "type": "object",
            "properties": {
                "aws_account_alias": {
                    "type": "string"
                },
                "aws_account_id": {
                    "type": "string"
                },
                "aws_iam_roles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/service.AwsIamRole"
                    }
                }
            }
        },
        "service.AwsDocumentDBDatabaseServiceConfiguration": {
            "type": "object",
            "properties": {
                "authentication_type": {
                    "type": "string"
                },
                "database_name": {
                    "type": "string"
                },
                "hostname": {
                    "type": "string"
                },
                "iam_auth_configuration": {
                    "$ref": "#/definitions/service.MongoAWSAuthConfiguration"
                },
                "port": {
                    "type": "integer"
                },
                "protocol": {
                    "type": "string"
                },
                "username_and_password_auth_configuration": {
                    "$ref": "#/definitions/service.UsernamePasswordCaAuthConfiguration"
                }
            }
        },
        "service.AwsEc2ICSshServiceConfiguration": {
            "type": "object",
            "properties": {
                "aws_credentials": {
                    "$ref": "#/definitions/common.AwsCredentials"
                },
                "ec2_instance_connect_endpoint_id": {
                    "type": "string"
                },
                "ec2_instance_id": {
                    "type": "string"
                },
                "ec2_instance_region": {
                    "type": "string"
                },
                "hostname": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                },
                "username": {
                    "type": "string"
                },
                "username_provider": {
                    "type": "string"
                }
            }
        },
        "service.AwsEksKubectlExecTargetConfiguration": {
            "type": "object",
            "properties": {
                "aws_credentials": {
                    "$ref": "#/definitions/common.AwsCredentials"
                },
                "eks_cluster_name": {
                    "type": "string"
                },
                "eks_cluster_region": {
                    "type": "string"
                }
            }
        },
        "service.AwsEksKubernetesServiceConfiguration": {
            "type": "object",
            "properties": {
                "aws_credentials": {
                    "$ref": "#/definitions/common.AwsCredentials"
                },
                "eks_cluster_name": {
                    "type": "string"
                },
                "eks_cluster_region": {
                    "type": "string"
                }
            }
        },
        "service.AwsIamRole": {
            "type": "object",
            "properties": {
                "arn": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "service.AwsRdsDatabaseServiceConfiguration": {
            "type": "object",
            "properties": {
                "authentication_type": {
                    "type": "string"
                },
                "database_name": {
                    "type": "string"
                },
                "hostname": {
                    "type": "string"
                },
                "iam_auth_configuration": {
                    "$ref": "#/definitions/service.AwsRdsIamAuthConfiguration"
                },
                "port": {
                    "type": "integer"
                },
                "protocol": {
                    "type": "string"
                },
                "username_and_password_auth_configuration": {
                    "$ref": "#/definitions/service.UsernamePasswordCaAuthConfiguration"
                }
            }
        },
        "service.AwsRdsIamAuthConfiguration": {
            "type": "object",
            "properties": {
                "aws_credentials": {
                    "$ref": "#/definitions/common.AwsCredentials"
                },
                "ca_certificate": {
                    "type": "string"
                },
                "rds_instance_region": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.AwsS3ServiceConfiguration": {
            "type": "object",
            "properties": {
                "aws_credentials": {
                    "$ref": "#/definitions/common.AwsCredentials"
                },
                "bucket_allowlist": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "service.AwsSsmEc2TargetConfiguration": {
            "type": "object",
            "properties": {
                "aws_credentials": {
                    "$ref": "#/definitions/common.AwsCredentials"
                },
                "ec2_instance_id": {
                    "type": "string"
                },
                "ec2_instance_region": {
                    "type": "string"
                }
            }
        },
        "service.AwsSsmEcsTargetConfiguration": {
            "type": "object",
            "properties": {
                "aws_credentials": {
                    "$ref": "#/definitions/common.AwsCredentials"
                },
                "ecs_cluster_name": {
                    "type": "string"
                },
                "ecs_cluster_region": {
                    "type": "string"
                },
                "ecs_service_name": {
                    "type": "string"
                }
            }
        },
        "service.AwsSsmSshServiceConfiguration": {
            "type": "object",
            "properties": {
                "aws_ssm_ec2_target_configuration": {
                    "description": "mutually exclusive fields below",
                    "allOf": [
                        {
                            "$ref": "#/definitions/service.AwsSsmEc2TargetConfiguration"
                        }
                    ]
                },
                "aws_ssm_ecs_target_configuration": {
                    "$ref": "#/definitions/service.AwsSsmEcsTargetConfiguration"
                },
                "ssm_target_type": {
                    "type": "string"
                }
            }
        },
        "service.AzureSqlDatabaseServiceConfiguration": {
            "type": "object",
            "properties": {
                "azure_active_directory_integrated_configuration": {
                    "type": "object"
                },
                "azure_active_directory_password_configuration": {
                    "$ref": "#/definitions/service.DatabaseUsernameAndPasswordAuthConfiguration"
                },
                "hostname": {
                    "type": "string"
                },
                "kerberos_configuration": {
                    "$ref": "#/definitions/service.DatabaseKerberosAuthConfiguration"
                },
                "port": {
                    "type": "integer"
                },
                "protocol": {
                    "type": "string"
                },
                "sql_authentication_configuration": {
                    "$ref": "#/definitions/service.DatabaseSqlAuthConfiguration"
                }
            }
        },
        "service.Border0CertificateAuthConfiguration": {
            "type": "object",
            "properties": {
                "username": {
                    "type": "string"
                },
                "username_provider": {
                    "type": "string"
                }
            }
        },
        "service.BuiltInSshServiceConfiguration": {
            "type": "object",
            "properties": {
                "username": {
                    "type": "string"
                },
                "username_provider": {
                    "type": "string"
                }
            }
        },
        "service.Configuration": {
            "type": "object",
            "properties": {
                "aws_access_service_configuration": {
                    "$ref": "#/definitions/service.AwsAccessServiceConfiguration"
                },
                "aws_s3_service_configuration": {
                    "$ref": "#/definitions/service.AwsS3ServiceConfiguration"
                },
                "database_service_configuration": {
                    "$ref": "#/definitions/service.DatabaseServiceConfiguration"
                },
                "elasticsearch_service_configuration": {
                    "$ref": "#/definitions/service.ElasticsearchServiceConfiguration"
                },
                "exit_node_service_configuration": {
                    "$ref": "#/definitions/service.ExitNodeServiceConfiguration"
                },
                "http_service_configuration": {
                    "$ref": "#/definitions/service.HttpServiceConfiguration"
                },
                "kubernetes_service_configuration": {
                    "$ref": "#/definitions/service.KubernetesServiceConfiguration"
                },
                "rdp_service_configuration": {
                    "$ref": "#/definitions/service.RdpServiceConfiguration"
                },
                "service_type": {
                    "type": "string"
                },
                "snowflake_service_configuration": {
                    "$ref": "#/definitions/service.SnowflakeServiceConfiguration"
                },
                "ssh_service_configuration": {
                    "$ref": "#/definitions/service.SshServiceConfiguration"
                },
                "subnet_router_service_configuration": {
                    "$ref": "#/definitions/service.SubnetRouterServiceConfiguration"
                },
                "subnet_routes_service_configuration": {
                    "description": "remove after february 2025",
                    "allOf": [
                        {
                            "$ref": "#/definitions/service.SubnetRouterServiceConfiguration"
                        }
                    ]
                },
                "tls_service_configuration": {
                    "$ref": "#/definitions/service.TlsServiceConfiguration"
                },
                "vnc_service_configuration": {
                    "$ref": "#/definitions/service.VncServiceConfiguration"
                },
                "vpn_service_configuration": {
                    "$ref": "#/definitions/service.VpnServiceConfiguration"
                }
            }
        },
        "service.DatabaseKerberosAuthConfiguration": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.DatabaseServiceConfiguration": {
            "type": "object",
            "properties": {
                "aws_documentdb_database_service_configuration": {
                    "$ref": "#/definitions/service.AwsDocumentDBDatabaseServiceConfiguration"
                },
                "aws_rds_database_service_configuration": {
                    "$ref": "#/definitions/service.AwsRdsDatabaseServiceConfiguration"
                },
                "azure_sql_database_service_configuration": {
                    "$ref": "#/definitions/service.AzureSqlDatabaseServiceConfiguration"
                },
                "database_service_type": {
                    "type": "string"
                },
                "gcp_cloudsql_database_service_configuration": {
                    "$ref": "#/definitions/service.GcpCloudSqlDatabaseServiceConfiguration"
                },
                "mongodb_atlas_database_service_configuration": {
                    "$ref": "#/definitions/service.MongoDBAtlasDatabaseServiceConfiguration"
                },
                "standard_database_service_configuration": {
                    "description": "mutually exclusive fields below",
                    "allOf": [
                        {
                            "$ref": "#/definitions/service.StandardDatabaseServiceConfiguration"
                        }
                    ]
                }
            }
        },
        "service.DatabaseSqlAuthConfiguration": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.DatabaseTlsAuthConfiguration": {
            "type": "object",
            "properties": {
                "ca_certificate": {
                    "type": "string"
                },
                "certificate": {
                    "type": "string"
                },
                "key": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.DatabaseUsernameAndPasswordAuthConfiguration": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.DockerExecSshServiceConfiguration": {
            "type": "object",
            "properties": {
                "container_name_allowlist": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "service.ElasticsearchServiceConfiguration": {
            "type": "object",
            "properties": {
                "elasticsearch_service_type": {
                    "type": "string"
                },
                "standard_elasticsearch_service_configuration": {
                    "description": "mutually exclusive fields below",
                    "allOf": [
                        {
                            "$ref": "#/definitions/service.StandardElasticsearchServiceConfiguration"
                        }
                    ]
                }
            }
        },
        "service.ElasticsearchServiceTypeBasicAuth": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.ExitNodeServiceConfiguration": {
            "type": "object"
        },
        "service.FileServerHttpServiceConfiguration": {
            "type": "object",
            "properties": {
                "top_level_directory": {
                    "type": "string"
                }
            }
        },
        "service.GcpCloudSqlConnectorAuthConfiguration": {
            "type": "object",
            "properties": {
                "gcp_credentials_json": {
                    "type": "string"
                },
                "instance_id": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.GcpCloudSqlConnectorIamAuthConfiguration": {
            "type": "object",
            "properties": {
                "gcp_credentials_json": {
                    "type": "string"
                },
                "instance_id": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.GcpCloudSqlDatabaseServiceConfiguration": {
            "type": "object",
            "properties": {
                "cloudsql_connector_configuration": {
                    "$ref": "#/definitions/service.GcpCloudSqlConnectorAuthConfiguration"
                },
                "cloudsql_connector_iam_configuration": {
                    "$ref": "#/definitions/service.GcpCloudSqlConnectorIamAuthConfiguration"
                },
                "hostname": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                },
                "protocol": {
                    "type": "string"
                },
                "tls_auth_configuration": {
                    "$ref": "#/definitions/service.DatabaseTlsAuthConfiguration"
                },
                "username_and_password_auth_configuration": {
                    "$ref": "#/definitions/service.DatabaseUsernameAndPasswordAuthConfiguration"
                }
            }
        },
        "service.Header": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "service.HttpProxyTlsServiceConfiguration": {
            "type": "object",
            "properties": {
                "host_allowlist": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "service.HttpServiceConfiguration": {
            "type": "object",
            "properties": {
                "fileserver_http_service_configuration": {
                    "$ref": "#/definitions/service.FileServerHttpServiceConfiguration"
                },
                "http_service_type": {
                    "type": "string"
                },
                "standard_http_service_configuration": {
                    "description": "mutually exclusive fields below",
                    "allOf": [
                        {
                            "$ref": "#/definitions/service.StandardHttpServiceConfiguration"
                        }
                    ]
                }
            }
        },
        "service.KubectlExecSshServiceConfiguration": {
            "type": "object",
            "properties": {
                "aws_eks_kubectl_exec_target_configuration": {
                    "$ref": "#/definitions/service.AwsEksKubectlExecTargetConfiguration"
                },
                "kubectl_exec_target_type": {
                    "type": "string"
                },
                "namespace_allowlist": {
                    "description": "slice of allowed namespaces.",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "namespace_selectors_allowlist": {
                    "description": "map of namespace to selectors in that namespace.",
                    "type": "object",
                    "additionalProperties": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                },
                "standard_kubectl_exec_target_configuration": {
                    "description": "mutually exclusive fields below",
                    "allOf": [
                        {
                            "$ref": "#/definitions/service.StandardKubectlExecTargetConfiguration"
                        }
                    ]
                }
            }
        },
        "service.KubernetesServiceConfiguration": {
            "type": "object",
            "properties": {
                "aws_eks_kubernetes_service_configuration": {
                    "$ref": "#/definitions/service.AwsEksKubernetesServiceConfiguration"
                },
                "impersonation_enabled": {
                    "type": "boolean"
                },
                "kubernetes_service_type": {
                    "type": "string"
                },
                "standard_kubernetes_service_configuration": {
                    "description": "mutually exclusive fields below",
                    "allOf": [
                        {
                            "$ref": "#/definitions/service.StandardKubernetesServiceConfiguration"
                        }
                    ]
                }
            }
        },
        "service.MongoAWSAuthConfiguration": {
            "type": "object",
            "properties": {
                "aws_credentials": {
                    "$ref": "#/definitions/common.AwsCredentials"
                },
                "ca_certificate": {
                    "type": "string"
                },
                "cluster_region": {
                    "type": "string"
                }
            }
        },
        "service.MongoDBAtlasDatabaseServiceConfiguration": {
            "type": "object",
            "properties": {
                "authentication_type": {
                    "type": "string"
                },
                "database_name": {
                    "type": "string"
                },
                "hostname": {
                    "description": "Hostname is the MongoDB Atlas cluster hostname (e.g., cluster0.xxxxx.mongodb.net)\nNote: Port is not used for Atlas as it uses SRV records",
                    "type": "string"
                },
                "iam_auth_configuration": {
                    "$ref": "#/definitions/service.MongoAWSAuthConfiguration"
                },
                "protocol": {
                    "type": "string"
                },
                "username_and_password_auth_configuration": {
                    "$ref": "#/definitions/service.UsernamePasswordCaAuthConfiguration"
                }
            }
        },
        "service.PrivateKeyAuthConfiguration": {
            "type": "object",
            "properties": {
                "private_key": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                },
                "username_provider": {
                    "type": "string"
                }
            }
        },
        "service.RdpServiceConfiguration": {
            "type": "object",
            "properties": {
                "domain": {
                    "type": "string"
                },
                "hostname": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.SnowflakeServiceConfiguration": {
            "type": "object",
            "properties": {
                "account": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.SshServiceConfiguration": {
            "type": "object",
            "properties": {
                "aws_ec2ic_ssh_service_configuration": {
                    "$ref": "#/definitions/service.AwsEc2ICSshServiceConfiguration"
                },
                "aws_ssm_ssh_service_configuration": {
                    "$ref": "#/definitions/service.AwsSsmSshServiceConfiguration"
                },
                "built_in_ssh_service_configuration": {
                    "$ref": "#/definitions/service.BuiltInSshServiceConfiguration"
                },
                "docker_exec_ssh_service_configuration": {
                    "$ref": "#/definitions/service.DockerExecSshServiceConfiguration"
                },
                "kubectl_exec_ssh_service_configuration": {
                    "$ref": "#/definitions/service.KubectlExecSshServiceConfiguration"
                },
                "ssh_service_type": {
                    "type": "string"
                },
                "standard_ssh_service_configuration": {
                    "description": "mutually exclusive fields below",
                    "allOf": [
                        {
                            "$ref": "#/definitions/service.StandardSshServiceConfiguration"
                        }
                    ]
                }
            }
        },
        "service.StandardDatabaseServiceConfiguration": {
            "type": "object",
            "properties": {
                "authentication_type": {
                    "type": "string"
                },
                "database_name": {
                    "type": "string"
                },
                "hostname": {
                    "type": "string"
                },
                "kerberos_configuration": {
                    "$ref": "#/definitions/service.DatabaseKerberosAuthConfiguration"
                },
                "port": {
                    "type": "integer"
                },
                "protocol": {
                    "type": "string"
                },
                "sql_authentication_configuration": {
                    "$ref": "#/definitions/service.DatabaseSqlAuthConfiguration"
                },
                "tls_auth_configuration": {
                    "$ref": "#/definitions/service.DatabaseTlsAuthConfiguration"
                },
                "username_and_password_auth_configuration": {
                    "$ref": "#/definitions/service.DatabaseUsernameAndPasswordAuthConfiguration"
                }
            }
        },
        "service.StandardElasticsearchServiceConfiguration": {
            "type": "object",
            "properties": {
                "authentication_type": {
                    "type": "string"
                },
                "basic_auth_configuration": {
                    "$ref": "#/definitions/service.ElasticsearchServiceTypeBasicAuth"
                },
                "host_header": {
                    "type": "string"
                },
                "hostname": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                },
                "protocol": {
                    "type": "string"
                }
            }
        },
        "service.StandardHttpServiceConfiguration": {
            "type": "object",
            "properties": {
                "headers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/service.Header"
                    }
                },
                "host_header": {
                    "type": "string"
                },
                "hostname": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                },
                "scheme": {
                    "type": "string"
                }
            }
        },
        "service.StandardKubectlExecTargetConfiguration": {
            "type": "object",
            "properties": {
                "kubeconfig_path": {
                    "type": "string"
                },
                "master_url": {
                    "type": "string"
                }
            }
        },
        "service.StandardKubernetesServiceConfiguration": {
            "type": "object",
            "properties": {
                "certificate_authority": {
                    "type": "string"
                },
                "certificate_authority_data": {
                    "type": "string"
                },
                "client_certificate": {
                    "description": "for the kubernetes api server to authenticate the connector with client certificates",
                    "type": "string"
                },
                "client_certificate_data": {
                    "type": "string"
                },
                "client_key": {
                    "type": "string"
                },
                "client_key_data": {
                    "type": "string"
                },
                "context": {
                    "type": "string"
                },
                "kubeconfig_path": {
                    "description": "for the connector to load config from the filesystem",
                    "type": "string"
                },
                "server": {
                    "description": "for the connector to communicate to the kubernetes api server",
                    "type": "string"
                },
                "token": {
                    "description": "for the kubernetes api server to authenticate the connector with a token",
                    "type": "string"
                },
                "token_file": {
                    "type": "string"
                }
            }
        },
        "service.StandardSshServiceConfiguration": {
            "type": "object",
            "properties": {
                "border0_certificate_auth_configuration": {
                    "$ref": "#/definitions/service.Border0CertificateAuthConfiguration"
                },
                "hostname": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                },
                "private_key_auth_configuration": {
                    "$ref": "#/definitions/service.PrivateKeyAuthConfiguration"
                },
                "ssh_authentication_type": {
                    "type": "string"
                },
                "username_and_password_auth_configuration": {
                    "description": "mutually exclusive fields below",
                    "allOf": [
                        {
                            "$ref": "#/definitions/service.UsernameAndPasswordAuthConfiguration"
                        }
                    ]
                }
            }
        },
        "service.StandardTlsServiceConfiguration": {
            "type": "object",
            "properties": {
                "hostname": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                }
            }
        },
        "service.SubnetRouterServiceConfiguration": {
            "type": "object",
            "properties": {
                "dns_patterns": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "ipv4_cidr_ranges": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "ipv6_cidr_ranges": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "service.TlsServiceConfiguration": {
            "type": "object",
            "properties": {
                "http_proxy_tls_service_configuration": {
                    "$ref": "#/definitions/service.HttpProxyTlsServiceConfiguration"
                },
                "standard_tls_service_configuration": {
                    "description": "mutually exclusive fields below",
                    "allOf": [
                        {
                            "$ref": "#/definitions/service.StandardTlsServiceConfiguration"
                        }
                    ]
                },
                "tls_service_type": {
                    "type": "string"
                },
                "vpn_tls_service_configuration": {
                    "$ref": "#/definitions/service.VpnTlsServiceConfiguration"
                }
            }
        },
        "service.UsernameAndPasswordAuthConfiguration": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                },
                "username_provider": {
                    "type": "string"
                }
            }
        },
        "service.UsernamePasswordCaAuthConfiguration": {
            "type": "object",
            "properties": {
                "ca_certificate": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "service.VncServiceConfiguration": {
            "type": "object",
            "properties": {
                "hostname": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "port": {
                    "type": "integer"
                }
            }
        },
        "service.VpnServiceConfiguration": {
            "type": "object",
            "properties": {
                "advertised_routes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "dhcp_pool_subnet": {
                    "type": "string"
                }
            }
        },
        "service.VpnTlsServiceConfiguration": {
            "type": "object",
            "properties": {
                "routes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "vpn_subnet": {
                    "type": "string"
                }
            }
        },
        "serviceaccount.Full": {
            "type": "object",
            "properties": {
                "access_graph": {
                    "$ref": "#/definitions/serializer.AccessGraph"
                },
                "active": {
                    "type": "boolean"
                },
                "created_at": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "directory_service": {
                    "$ref": "#/definitions/serializer.DirectoryService"
                },
                "last_seen_at": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "service_account_id": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "serviceaccount.PaginatedServiceAccount": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serviceaccount.Slim"
                    }
                },
                "pagination": {
                    "$ref": "#/definitions/models.PaginationResult"
                }
            }
        },
        "serviceaccount.Slim": {
            "type": "object",
            "properties": {
                "access_graph": {
                    "$ref": "#/definitions/serializer.AccessGraph"
                },
                "active": {
                    "type": "boolean"
                },
                "created_at": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "directory_service": {
                    "$ref": "#/definitions/serializer.DirectoryService"
                },
                "last_seen_at": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "service_account_id": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "stats.Data": {
            "type": "object",
            "properties": {
                "result": {},
                "resultType": {
                    "type": "string"
                }
            }
        },
        "stats.Result": {
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/stats.Data"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "v1.AwsS3Config": {
            "type": "object",
            "properties": {
                "bucket_name": {
                    "type": "string"
                },
                "external_id": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "role_arn": {
                    "type": "string"
                }
            }
        },
        "v1.BaseErrorResponse": {
            "type": "object",
            "properties": {
                "error_code": {
                    "type": "string"
                },
                "error_message": {
                    "type": "string"
                },
                "status_code": {
                    "type": "integer"
                }
            }
        },
        "v1.GetSocketPoliciesResponse": {
            "type": "object",
            "properties": {
                "attached_policies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Policy"
                    }
                },
                "org_wide_policies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Policy"
                    }
                },
                "tagged_policies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.Policy"
                    }
                }
            }
        },
        "v1.OrganizationRequest": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "org_id": {
                    "type": "string"
                }
            }
        },
        "v1.actionUpdateRequest": {
            "type": "object",
            "required": [
                "action",
                "id"
            ],
            "properties": {
                "action": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                }
            }
        },
        "v1.addOrRemoveSocketToPolicyRequest": {
            "type": "object",
            "required": [
                "actions"
            ],
            "properties": {
                "actions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/v1.actionUpdateRequest"
                    }
                }
            }
        },
        "v1.addresses": {
            "type": "object",
            "properties": {
                "ipv4": {
                    "type": "string"
                },
                "ipv6": {
                    "type": "string"
                },
                "network_cidr_v4": {
                    "type": "string"
                },
                "network_cidr_v6": {
                    "type": "string"
                },
                "resources_cidr_v4": {
                    "type": "string"
                },
                "resources_cidr_v6": {
                    "type": "string"
                }
            }
        },
        "v1.approvalRequestPayload": {
            "type": "object",
            "properties": {
                "approval_workflow_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "comment": {
                    "type": "string"
                },
                "duration_in_seconds": {
                    "type": "integer"
                },
                "socket_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "v1.approvalWorkflowPayload": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "allow_self_approval": {
                    "type": "boolean"
                },
                "approver_group_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "approver_user_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "policy_data": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "requester_group_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "requester_user_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "socket_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "socket_tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "v1.approveDeclineOrRevokePayload": {
            "type": "object",
            "properties": {
                "comment": {
                    "type": "string"
                },
                "decision_workflow_id": {
                    "type": "string"
                },
                "policy_data": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "socket_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "v1.certificateSigningRequest": {
            "type": "object",
            "required": [
                "csr"
            ],
            "properties": {
                "csr": {
                    "type": "string"
                }
            }
        },
        "v1.checkPassword": {
            "type": "object",
            "required": [
                "password"
            ],
            "properties": {
                "password": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                }
            }
        },
        "v1.clientRequestableResourceData": {
            "type": "object",
            "properties": {
                "ai_assistants_disabled": {
                    "type": "boolean"
                },
                "alive": {
                    "type": "boolean"
                },
                "approval_workflow_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "connector_authentication_enabled": {
                    "type": "boolean"
                },
                "database_settings": {
                    "$ref": "#/definitions/v1.databaseSettings"
                },
                "database_type": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "domains": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "end_to_end_encryption_enabled": {
                    "type": "boolean"
                },
                "has_pending_approval": {
                    "type": "boolean"
                },
                "has_upstream_username": {
                    "type": "boolean"
                },
                "ip_address": {
                    "type": "string"
                },
                "last_seen": {
                    "type": "string"
                },
                "private_network_enabled": {
                    "type": "boolean"
                },
                "private_network_ipv4": {
                    "type": "string"
                },
                "private_network_ipv6": {
                    "type": "string"
                },
                "private_network_peer_public_key": {
                    "type": "string"
                },
                "private_socket": {
                    "type": "boolean"
                },
                "rdp_proxy_enabled": {
                    "description": "RDPProxyEnabled indicates whether the RDP proxy feature is enabled for this resource.\n\nIf RDP server username and password are both set, this field will be true,\nand the RDP credentials will be injected by the RDP proxy at the connector side.\n\nTODO: remove this field in the future, when the RDP proxy feature is out of beta",
                    "type": "boolean"
                },
                "socket_id": {
                    "type": "string"
                },
                "socket_name": {
                    "type": "string"
                },
                "socket_ports": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "socket_type": {
                    "type": "string"
                },
                "ssh_type": {
                    "type": "string"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "v1.clientRequestableResourceResponse": {
            "type": "object",
            "properties": {
                "ip_addresses": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "refresh_hint": {
                    "type": "integer"
                },
                "resources": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/v1.clientRequestableResourceData"
                    }
                }
            }
        },
        "v1.clientResourceData": {
            "type": "object",
            "properties": {
                "ai_assistants_disabled": {
                    "type": "boolean"
                },
                "alive": {
                    "type": "boolean"
                },
                "connector_authentication_enabled": {
                    "type": "boolean"
                },
                "database_settings": {
                    "$ref": "#/definitions/v1.databaseSettings"
                },
                "database_type": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "domains": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "end_to_end_encryption_enabled": {
                    "type": "boolean"
                },
                "has_upstream_username": {
                    "type": "boolean"
                },
                "ip_address": {
                    "type": "string"
                },
                "last_seen": {
                    "type": "string"
                },
                "private_network_enabled": {
                    "type": "boolean"
                },
                "private_network_ipv4": {
                    "type": "string"
                },
                "private_network_ipv6": {
                    "type": "string"
                },
                "private_network_peer_public_key": {
                    "type": "string"
                },
                "private_socket": {
                    "type": "boolean"
                },
                "rdp_proxy_enabled": {
                    "description": "RDPProxyEnabled indicates whether the RDP proxy feature is enabled for this resource.\n\nIf RDP server username and password are both set, this field will be true,\nand the RDP credentials will be injected by the RDP proxy at the connector side.\n\nTODO: remove this field in the future, when the RDP proxy feature is out of beta",
                    "type": "boolean"
                },
                "socket_name": {
                    "type": "string"
                },
                "socket_ports": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "socket_type": {
                    "type": "string"
                },
                "ssh_type": {
                    "type": "string"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                }
            }
        },
        "v1.clientResourceResponse": {
            "type": "object",
            "properties": {
                "access_request_enabled": {
                    "type": "boolean"
                },
                "ip_addresses": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "refresh_hint": {
                    "type": "integer"
                },
                "resources": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/v1.clientResourceData"
                    }
                }
            }
        },
        "v1.createOrg": {
            "type": "object",
            "properties": {
                "subdomain": {
                    "type": "string"
                }
            }
        },
        "v1.createPolicyRequest": {
            "type": "object",
            "required": [
                "name",
                "policy_data"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "expiry": {
                    "description": "Unix seconds",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "org_wide": {
                    "type": "boolean"
                },
                "policy_data": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "socket_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tag_rules": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        }
                    }
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "v1.createSocketRequest": {
            "type": "object",
            "required": [
                "name",
                "socket_type"
            ],
            "properties": {
                "clientRequestedWith": {
                    "type": "string"
                },
                "clientVersion": {
                    "type": "string"
                },
                "cloud_authentication_email_allowed_addresses": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cloud_authentication_email_allowed_domains": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "connector_authentication_enabled": {
                    "type": "boolean"
                },
                "connector_data": {
                    "$ref": "#/definitions/models.ConnectorData"
                },
                "connector_id": {
                    "type": "string"
                },
                "connector_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "description": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 0
                },
                "discovered_resource_id": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 0
                },
                "name": {
                    "type": "string"
                },
                "org_custom_domain": {
                    "type": "string"
                },
                "protected_password": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 0
                },
                "protected_socket": {
                    "type": "boolean"
                },
                "protected_username": {
                    "type": "string",
                    "maxLength": 20,
                    "minLength": 0
                },
                "recording_enabled": {
                    "type": "boolean"
                },
                "socket_type": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "upstream_ca": {
                    "type": "string",
                    "minLength": 0
                },
                "upstream_cert": {
                    "type": "string",
                    "minLength": 0
                },
                "upstream_configuration": {
                    "$ref": "#/definitions/service.Configuration"
                },
                "upstream_http_hostname": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 0
                },
                "upstream_key": {
                    "type": "string",
                    "minLength": 0
                },
                "upstream_password": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 0
                },
                "upstream_type": {
                    "type": "string",
                    "maxLength": 50,
                    "minLength": 0
                },
                "upstream_username": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 0
                }
            }
        },
        "v1.createUserRequest": {
            "type": "object",
            "required": [
                "email",
                "name",
                "password"
            ],
            "properties": {
                "accepted_terms": {
                    "type": "boolean"
                },
                "email": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                },
                "invite_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                },
                "password": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                },
                "recaptcha_response": {
                    "type": "string"
                },
                "sshkey": {
                    "type": "string",
                    "maxLength": 5000,
                    "minLength": 0
                },
                "subdomain": {
                    "type": "string"
                }
            }
        },
        "v1.customDomain": {
            "type": "object",
            "properties": {
                "default": {
                    "type": "boolean"
                },
                "domain": {
                    "type": "string"
                }
            }
        },
        "v1.databaseSettings": {
            "type": "object",
            "properties": {
                "database_name": {
                    "type": "string"
                }
            }
        },
        "v1.deleteToken": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                }
            }
        },
        "v1.deviceRegistrationResponse": {
            "type": "object",
            "properties": {
                "addresses": {
                    "$ref": "#/definitions/v1.addresses"
                },
                "device_id": {
                    "type": "string"
                },
                "key_expiry": {
                    "type": "string"
                }
            }
        },
        "v1.dnsConfig": {
            "type": "object",
            "properties": {
                "custom": {
                    "description": "Only used when mode is \"custom\"",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "mode": {
                    "description": "\"system\", \"preset\", or \"custom\"",
                    "type": "string"
                },
                "preset": {
                    "description": "Only used when mode is \"preset\"",
                    "type": "string"
                }
            }
        },
        "v1.dnsSettingsRequest": {
            "type": "object",
            "properties": {
                "dns": {
                    "$ref": "#/definitions/v1.dnsConfig"
                },
                "dns_enabled_by_default": {
                    "type": "boolean"
                },
                "split_dns_rules": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.SplitDNSRule"
                    }
                }
            }
        },
        "v1.dnsSettingsResponse": {
            "type": "object",
            "properties": {
                "dns": {
                    "$ref": "#/definitions/v1.dnsConfig"
                },
                "dns_enabled_by_default": {
                    "type": "boolean"
                },
                "split_dns_rules": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.SplitDNSRule"
                    }
                }
            }
        },
        "v1.evaluatePolicyRequest": {
            "type": "object",
            "required": [
                "client_ip",
                "session_key",
                "user_email"
            ],
            "properties": {
                "client_ip": {
                    "type": "string"
                },
                "session_key": {
                    "type": "string"
                },
                "user_email": {
                    "type": "string"
                }
            }
        },
        "v1.evaluatePolicyResponse": {
            "type": "object",
            "properties": {
                "allowed_actions": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "info": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "permissions": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "array",
                        "items": {}
                    }
                }
            }
        },
        "v1.federationRuleCreatePayload": {
            "type": "object",
            "required": [
                "issuer",
                "subject_patterns"
            ],
            "properties": {
                "issuer": {
                    "type": "string"
                },
                "subject_patterns": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "v1.federationRuleUpdatePayload": {
            "type": "object",
            "required": [
                "subject_patterns"
            ],
            "properties": {
                "subject_patterns": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "v1.getClientDeviceAuthorizationResponse": {
            "type": "object",
            "properties": {
                "client_token": {
                    "type": "string"
                },
                "device_ip": {
                    "type": "string"
                },
                "device_os": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "v1.getFederationRulesResponse": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.FederationRule"
                    }
                }
            }
        },
        "v1.getIdentityProviderResponse": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "google_workspace_configuration": {
                    "$ref": "#/definitions/models.GoogleWorkspaceIdentityProviderConfig"
                },
                "id": {
                    "description": "unique identifier for identity provider / connection",
                    "type": "string"
                },
                "logo_url": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "oidc_configuration": {
                    "$ref": "#/definitions/models.OpenIDConnectIdentityProviderConfig"
                },
                "okta_workforce_configuration": {
                    "$ref": "#/definitions/models.OktaWorksforceIdentityProviderConfig"
                },
                "saml_configuration": {
                    "$ref": "#/definitions/models.SAMLIdentityProviderConfig"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "v1.getIdentityProvidersResponse": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/models.IdentityProvider"
                    }
                }
            }
        },
        "v1.getServiceAccountsTokensResponse": {
            "type": "object",
            "properties": {
                "items": {
                    "type": "integer"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/serializer.TokenSummary"
                    }
                }
            }
        },
        "v1.loginRequest": {
            "type": "object",
            "required": [
                "email",
                "password"
            ],
            "properties": {
                "email": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                },
                "password": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                },
                "recaptcha_response": {
                    "type": "string"
                }
            }
        },
        "v1.mfaConfirm": {
            "type": "object",
            "required": [
                "code"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "maxLength": 12,
                    "minLength": 1
                },
                "device_identifier": {
                    "type": "string"
                }
            }
        },
        "v1.mtlsSSHRequest": {
            "type": "object",
            "properties": {
                "ssh_public_key": {
                    "type": "string"
                }
            }
        },
        "v1.notificationRequest": {
            "type": "object",
            "properties": {
                "email_recipients": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "enabled": {
                    "type": "boolean"
                },
                "events": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "integration_configuration": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "webhook_url": {
                    "type": "string"
                }
            }
        },
        "v1.notificationUpdateRequest": {
            "type": "object",
            "properties": {
                "email_recipients": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "enabled": {
                    "type": "boolean"
                },
                "events": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "integration_configuration": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "webhook_url": {
                    "type": "string"
                }
            }
        },
        "v1.orgSettings": {
            "type": "object",
            "properties": {
                "accepted_insights_terms": {
                    "type": "boolean"
                },
                "dns_management_enabled": {
                    "type": "boolean"
                }
            }
        },
        "v1.orgUsageResponse": {
            "type": "object",
            "properties": {
                "account_owner_email": {
                    "type": "string"
                },
                "admin_user_availability": {
                    "type": "integer"
                },
                "custom_domain_availability": {
                    "type": "integer"
                },
                "custom_idp_availability": {
                    "type": "integer"
                },
                "notification_availability": {
                    "type": "integer"
                },
                "plan_name": {
                    "type": "string"
                },
                "socket_availability": {
                    "type": "integer"
                },
                "user_availability": {
                    "type": "integer"
                }
            }
        },
        "v1.patchIdentityProviderRequest": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "google_workspace_configuration": {
                    "$ref": "#/definitions/models.GoogleWorkspaceIdentityProviderConfig"
                },
                "id": {
                    "description": "unique identifier for identity provider / connection",
                    "type": "string"
                },
                "logo_url": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "oidc_configuration": {
                    "$ref": "#/definitions/models.OpenIDConnectIdentityProviderConfig"
                },
                "okta_workforce_configuration": {
                    "$ref": "#/definitions/models.OktaWorksforceIdentityProviderConfig"
                },
                "saml_configuration": {
                    "$ref": "#/definitions/models.SAMLIdentityProviderConfig"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "v1.postClientDeviceAuthorizationRequest": {
            "type": "object",
            "properties": {
                "device_os": {
                    "type": "string"
                },
                "organization": {
                    "type": "string"
                }
            }
        },
        "v1.postClientDeviceAuthorizationResponse": {
            "type": "object",
            "properties": {
                "authorization_endpoint": {
                    "type": "string"
                },
                "authorization_endpoint_code_query_param": {
                    "type": "string"
                },
                "code": {
                    "type": "string"
                },
                "token_endpoint": {
                    "type": "string"
                },
                "token_endpoint_code_header": {
                    "type": "string"
                },
                "token_endpoint_poll_interval": {
                    "type": "integer"
                },
                "token_endpoint_poll_max_attempts": {
                    "type": "integer"
                }
            }
        },
        "v1.postGoogleWorkspaceIdentityProviderResponse": {
            "type": "object",
            "properties": {
                "must_allow_javascript_origin": {
                    "type": "string"
                },
                "must_allow_redirect_url": {
                    "type": "string"
                }
            }
        },
        "v1.postIdentityProviderRequest": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "google_workspace_configuration": {
                    "$ref": "#/definitions/models.GoogleWorkspaceIdentityProviderConfig"
                },
                "id": {
                    "description": "unique identifier for identity provider / connection",
                    "type": "string"
                },
                "logo_url": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "oidc_configuration": {
                    "$ref": "#/definitions/models.OpenIDConnectIdentityProviderConfig"
                },
                "okta_workforce_configuration": {
                    "$ref": "#/definitions/models.OktaWorksforceIdentityProviderConfig"
                },
                "saml_configuration": {
                    "$ref": "#/definitions/models.SAMLIdentityProviderConfig"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "v1.postIdentityProviderResponse": {
            "type": "object",
            "properties": {
                "google_workspace_response": {
                    "$ref": "#/definitions/v1.postGoogleWorkspaceIdentityProviderResponse"
                },
                "oidc_response": {
                    "$ref": "#/definitions/v1.postOpenIDConnectIdentityProviderResponse"
                },
                "okta_workforce_response": {
                    "$ref": "#/definitions/v1.postOktaWorkforceIdentityProviderResponse"
                },
                "saml_response": {
                    "$ref": "#/definitions/v1.postSAMLIdentityProviderResponse"
                }
            }
        },
        "v1.postOktaWorkforceIdentityProviderResponse": {
            "type": "object",
            "properties": {
                "must_allow_redirect_url": {
                    "type": "string"
                }
            }
        },
        "v1.postOpenIDConnectIdentityProviderResponse": {
            "type": "object",
            "properties": {
                "must_allow_redirect_url": {
                    "type": "string"
                }
            }
        },
        "v1.postSAMLIdentityProviderResponse": {
            "type": "object",
            "properties": {
                "must_allow_redirect_url": {
                    "type": "string"
                },
                "request_signing_certificate_url": {
                    "type": "string"
                }
            }
        },
        "v1.postServiceAccountTokenResponse": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "expires_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "v1.putIdentityProviderStatusRequest": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "enable": {
                    "type": "boolean"
                },
                "global": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "v1.recordingStorageRequest": {
            "type": "object",
            "properties": {
                "aws_s3_config": {
                    "$ref": "#/definitions/v1.AwsS3Config"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "v1.serviceAccountCreatePayload": {
            "type": "object",
            "properties": {
                "description": {
                    "description": "A short descriptive text about the service account's usage.",
                    "type": "string"
                },
                "name": {
                    "description": "Name (unique slug) for the service account.",
                    "type": "string"
                },
                "role": {
                    "description": "Border0 permission level, may be \"client\", \"member\" or \"admin\"",
                    "type": "string"
                }
            }
        },
        "v1.serviceAccountTokenDetailsPayload": {
            "type": "object",
            "properties": {
                "expires_at": {
                    "description": "Token expiry in UNIX timestamp format.",
                    "type": "integer"
                },
                "name": {
                    "description": "Name (not unique) for the token.",
                    "type": "string"
                }
            }
        },
        "v1.serviceAccountUpdatePayload": {
            "type": "object",
            "properties": {
                "active": {
                    "description": "Whether the service account is active or inactive.",
                    "type": "boolean"
                },
                "description": {
                    "description": "A short descriptive text about the service account's usage.",
                    "type": "string"
                },
                "name": {
                    "description": "Name (unique slug) for the service account.",
                    "type": "string"
                },
                "role": {
                    "description": "Border0 permission level, may be \"client\", \"member\" or \"admin\"",
                    "type": "string"
                }
            }
        },
        "v1.sessionLogRequest": {
            "type": "object",
            "properties": {
                "killed": {
                    "type": "boolean"
                }
            }
        },
        "v1.signTunnelKeyRequest": {
            "type": "object",
            "required": [
                "ssh_public_key"
            ],
            "properties": {
                "ssh_public_key": {
                    "type": "string"
                }
            }
        },
        "v1.switchOrgPayload": {
            "type": "object",
            "required": [
                "org_name"
            ],
            "properties": {
                "org_name": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                }
            }
        },
        "v1.updatePolicyRequest": {
            "type": "object",
            "required": [
                "policy_data"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "policy_data": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "tag_rules": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "v1.updateSessionRequest": {
            "type": "object",
            "required": [
                "session_key"
            ],
            "properties": {
                "auth_info_failed": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                },
                "session_key": {
                    "type": "string"
                },
                "user_data": {
                    "type": "string"
                }
            }
        },
        "v1.updateSocketRequest": {
            "type": "object",
            "properties": {
                "cloud_authentication_email_allowed_addressses": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cloud_authentication_email_allowed_domains": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "connector_authentication_enabled": {
                    "type": "boolean"
                },
                "connector_data": {
                    "$ref": "#/definitions/models.ConnectorData"
                },
                "connector_id": {
                    "type": "string"
                },
                "connector_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "custom_domains": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "description": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 0
                },
                "display_name": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 0
                },
                "name": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 0
                },
                "org_custom_domain": {
                    "type": "string"
                },
                "recording_enabled": {
                    "type": "boolean"
                },
                "socket_type": {
                    "type": "string"
                },
                "tags": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "upstream_ca": {
                    "type": "string",
                    "minLength": 0
                },
                "upstream_cert": {
                    "type": "string",
                    "minLength": 0
                },
                "upstream_configuration": {
                    "$ref": "#/definitions/service.Configuration"
                },
                "upstream_http_hostname": {
                    "type": "string"
                },
                "upstream_key": {
                    "type": "string",
                    "minLength": 0
                },
                "upstream_password": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 0
                },
                "upstream_type": {
                    "type": "string"
                },
                "upstream_username": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 0
                }
            }
        },
        "v1.updateUserPasswordRequest": {
            "type": "object",
            "properties": {
                "mfa_passcode": {
                    "type": "string",
                    "maxLength": 12,
                    "minLength": 6
                },
                "new_password": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 8
                },
                "password": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                }
            }
        },
        "v1.updateUserRequest": {
            "type": "object",
            "properties": {
                "accepted_terms": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string",
                    "maxLength": 200,
                    "minLength": 1
                },
                "survey_data": {
                    "$ref": "#/definitions/datatypes.JSONMap"
                }
            }
        }
    },
    "securityDefinitions": {
        "Border0 Token": {
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}