Perimeter 81 Standard Networks API

The Standard Network API allows you to manage and configure standard networks.

OpenAPI Specification

perimeter-81-standard-networks-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 2.3.0
  title: Harmony SASE Public Application Standard Networks API
  description: 'The YAML for Harmony SASE Public API.

    '
  contact: {}
servers:
- description: SwaggerHub API Auto Mocking
  url: https://virtserver.swaggerhub.com/perimeter81/public-api-yaml/1.0.0
- description: Harmony SASE API US
  url: https://api.perimeter81.com/api/rest
- description: Harmony SASE API EU
  url: https://api.eu.sase.checkpoint.com/api/rest
- description: Harmony SASE API Australia
  url: https://api.au.sase.checkpoint.com/api/rest
- description: Harmony SASE API India
  url: https://api.in.sase.checkpoint.com/api/rest
security:
- bearer: []
tags:
- name: Standard Networks
  description: 'The Standard Network API allows you to manage and configure standard networks.

    '
paths:
  /v2.3/networks/standard:
    get:
      operationId: Standard_getNetworks
      summary: Get all Networks
      description: List all networks
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Network'
                type: array
                description: Network list.
        '401':
          description: Unauthorized
        '403':
          description: Forbbiden
      tags:
      - Standard Networks
    post:
      operationId: Standard_NetworksControllerV2_networkCreate
      summary: Create network
      description: 'Required permissions: `["network:create"]`<br><br>Create networks.'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeployNetworkPayload'
      responses:
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncOperationResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '402':
          description: Insufficient licenses
        '403':
          description: Forbidden
      tags:
      - Standard Networks
  /v2.3/networks/standard/{networkId}:
    delete:
      operationId: Standard_NetworksControllerV2_networkDelete
      summary: Delete network
      description: 'Required permissions: `["network:delete"]`<br><br>Delete network.'
      parameters:
      - name: networkId
        required: true
        in: path
        schema:
          type: string
      responses:
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncOperationResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Network not found
      tags:
      - Standard Networks
    get:
      operationId: Standard_NetworksControllerV2_networkFind
      summary: Get network by Id
      description: 'Required permissions: `["network:read"]`<br><br>List network.'
      parameters:
      - name: networkId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Completed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Network'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Network not found
      tags:
      - Standard Networks
    put:
      operationId: Standard_NetworksControllerV2_networkUpdate
      summary: Update network
      description: 'Required permissions: `["network:update"]`<br><br>Update network.'
      parameters:
      - name: networkId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNetworkDto'
      responses:
        '200':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdatedNetwork'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Network not found
      tags:
      - Standard Networks
  /v2.3/networks/standard/{networkId}/health:
    get:
      operationId: Standard_NetworksControllerV2_getNetworkHealth
      summary: Get network health status
      description: 'Required permissions: `["network:read"]`<br><br>Get health status of all gateways and tunnels in the standard network.'
      parameters:
      - $ref: '#/components/parameters/networkId'
      responses:
        '200':
          description: Health status retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardHealthResponse'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Network not found
      tags:
      - Standard Networks
  /v2.3/networks/standard/status/{statusId}:
    get:
      operationId: Standard_NetworksControllerV2_status
      summary: Get status of asynchronous operations.
      description: 'Required permissions: `["network:read"]`<br><br> status of asynchronous operations.'
      parameters:
      - name: statusId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Completed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncOperationStatus'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Status not found
      tags:
      - Standard Networks
