Border0 Socket API

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

OpenAPI Specification

border0-socket-api-openapi.yml Raw ↑
openapi: 3.0.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:
    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.StandardKubectlExecTargetConfiguration:
      type: object
      properties:
        kubeconfig_path:
          type: string
        master_url:
          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.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'
    serializer.Recording:
      type: object
      properties:
        recording_id:
          type: string
        start_time:
          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'
    v1.evaluatePolicyResponse:
      type: object
      properties:
        allowed_actions:
          type: object
          additionalProperties:
            type: array
            items: {}
        info:
          type: object
          additionalProperties:
            type: array
            items:
              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: '#/components/schemas/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
        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: '#/components/schemas/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
    serializer.Tunnel:
      type: object
      properties:
        local_port:
          type: integer
        tunnel_id:
          type: string
        tunnel_server:
          type: string
    v1.BaseErrorResponse:
      type: object
      properties:
        error_message:
          type: string
        status_code:
          type: integer
    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.VpnTlsServiceConfiguration:
      type: object
      properties:
        routes:
          type: array
          items:
            type: string
        vpn_subnet:
          type: string
    service.DatabaseKerberosAuthConfiguration:
      type: object
      properties:
        password:
          type: string
        username:
          type: string
    service.FileServerHttpServiceConfiguration:
      type: object
      properties:
        top_level_directory:
          type: string
    service.DockerExecSshServiceConfiguration:
      type: object
      properties:
        container_name_allowlist:
          type: array
          items:
            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.VpnServiceConfiguration:
      type: object
      properties:
        advertised_routes:
          type: array
          items:
            type: string
        dhcp_pool_subnet:
          type: string
    service.HttpProxyTlsServiceConfiguration:
      type: object
      properties:
        host_allowlist:
          type: array
          items:
            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
    serializer.SlimConnector:
      type: object
      properties:
        connector_id:
          type: string
        name:
          type: string
    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'
    service.RdpServiceConfiguration:
      type: object
      properties:
        hostname:
          type: string
        port:
          type: integer
    service.AwsSsmEcsTargetConfiguration:
      type: object
      properties:
        aws_credentials:
          $ref: '#/components/schemas/common.AwsCredentials'
        ecs_cluster_name:
          type: string
        ecs_cluster_region:
          type: string
        ecs_service_name:
          type: string
    service.BuiltInSshServiceConfiguration:
      type: object
      properties:
        username:
          type: string
        username_provider:
          type: string
    service.Border0CertificateAuthConfiguration:
      type: object
      properties:
        username:
          type: string
        username_provider:
          type: string
    service.DatabaseTlsAuthConfiguration:
      type: object
      properties:
        ca_certificate:
          type: string
        certificate:
          type: string
        key:
          type: string
        password:
          type: string
        username:
          type: string
    service.AwsRdsDatabaseServiceConfiguration:
      type: object
      properties:
        authentication_type:
          type: string
        hostname:
          type: string
        iam_auth_configuration:
          $ref: '#/components/schemas/service.AwsRdsIamAuthConfiguration'
        port:
          type: intege

# --- 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