Soracom Virtual Private Gateway API

Provision and manage Soracom Virtual Private Gateways (VPG) including Canal (AWS VPC peering), Direct (AWS Direct Connect), Door (IPSec VPN), Gate (reverse-NAT), Junction (packet rules), and Peek (packet capture).

OpenAPI Specification

soracom-vpg-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Soracom Virtual Private Gateway API
  description: Provision and manage Soracom Virtual Private Gateways (Canal, Direct, Door, Gate), Junction packet rules, and
    Peek packet captures.
  version: 20250903-043502
servers:
- description: Japan coverage production API endpoint
  url: https://api.soracom.io/v1
- description: Global coverage production API endpoint
  url: https://g.api.soracom.io/v1
paths:
  /virtual_private_gateways:
    get:
      description: Returns a list of VPGs.
      operationId: listVirtualPrivateGateways
      parameters:
      - description: Tag name of the VPG. Filters through all VPGs that exactly match the tag name. When tag_name is specified,
          tag_value is required.
        in: query
        name: tag_name
        required: false
        schema:
          type: string
      - description: Tag value of the VPG.
        in: query
        name: tag_value
        required: false
        schema:
          type: string
      - description: Tag match mode.
        in: query
        name: tag_value_match_mode
        required: false
        schema:
          default: exact
          enum:
          - exact
          - prefix
          type: string
      - description: Maximum number of results per response page.
        in: query
        name: limit
        required: false
        schema:
          type: integer
      - description: The last VPG ID retrieved on the current page. By specifying this parameter, you can continue to retrieve
          the list from the next VPG onward.
        in: query
        name: last_evaluated_key
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/VirtualPrivateGateway'
                type: array
          description: List of VPGs.
      security:
      - api_key: []
        api_token: []
      summary: List Virtual Private Gateways
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg list
      x-soracom-cli-pagination:
        request:
          param: last_evaluated_key
        response:
          header: x-soracom-next-key
    post:
      description: Create a new VPG.
      operationId: createVirtualPrivateGateway
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVirtualPrivateGatewayRequest'
        description: Request containing information for the new VPG to be created.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualPrivateGateway'
          description: Created
      security:
      - api_key: []
        api_token: []
      summary: Create Virtual Private Gateway
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg create
  /virtual_private_gateways/{vpg_id}:
    get:
      description: Retrieves information about the specified VPG.
      operationId: getVirtualPrivateGateway
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualPrivateGateway'
          description: The specified VPG.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Get Virtual Private Gateway
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg get
  /virtual_private_gateways/{vpg_id}/customer_routes:
    post:
      description: Creates a routing table entry for the specified VPG.
      operationId: createCustomerRoute
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomerRouteRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerRoute'
          description: Created routing table entry
        '400':
          description: Invalid request
        '404':
          description: The specified VPG does not exist
      security:
      - api_key: []
        api_token: []
      summary: Create routing table entry
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg create-customer-route
  /virtual_private_gateways/{vpg_id}/customer_routes/{route_id}:
    delete:
      description: Deletes a routing table entry from the specified VPG.
      operationId: deleteCustomerRoute
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      - description: Target route ID
        in: path
        name: route_id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Deleted routing table entry
        '404':
          description: The specified VPG does not exist
      security:
      - api_key: []
        api_token: []
      summary: Delete routing table entry
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg delete-customer-route
    put:
      description: Updates a routing table entry for the specified VPG.
      operationId: updateCustomerRoute
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      - description: Target route ID
        in: path
        name: route_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerRouteRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerRoute'
          description: Updated routing table entry
        '400':
          description: Invalid request
        '404':
          description: The specified VPG does not exist
      security:
      - api_key: []
        api_token: []
      summary: Update routing table entry
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg update-customer-route
  /virtual_private_gateways/{vpg_id}/fixed_public_ip_addresses:
    delete:
      description: Disables the fixed global IP address option for the VPG.
      operationId: releaseFixedPublicIpAddresses
      parameters:
      - in: path
        name: vpg_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualPrivateGateway'
          description: The fixed global IP address option for the VPG was successfully disabled.
        '400':
          description: The fixed global IP address option for the VPG is already disabled.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Disable the fixed global IP address option for the VPG
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg release-fixed-public-ip-addresses
    post:
      description: Enables the fixed global IP address option for the VPG.
      operationId: assignFixedPublicIpAddresses
      parameters:
      - in: path
        name: vpg_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualPrivateGateway'
          description: The fixed global IP address option for the VPG was successfully enabled.
        '400':
          description: The fixed global IP address option for the VPG is already enabled.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Enable the fixed global IP address option for the VPG
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg set-fixed-public-ip-addresses
  /virtual_private_gateways/{vpg_id}/gate/close:
    post:
      description: Close Soracom Gate on the specified VPG.
      operationId: closeGate
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Soracom Gate is successfully closed on the VPG.
        '400':
          description: Client side error in the request.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Close SORACOM Gate.
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg close-gate
  /virtual_private_gateways/{vpg_id}/gate/disable_privacy_separator:
    post:
      description: Disables Soracom Gate's privacy separator feature on the specified VPG and enables the Gate D2D feature.
      operationId: disableGatePrivacySeparator
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          format: VpgId
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualPrivateGateway'
          description: Disabled the privacy separator successfully
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Disables Soracom Gate's privacy separator feature on the specified VPG
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg disable-gate-privacy-separator
  /virtual_private_gateways/{vpg_id}/gate/enable_privacy_separator:
    post:
      description: Enables Soracom Gate's privacy separator feature on the specified VPG and disables the Gate D2D feature.
      operationId: enableGatePrivacySeparator
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          format: VpgId
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualPrivateGateway'
          description: Enabled the privacy separator successfully
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Enables Soracom Gate privacy separator feature on the specified VPG
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg enable-gate-privacy-separator
  /virtual_private_gateways/{vpg_id}/gate/open:
    post:
      description: Open Soracom Gate on the specified VPG.
      operationId: openGate
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenGateRequest'
        description: Optional configuration parameters for Gate.
      responses:
        '200':
          description: SORACOM Gate is successfully opened on the VPG.
        '400':
          description: Client side error in the request.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Open Soracom Gate
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg open-gate
  /virtual_private_gateways/{vpg_id}/gate/peers:
    get:
      description: List Gate Peers registered in the Virtual Private Gateway.
      operationId: listGatePeers
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/GatePeer'
                type: array
          description: List of Gate Peers registered in the VPG.
        '400':
          description: Client side error in the request.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: List VPG Gate Peers
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg list-gate-peers
    post:
      description: Register a host as a Gate Peer in the Virtual Private Gateway.
      operationId: registerGatePeer
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterGatePeerRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatePeer'
          description: Gate Peer is successfully registered.
        '400':
          description: Client side error in the request.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Register VPG Gate Peer
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg register-gate-peer
  /virtual_private_gateways/{vpg_id}/gate/peers/{outer_ip_address}:
    delete:
      description: Unregister a Gate Peer from the Virtual Private Gateway.
      operationId: unregisterGatePeer
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      - description: ID of the target node.
        in: path
        name: outer_ip_address
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Successfully deregistered the Gate Peer.
        '400':
          description: Client side error in the request.
        '404':
          description: The specified VPG or Peer does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Unregister VPG Gate Peer
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg unregister-gate-peer
  /virtual_private_gateways/{vpg_id}/gate/routing/static/sims/disable:
    post:
      description: Disables SIM-Based Routing.
      operationId: disableSimBasedRouting
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: SIM-Based Routing has been disabled.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Disable SIM-Based Routing
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg disable-sim-based-routing
  /virtual_private_gateways/{vpg_id}/gate/routing/static/sims/enable:
    post:
      description: Enables SIM-Based Routing.
      operationId: enableSimBasedRouting
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      responses:
        '201':
          description: SIM-Based Routing has been enabled.
        '400':
          description: SORACOM Gate is not enabled.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Enable SIM-Based Routing
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg enable-sim-based-routing
  /virtual_private_gateways/{vpg_id}/gate/routing/static/sims/routes:
    put:
      description: Associates a router's LAN IP address range with its SIM ID.
      operationId: putSimBasedRoutingRoutes
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutSimBasedRoutingRoutesRequest'
        description: Specify the LAN IP address range of the router to associate with a SIM ID.
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Client side error in the request.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Associate a router's LAN IP address range with its SIM ID
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg put-sim-based-routing-routes
  /virtual_private_gateways/{vpg_id}/gate/set_vxlan_id:
    post:
      description: Set VXLAN ID for Gate.
      operationId: setVirtualPrivateGatewayVxLanId
      parameters:
      - in: path
        name: vpg_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetVirtualPrivateGatewayVxLanIdRequest'
        required: true
      responses:
        '204':
          description: OK
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Set VXLAN ID for Gate
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg set-vxlan-id
  /virtual_private_gateways/{vpg_id}/ip_address_map:
    get:
      description: 'Retrieves the list of IP address map entries for the specified VPG.

        '
      operationId: listVirtualPrivateGatewayIpAddressMapEntries
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      - description: The maximum number of IP address map entries to retrieve. The response may contain fewer entries than
          the specified value.
        in: query
        name: limit
        required: false
        schema:
          type: integer
      - description: The last IP address retrieved in the previous page. Use this parameter to retrieve the next page of IP
          address map entries.
        in: query
        name: last_evaluated_key
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/IpAddressMapEntry'
                type: array
          description: 'List of IP address map entries associated with the specified VPG.


            **Warning**: The response includes not only entries added via [VirtualPrivateGateway:putVirtualPrivateGatewayIpAddressMapEntry
            API](#/VirtualPrivateGateway/putVirtualPrivateGatewayIpAddressMapEntry), but also automatically assigned IP addresses
            for Gate Peers and the VPG itself.

            '
        '400':
          description: Client side error in the request.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: List VPG IP address map entries
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg list-ip-address-map-entries
      x-soracom-cli-pagination:
        request:
          param: last_evaluated_key
        response:
          header: x-soracom-next-key
    post:
      description: 'Adds or updates an IP address map entry for the specified VPG.


        **Warning**: The [VirtualPrivateGateway:listVirtualPrivateGatewayIpAddressMapEntries API](#/VirtualPrivateGateway/listVirtualPrivateGatewayIpAddressMapEntries)
        response includes entries that are automatically assigned to Gate Peers and the VPG, but these cannot be added or
        updated using the VirtualPrivateGateway:putVirtualPrivateGatewayIpAddressMapEntry API.

        '
      operationId: putVirtualPrivateGatewayIpAddressMapEntry
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutIpAddressMapEntryRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IpAddressMapEntry'
          description: Successfully added or updated the IP address map entry.
        '400':
          description: Client side error in the request.
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Adds or updates an entry in VPG IP address map
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg put-ip-address-map-entry
  /virtual_private_gateways/{vpg_id}/ip_address_map/{key}:
    delete:
      description: 'Deletes an entry from the IP address map of the specified VPG.


        **Warning**: The [VirtualPrivateGateway:listVirtualPrivateGatewayIpAddressMapEntries API](#/VirtualPrivateGateway/listVirtualPrivateGatewayIpAddressMapEntries)
        response includes automatically assigned entries for Gate Peers and the VPG. These entries cannot be deleted using
        the VirtualPrivateGateway:deleteVirtualPrivateGatewayIpAddressMapEntry API.

        '
      operationId: deleteVirtualPrivateGatewayIpAddressMapEntry
      parameters:
      - description: Target VPG ID.
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      - description: Identifier of the IP address map entry to delete (IMSI of the IoT SIM).
        in: path
        name: key
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Successfully deleted the IP address map entry.
        '400':
          description: Client side error in the request.
        '404':
          description: The specified VPG or key does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Delete VPG IP address map entry
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg delete-ip-address-map-entry
  /virtual_private_gateways/{vpg_id}/junction/mirroring/peers:
    post:
      description: Adds node in the list of Junction mirroring peers.
      operationId: createMirroringPeer
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JunctionMirroringPeer'
        description: Mirroring peer
        required: true
      responses:
        '201':
          description: Mirroring peer added/updated
        '404':
          description: No such VPG found
      security:
      - api_key: []
        api_token: []
      summary: Adds node in the list of Junction mirroring peers
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg create-mirroring-peer
  /virtual_private_gateways/{vpg_id}/junction/mirroring/peers/{ipaddr}:
    delete:
      description: Remove peer from the list of Junction mirroring peers.
      operationId: deleteMirroringPeer
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      - description: IP address of mirroring peer
        in: path
        name: ipaddr
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Mirroring peer removed
        '404':
          description: No such VPG found
      security:
      - api_key: []
        api_token: []
      summary: Remove peer from the list of Junction mirroring peers
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg delete-mirroring-peer
    put:
      description: Updates a Junction mirroring peer.
      operationId: updateMirroringPeer
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      - description: Mirroring peer IP address
        in: path
        name: ipaddr
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/AttributeUpdate'
              type: array
        description: List of attributes to update
        required: true
      responses:
        '200':
          description: Mirroring peer updated
        '404':
          description: No such VPG found
      security:
      - api_key: []
        api_token: []
      summary: Updates a Junction mirroring peer
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg update-mirroring-peer
  /virtual_private_gateways/{vpg_id}/junction/set_inspection:
    post:
      description: Sets configuration for Junction inspection feature.
      operationId: setInspectionConfiguration
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JunctionInspectionConfiguration'
        description: Inspection configuration
        required: true
      responses:
        '200':
          description: Configuration added/updated
        '404':
          description: No such VPG found
      security:
      - api_key: []
        api_token: []
      summary: Sets configuration for Junction inspection feature
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg set-inspection
  /virtual_private_gateways/{vpg_id}/junction/set_redirection:
    post:
      description: Sets configuration for Junction redirection feature.
      operationId: setRedirectionConfiguration
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JunctionRedirectionConfiguration'
        description: Redirection configuration
        required: true
      responses:
        '200':
          description: Configuration added/updated
        '404':
          description: No such VPG found
      security:
      - api_key: []
        api_token: []
      summary: Sets configuration for Junction redirection feature
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg set-redirection
  /virtual_private_gateways/{vpg_id}/junction/unset_inspection:
    post:
      description: Unset configuration for Junction inspection feature.
      operationId: unsetInspectionConfiguration
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Configuration unset
        '404':
          description: No such VPG found
      security:
      - api_key: []
        api_token: []
      summary: Unset configuration for Junction inspection feature
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg unset-inspection
  /virtual_private_gateways/{vpg_id}/junction/unset_redirection:
    post:
      description: Unset configuration for Junction redirection feature.
      operationId: unsetRedirectionConfiguration
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Configuration unset
        '404':
          description: No such VPG found
      security:
      - api_key: []
        api_token: []
      summary: Unset configuration for Junction redirection feature
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg unset-redirection
  /virtual_private_gateways/{vpg_id}/packet_capture_sessions:
    get:
      description: List packet capture sessions associated with the VPG.
      operationId: listPacketCaptureSessions
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      - description: ID of the last packet capture session in the previous page. By specifying this parameter, you can continue
          to retrieve the list from the next packet capture session onward.
        in: query
        name: last_evaluated_key
        required: false
        schema:
          default: 'null'
          type: string
      - description: Max number of results in a response.
        in: query
        name: limit
        required: false
        schema:
          default: 10
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/PacketCaptureSession'
                type: array
          description: List of packet capture sessions associated with the VPG
        '400':
          description: Failed to list packet capture sessions associated with the VPG
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: List Packet Capture Sessions associated with the VPG
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg list-packet-capture-sessions
      x-soracom-cli-pagination:
        request:
          param: last_evaluated_key
        response:
          header: x-soracom-next-key
    post:
      description: Create a packet capture session associated with the VPG.
      operationId: createPacketCaptureSession
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PacketCaptureSessionRequest'
        description: A packet capture session request
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PacketCaptureSession'
          description: The packet capture sessions associated with the VPG
        '400':
          description: Failed to create a packet capture session associated with the VPG
        '404':
          description: The specified VPG does not exist.
      security:
      - api_key: []
        api_token: []
      summary: Create a packet capture session associated with the VPG
      tags:
      - VirtualPrivateGateway
      x-soracom-cli:
      - vpg create-packet-capture-session
  /virtual_private_gateways/{vpg_id}/packet_capture_sessions/{session_id}:
    delete:
      description: Delete a packet capture session associated with the VPG.
      operationId: deletePacketCaptureSession
      parameters:
      - description: VPG ID
        in: path
        name: vpg_id
        required: true
        schema:
          type: string
      - description: Packet capture session ID
        in: path
        name: session_id
        required: true
        schema

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