Border0 Socket API

The Socket API from Border0 — 10 operation(s) for socket.

Operations 15

DELETE /socket/{socket_id_or_name}/tunnel/{tunnel_id} Delete one tunnel from a socket by socket ID and tunnel ID #
GET /socket/{socket_id_or_name}/tunnel/{tunnel_id} Show one tunnel from a socket by socket ID and tunnel ID #
DELETE /socket/{socket_id_or_name} Delete a socket by ID #
GET /socket/{socket_id_or_name} Show a socket by ID #
PUT /socket/{socket_id_or_name} Update a socket by ID #
GET /socket/{socket_id_or_name}/customcert Show a custom cert from a socket #
GET /socket/{socket_id_or_name}/tunnel Show all tunnels from a socket #
POST /socket/{socket_id_or_name}/tunnel Create a socket tunnel #
GET /socket/{socket_id}/sessions Show all sessions from a socket by socket ID, paginated including active and killed sessions #
GET /socket Show all sockets #
POST /socket Create a socket #
POST /socket/{socket_id_or_name}/evaluate Evaluate policy for a socket #
POST /socket/{socket_id_or_name}/signkey Generate a signed cert for a tunnel #
POST /socket/{socket_id_or_name}/tunnel/{tunnel_id}/signkey Generate a signed cert for a tunnel #
POST /socket/{socket_id_or_name}/update_session Update session for a socket #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/border0-socket-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

border0-socket-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Border0 Audit Actions Socket API
  description: Border0 is an identity-aware Zero Trust network access platform for securing access to servers, databases, Kubernetes clusters, and internal web services. This REST API manages sockets (protected services), policies, connectors, organizations, identity providers, service accounts, sessions, and audit logs.
  version: '1.0'
  contact:
    name: Border0 Support
    email: support@border0.com
    url: https://docs.border0.com
servers:
- url: https://api.border0.com/api/v1
tags:
- name: Socket
paths:
  /socket/{socket_id_or_name}/tunnel/{tunnel_id}:
    delete:
      security:
      - Border0_Token: []
      summary: Delete one tunnel from a socket by socket ID and tunnel ID
      parameters:
      - description: Socket ID or Name that the tunnel is associated with
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      - description: Tunnel ID
        name: tunnel_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Successfully deleted
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: delete_socket-socket-id-or-name-tunnel-tunnel-id
      tags:
      - Socket
    get:
      security:
      - Border0_Token: []
      summary: Show one tunnel from a socket by socket ID and tunnel ID
      parameters:
      - description: Socket ID or Name that the tunnel is associated with
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      - description: Tunnel ID
        name: tunnel_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.Tunnel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_socket-socket-id-or-name-tunnel-tunnel-id
      tags:
      - Socket
  /socket/{socket_id_or_name}:
    delete:
      security:
      - Border0_Token: []
      summary: Delete a socket by ID
      parameters:
      - description: Socket ID or name
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Successfully deleted
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: delete_socket-socket-id-or-name
      tags:
      - Socket
    get:
      security:
      - Border0_Token: []
      summary: Show a socket by ID
      parameters:
      - description: Socket ID or Name
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.Socket'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_socket-socket-id-or-name
      tags:
      - Socket
    put:
      security:
      - Border0_Token: []
      summary: Update a socket by ID
      parameters:
      - description: Socket ID or Name
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.updateSocketRequest'
        description: Update socket
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.Socket'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: put_socket-socket-id-or-name
      tags:
      - Socket
  /socket/{socket_id_or_name}/customcert:
    get:
      security:
      - Border0_Token: []
      summary: Show a custom cert from a socket
      parameters:
      - description: Socket ID or Name from where the custom cert is configured
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  full_chain:
                    type: string
                  private_key:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_socket-socket-id-or-name-customcert
      tags:
      - Socket
  /socket/{socket_id_or_name}/tunnel:
    get:
      security:
      - Border0_Token: []
      summary: Show all tunnels from a socket
      parameters:
      - description: Socket ID or Namethat the tunnels are associated with
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/serializer.Tunnel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_socket-socket-id-or-name-tunnel
      tags:
      - Socket
    post:
      security:
      - Border0_Token: []
      summary: Create a socket tunnel
      parameters:
      - description: Socket ID or name that the tunnel will be associated with
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
        description: Empty json object
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.Tunnel'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_socket-socket-id-or-name-tunnel
      tags:
      - Socket
  /socket/{socket_id}/sessions:
    get:
      security:
      - Border0_Token: []
      summary: Show all sessions from a socket by socket ID, paginated including active and killed sessions
      parameters:
      - description: Socket ID
        name: socket_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.SessionLogPublicPaginated'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_socket-socket-id-sessions
      tags:
      - Socket
  /socket:
    get:
      security:
      - Border0_Token: []
      summary: Show all sockets
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/serializer.Socket'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_socket
      tags:
      - Socket
    post:
      security:
      - Border0_Token: []
      summary: Create a socket
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.createSocketRequest'
        description: Create socket
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/serializer.Socket'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_socket
      tags:
      - Socket
  /socket/{socket_id_or_name}/evaluate:
    post:
      security:
      - Border0_Token: []
      summary: Evaluate policy for a socket
      parameters:
      - description: Socket ID that the tunnel is associated with
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.evaluatePolicyRequest'
        description: Metadata to evaluate policy
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.evaluatePolicyResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_socket-socket-id-or-name-evaluate
      tags:
      - Socket
  /socket/{socket_id_or_name}/signkey:
    post:
      security:
      - Border0_Token: []
      summary: Generate a signed cert for a tunnel
      parameters:
      - description: Socket ID or Namethat the tunnel is associated with
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/v1.signTunnelKeyRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  signed_ssh_cert:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_socket-socket-id-or-name-signkey
      tags:
      - Socket
  /socket/{socket_id_or_name}/tunnel/{tunnel_id}/signkey:
    post:
      security:
      - Border0_Token: []
      summary: Generate a signed cert for a tunnel
      parameters:
      - description: Socket ID or name that the tunnel is associated with
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      - description: Tunnel ID that the cert will be signed for
        name: tunnel_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/v1.signTunnelKeyRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  signed_ssh_cert:
                    type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_socket-socket-id-or-name-tunnel-tunnel-id-signkey
      tags:
      - Socket
  /socket/{socket_id_or_name}/update_session:
    post:
      security:
      - Border0_Token: []
      summary: Update session for a socket
      parameters:
      - description: Socket ID that the tunnel is associated with
        name: socket_id_or_name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.updateSessionRequest'
        description: Metadata to evaluate policy
        required: true
      responses:
        '204':
          description: Successfully updated
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_socket-socket-id-or-name-update-session
      tags:
      - Socket