components:
  schemas:
    NetworkTunnelIpsecSingle:
      allOf:
      - $ref: '#/components/schemas/NetworkTunnelBase'
      - $ref: '#/components/schemas/NetworkIpsecBase'
    StandardHealthCheckMeta:
      type: object
      properties:
        networkId:
          type: string
          description: ID of the network
        instanceId:
          type: string
          description: ID of the instance (gateway or tunnel)
        tunnelName:
          type: string
          description: Name of the tunnel (only for tunnel type)
      required:
      - networkId
      - instanceId
      additionalProperties: false
    Network:
      allOf:
      - $ref: '#/components/schemas/BasicNetwork'
      - type: object
        properties:
          regions:
            items:
              $ref: '#/components/schemas/NetworkRegion'
            type: array
            description: Network regions list.
        required:
        - regions
    NetworkInstance:
      allOf:
      - $ref: '#/components/schemas/BaseDates'
      - type: object
        properties:
          network:
            type: string
            description: ID of the network.
          region:
            type: string
            description: ID of the network region.
          instanceType:
            type: string
          imageType:
            type: string
          imageVersion:
            type: string
          dns:
            type: string
          ip:
            type: string
          tunnels:
            items:
              $ref: '#/components/schemas/NetworkTunnel'
            type: array
            description: List of network tunnels.
          id:
            type: string
            description: Unique ID.
          tenantId:
            type: string
            description: ID of the tenant.
        required:
        - network
        - region
        - instanceType
        - imageType
        - imageVersion
        - dns
        - ip
        - tunnels
        - id
        - tenantId
    IP:
      type: string
      format: ipv4
    IPSecAdvancedSettings:
      type: object
      properties:
        keyExchange:
          type: string
          enum:
          - ikev1
          - ikev2
        ikeLifeTime:
          $ref: '#/components/schemas/Lifetime'
        lifetime:
          $ref: '#/components/schemas/Lifetime'
        dpdDelay:
          $ref: '#/components/schemas/DPDTime'
        dpdTimeout:
          $ref: '#/components/schemas/DPDTime'
        phase1:
          $ref: '#/components/schemas/IPSecPhaseConfig'
        phase2:
          $ref: '#/components/schemas/IPSecPhaseConfig'
      required:
      - keyExchange
      - ikeLifeTime
      - lifetime
      - dpdDelay
      - dpdTimeout
      - phase1
      - phase2
      additionalProperties: false
    StandardHealthCheckType:
      type: string
      enum:
      - gateway
      - tunnel
      description: Type of health check component for standard networks
    NetworkTunnelOpenvpn:
      allOf:
      - $ref: '#/components/schemas/NetworkTunnelBase'
      - type: object
        properties:
          passphrase:
            $ref: '#/components/schemas/Passphrase'
          username:
            type: string
            description: Openvpn username.
        required:
        - passphrase
        - username
        additionalProperties: false
    ASN:
      type: integer
      description: Autonomous System Number (ASN) for BGP routing. It will be automatically assigned an ASN once creating the first dynamic tunnel in this network. The network ASN can never be changed once it is set.
      oneOf:
      - minimum: 1
        maximum: 64496
        description: Public ASN range
      - minimum: 64512
        maximum: 65535
        description: Private ASN range (16-bit)
      - minimum: 131072
        maximum: 4294967295
        description: Private ASN range (32-bit)
    IPSecAlgorithms:
      type: object
      properties:
        auth:
          minLength: 1
          uniqueItems: true
          type: array
          items:
            type: string
            enum:
            - md5
            - sha1
            - sha384
            - sha256
            - sha512
            - aesxcbc
            - aescmac
            - prfmd5
            - prfsha1
            - prfaesxcbc
            - prfaescmac
            - prfsha256
            - prfsha384
            - prfsha512
        encryption:
          minLength: 1
          uniqueItems: true
          type: array
          items:
            type: string
            enum:
            - 3des
            - blowfish128
            - blowfish192
            - blowfish256
            - aes128
            - aes192
            - aes256
            - aes128ctr
            - aes192ctr
            - aes256ctr
            - camellia128
            - camellia192
            - camellia256
            - camellia128ctr
            - camellia192ctr
            - camellia256ctr
            - aes128ccm8
            - aes192ccm8
            - aes256ccm8
            - aes128ccm16
            - aes192ccm16
            - aes256ccm16
            - aes128gcm8
            - aes192gcm8
            - aes256gcm8
            - aes128gcm16
            - aes192gcm16
            - aes256gcm16
            - camellia128ccm16
            - camellia192ccm16
            - camellia256ccm16
            - chacha20poly1305
    AsyncOperationResult:
      type: object
      properties:
        resource:
          type: string
        statusCode:
          type: integer
        reason:
          items:
            type: string
          type: array
          description: Reasons list.
    BaseNetworkDto:
      properties:
        name:
          type: string
          description: Network name
        tags:
          items:
            type: string
          type: array
          description: List of network tags
    NetworkHaTunnelID:
      allOf:
      - $ref: '#/components/schemas/BaseDates'
      - type: object
        properties:
          network:
            type: string
            description: ID of the network.
          tunnels:
            type: array
            items:
              type: string
          type:
            type: string
            pattern: ipsec
          tenantId:
            type: string
            description: tenantId.
          id:
            type: string
            description: id.
        required:
        - network
        - tunnels
        - type
        - tenantId
        - id
        additionalProperties: false
    IPSecPhaseConfig:
      allOf:
      - $ref: '#/components/schemas/IPSecAlgorithms'
      - $ref: '#/components/schemas/IPSecPhaseCommon'
    NetworkTunnel:
      anyOf:
      - $ref: '#/components/schemas/NetworkTunnelOpenvpn'
      - $ref: '#/components/schemas/NetworkTunnelWireguard'
      - $ref: '#/components/schemas/NetworkTunnelIpsecSingle'
      - $ref: '#/components/schemas/NetworkTunnelIpsecRedundant'
    Lifetime:
      type: string
      pattern: ^((1[0-9]|[2-9][0-9]|[1-9][0-9]{2,3}|[1-7][0-9]{4}|8[0-5][0-9]{3}|86[0-3][0-9]{2}|86400)s)|(([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|1[0-3][0-9][0-9]|14[0-3][0-9]|1440)m)|(([1-9]|1[0-9]|2[0-4])h)$
    BasicNetwork:
      allOf:
      - $ref: '#/components/schemas/BaseDates'
      - type: object
        properties:
          dns:
            type: string
            description: DNS of the network.
          subnet:
            type: string
            description: Subnet of the network.
          accessType:
            enum:
            - public
            - private
            type: string
          applications:
            items:
              type: string
            type: array
            description: List of IDs of assigned applications.
          tags:
            items:
              type: string
            type: array
            description: List of network tags.
          name:
            type: string
            description: Network name.
          isDefault:
            type: boolean
            description: Indicates that the network is default.
          id:
            type: string
            description: Unique ID.
          tenantId:
            type: string
            description: ID of the tenant.
          asn:
            $ref: '#/components/schemas/ASN'
        required:
        - dns
        - subnet
        - accessType
        - applications
        - tags
        - name
        - isDefault
        - id
        - tenantId
    AsyncOperationStatus:
      type: object
      properties:
        completed:
          type: boolean
        result:
          $ref: '#/components/schemas/AsyncOperationResult'
    DeployNetworkPayload:
      properties:
        network:
          $ref: '#/components/schemas/CreateNetworkPayload'
        regions:
          items:
            $ref: '#/components/schemas/CreateRegionInNetworkPayload'
          type: array
          description: Region list.
      type: object
      required:
      - network
      - regions
    NetworkIpsecBase:
      allOf:
      - $ref: '#/components/schemas/IPSecAdvancedSettings'
      - type: object
        properties:
          right:
            $ref: '#/components/schemas/IP'
          rightID:
            oneOf:
            - $ref: '#/components/schemas/IP'
            - type: string
              pattern: ^[a-zA-Z0-9]{3,25}$
          passphrase:
            $ref: '#/components/schemas/Passphrase'
          dpdAction:
            type: string
            description: dpdAction.
          leftSubnets:
            minLength: 1
            uniqueItems: true
            type: array
            items:
              type: string
          rightSubnets:
            minLength: 1
            uniqueItems: true
            type: array
            items:
              type: string
        required:
        - right
        - rightID
        - passphrase
        - dpdAction
        - leftSubnets
        - rightSubnets
        additionalProperties: false
    IPSecPhaseCommon:
      type: object
      properties:
        dh:
          description: Diffie Helman encryption
          minLength: 0
          uniqueItems: true
          type: array
          items:
            type: integer
            enum:
            - 2
            - 5
            - 14
            - 19
            - 20
            - 21
            - 31
      required:
      - auth
      - encryption
      - dh
      additionalProperties: false
    Passphrase:
      type: string
      pattern: ^[$a-zA-Z1-9_\/\.][$a-zA-Z0-9_\/\.]{7,101}$
    StandardHealthCheck:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/StandardHealthCheckType'
        meta:
          $ref: '#/components/schemas/StandardHealthCheckMeta'
        status:
          $ref: '#/components/schemas/HealthStatus'
      required:
      - type
      - meta
      - status
      additionalProperties: false
    BaseDates:
      type: object
      properties:
        createdAt:
          format: date-time
          type: string
          description: The date when this record was created.
        updatedAt:
          format: date-time
          type: string
          description: The date of last update of the record.
      required:
      - createdAt
      additionalProperties: false
    NetworkRegion:
      allOf:
      - $ref: '#/components/schemas/BaseDates'
      - type: object
        properties:
          network:
            type: string
            description: ID of the network.
          dns:
            type: string
            description: DNS of the region.
          name:
            type: string
            description: Name of the network region.
          instances:
            items:
              $ref: '#/components/schemas/NetworkInstance'
            type: array
            description: Network instances.
          id:
            type: string
            description: Unique ID.
          tenantId:
            type: string
            description: ID of the tenant.
        required:
        - network
        - dns
        - name
        - instances
        - id
        - tenantId
    UpdateNetworkDto:
      type: object
      properties:
        network:
          $ref: '#/components/schemas/BaseNetworkDto'
      required:
      - network
    DPDTime:
      type: string
      pattern: ^([5-9]|[1-5][0-9]|60)s$
    NetworkTunnelWireguard:
      allOf:
      - $ref: '#/components/schemas/NetworkTunnelBase'
      - type: object
        properties:
          leftAllowedIP:
            minLength: 1
            uniqueItems: true
            type: array
            items:
              type: string
          leftEndpoint:
            $ref: '#/components/schemas/IP'
          vault:
            type: string
            description: vault.
          requestConfigToken:
            type: string
            description: requestConfigToken.
        required:
        - leftAllowedIP
        - leftEndpoint
        - vault
        - requestConfigToken
        additionalProperties: false
    StandardHealthResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/StandardHealthCheck'
          description: List of health checks for standard networks (includes gateways and tunnels)
      required:
      - data
      additionalProperties: false
    NetworkTunnelIpsecRedundant:
      allOf:
      - $ref: '#/components/schemas/NetworkTunnelBase'
      - $ref: '#/components/schemas/NetworkIpsecBase'
      - type: object
        properties:
          haTunnelID:
            $ref: '#/components/schemas/NetworkHaTunnelID'
          rightASN:
            $ref: '#/components/schemas/ASN'
          rightPrivateIP:
            $ref: '#/components/schemas/IP'
          leftPrivateIP:
            $ref: '#/components/schemas/IP'
        required:
        - haTunnelID
        - rightASN
        - rightPrivateIP
        - leftPrivateIP
        additionalProperties: false
    HealthStatus:
      type: string
      enum:
      - passing
      - critical
      - unknown
      description: Health status of the component
    CreateNetworkPayload:
      properties:
        subnet:
          type: string
          maxLength: 20
          description: Subnet of the network. Cannot be changed later. Allowed private subnet ranges are 10.0.0.0/12-22, 172.16.0.0/12-22, 192.168.0.0/16-22, or 198.18.0.0/15-22.
          default: 10.255.0.0/16
        name:
          type: string
          description: Network name.
          minLength: 5
          maxLength: 32
        tags:
          items:
            type: string
          type: array
          description: List of network tags.
      type: object
      required:
      - name
    AsyncOperationResponse:
      type: object
      properties:
        statusUrl:
          type: string
        samplingTime:
          type: integer
    UpdatedNetwork:
      allOf:
      - $ref: '#/components/schemas/BasicNetwork'
      - type: object
        properties:
          regions:
            items:
              type: string
            type: array
            description: Network regions id list.
        required:
        - regions
    NetworkTunnelBase:
      allOf:
      - type: object
        properties:
          id:
            type: string
            description: Unique ID.
          network:
            type: string
            description: ID of the network.
          region:
            type: string
            description: ID of the network region.
          instance:
            type: string
            description: ID of the network instance.
          interfaceName:
            type: string
          type:
            enum:
            - connector
            - ipsec
            - openvpn
            type: string
          isHA:
            type: boolean
            description: Indicates if it's a redundant tunnel.
          tenantId:
            type: string
            description: ID of the tenant.
        required:
        - id
        - network
        - region
        - instance
        - interfaceName
        - type
        - isHA
        - tenantId
        additionalProperties: false
      - $ref: '#/components/schemas/BaseDates'
    ScaleUnitsCount:
      type: integer
      description: 'Number of scale units for the region. Scale units determine the capacity and performance level of the enhanced region.

        Higher values provide greater throughput and connection capacity.

        '
      minimum: 1
      maximum: 10
    CreateRegionInNetworkPayload:
      properties:
        harmonySaseRegionId:
          type: string
          description: Harmony SASE region ID, Take id from GET Harmony sases regions endpoint (/networks/enhanced/harmony-sase-regions).
        idle:
          type: boolean
          description: Create the gateway as disabled if true.
          default: true
        scaleUnits:
          allOf:
          - $ref: '#/components/schemas/ScaleUnitsCount'
          - default: 1
      type: object
      required:
      - harmonySaseRegionId
      - idle
      additionalProperties: false
  parameters:
    networkId:
      name: networkId
      in: path
      required: true
      schema:
        type: string
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http