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).

Soracom Virtual Private Gateway API is one of 18 APIs that Soracom publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include IoT, Networking, VPG, Canal, and Door. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

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