components:
  schemas:
    service.DatabaseServiceConfiguration:
      type: object
      properties:
        aws_rds_database_service_configuration:
          $ref: '#/components/schemas/service.AwsRdsDatabaseServiceConfiguration'
        azure_sql_database_service_configuration:
          $ref: '#/components/schemas/service.AzureSqlDatabaseServiceConfiguration'
        database_service_type:
          type: string
        gcp_cloudsql_database_service_configuration:
          $ref: '#/components/schemas/service.GcpCloudSqlDatabaseServiceConfiguration'
        standard_database_service_configuration:
          description: mutually exclusive fields below
          allOf:
          - $ref: '#/components/schemas/service.StandardDatabaseServiceConfiguration'
    service.AwsRdsIamAuthConfiguration:
      type: object
      properties:
        aws_credentials:
          $ref: '#/components/schemas/common.AwsCredentials'
        ca_certificate:
          type: string
        rds_instance_region:
          type: string
        username:
          type: string
    service.GcpCloudSqlDatabaseServiceConfiguration:
      type: object
      properties:
        cloudsql_connector_configuration:
          $ref: '#/components/schemas/service.GcpCloudSqlConnectorAuthConfiguration'
        cloudsql_connector_iam_configuration:
          $ref: '#/components/schemas/service.GcpCloudSqlConnectorIamAuthConfiguration'
        hostname:
          type: string
        port:
          type: integer
        protocol:
          type: string
        tls_auth_configuration:
          $ref: '#/components/schemas/service.DatabaseTlsAuthConfiguration'
        username_and_password_auth_configuration:
          $ref: '#/components/schemas/service.DatabaseUsernameAndPasswordAuthConfiguration'
    service.AwsRdsUsernameAndPasswordAuthConfiguration:
      type: object
      properties:
        ca_certificate:
          type: string
        password:
          type: string
        username:
          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
    service.DatabaseKerberosAuthConfiguration:
      type: object
      properties:
        password:
          type: string
        username:
          type: string
    service.KubectlExecSshServiceConfiguration:
      type: object
      properties:
        aws_eks_kubectl_exec_target_configuration:
          $ref: '#/components/schemas/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: '#/components/schemas/service.StandardKubectlExecTargetConfiguration'
    service.BuiltInSshServiceConfiguration:
      type: object
      properties:
        username:
          type: string
        username_provider:
          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: '#/components/schemas/serializer.SlimConnector'
        custom_domains:
          type: array
          items:
            type: string
        description:
          type: string
        dnsname:
          type: string
        end_to_end_encryption_enabled:
          type: boolean
        name:
          type: string
        org_custom_domain:
          type: string
        policies:
          type: array
          items:
            $ref: '#/components/schemas/serializer.Policy'
        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: '#/components/schemas/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
    service.StandardHttpServiceConfiguration:
      type: object
      properties:
        host_header:
          type: string
        hostname:
          type: string
        port:
          type: integer
    service.StandardSshServiceConfiguration:
      type: object
      properties:
        border0_certificate_auth_configuration:
          $ref: '#/components/schemas/service.Border0CertificateAuthConfiguration'
        hostname:
          type: string
        port:
          type: integer
        private_key_auth_configuration:
          $ref: '#/components/schemas/service.PrivateKeyAuthConfiguration'
        ssh_authentication_type:
          type: string
        username_and_password_auth_configuration:
          description: mutually exclusive fields below
          allOf:
          - $ref: '#/components/schemas/service.UsernameAndPasswordAuthConfiguration'
    service.HttpServiceConfiguration:
      type: object
      properties:
        fileserver_http_service_configuration:
          $ref: '#/components/schemas/service.FileServerHttpServiceConfiguration'
        http_service_type:
          type: string
        standard_http_service_configuration:
          description: mutually exclusive fields below
          allOf:
          - $ref: '#/components/schemas/service.StandardHttpServiceConfiguration'
    models.ConnectorData:
      type: object
      properties:
        config:
          $ref: '#/components/schemas/service.Configuration'
        connector_id:
          type: string
    v1.evaluatePolicyRequest:
      type: object
      required:
      - client_ip
      - session_key
      - user_email
      properties:
        client_ip:
          type: string
        session_key:
          type: string
        user_email:
          type: string
    service.Border0CertificateAuthConfiguration:
      type: object
      properties:
        username:
          type: string
        username_provider:
          type: string
    service.AwsEc2ICSshServiceConfiguration:
      type: object
      properties:
        aws_credentials:
          $ref: '#/components/schemas/common.AwsCredentials'
        ec2_instance_id:
          type: string
        ec2_instance_region:
          type: string
        hostname:
          type: string
        port:
          type: integer
        username:
          type: string
        username_provider:
          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
        killed:
          type: boolean
        last_seen:
          type: string
        metadata:
          $ref: '#/components/schemas/serializer.SessionLogMetadata'
        name:
          type: string
        nickname:
          type: string
        picture:
          type: string
        recordings:
          type: array
          items:
            $ref: '#/components/schemas/serializer.Recording'
        result:
          type: string
        server_name:
          type: string
        server_port:
          type: string
        session_id:
          type: string
        session_type:
          type: string
        socket_id:
          type: string
        sshuser:
          type: string
        start_time:
          type: string
        sub:
          type: string
        user_email:
          type: string
    service.StandardDatabaseServiceConfiguration:
      type: object
      properties:
        authentication_type:
          type: string
        hostname:
          type: string
        kerberos_configuration:
          $ref: '#/components/schemas/service.DatabaseKerberosAuthConfiguration'
        port:
          type: integer
        protocol:
          type: string
        sql_authentication_configuration:
          $ref: '#/components/schemas/service.DatabaseSqlAuthConfiguration'
        tls_auth_configuration:
          $ref: '#/components/schemas/service.DatabaseTlsAuthConfiguration'
        username_and_password_auth_configuration:
          $ref: '#/components/schemas/service.DatabaseUsernameAndPasswordAuthConfiguration'
    service.GcpCloudSqlConnectorIamAuthConfiguration:
      type: object
      properties:
        gcp_credentials_json:
          type: string
        instance_id:
          type: string
        username:
          type: string
    service.VpnTlsServiceConfiguration:
      type: object
      properties:
        routes:
          type: array
          items:
            type: string
        vpn_subnet:
          type: string
    service.AwsSsmSshServiceConfiguration:
      type: object
      properties:
        aws_ssm_ec2_target_configuration:
          description: mutually exclusive fields below
          allOf:
          - $ref: '#/components/schemas/service.AwsSsmEc2TargetConfiguration'
        aws_ssm_ecs_target_configuration:
          $ref: '#/components/schemas/service.AwsSsmEcsTargetConfiguration'
        ssm_target_type:
          type: string
    serializer.Policy:
      type: object
      properties:
        created_at:
          type: string
        deleted:
          type: boolean
        description:
          type: string
        id:
          type: string
        name:
          type: string
        org_id:
          type: string
        org_wide:
          type: boolean
        policy_data:
          $ref: '#/components/schemas/datatypes.JSONMap'
        socket_ids:
          type: array
          items:
            type: string
    service.SshServiceConfiguration:
      type: object
      properties:
        aws_ec2ic_ssh_service_configuration:
          $ref: '#/components/schemas/service.AwsEc2ICSshServiceConfiguration'
        aws_ssm_ssh_service_configuration:
          $ref: '#/components/schemas/service.AwsSsmSshServiceConfiguration'
        built_in_ssh_service_configuration:
          $ref: '#/components/schemas/service.BuiltInSshServiceConfiguration'
    

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/border0/refs/heads/main/openapi/border0-socket-api-openapi.yml