openapi: 3.0.0
info:
  description: This is the OAS 3.0 specification for the Firewall APIs in Sophos Central.
  version: 1.5.0
  contact:
    name: Sophos Central APIs
    email: apis@sophos.com
    url: 'https://developer.sophos.com'
  title: Firewall API
tags:
  - name: Firewall Config
    description: >-
      Retrieve threat-feeds, update threat-feeds, delete indicators, update
      indicator, retrieve indicator, query transaction.
  - name: Firewall Config Import Export
    description: >-
      Export and import firewall configurations, and retrieve the transaction
      details.
  - name: Firewall Groups
    description: >-
      Create group, update group, retrieve groups, delete group, retrieve
      synchronization status for the firewalls in a group.
  - name: Firewalls
    description: >-
      Retrieve firewalls, update firewalls, delete firewalls from Sophos
      Central.
servers:
  - url: 'https://api-{dataRegion}.central.sophos.com/firewall/v1'
    description: Regional service in the production environment.
    variables:
      dataRegion:
        description: The data region where tenant data is stored.
        default: eu01
        enum:
          - eu01
          - eu02
          - us01
          - us02
          - us03
          - ca01
          - au01
          - jp01
          - in01
          - br01
          - ae01
security:
  - bearerAuth: []
paths:
  /firewalls:
    get:
      x-soph-permissions: 'fwcm.firewall.group:read'
      summary: List of firewalls
      description: List of firewalls.
      operationId: listFirewalls
      tags:
        - Firewalls
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: page
          in: query
          description: 'The page number to fetch, starting with 1.'
          required: false
          schema:
            type: integer
            default: 1
        - in: query
          name: pageTotal
          description: >-
            Whether the number of pages should be calculated and returned in the
            response.
          required: false
          schema:
            type: boolean
            default: false
        - in: query
          name: pageSize
          description: The size of the page requested.
          required: false
          schema:
            type: integer
            default: 100
        - name: groupId
          in: query
          description: >-
            Firewall group ID, or 'ungrouped'. 'ungrouped' is a virtual group
            that hold all firewalls that aren't part of a firewall group.
          required: false
          schema:
            type: string
        - name: search
          in: query
          description: Search.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: List of firewalls.
          content:
            application/json:
              schema:
                type: object
                required:
                  - items
                  - pages
                properties:
                  items:
                    type: array
                    description: Firewalls.
                    items:
                      description: Firewall.
                      type: object
                      required:
                        - id
                        - tenant
                        - serialNumber
                        - hostname
                        - name
                        - externalIpv4Addresses
                        - status
                        - createdBy
                        - createdAt
                      properties:
                        id:
                          type: string
                          format: uuid
                        cluster:
                          type: object
                          description: High availability cluster.
                          required:
                            - id
                            - mode
                            - status
                            - peers
                          properties:
                            id:
                              type: string
                              format: uuid
                            mode:
                              description: High availability mode.
                              type: string
                              format: enum
                              enum:
                                - activeActive
                                - activePassive
                            status:
                              description: High availability status.
                              type: string
                              format: enum
                              enum:
                                - auxiliary
                                - primary
                                - standalone
                                - fault
                            peers:
                              type: array
                              description: >-
                                Auxiliary firewall for high availability primary
                                firewall or vice-versa.
                              items:
                                type: object
                                required:
                                  - id
                                  - serialNumber
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                  serialNumber:
                                    type: string
                        tenant:
                          type: object
                          description: Tenant ID.
                          required:
                            - id
                          properties:
                            id:
                              description: Tenant ID.
                              type: string
                              format: uuid
                        serialNumber:
                          type: string
                        group:
                          type: object
                          description: Group ID.
                          required:
                            - id
                          properties:
                            id:
                              type: string
                              format: uuid
                              description: Group ID.
                            name:
                              type: string
                              minLength: 1
                              maxLength: 250
                              description: Group name.
                        hostname:
                          type: string
                          minLength: 1
                          maxLength: 250
                        name:
                          type: string
                          minLength: 3
                          maxLength: 40
                        firmwareVersion:
                          type: string
                        externalIpv4Addresses:
                          type: array
                          items:
                            type: string
                            format: ipv4
                        model:
                          type: string
                        status:
                          type: object
                          description: Firewall status.
                          required:
                            - managingStatus
                            - reportingStatus
                            - connected
                            - suspended
                          properties:
                            managingStatus:
                              description: Shows if the firewall is managed.
                              type: string
                              format: enum
                              enum:
                                - approvedByCustomer
                                - approvalPending
                                - rejectedByCustomer
                                - revokedByCustomer
                                - revokedByPartner
                                - requestNotSent
                                - claimed
                                - unclaimed
                                - waitingForDeployment
                            reportingStatus:
                              description: Shows if Sophos Central Reporting is turned on.
                              type: string
                              format: enum
                              enum:
                                - approvedByCustomer
                                - approvalPending
                                - requestNotSent
                            connected:
                              type: boolean
                            suspended:
                              type: boolean
                        stateChangedAt:
                          type: string
                          format: date-time
                        capabilities:
                          type: array
                          description: Firewall capability.
                          items:
                            type: string
                            description: Firewall capability.
                            enum:
                              - highAvailability
                              - sdwanGroup
                              - configImport
                              - default
                              - sdwanMultiGroup
                              - cloudAutoScale
                        createdBy:
                          type: object
                          required:
                            - accountType
                            - accountId
                          properties:
                            id:
                              description: Principal email or client ID.
                              type: string
                            type:
                              description: Principal type.
                              type: string
                              format: enum
                              enum:
                                - user
                                - service
                            name:
                              description: User principal name.
                              type: string
                            accountType:
                              type: string
                              description: Account type.
                              enum:
                                - partner
                                - tenant
                            accountId:
                              description: Account ID.
                              type: string
                              format: uuid
                        createdAt:
                          type: string
                          format: date-time
                        updatedBy:
                          type: object
                          required:
                            - accountType
                            - accountId
                          properties:
                            id:
                              description: Principal email or client ID.
                              type: string
                            type:
                              description: Principal type.
                              type: string
                              format: enum
                              enum:
                                - user
                                - service
                            name:
                              description: User principal name.
                              type: string
                            accountType:
                              type: string
                              description: Account type.
                              enum:
                                - partner
                                - tenant
                            accountId:
                              description: Account ID.
                              type: string
                              format: uuid
                        updatedAt:
                          type: string
                          format: date-time
                        geoLocation:
                          description: Geolocation.
                          type: object
                          required:
                            - latitude
                            - longitude
                          properties:
                            latitude:
                              description: Latitude.
                              type: string
                            longitude:
                              description: Longitude.
                              type: string
                    uniqueItems: true
                  pages:
                    type: object
                    description: Pagination information for the response object.
                    required:
                      - current
                      - size
                      - maxSize
                    properties:
                      current:
                        type: integer
                        description: The 1-based page number being returned.
                      total:
                        type: integer
                        description: >-
                          (Optional) The total number of pages that exist, if
                          pageTotal=true in the request.
                      items:
                        type: integer
                        description: >-
                          (Optional) The total number of items across all pages,
                          if pageTotal=true in the request.
                      size:
                        type: integer
                        description: The size of the page being returned.
                      maxSize:
                        type: integer
                        description: The maximum page size that can be requested.
              examples:
                Firewalls:
                  value:
                    items:
                      - id: 39df20ba-7330-41ae-9071-0ac682bdd1e6
                        cluster:
                          id: 6a72014b-ae91-4d50-807a-d3601e44b9b7
                          mode: activeActive
                          status: primary
                          peers:
                            id: e2875239-be72-4b3e-85f2-37ec51fe3cbd
                            serialNumber: SFDemo-ta-xgs107w-07
                        tenant:
                          id: 3e382b8e-49fd-4cd9-8360-a364371d7650
                        serialNumber: C01001JYCGB4J30
                        group:
                          id: ab83681f-aff6-4c2d-b0e5-1e9960fa5ce7
                          name: Bangalore Group
                        hostname: FW-1
                        name: fw-label
                        externalIpv4Addresses:
                          - 111.93.156.226
                          - 125.16.229.10
                        firmwareVersion: SF01V_SO01_19.0.0.294
                        model: SFVUNL_SO01_SFOS 19.0.0 GA-Build294
                        status:
                          managing: approvalPending
                          reporting: approvalPending
                          connected: true
                          suspended: false
                        stateChangedAt: '2022-04-01T17:49:26.400Z'
                        capabilities:
                          - sdwanGroup
                        geoLocation:
                          latitude: '20.64'
                          longitude: '22.43'
                        createdBy:
                          id: 9f0a6bf4-1fa6-407a-aa1d-4b888a626bb3
                          type: user
                          name: Joe Bloggs
                          accountType: tenant
                          accountId: 98be8a40-ea9e-488e-b7d1-200d924cdb54
                        createdAt: '2021-10-25T05:27:39.467Z'
                        updatedAt: '2022-04-01T18:08:26.472Z'
                        updatedBy:
                          id: 0ab38272-0d0c-4425-936c-8e45a289169e
                          type: user
                          name: Jane Doe
                          accountType: partner
                          accountId: b2f5d2d4-a041-494c-a3a2-a45219b6349a
                    pages:
                      current: 1
                      total: 1
                      items: 1
                      size: 100
                      maxSize: 1000
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewalls/{firewallId}':
    patch:
      x-soph-permissions: 'fwcm.firewall.group:write'
      summary: Update firewall
      description: Update firewalls with supplied values.
      operationId: updateFirewallById
      tags:
        - Firewalls
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Firewall update.
              properties:
                name:
                  description: Firewall name.
                  type: string
                  minLength: 3
                  maxLength: 40
                geoLocation:
                  description: Geolocation.
                  type: object
                  required:
                    - latitude
                    - longitude
                  properties:
                    latitude:
                      description: Latitude.
                      type: string
                    longitude:
                      description: Longitude.
                      type: string
            examples:
              FirewallPatchRequest:
                value:
                  name: FW-label
                  geoLocation:
                    latitude: '20.64'
                    longitude: '122.43'
      responses:
        '200':
          description: Firewall updated successfully.
          content:
            application/json:
              schema:
                description: Firewall.
                type: object
                required:
                  - id
                  - tenant
                  - serialNumber
                  - hostname
                  - name
                  - externalIpv4Addresses
                  - status
                  - createdBy
                  - createdAt
                properties:
                  id:
                    type: string
                    format: uuid
                  cluster:
                    type: object
                    description: High availability cluster.
                    required:
                      - id
                      - mode
                      - status
                      - peers
                    properties:
                      id:
                        type: string
                        format: uuid
                      mode:
                        description: High availability mode.
                        type: string
                        format: enum
                        enum:
                          - activeActive
                          - activePassive
                      status:
                        description: High availability status.
                        type: string
                        format: enum
                        enum:
                          - auxiliary
                          - primary
                          - standalone
                          - fault
                      peers:
                        type: array
                        description: >-
                          Auxiliary firewall for high availability primary
                          firewall or vice-versa.
                        items:
                          type: object
                          required:
                            - id
                            - serialNumber
                          properties:
                            id:
                              type: string
                              format: uuid
                            serialNumber:
                              type: string
                  tenant:
                    type: object
                    description: Tenant ID.
                    required:
                      - id
                    properties:
                      id:
                        description: Tenant ID.
                        type: string
                        format: uuid
                  serialNumber:
                    type: string
                  group:
                    type: object
                    description: Group ID.
                    required:
                      - id
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Group ID.
                      name:
                        type: string
                        minLength: 1
                        maxLength: 250
                        description: Group name.
                  hostname:
                    type: string
                    minLength: 1
                    maxLength: 250
                  name:
                    type: string
                    minLength: 3
                    maxLength: 40
                  firmwareVersion:
                    type: string
                  externalIpv4Addresses:
                    type: array
                    items:
                      type: string
                      format: ipv4
                  model:
                    type: string
                  status:
                    type: object
                    description: Firewall status.
                    required:
                      - managingStatus
                      - reportingStatus
                      - connected
                      - suspended
                    properties:
                      managingStatus:
                        description: Shows if the firewall is managed.
                        type: string
                        format: enum
                        enum:
                          - approvedByCustomer
                          - approvalPending
                          - rejectedByCustomer
                          - revokedByCustomer
                          - revokedByPartner
                          - requestNotSent
                          - claimed
                          - unclaimed
                          - waitingForDeployment
                      reportingStatus:
                        description: Shows if Sophos Central Reporting is turned on.
                        type: string
                        format: enum
                        enum:
                          - approvedByCustomer
                          - approvalPending
                          - requestNotSent
                      connected:
                        type: boolean
                      suspended:
                        type: boolean
                  stateChangedAt:
                    type: string
                    format: date-time
                  capabilities:
                    type: array
                    description: Firewall capability.
                    items:
                      type: string
                      description: Firewall capability.
                      enum:
                        - highAvailability
                        - sdwanGroup
                        - configImport
                        - default
                        - sdwanMultiGroup
                        - cloudAutoScale
                  createdBy:
                    type: object
                    required:
                      - accountType
                      - accountId
                    properties:
                      id:
                        description: Principal email or client ID.
                        type: string
                      type:
                        description: Principal type.
                        type: string
                        format: enum
                        enum:
                          - user
                          - service
                      name:
                        description: User principal name.
                        type: string
                      accountType:
                        type: string
                        description: Account type.
                        enum:
                          - partner
                          - tenant
                      accountId:
                        description: Account ID.
                        type: string
                        format: uuid
                  createdAt:
                    type: string
                    format: date-time
                  updatedBy:
                    type: object
                    required:
                      - accountType
                      - accountId
                    properties:
                      id:
                        description: Principal email or client ID.
                        type: string
                      type:
                        description: Principal type.
                        type: string
                        format: enum
                        enum:
                          - user
                          - service
                      name:
                        description: User principal name.
                        type: string
                      accountType:
                        type: string
                        description: Account type.
                        enum:
                          - partner
                          - tenant
                      accountId:
                        description: Account ID.
                        type: string
                        format: uuid
                  updatedAt:
                    type: string
                    format: date-time
                  geoLocation:
                    description: Geolocation.
                    type: object
                    required:
                      - latitude
                      - longitude
                    properties:
                      latitude:
                        description: Latitude.
                        type: string
                      longitude:
                        description: Longitude.
                        type: string
              examples:
                Firewall:
                  value:
                    id: 39df20ba-7330-41ae-9071-0ac682bdd1e6
                    cluster:
                      id: 6a72014b-ae91-4d50-807a-d3601e44b9b7
                      mode: activeActive
                      status: primary
                      peers:
                        id: e2875239-be72-4b3e-85f2-37ec51fe3cbd
                        serialNumber: SFDemo-ta-xgs107w-07
                    tenant:
                      id: 3e382b8e-49fd-4cd9-8360-a364371d7650
                    serialNumber: C01001JYCGB4J30
                    group:
                      id: ab83681f-aff6-4c2d-b0e5-1e9960fa5ce7
                      name: Bangalore Group
                    hostname: FW-1
                    name: fw-label
                    externalIpv4Addresses:
                      - 111.93.156.226
                      - 125.16.229.10
                    firmwareVersion: SF01V_SO01_19.0.0.294
                    model: SFVUNL_SO01_SFOS 19.0.0 GA-Build294
                    status:
                      managing: approvalPending
                      reporting: approvalPending
                      connected: true
                      suspended: false
                    stateChangedAt: '2022-04-01T17:49:26.400Z'
                    capabilities:
                      - sdwanGroup
                    geoLocation:
                      latitude: '20.64'
                      longitude: '22.43'
                    createdBy:
                      id: 9f0a6bf4-1fa6-407a-aa1d-4b888a626bb3
                      type: user
                      name: Joe Bloggs
                      accountType: tenant
                      accountId: 98be8a40-ea9e-488e-b7d1-200d924cdb54
                    createdAt: '2021-10-25T05:27:39.467Z'
                    updatedAt: '2022-04-01T18:08:26.472Z'
                    updatedBy:
                      id: 0ab38272-0d0c-4425-936c-8e45a289169e
                      type: user
                      name: Jane Doe
                      accountType: partner
                      accountId: b2f5d2d4-a041-494c-a3a2-a45219b6349a
        '400':
          description: Invalid firewall ID.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Can't find firewall.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '409':
          description: Firewall name already in use.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
    delete:
      x-soph-permissions: 'fwcm.firewall.group:write'
      summary: Delete firewall
      description: Delete firewall using its ID.
      operationId: deleteFirewallById
      tags:
        - Firewalls
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Firewall deleted successfully.
          content:
            application/json:
              schema:
                type: object
                description: Response to a previous request to delete an item.
                required:
                  - deleted
                properties:
                  deleted:
                    type: boolean
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Firewall not found with given ID.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewalls/{firewallId}/action':
    post:
      x-soph-permissions: 'fwcm.firewall.group:write'
      summary: Run action
      description: Action you want to do to a firewall.
      operationId: runAction
      tags:
        - Firewalls
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Action you want to do on a firewall.
              required:
                - action
              properties:
                action:
                  type: string
                  description: Action type.
                  enum:
                    - approveManagement
            examples:
              ActionRequest:
                value:
                  action: approveManagement
      responses:
        '201':
          description: Firewall action completed successfully.
          content:
            application/json:
              schema:
                type: object
                description: Firewall action status.
                required:
                  - status
                  - action
                properties:
                  status:
                    type: string
                    description: Action status.
                    enum:
                      - succeeded
                      - failed
                  action:
                    type: string
                    description: Action type.
                    enum:
                      - approveManagement
              examples:
                ActionResponse:
                  value:
                    status: succeeded
                    action: approveManagement
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Can't find firewall.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  /firewalls/actions/firmware-upgrade-check:
    post:
      x-soph-permissions: 'fwcm.firewall.group:read'
      summary: Check firmware
      description: Check firmware for firewalls.
      operationId: checkFirmware
      tags:
        - Firewalls
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Check firmware on firewalls.
              required:
                - firewalls
              properties:
                firewalls:
                  type: array
                  description: Firewall IDs.
                  items:
                    type: string
                    format: uuid
                  maxItems: 1000
                  uniqueItems: true
            examples:
              CheckFirmwareRequest:
                value:
                  firewalls:
                    - c83c9481-f63c-4eb8-8793-e81eb9d66ef4
                    - a83c9481-f63c-4eb8-8793-e81eb9d66ef5
      responses:
        '201':
          description: List of available upgrades.
          content:
            application/json:
              schema:
                type: object
                description: Available firewall upgrades.
                properties:
                  firewalls:
                    type: array
                    items:
                      description: Available firewall upgrades.
                      type: object
                      required:
                        - id
                        - serialNumber
                        - firmwareVersion
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: Firewall ID.
                        serialNumber:
                          type: string
                          description: Serial number of firewall.
                        firmwareVersion:
                          type: string
                          description: Current firmware version of firewall.
                        upgradeToVersion:
                          type: array
                          description: Upgrade versions for firewall.
                          items:
                            type: string
                          uniqueItems: true
                    uniqueItems: true
                  firmwareVersions:
                    type: array
                    items:
                      type: object
                      description: Available firmware information.
                      required:
                        - size
                        - version
                      properties:
                        bugs:
                          type: array
                          description: List of issues from the published release notes.
                          items:
                            type: string
                        news:
                          type: array
                          description: News from the published release notes.
                          items:
                            type: string
                        size:
                          description: Firmware download size.
                          type: string
                        version:
                          description: Firmware version.
                          type: string
                    uniqueItems: true
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Can't find firewall.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  /firewalls/actions/firmware-upgrade:
    post:
      x-soph-permissions: 'fwcm.firewall.group:write'
      summary: Upgrade firewall
      description: Upgrade firewalls.
      operationId: upgradeFirewalls
      tags:
        - Firewalls
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Firewall upgrades.
              required:
                - firewalls
              properties:
                firewalls:
                  type: array
                  items:
                    type: object
                    description: Upgrade information for firewall.
                    required:
                      - id
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Firewall ID.
                      upgradeToVersion:
                        type: string
                        format: string
                        description: Version of the firewall to you want to upgrade to.
                      upgradeAt:
                        type: string
                        format: date-time
                        description: >-
                          Schedule time in "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'". If
                          not present, considered to be schedule now.
                  uniqueItems: true
      responses:
        '201':
          description: Firewall upgrade scheduled successfully.
          content:
            application/json:
              schema:
                type: object
                description: Firewall upgrade status.
                properties:
                  firewalls:
                    type: array
                    items:
                      type: object
                      description: Firewall firmware upgrade status.
                      required:
                        - id
                        - status
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: Firewall ID.
                        status:
                          type: string
                          description: Firewall upgrade status.
                        upgradeToVersion:
                          type: string
                          format: string
                          description: Version of the firewall you want to upgrade to.
                        upgradedAt:
                          type: string
                          format: date-time
                          description: >-
                            Schedule time in "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'". If
                            not present, considered to be schedule now.
                    uniqueItems: true
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Can't find firewall.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
    delete:
      x-soph-permissions: 'fwcm.firewall.group:write'
      summary: Cancel upgrade
      description: Cancel scheduled upgrade.
      operationId: cancelUpgrades
      tags:
        - Firewalls
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: ids
          in: query
          description: CSV based UUID.
          schema:
            type: array
            items:
              type: string
              format: uuid
      responses:
        '200':
          description: Upgrade cancelled successfully.
          content:
            application/json:
              schema:
                type: object
                description: Response to a previous request to delete an item.
                required:
                  - deleted
                properties:
                  deleted:
                    type: boolean
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Can't find firewall.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  /firewall-groups:
    get:
      x-soph-permissions: 'fwcm.firewall.group:read'
      summary: Retrieve groups
      description: Retrieve firewall groups.
      operationId: getGroups
      tags:
        - Firewall Groups
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: page
          in: query
          description: 'The page number to fetch, starting with 1.'
          required: false
          schema:
            type: integer
            default: 1
        - in: query
          name: pageTotal
          description: >-
            Whether the number of pages should be calculated and returned in the
            response.
          required: false
          schema:
            type: boolean
            default: false
        - in: query
          name: pageSize
          description: The size of the page requested.
          required: false
          schema:
            type: integer
            default: 100
        - name: recurseSubgroups
          in: query
          description: Whether to include nested child groups or not.
          required: false
          schema:
            type: boolean
            default: false
        - name: search
          in: query
          description: Search.
          required: false
          schema:
            type: string
        - name: searchFields
          in: query
          description: 'Comma-separated fields to match. Valid fields are name, parentId.'
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Groups retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                description: Firewall groups.
                required:
                  - items
                  - pages
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      description: Firewall group.
                      required:
                        - id
                        - name
                        - tenant
                        - lockedByManagingAccount
                        - firewalls
                        - createdBy
                        - createdAt
                      properties:
                        id:
                          description: Group ID.
                          type: string
                          format: uuid
                        name:
                          description: Group name.
                          type: string
                          minLength: 3
                          maxLength: 40
                        parentGroup:
                          type: object
                          description: Group ID.
                          required:
                            - id
                          properties:
                            id:
                              type: string
                              format: uuid
                              description: Group ID.
                            name:
                              type: string
                              minLength: 1
                              maxLength: 250
                              description: Group name.
                        tenant:
                          type: object
                          description: Tenant ID.
                          required:
                            - id
                          properties:
                            id:
                              description: Tenant ID.
                              type: string
                              format: uuid
                        lockedByManagingAccount:
                          description: Shows if the group is locked by managing account.
                          type: boolean
                        firewalls:
                          type: object
                          description: Associated firewall IDs.
                          required:
                            - total
                            - itemsCount
                            - items
                          properties:
                            total:
                              description: Number of firewalls in this firewall group.
                              type: integer
                            itemsCount:
                              description: Number of list items.
                              type: integer
                            items:
                              type: array
                              items:
                                type: object
                                description: Firewall ID.
                                required:
                                  - id
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    description: Firewall ID.
                              uniqueItems: true
                        configImport:
                          type: object
                          description: Firewall group configuration import status.
                          required:
                            - sourceFirewall
                            - percentComplete
                            - status
                          properties:
                            sourceFirewall:
                              type: object
                              description: Firewall ID.
                              required:
                                - id
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  description: Firewall ID.
                            percentComplete:
                              description: Group creation progress (percentage).
                              type: integer
                              minimum: 0
                              maximum: 100
                            status:
                              type: string
                              format: enum
                              description: Configuration import status.
                              enum:
                                - success
                                - initializing
                                - initializingFailed
                                - initializingFailedExport
                                - uploaded
                                - uploadFailed
                                - downloadFailed
                                - processing
                                - failed
                            errors:
                              description: Configuration import errors.
                              type: array
                              items:
                                type: object
                                description: Configuration import errors.
                                required:
                                  - entityName
                                  - messages
                                properties:
                                  entityName:
                                    type: string
                                    format: string
                                  subEntityName:
                                    type: string
                                    format: string
                                  messages:
                                    type: array
                                    items:
                                      type: object
                                      description: Error messages.
                                      properties:
                                        code:
                                          type: string
                                          description: Error code.
                                        message:
                                          type: string
                                          description: Error message.
                        createdBy:
                          type: object
                          required:
                            - accountType
                            - accountId
                          properties:
                            id:
                              description: Principal email or client ID.
                              type: string
                            type:
                              description: Principal type.
                              type: string
                              format: enum
                              enum:
                                - user
                                - service
                            name:
                              description: User principal name.
                              type: string
                            accountType:
                              type: string
                              description: Account type.
                              enum:
                                - partner
                                - tenant
                            accountId:
                              description: Account ID.
                              type: string
                              format: uuid
                        createdAt:
                          type: string
                          format: date-time
                        updatedBy:
                          type: object
                          required:
                            - accountType
                            - accountId
                          properties:
                            id:
                              description: Principal email or client ID.
                              type: string
                            type:
                              description: Principal type.
                              type: string
                              format: enum
                              enum:
                                - user
                                - service
                            name:
                              description: User principal name.
                              type: string
                            accountType:
                              type: string
                              description: Account type.
                              enum:
                                - partner
                                - tenant
                            accountId:
                              description: Account ID.
                              type: string
                              format: uuid
                        updatedAt:
                          type: string
                          format: date-time
                    uniqueItems: true
                  pages:
                    type: object
                    description: Pagination information for the response object.
                    required:
                      - current
                      - size
                      - maxSize
                    properties:
                      current:
                        type: integer
                        description: The 1-based page number being returned.
                      total:
                        type: integer
                        description: >-
                          (Optional) The total number of pages that exist, if
                          pageTotal=true in the request.
                      items:
                        type: integer
                        description: >-
                          (Optional) The total number of items across all pages,
                          if pageTotal=true in the request.
                      size:
                        type: integer
                        description: The size of the page being returned.
                      maxSize:
                        type: integer
                        description: The maximum page size that can be requested.
              examples:
                FirewallGroups:
                  value:
                    items:
                      - id: 4f0ed382-ce28-4a9a-8a3d-f3d577ca7e72
                        name: UK Office
                        parentGroup:
                          id: b88df1aa-1fc2-472b-983d-d77f5c96e525
                        tenant:
                          id: 3e382b8e-49fd-4cd9-8360-a364371d7650
                        lockedByManagingAccount: false
                        firewalls:
                          total: 10
                          itemsCount: 5
                          items:
                            - id: df1f8ccf-1223-46ed-9042-6672a8326b8c
                            - id: 97483e58-55d7-44fb-b03f-9422f106ef66
                            - id: 7e5605c1-da16-4995-9679-767a8b79328d
                            - id: 8e5605c1-da16-4995-9679-767a8b79328d
                            - id: 4e5605c1-da16-4995-9679-767a8b79328d
                        configImport:
                          sourceFirewall:
                            id: 902967e4-3df9-4dd0-8e23-1c917802b44c
                          percentComplete: 100
                          status: success
                          errors: []
                        createdBy:
                          id: 97483e58-55d7-44fb-b03f-9422f106ef66
                          type: user
                          name: example
                          accountId: 97483e58-55d7-44fb-b03f-9422f106ef66
                          accountType: customer
                        createdAt: '2022-03-30T05:43:59.492Z'
                        updatedBy:
                          id: 97483e58-55d7-44fb-b03f-9422f106ef66
                          type: user
                          name: example
                          accountId: 97483e58-55d7-44fb-b03f-9422f106ef66
                          accountType: customer
                        updatedAt: '2022-03-30T05:43:59.492Z'
                    pages:
                      current: '1,'
                      total: '1,'
                      size: '100,'
                      maxSize: '100,'
                      items: 1
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
    post:
      x-soph-permissions: 'fwcm.firewall.group:write'
      summary: Create group
      description: Create firewall group.
      operationId: createGroup
      tags:
        - Firewall Groups
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Create group request.
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Create firewall group.
              required:
                - name
                - assignFirewalls
              properties:
                name:
                  type: string
                  description: Group name.
                  minLength: 3
                  maxLength: 40
                configImportSourceFirewallId:
                  type: string
                  format: uuid
                  description: >-
                    ID for the firewall you're importing configuration settings
                    from.
                assignFirewalls:
                  type: array
                  description: IDs for the firewalls you're adding to the group.
                  items:
                    type: string
                    format: uuid
                    minLength: 1
                    uniqueItems: true
                parentGroupId:
                  type: string
                  format: uuid
                  description: 'Parent group ID, if your new group is a child group.'
            examples:
              FirewallGroupCreateRequest:
                value:
                  name: Test group
                  configImportSourceFirewallId: df1f8ccf-1223-46ed-9042-6672a8326b8c
                  assignFirewalls:
                    - df1f8ccf-1223-46ed-9042-6672a8326b8c
                    - 97483e58-55d7-44fb-b03f-9422f106ef66
                    - 7e5605c1-da16-4995-9679-767a8b79328d
                  parentGroupId: ab1f8ccf-1223-46ed-9042-6672a8326b8c
      responses:
        '201':
          description: Group created successfully.
          content:
            application/json:
              schema:
                type: object
                description: Firewall group.
                required:
                  - id
                  - name
                  - tenant
                  - lockedByManagingAccount
                  - firewalls
                  - createdBy
                  - createdAt
                properties:
                  id:
                    description: Group ID.
                    type: string
                    format: uuid
                  name:
                    description: Group name.
                    type: string
                    minLength: 3
                    maxLength: 40
                  parentGroup:
                    type: object
                    description: Group ID.
                    required:
                      - id
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Group ID.
                      name:
                        type: string
                        minLength: 1
                        maxLength: 250
                        description: Group name.
                  tenant:
                    type: object
                    description: Tenant ID.
                    required:
                      - id
                    properties:
                      id:
                        description: Tenant ID.
                        type: string
                        format: uuid
                  lockedByManagingAccount:
                    description: Shows if the group is locked by managing account.
                    type: boolean
                  firewalls:
                    type: object
                    description: Associated firewall IDs.
                    required:
                      - total
                      - itemsCount
                      - items
                    properties:
                      total:
                        description: Number of firewalls in this firewall group.
                        type: integer
                      itemsCount:
                        description: Number of list items.
                        type: integer
                      items:
                        type: array
                        items:
                          type: object
                          description: Firewall ID.
                          required:
                            - id
                          properties:
                            id:
                              type: string
                              format: uuid
                              description: Firewall ID.
                        uniqueItems: true
                  configImport:
                    type: object
                    description: Firewall group configuration import status.
                    required:
                      - sourceFirewall
                      - percentComplete
                      - status
                    properties:
                      sourceFirewall:
                        type: object
                        description: Firewall ID.
                        required:
                          - id
                        properties:
                          id:
                            type: string
                            format: uuid
                            description: Firewall ID.
                      percentComplete:
                        description: Group creation progress (percentage).
                        type: integer
                        minimum: 0
                        maximum: 100
                      status:
                        type: string
                        format: enum
                        description: Configuration import status.
                        enum:
                          - success
                          - initializing
                          - initializingFailed
                          - initializingFailedExport
                          - uploaded
                          - uploadFailed
                          - downloadFailed
                          - processing
                          - failed
                      errors:
                        description: Configuration import errors.
                        type: array
                        items:
                          type: object
                          description: Configuration import errors.
                          required:
                            - entityName
                            - messages
                          properties:
                            entityName:
                              type: string
                              format: string
                            subEntityName:
                              type: string
                              format: string
                            messages:
                              type: array
                              items:
                                type: object
                                description: Error messages.
                                properties:
                                  code:
                                    type: string
                                    description: Error code.
                                  message:
                                    type: string
                                    description: Error message.
                  createdBy:
                    type: object
                    required:
                      - accountType
                      - accountId
                    properties:
                      id:
                        description: Principal email or client ID.
                        type: string
                      type:
                        description: Principal type.
                        type: string
                        format: enum
                        enum:
                          - user
                          - service
                      name:
                        description: User principal name.
                        type: string
                      accountType:
                        type: string
                        description: Account type.
                        enum:
                          - partner
                          - tenant
                      accountId:
                        description: Account ID.
                        type: string
                        format: uuid
                  createdAt:
                    type: string
                    format: date-time
                  updatedBy:
                    type: object
                    required:
                      - accountType
                      - accountId
                    properties:
                      id:
                        description: Principal email or client ID.
                        type: string
                      type:
                        description: Principal type.
                        type: string
                        format: enum
                        enum:
                          - user
                          - service
                      name:
                        description: User principal name.
                        type: string
                      accountType:
                        type: string
                        description: Account type.
                        enum:
                          - partner
                          - tenant
                      accountId:
                        description: Account ID.
                        type: string
                        format: uuid
                  updatedAt:
                    type: string
                    format: date-time
              examples:
                NewFirewallGroup:
                  value:
                    id: b88df1aa-1fc2-472b-983d-d77f5c96e525
                    name: Test Group
                    parentGroup:
                      id: ab1f8ccf-1223-46ed-9042-6672a8326b8c
                    tenant:
                      id: 127194e4-2338-4179-9709-946b36cd75ca
                    lockedByManagingAccount: false
                    firewalls:
                      total: 3
                      itemsCount: 3
                      items:
                        - id: df1f8ccf-1223-46ed-9042-6672a8326b8c
                        - id: 97483e58-55d7-44fb-b03f-9422f106ef66
                        - id: 7e5605c1-da16-4995-9679-767a8b79328d
                    configImport:
                      sourceFirewall:
                        id: df1f8ccf-1223-46ed-9042-6672a8326b8c
                      percentComplete: 0
                      status: initializing
                    createdBy:
                      id: 97483e58-55d7-44fb-b03f-9422f106ef66
                      type: user
                      name: example
                      accountId: 97483e58-55d7-44fb-b03f-9422f106ef66
                      accountType: customer
                    createdAt: '2022-03-30T05:43:59.492Z'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-groups/{groupId}':
    patch:
      x-soph-permissions: 'fwcm.firewall.group:write'
      summary: Update group
      description: >-
        Change firewall group name. You can also assign firewalls to group. Or
        remove firewalls from a group.
      operationId: updateGroupByGroupId
      tags:
        - Firewall Groups
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: groupId
          in: path
          description: Firewall group ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Update group.
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Update firewall group.
              properties:
                name:
                  description: New group name.
                  type: string
                  minLength: 3
                  maxLength: 40
                assignFirewalls:
                  description: IDs for the firewalls you're adding to the group.
                  type: array
                  items:
                    type: string
                    format: uuid
                    minLength: 1
                    uniqueItems: true
                unassignFirewalls:
                  description: IDs for the firewalls you're removing from group.
                  type: array
                  items:
                    type: string
                    format: uuid
                    minLength: 1
                    uniqueItems: true
            examples:
              UpdateGroupName:
                value:
                  name: New auto-scale group
              UpdateAssignedFirewalls:
                value:
                  assignFirewalls:
                    - 2d26e1c6-543e-4989-a949-e48d866f05d1
              UpdateUnassignedFirewalls:
                value:
                  unassignFirewalls:
                    - 6c26e1c6-543e-4989-a949-e48d866f05cf
              UpdateAll:
                value:
                  name: New auto-scale group
                  assignFirewalls:
                    - 2d26e1c6-543e-4989-a949-e48d866f05d1
                  unassignFirewalls:
                    - 6c26e1c6-543e-4989-a949-e48d866f05cf
      responses:
        '200':
          description: Group updated successfully.
          content:
            application/json:
              schema:
                type: object
                description: Firewall group.
                required:
                  - id
                  - name
                  - tenant
                  - lockedByManagingAccount
                  - firewalls
                  - createdBy
                  - createdAt
                properties:
                  id:
                    description: Group ID.
                    type: string
                    format: uuid
                  name:
                    description: Group name.
                    type: string
                    minLength: 3
                    maxLength: 40
                  parentGroup:
                    type: object
                    description: Group ID.
                    required:
                      - id
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Group ID.
                      name:
                        type: string
                        minLength: 1
                        maxLength: 250
                        description: Group name.
                  tenant:
                    type: object
                    description: Tenant ID.
                    required:
                      - id
                    properties:
                      id:
                        description: Tenant ID.
                        type: string
                        format: uuid
                  lockedByManagingAccount:
                    description: Shows if the group is locked by managing account.
                    type: boolean
                  firewalls:
                    type: object
                    description: Associated firewall IDs.
                    required:
                      - total
                      - itemsCount
                      - items
                    properties:
                      total:
                        description: Number of firewalls in this firewall group.
                        type: integer
                      itemsCount:
                        description: Number of list items.
                        type: integer
                      items:
                        type: array
                        items:
                          type: object
                          description: Firewall ID.
                          required:
                            - id
                          properties:
                            id:
                              type: string
                              format: uuid
                              description: Firewall ID.
                        uniqueItems: true
                  configImport:
                    type: object
                    description: Firewall group configuration import status.
                    required:
                      - sourceFirewall
                      - percentComplete
                      - status
                    properties:
                      sourceFirewall:
                        type: object
                        description: Firewall ID.
                        required:
                          - id
                        properties:
                          id:
                            type: string
                            format: uuid
                            description: Firewall ID.
                      percentComplete:
                        description: Group creation progress (percentage).
                        type: integer
                        minimum: 0
                        maximum: 100
                      status:
                        type: string
                        format: enum
                        description: Configuration import status.
                        enum:
                          - success
                          - initializing
                          - initializingFailed
                          - initializingFailedExport
                          - uploaded
                          - uploadFailed
                          - downloadFailed
                          - processing
                          - failed
                      errors:
                        description: Configuration import errors.
                        type: array
                        items:
                          type: object
                          description: Configuration import errors.
                          required:
                            - entityName
                            - messages
                          properties:
                            entityName:
                              type: string
                              format: string
                            subEntityName:
                              type: string
                              format: string
                            messages:
                              type: array
                              items:
                                type: object
                                description: Error messages.
                                properties:
                                  code:
                                    type: string
                                    description: Error code.
                                  message:
                                    type: string
                                    description: Error message.
                  createdBy:
                    type: object
                    required:
                      - accountType
                      - accountId
                    properties:
                      id:
                        description: Principal email or client ID.
                        type: string
                      type:
                        description: Principal type.
                        type: string
                        format: enum
                        enum:
                          - user
                          - service
                      name:
                        description: User principal name.
                        type: string
                      accountType:
                        type: string
                        description: Account type.
                        enum:
                          - partner
                          - tenant
                      accountId:
                        description: Account ID.
                        type: string
                        format: uuid
                  createdAt:
                    type: string
                    format: date-time
                  updatedBy:
                    type: object
                    required:
                      - accountType
                      - accountId
                    properties:
                      id:
                        description: Principal email or client ID.
                        type: string
                      type:
                        description: Principal type.
                        type: string
                        format: enum
                        enum:
                          - user
                          - service
                      name:
                        description: User principal name.
                        type: string
                      accountType:
                        type: string
                        description: Account type.
                        enum:
                          - partner
                          - tenant
                      accountId:
                        description: Account ID.
                        type: string
                        format: uuid
                  updatedAt:
                    type: string
                    format: date-time
              examples:
                FirewallGroup:
                  value:
                    id: 4f0ed382-ce28-4a9a-8a3d-f3d577ca7e72
                    name: UK Office
                    parentGroup:
                      id: b88df1aa-1fc2-472b-983d-d77f5c96e525
                    tenant:
                      id: 3e382b8e-49fd-4cd9-8360-a364371d7650
                    lockedByManagingAccount: false
                    firewalls:
                      total: 10
                      itemsCount: 5
                      items:
                        - id: df1f8ccf-1223-46ed-9042-6672a8326b8c
                        - id: 97483e58-55d7-44fb-b03f-9422f106ef66
                        - id: 7e5605c1-da16-4995-9679-767a8b79328d
                        - id: 8e5605c1-da16-4995-9679-767a8b79328d
                        - id: 4e5605c1-da16-4995-9679-767a8b79328d
                    configImport:
                      sourceFirewall:
                        id: 902967e4-3df9-4dd0-8e23-1c917802b44c
                      percentComplete: 100
                      status: success
                      errors: []
                    createdBy:
                      id: 97483e58-55d7-44fb-b03f-9422f106ef66
                      type: user
                      name: example
                      accountId: 97483e58-55d7-44fb-b03f-9422f106ef66
                      accountType: customer
                    createdAt: '2022-03-30T05:43:59.492Z'
                    updatedBy:
                      id: 97483e58-55d7-44fb-b03f-9422f106ef66
                      type: user
                      name: example
                      accountId: 97483e58-55d7-44fb-b03f-9422f106ef66
                      accountType: customer
                    updatedAt: '2022-03-30T05:43:59.492Z'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
    delete:
      x-soph-permissions: 'fwcm.firewall.group:write'
      summary: Delete group
      description: Delete firewall group using its ID.
      operationId: deleteGroupByGroupId
      tags:
        - Firewall Groups
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: groupId
          in: path
          description: Firewall group ID.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Group deleted successfully.
          content:
            application/json:
              schema:
                type: object
                description: Response to a previous request to delete an item.
                required:
                  - deleted
                properties:
                  deleted:
                    type: boolean
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-groups/{groupId}/firewalls/sync-status':
    get:
      x-soph-permissions: 'fwcm.firewall.group:read'
      summary: Firewalls syncStatus
      description: Synchronization status for the firewalls in a group.
      operationId: getFirewallsSyncStatusByGroupId
      tags:
        - Firewall Groups
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: groupId
          in: path
          description: Firewall group ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: ids
          in: query
          description: CSV based UUID.
          schema:
            type: array
            items:
              type: string
              format: uuid
        - name: page
          in: query
          description: 'The page number to fetch, starting with 1.'
          required: false
          schema:
            type: integer
            default: 1
        - in: query
          name: pageTotal
          description: >-
            Whether the number of pages should be calculated and returned in the
            response.
          required: false
          schema:
            type: boolean
            default: false
        - in: query
          name: pageSize
          description: The size of the page requested.
          required: false
          schema:
            type: integer
            default: 100
      responses:
        '200':
          description: >-
            Synchronization status for firewalls in group retrieved
            successfully.
          content:
            application/json:
              schema:
                type: object
                description: Synchronization status for firewalls in a group.
                required:
                  - items
                  - pages
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      description: Synchronization status for a firewall.
                      required:
                        - firewall
                        - status
                        - lastUpdatedAt
                      properties:
                        firewall:
                          type: object
                          description: Firewall ID.
                          required:
                            - id
                          properties:
                            id:
                              type: string
                              format: uuid
                              description: Firewall ID.
                        status:
                          type: string
                          format: enum
                          description: Firewall synchronization status.
                          enum:
                            - notAvailable
                            - syncing
                            - inSync
                            - outOfSync
                            - suspended
                        lastUpdatedAt:
                          type: string
                          format: date-time
                      example:
                        firewall:
                          id: 902967e4-3df9-4dd0-8e23-1c917802b44c
                        status: inSync
                        lastUpdatedAt: '2022-05-18T11:20:26.657+00:00'
                    uniqueItems: true
                  pages:
                    type: object
                    description: Pagination information for the response object.
                    required:
                      - current
                      - size
                      - maxSize
                    properties:
                      current:
                        type: integer
                        description: The 1-based page number being returned.
                      total:
                        type: integer
                        description: >-
                          (Optional) The total number of pages that exist, if
                          pageTotal=true in the request.
                      items:
                        type: integer
                        description: >-
                          (Optional) The total number of items across all pages,
                          if pageTotal=true in the request.
                      size:
                        type: integer
                        description: The size of the page being returned.
                      maxSize:
                        type: integer
                        description: The maximum page size that can be requested.
              examples:
                FirewallSyncStatuses:
                  value:
                    items:
                      - firewall:
                          id: 902967e4-3df9-4dd0-8e23-1c917802b44c
                        status: inSync
                        lastUpdatedAt: '2022-05-18T11:20:26.657+00:00'
                    pages:
                      current: 1
                      total: 1
                      items: 1
                      size: 100
                      maxSize: 1000
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-config/firewalls/{firewallId}/mdr-threat-feed':
    get:
      x-soph-permissions: 'fwcm.firewall.api.config:read'
      summary: Retrieve mdr-threat
      description: Retrieve mdr-threat-feed for given firewall.
      operationId: fetchMdrThreatFeed
      tags:
        - Firewall Config
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '202':
          description: Request accepted.
          content:
            application/json:
              schema:
                type: object
                description: Transaction reference.
                required:
                  - transactionId
                properties:
                  transactionId:
                    type: string
                    format: uuid
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-config/firewalls/{firewallId}/mdr-threat-feed/settings':
    patch:
      x-soph-permissions: 'fwcm.firewall.api.config:write'
      summary: Patch mdr-threat
      description: Patch mdr-threat-feed for given firewall.
      operationId: patchMdrThreatFeed
      tags:
        - Firewall Config
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Threat-feed details.
              properties:
                enabled:
                  type: boolean
                  description: Indicates if mdr-threat-feed is enabled.
                action:
                  type: string
                  description: Threat-feeds action status.
                  enum:
                    - logOnly
                    - logAndDrop
                lastUpdatedAt:
                  type: string
                  format: date-time
      responses:
        '202':
          description: Request accepted.
          content:
            application/json:
              schema:
                type: object
                description: Transaction reference.
                required:
                  - transactionId
                properties:
                  transactionId:
                    type: string
                    format: uuid
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-config/firewalls/{firewallId}/mdr-threat-feed/indicators':
    post:
      x-soph-permissions: 'fwcm.firewall.api.config:write'
      summary: Create indicators
      description: Create indicators of mdr-threat-feed for given firewall.
      operationId: createMdrThreatFeedIndicators
      tags:
        - Firewall Config
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: List of Indicators.
              required:
                - indicators
              properties:
                indicators:
                  type: array
                  description: Indicator list limited to 100.
                  items:
                    type: object
                    description: Indicator details.
                    required:
                      - value
                      - type
                    properties:
                      value:
                        type: string
                        description: Indicator value.
                      type:
                        type: string
                        description: Indicator types as per STIX standard.
                        enum:
                          - ipv4-addr
                          - domain-name
                          - url
                        x-enum-varnames:
                          - IPV4_ADDRESS
                          - DOMAIN_NAME
                          - URL
                  uniqueItems: true
      responses:
        '202':
          description: Request accepted.
          content:
            application/json:
              schema:
                type: object
                description: Transaction reference.
                required:
                  - transactionId
                properties:
                  transactionId:
                    type: string
                    format: uuid
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
    delete:
      x-soph-permissions: 'fwcm.firewall.api.config:write'
      summary: Delete All IoCs
      description: Delete all IoCs of mdr-threat-feed for given firewall.
      operationId: deleteAllMdrThreatFeedIndicators
      tags:
        - Firewall Config
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '202':
          description: Request accepted.
          content:
            application/json:
              schema:
                type: object
                description: Transaction reference.
                required:
                  - transactionId
                properties:
                  transactionId:
                    type: string
                    format: uuid
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-config/firewalls/{firewallId}/mdr-threat-feed/indicators/delete':
    post:
      x-soph-permissions: 'fwcm.firewall.api.config:write'
      summary: Delete indicators
      description: Delete given indicators of mdr-threat-feed for given firewall.
      operationId: deleteMdrThreatFeedIndicators
      tags:
        - Firewall Config
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: List of Indicators.
              required:
                - indicators
              properties:
                indicators:
                  type: array
                  description: Indicator list limited to 100.
                  items:
                    type: object
                    description: Indicator details.
                    required:
                      - value
                      - type
                    properties:
                      value:
                        type: string
                        description: Indicator value.
                      type:
                        type: string
                        description: Indicator types as per STIX standard.
                        enum:
                          - ipv4-addr
                          - domain-name
                          - url
                        x-enum-varnames:
                          - IPV4_ADDRESS
                          - DOMAIN_NAME
                          - URL
                  uniqueItems: true
      responses:
        '202':
          description: Request accepted.
          content:
            application/json:
              schema:
                type: object
                description: Transaction reference.
                required:
                  - transactionId
                properties:
                  transactionId:
                    type: string
                    format: uuid
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-config/firewalls/{firewallId}/mdr-threat-feed/indicators/search':
    post:
      x-soph-permissions: 'fwcm.firewall.api.config:read'
      summary: Search indicators
      description: Search indicators exist of mdr-threat-feed for given firewall.
      operationId: searchMdrThreatFeedIndicators
      tags:
        - Firewall Config
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: List of Indicator values.
              required:
                - indicatorValues
              properties:
                indicatorValues:
                  type: array
                  description: List of indicator values limited to 100.
                  items:
                    type: string
                  uniqueItems: true
      responses:
        '202':
          description: Request accepted.
          content:
            application/json:
              schema:
                type: object
                description: Transaction reference.
                required:
                  - transactionId
                properties:
                  transactionId:
                    type: string
                    format: uuid
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-config/firewalls/{firewallId}/transactions/{transactionId}':
    get:
      x-soph-permissions: 'fwcm.firewall.api.config:read'
      summary: Retrieve transaction
      description: Retrieve transaction by Id for given firewall.
      operationId: retrieveTransaction
      tags:
        - Firewall Config
      parameters:
        - name: X-Tenant-ID
          in: header
          description: Tenant ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: transactionId
          in: path
          description: Transaction ID.
          required: true
          schema:
            type: string
            format: uuid
        - in: query
          name: fields
          description: >-
            Return the specified fields.Valid fields are request, response,
            expiryAt, finishedAt.
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Transaction detail retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                description: Transaction object for an API execution.
                required:
                  - id
                properties:
                  id:
                    type: string
                    format: uuid
                  status:
                    type: string
                    description: Transaction status.
                    enum:
                      - pending
                      - started
                      - finished
                  result:
                    type: string
                    description: Result status.
                    enum:
                      - notAvailable
                      - success
                      - error
                      - partialSuccess
                  createdAt:
                    type: string
                    format: date-time
                  finishedAt:
                    type: string
                    format: date-time
                  expiryAt:
                    type: string
                    format: date-time
                  response:
                    type: object
                    description: Response object received from firewall.
                  request:
                    type: object
                    description: Transaction request called.
                    properties:
                      method:
                        type: string
                        description: Method type of request called.
                      path:
                        type: string
                        description: Request path.
                      query:
                        type: array
                        items:
                          type: object
                          properties:
                            key:
                              type: string
                            value:
                              type: string
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-config/firewalls/{firewallId}/export':
    post:
      x-soph-permissions: 'fwcm.firewall.api.config:write'
      summary: Export firewall configuration
      description: Export the complete firewall configuration or specific entities.
      operationId: exportFirewallConfig
      tags:
        - Firewall Config Import Export
      parameters:
        - name: X-Partner-ID
          in: header
          description: Optional partner ID.
          required: false
          schema:
            type: string
            format: uuid
        - name: X-Tenant-ID
          in: header
          description: Optional tenant ID.
          required: false
          schema:
            type: string
            format: uuid
        - name: firewallId
          in: path
          description: Firewall ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Export configuration.
              required:
                - fullExport
              properties:
                fullExport:
                  type: boolean
                  description: Export the complete firewall configuration.
                includeDependency:
                  type: boolean
                  description: >-
                    Include dependent entities. Valid only when fullExport is
                    false.
                  default: false
                exportEntities:
                  type: array
                  description: Entities to export. Required when fullExport is false.
                  items:
                    type: string
                    description: Firewall configuration for export.
                    enum:
                      - AccessTimePolicy
                      - AdminAuthentication
                      - AdministrationProfile
                      - AdminSettings
                      - AdvancedConfiguration
                      - AdvancedSMTPSetting
                      - Alias
                      - AntiSpamEmailArchiver
                      - AntiSpamQuarantineDigestSettings
                      - AntiSpamRules
                      - AntiSpamTrustedDomain
                      - AntiVirusFTP
                      - AntiVirusHTTPScanningRule
                      - AntiVirusHTTPsConfiguration
                      - AntiVirusHTTPSScanningExceptions
                      - AntiVirusMailSMTPScanningRules
                      - ApplicationClassification
                      - ApplicationClassificationBatchAssignment
                      - ApplicationFilterCategory
                      - ApplicationFilterPolicy
                      - ApplicationObject
                      - ARPConfiguration
                      - ArpFlux
                      - ATP
                      - AuthCTA
                      - AuthenticationServer
                      - AuthThinclient
                      - AVASAddressGroup
                      - AWSVPC
                      - AzureADSSO
                      - BackupRestore
                      - BookmarkManagement
                      - BridgePair
                      - BridgeStaticEntry
                      - CellularWAN
                      - CellularWANSettings
                      - Certificate
                      - CertificateAuthority
                      - ChromebookSSOLogin
                      - CliDhcp
                      - ClientlessUser
                      - ConnectWiseConfiguration
                      - ContentConditionList
                      - CountryGroup
                      - CreateUnboundedLag
                      - CreateUnboundedLagTap
                      - CreateUnboundedVlan
                      - CRL
                      - CrVlanTag
                      - CustomView
                      - DataControlList
                      - DataManagement
                      - DataTransferPolicy
                      - DecryptionProfile
                      - DefaultCaptivePortal
                      - DefaultInternetScheme
                      - DefaultWebFilterNotificationSettings
                      - DHCP
                      - DHCPBinding
                      - DhcpLeaseOverIpSec
                      - DHCPRelay
                      - DHCPServer
                      - DHCPServerIpv6
                      - DHCPV6
                      - DHCPV6Binding
                      - DiagnosticsSettings
                      - DirectWebProxyAuthentication
                      - DKIMSigning
                      - DKIMVerification
                      - DNS
                      - DNSHostEntry
                      - DNSRequestRoute
                      - DoSBypassRules
                      - DoSSettings
                      - DynamicDNS
                      - EACAppConfiguration
                      - EditBridgeMember
                      - EmailConfiguration
                      - ExceptionPolicy
                      - FileType
                      - FirewallAuthentication
                      - FirewallRule
                      - FirewallRuleGroup
                      - FormTemplate
                      - FourEyeAuthenticationDeAnonymize
                      - FourEyeAuthenticationSettings
                      - FQDNHost
                      - FQDNHostGroup
                      - FqdnHostSetting
                      - GatewayConfiguration
                      - GatewayHost
                      - GreRoute
                      - GreTunnel
                      - GuestUser
                      - GuestUserSettings
                      - HAConfigure
                      - HealthCheckProfile
                      - Hotfix
                      - Hotspot
                      - HttpProxy
                      - Interface
                      - InternetScheme
                      - IPHost
                      - IPHostGroup
                      - IPSCustomSignature
                      - IPSecRoute
                      - IPSFullSignaturePack
                      - IPSPolicy
                      - IPSSwitch
                      - IPTunnel
                      - IPV4ParentProxy
                      - IPV6ParentProxy
                      - IviewCustomLogo
                      - L2TPConfiguration
                      - L2TPConnection
                      - LAG
                      - LagManagement
                      - Letsencrypt
                      - LinkFailover
                      - LinkManagement
                      - LiveUserDisconnect
                      - LocalServiceACL
                      - MACHost
                      - MalwareProtection
                      - Messages
                      - MTAAddressGroup
                      - MtaBlockedSenders
                      - MTADataControlList
                      - MTASPXConfiguration
                      - MTASPXTemplates
                      - MulticastConfiguration
                      - MulticastRoute
                      - NATRule
                      - NetFlowConfiguration
                      - Notification
                      - Notificationlist
                      - Oauth2
                      - OTPSettings
                      - OTPTokens
                      - OverridePolicy
                      - OverridePolicyTokenList
                      - ParentProxy
                      - PatternDownload
                      - PIMDynamicRouting
                      - PopImapScanning
                      - POPIMAPScanningPolicy
                      - PPTPConfiguration
                      - ProtocolSecurity
                      - ProxyArp
                      - QoSPolicy
                      - QoSSettings
                      - RealServers
                      - RED
                      - REDDevice
                      - RelaySettings
                      - ReportNotification
                      - ReverseAuthentication
                      - RoutePrecedence
                      - RouterAdvertisement
                      - Schedule
                      - SDWANPolicyRoute
                      - SDWANProfile
                      - SelfSignedCertificateAuthority
                      - ServiceGroup
                      - ServiceParam
                      - Services
                      - SiteToSiteClient
                      - SiteToSiteServer
                      - SmarthostSettings
                      - SMSGateway
                      - SMTPPolicy
                      - SNMPAgentConfiguration
                      - SNMPCommunity
                      - SNMPv3User
                      - SophosAdaptiveLearning
                      - SophosConnectClient
                      - SpoofPrevention
                      - SPXConfiguration
                      - SPXTemplates
                      - SSLBookmark
                      - SSLBookmarkGroup
                      - SSLTLSInspectionRule
                      - SSLTLSInspectionSettings
                      - SSLTunnelAccessSettings
                      - SSLVPNAuthentication
                      - SSLVPNPolicy
                      - StaticARP
                      - SupportAccess
                      - SurfingQuotaPolicy
                      - SYNCOTPTokens
                      - SyslogServers
                      - SystemModules
                      - SystemServices
                      - TAP
                      - ThirdPartyFeed
                      - Time
                      - TrustedMAC
                      - UnicastRoute
                      - User
                      - UserActivity
                      - UserGroup
                      - UserPortalAuthentication
                      - VarPartitionUsageWatermark
                      - VirtualHostFailoverNotification
                      - VLAN
                      - VoucherDefinition
                      - VPNAuthentication
                      - VpnConfiguration
                      - VpnConnRemoveOnFailover
                      - VpnConnRemoveTunnelUp
                      - VPNFailoverGroup
                      - VPNIPSecConnection
                      - VPNPortalAuthentication
                      - VPNProfile
                      - WAFSessionManagementSettings
                      - WAFSlowHTTP
                      - WAFTLS
                      - WebAuthentication
                      - WebFilterAdvancedSettings
                      - WebFilterCategory
                      - WebFilterException
                      - WebFilterNotificationSettings
                      - WebFilterPolicy
                      - WebFilterProtectionSettings
                      - WebFilterSettings
                      - WebFilterURLGroup
                      - WebProxy
                      - WiFi6Interface
                      - WirelessAccessPoint
                      - WirelessLocalAP
                      - WirelessMeshNetworks
                      - WirelessNetworks
                      - WirelessNetworkStatus
                      - WirelessProtectionGlobalSettings
                      - XFRMInterface
                      - ZeroDayProtectionSettings
                      - Zone
                  minItems: 1
                  uniqueItems: true
            examples:
              FullConfigExportRequest:
                summary: Full export of the firewall configuration.
                value:
                  fullExport: true
              PartialConfigExportRequest:
                summary: Export of selected entities with their dependencies.
                value:
                  fullExport: false
                  includeDependency: true
                  exportEntities:
                    - WebFilterSettings
                    - DHCPServer
      responses:
        '202':
          description: Request accepted.
          content:
            application/json:
              schema:
                type: object
                description: Transaction reference.
                required:
                  - transactionId
                properties:
                  transactionId:
                    type: string
                    format: uuid
              examples:
                TransactionReference:
                  summary: Transaction ID returned for the accepted export.
                  value:
                    transactionId: b1c2d3e4-f5a6-4789-abcd-ef0123456789
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  /firewall-config/firewalls/import:
    post:
      x-soph-permissions: 'fwcm.firewall.api.config:write'
      summary: Import firewall configuration
      description: >-
        Initiate configuration import and get a pre-signed upload URL. Specify
        the target firewalls and metadata of the configuration file in the
        upload-complete request.
      operationId: importFirewallConfig
      tags:
        - Firewall Config Import Export
      parameters:
        - name: X-Partner-ID
          in: header
          description: Optional partner ID.
          required: false
          schema:
            type: string
            format: uuid
        - name: X-Tenant-ID
          in: header
          description: Optional tenant ID.
          required: false
          schema:
            type: string
            format: uuid
      responses:
        '202':
          description: Request accepted.
          content:
            application/json:
              schema:
                type: object
                description: >-
                  Pre-signed URL and upload information for configuration
                  import.
                required:
                  - transactionId
                  - url
                  - method
                  - expiresAt
                properties:
                  transactionId:
                    type: string
                    format: uuid
                    description: Transaction ID.
                  url:
                    type: string
                    format: uri
                    description: Pre-signed upload URL.
                  method:
                    type: string
                    description: HTTP method to use with the URL.
                    enum:
                      - PUT
                  expiresAt:
                    type: string
                    format: date-time
                    description: URL expiration time.
                  description:
                    type: string
                    description: >-
                      Upload the configuration (.tar) file to Amazon S3 using
                      the provided pre-signed URL with an HTTP PUT request
                      before the URL expires.
              examples:
                ConfigImportUploadInfo:
                  summary: >-
                    Pre-signed upload URL returned when an import session is
                    initiated.
                  value:
                    transactionId: 15a7f8ea-691c-4f03-862e-3cefb102818e
                    url: >-
                      https://example-bucket.s3.amazonaws.com/imports/15a7f8ea-691c-4f03-862e-3cefb102818e?X-Amz-Algorithm=...
                    method: PUT
                    expiresAt: '2026-01-20T10:15:00Z'
                    description: >-
                      Upload the configuration archive (TAR file) to Amazon S3
                      using the provided pre-signed URL with an HTTP PUT request
                      before the URL expires.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-config/firewalls/import/{transactionId}/upload-complete':
    post:
      x-soph-permissions: 'fwcm.firewall.api.config:write'
      summary: Complete configuration import
      description: >-
        Complete the configuration import upload by specifying the target
        firewalls and the uploaded configuration file's metadata.
      operationId: completeFirewallConfigImportUpload
      tags:
        - Firewall Config Import Export
      parameters:
        - name: X-Partner-ID
          in: header
          description: Optional partner ID.
          required: false
          schema:
            type: string
            format: uuid
        - name: X-Tenant-ID
          in: header
          description: Optional tenant ID.
          required: false
          schema:
            type: string
            format: uuid
        - name: transactionId
          in: path
          description: Transaction ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Import firewall configuration.
              required:
                - firewallIds
                - checksumMd5
                - fileSizeBytes
              properties:
                firewallIds:
                  type: array
                  description: IDs of firewalls for configuration import.
                  items:
                    type: string
                    format: uuid
                  minItems: 1
                  maxItems: 25
                  uniqueItems: true
                checksumMd5:
                  type: string
                  description: Hex-encoded MD5 checksum of the import file.
                fileSizeBytes:
                  type: integer
                  format: int64
                  description: 'File size, in bytes.'
                  minimum: 1
                secureMasterKey:
                  type: string
                  format: password
                  description: >-
                    Secure storage master key. Sensitive information isn't
                    imported if the master key isn't provided.
                  maxLength: 128
                performPartialImport:
                  type: boolean
                  description: >-
                    Optional. When `true` (default), partial import is allowed
                    for each firewall. When `false`, only fully successful
                    import is allowed.
                  default: true
            examples:
              ConfigImport:
                summary: Import a configuration to two firewalls.
                value:
                  firewallIds:
                    - 2ba7f8ea-691c-4f03-862e-3cefb1028132
                    - 1c91e7b9-4d4c-4e5d-9b2e-2f7d9c1a8b34
                  checksumMd5: d41d8cd98f00b204e9800998ecf8427e
                  fileSizeBytes: 2048576
      responses:
        '200':
          description: Upload completion accepted.
          content:
            application/json:
              schema:
                type: object
                description: Transaction object for an API execution.
                required:
                  - id
                properties:
                  id:
                    type: string
                    format: uuid
                  status:
                    type: string
                    description: Transaction status.
                    enum:
                      - pending
                      - started
                      - finished
                  result:
                    type: string
                    description: Result status.
                    enum:
                      - notAvailable
                      - success
                      - error
                      - partialSuccess
                  createdAt:
                    type: string
                    format: date-time
                  finishedAt:
                    type: string
                    format: date-time
                  expiryAt:
                    type: string
                    format: date-time
                  response:
                    type: object
                    description: Response object received from firewall.
                  request:
                    type: object
                    description: Transaction request called.
                    properties:
                      method:
                        type: string
                        description: Method type of request called.
                      path:
                        type: string
                        description: Request path.
                      query:
                        type: array
                        items:
                          type: object
                          properties:
                            key:
                              type: string
                            value:
                              type: string
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '409':
          description: Conflict.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
  '/firewall-config/firewalls/transactions/{transactionId}':
    get:
      x-soph-permissions: 'fwcm.firewall.api.config:read'
      summary: Get transaction details
      description: Retrieve transaction details by ID.
      operationId: getCrossFirewallTransaction
      tags:
        - Firewall Config Import Export
      parameters:
        - name: X-Partner-ID
          in: header
          description: Optional partner ID.
          required: false
          schema:
            type: string
            format: uuid
        - name: X-Tenant-ID
          in: header
          description: Optional tenant ID.
          required: false
          schema:
            type: string
            format: uuid
        - name: transactionId
          in: path
          description: Transaction ID.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Status retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                description: Transaction object for an API execution.
                required:
                  - id
                properties:
                  id:
                    type: string
                    format: uuid
                  status:
                    type: string
                    description: Transaction status.
                    enum:
                      - pending
                      - started
                      - finished
                  result:
                    type: string
                    description: Result status.
                    enum:
                      - notAvailable
                      - success
                      - error
                      - partialSuccess
                  createdAt:
                    type: string
                    format: date-time
                  finishedAt:
                    type: string
                    format: date-time
                  expiryAt:
                    type: string
                    format: date-time
                  response:
                    type: object
                    description: Response object received from firewall.
                  request:
                    type: object
                    description: Transaction request called.
                    properties:
                      method:
                        type: string
                        description: Method type of request called.
                      path:
                        type: string
                        description: Request path.
                      query:
                        type: array
                        items:
                          type: object
                          properties:
                            key:
                              type: string
                            value:
                              type: string
              examples:
                ConfigImportTransaction:
                  summary: Configuration import transaction with per-firewall progress.
                  value:
                    id: 15a7f8ea-691c-4f03-862e-3cefb102818e
                    status: finished
                    result: success
                    createdAt: '2026-01-20T10:05:00Z'
                    finishedAt: '2026-01-20T10:08:30Z'
                    expiryAt: '2026-01-21T10:05:00Z'
                    response:
                      uploadStatus: success
                      items:
                        - firewallId: 2ba7f8ea-691c-4f03-862e-3cefb1028132
                          status: finished
                          result: success
                        - firewallId: 1c91e7b9-4d4c-4e5d-9b2e-2f7d9c1a8b34
                          status: finished
                          result: success
                    request:
                      method: POST
                      path: firewalls/import
                ConfigExportTransaction:
                  summary: >-
                    Configuration export transaction with the pre-signed
                    download URL in `response`.
                  value:
                    id: 27b8e9fa-7a2d-5c14-973f-4dfcc2139243
                    status: finished
                    result: success
                    createdAt: '2026-01-20T10:05:00Z'
                    finishedAt: '2026-01-20T10:06:12Z'
                    expiryAt: '2026-01-21T10:05:00Z'
                    response:
                      url: >-
                        https://example-bucket.s3.amazonaws.com/exports/27b8e9fa-7a2d-5c14-973f-4dfcc2139243.tar.gz?X-Amz-Algorithm=...
                      method: GET
                      expiresAt: '2026-01-20T11:06:12Z'
                      firewallId: 2ba7f8ea-691c-4f03-862e-3cefb1028132
                    request:
                      method: POST
                      path: firewalls/2ba7f8ea-691c-4f03-862e-3cefb1028132/export
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '403':
          description: Authorization required.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  correlationId:
                    type: string
                    format: uuid
                  code:
                    type: string
                  createdAt:
                    type: string
                    format: datetime
                  requestId:
                    type: string
                    format: uuid
                  docUrl:
                    type: string
                    format: uri
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
