Catchpoint Systems NodeGroup API

The NodeGroup API from Catchpoint Systems — 5 operation(s) for nodegroup.

Operations 8

GET /v2/nodes/groups/{nodeGroupIds} Returns the node group details based on the ID.
GET /v2/nodes/groups Returns the node group details based on the parameters passed.
POST /v2/nodes/groups Create a new node group based on the PostData.
PATCH /v2/nodes/groups Update properties of an existing node group based on the request body.
DELETE /v2/nodes/groups Deletes existing node group by parameters passed.
GET /v2/nodes/groups/networktype Returns the list of network types supported for node group.
GET /v2/nodes/groups/objecttype Retrieves the list of object Types supported for node group location.
GET /v2/nodes/groups/nodelocations This endpoint allows to fetch all the available continents, countries and cities that can be used as Node Locations when creating a Node Group

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/catchpoint-systems-nodegroup-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

catchpoint-systems-nodegroup-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Catchpoint REST API v2.0 Account Node Group API
  version: '2.0'
servers:
- url: /api
tags:
- name: NodeGroup
paths:
  /v2/nodes/groups/{nodeGroupIds}:
    get:
      tags:
      - NodeGroup
      summary: Returns the node group details based on the ID.
      parameters:
      - name: nodeGroupIds
        in: path
        description: Comma-separated list of Node Group IDs
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
            text/plain:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
      security:
      - bearer: []
      order: 1
  /v2/nodes/groups:
    get:
      tags:
      - NodeGroup
      summary: Returns the node group details based on the parameters passed.
      description: When no parameters are passed, all node groups from within the Client or Division are returned.
      parameters:
      - name: name
        in: query
        description: Node group name
        schema:
          type: string
      - name: networkType
        in: query
        description: Network Type (refer InternalLink[Network Type Enumeration Endpoint,operations-tag-NodeGroup,operations-NodeGroup-get_v2_nodes_groups_networktype])
        schema:
          type: integer
          format: int32
      - name: nodeId
        in: query
        description: Node ID
        schema:
          type: integer
          format: int32
      - name: nodeName
        in: query
        description: Node name
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
            text/plain:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
      security:
      - bearer: []
      order: 2
    post:
      tags:
      - NodeGroup
      summary: Create a new node group based on the PostData.
      description: "To get payload for creating a new node group and to get the created node group details refer InternalLink[Node Group by ID Endpoint,operations-tag-NodeGroup,operations-NodeGroup-get_v2_nodes_groups__nodeGroupIds_]. Pass “0” for Node Group ID to create a new Node Group.\n            \nNote: The divisionId field cannot be used to create a node group in another division. If divisionId is provided, it must match the current level's default division ID; otherwise the request is rejected."
      parameters:
      - name: objectDetails
        in: query
        description: Set to true to return the created object in the response body, otherwise the response body will only return created object ID.
        schema:
          type: boolean
      requestBody:
        description: Node group payload. divisionId is not supported for changing the target division.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
          text/json:
            schema:
              $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
            text/plain:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
      security:
      - bearer: []
      order: 3
    patch:
      tags:
      - NodeGroup
      summary: Update properties of an existing node group based on the request body.
      description: "**Request:**\n            \nOnly the property to be updated can be passed in the request body instead of the whole object. The update request body requires a total of three keys to be filled with appropriate value as listed below:\n* **value** – The value property provides the new value.\n            \n* **path** – The path property indicates the element to update. The entire path with slashes needs to be provided here. Example: /status/id\n            \n* **op** – The op property indicates the type of operation; we support the following three operations.\n            \n    * **add** - Add a property or array element. For existing property: set value.\n            \n    * **Remove** - Remove a property or array element.\n            \n    * **replace** - Same as remove followed by add at same location.\n            \n* **from** - [Not Used]\n            \n    * **Explanation** - The \"from\" parameter represents the starting or current value of the resource that the operation intends to modify. The from parameter is included in the example value schema but is not utilized in this endpoint's functionality. It is reserved for potential future use or could be used in specific scenarios not covered by the current implementation."
      parameters:
      - name: nodeGroupId
        in: query
        description: Node Group ID
        schema:
          type: integer
          format: int32
      - name: objectDetails
        in: query
        description: Set to true to return the updated object in the response body, otherwise the response body will only return the updated object ID.
        schema:
          type: boolean
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation'
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Microsoft.AspNetCore.JsonPatch.Operations.Operation'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
            text/plain:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
      security:
      - bearer: []
      order: 4
    delete:
      tags:
      - NodeGroup
      summary: Deletes existing node group by parameters passed.
      description: To delete node group based on the specified list of IDs, the IDs need to be separated by commas. This endpoint allows partial deletion; if you provide a list of five IDs and only three of them are valid, then it will delete those three node groups. The response will indicate the three that were deleted, and the two invalid IDs will be listed as errors.
      parameters:
      - name: nodegroupIds
        in: query
        description: Comma-separated list of Node Group IDs
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_System.Int32'
            text/plain:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_System.Int32'
            text/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_System.Int32'
      security:
      - bearer: []
      order: 5
  /v2/nodes/groups/networktype:
    get:
      tags:
      - NodeGroup
      summary: Returns the list of network types supported for node group.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NetworkTypeResponse'
            text/plain:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NetworkTypeResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NetworkTypeResponse'
      security:
      - bearer: []
      order: 6
  /v2/nodes/groups/objecttype:
    get:
      tags:
      - NodeGroup
      summary: Retrieves the list of object Types supported for node group location.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.ObjectTypeResponse'
            text/plain:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.ObjectTypeResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.ObjectTypeResponse'
      security:
      - bearer: []
      order: 7
  /v2/nodes/groups/nodelocations:
    get:
      tags:
      - NodeGroup
      summary: This endpoint allows to fetch all the available continents, countries and cities that can be used as Node Locations when creating a Node Group
      parameters:
      - name: networkType
        in: query
        description: Node Locations for the provided Network Type
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeLocationResponse'
            text/plain:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeLocationResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeLocationResponse'
      security:
      - bearer: []
      order: 8
components:
  schemas:
    ? Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NetworkTypeResponse
    : type: object
      properties:
        data:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NetworkTypeResponse'
        messages:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage'
        errors:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel'
        completed:
          type: boolean
          readOnly: true
        traceId:
          type:
          - string
          - 'null'
        usageLimits:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.v2_0.NodeLocationResponse:
      type: object
      properties:
        continents:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationContinentModel'
        hasMore:
          type:
          - boolean
          - 'null'
        next:
          type:
          - string
          - 'null'
        previous:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.REST.Api.ConsumerStatistics:
      type: object
      properties:
        consumerId:
          type: integer
          format: int32
        requestCount:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.Limit'
        maxPerDay:
          type:
          - integer
          - 'null'
          format: int32
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.ObjectTypeResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.ObjectTypeResponse'
        messages:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage'
        errors:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel'
        completed:
          type: boolean
          readOnly: true
        traceId:
          type:
          - string
          - 'null'
        usageLimits:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeLocationResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeLocationResponse'
        messages:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage'
        errors:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel'
        completed:
          type: boolean
          readOnly: true
        traceId:
          type:
          - string
          - 'null'
        usageLimits:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.v2_0.ObjectTypeResponse:
      type: object
      properties:
        objectTypes:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.EnumLookupModel_1_System.Int32'
        hasMore:
          type:
          - boolean
          - 'null'
        next:
          type:
          - string
          - 'null'
        previous:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationCityModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        nodesCount:
          type: integer
          format: int32
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationCountryModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        nodesCount:
          type: integer
          format: int32
        cities:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationCityModel'
      additionalProperties: false
    ? Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_System.Int32
    : type: object
      properties:
        data:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_System.Int32'
        messages:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage'
        errors:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel'
        completed:
          type: boolean
          readOnly: true
        traceId:
          type:
          - string
          - 'null'
        usageLimits:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics'
      additionalProperties: false
    ? Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel
    : type: object
      properties:
        data:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
        messages:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage'
        errors:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel'
        completed:
          type: boolean
          readOnly: true
        traceId:
          type:
          - string
          - 'null'
        usageLimits:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.v2_0.NodeAPIModel:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type:
          - string
          - 'null'
        networkType:
          $ref: '#/components/schemas/Catchpoint.Symphony.Enums.SyntheticLocation.SyntheticNetworkType'
        status:
          $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.EnumLookupModel_1_System.Int32'
        ipAddress:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationContinentModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
        nodesCount:
          type: integer
          format: int32
        countries:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationCountryModel'
      additionalProperties: false
    ? Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel
    : type: object
      properties:
        nodeGroups:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
        hasMore:
          type:
          - boolean
          - 'null'
        next:
          type:
          - string
          - 'null'
        previous:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Utility.IdNameModel_1_System.Int32:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.REST.Api.DivisionUsageStatistics:
      type: object
      properties:
        divisionId:
          type: integer
          format: int32
        consumerStatistics:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ConsumerStatistics'
      additionalProperties: false
    ? Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NetworkTypeResponse
    : type: object
      properties:
        nodeGroups:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NetworkTypeResponse'
        hasMore:
          type:
          - boolean
          - 'null'
        next:
          type:
          - string
          - 'null'
        previous:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeGroupItemApiModel:
      type: object
      properties:
        objectType:
          $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.EnumLookupModel_1_System.Int32'
        nodesCount:
          type: integer
          format: int32
        city:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Utility.IdNameModel_1_System.Int32'
        country:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Utility.IdNameModel_1_System.Int32'
        continent:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Utility.IdNameModel_1_System.Int32'
      additionalProperties: false
    Catchpoint.Symphony.REST.Api.ApiUsageStatistics:
      type: object
      properties:
        clientId:
          type: integer
          format: int64
        lastRequestTimestamp:
          type: string
          format: date-time
        limits:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.Limit'
        runs:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.Limit'
        exceededMessage:
          type:
          - string
          - 'null'
          readOnly: true
        divisionUsageStatistics:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.DivisionUsageStatistics'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Models.InfoMessage:
      type: object
      properties:
        information:
          type:
          - string
          - 'null'
        ignoredPath:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.PatchIgnoredPath'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type:
          - string
          - 'null'
        changeDate:
          type: string
          format: date-time
        description:
          type:
          - string
          - 'null'
        syntheticNetworkType:
          $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.EnumLookupModel_1_System.Int32'
        divisionId:
          type:
          - integer
          - 'null'
          format: int32
        nodesCount:
          type:
          - integer
          - 'null'
          format: int32
        nodes:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeAPIModel'
        nodeLocations:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeGroupItemApiModel'
      additionalProperties: false
    Catchpoint.Symphony.ViewModels.EnumLookupModel_1_System.Byte:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
      additionalProperties: false
    ? Catchpoint.Symphony.REST.Common.Response.APIResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel
    : type: object
      properties:
        data:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
        messages:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage'
        errors:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel'
        completed:
          type: boolean
          readOnly: true
        traceId:
          type:
          - string
          - 'null'
        usageLimits:
          $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics'
      additionalProperties: false
    ? Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel
    : type: object
      properties:
        nodeGroups:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel'
        hasMore:
          type:
          - boolean
          - 'null'
        next:
          type:
          - string
          - 'null'
        previous:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.v2_0.NetworkTypeResponse:
      type: object
      properties:
        networkTypes:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.EnumLookupModel_1_System.Byte'
        hasMore:
          type:
          - boolean
          - 'null'
        next:
          type:
          - string
          - 'null'
        previous:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.ViewModels.EnumLookupModel_1_System.Int32:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Models.PatchIgnoredPath:
      type: object
      properties:
        ops:
          type:
          - string
          - 'null'
        path:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.ViewModels.MessageModel:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
        message:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse_1_System.Collections.Generic.List_1_System.Int32:
      type: object
      properties:
        nodeGroups:
          type:
          - array
          - 'null'
          items:
            type: integer
            format: int32
        hasMore:
          type:
          - boolean
          - 'null'
        next:
          type:
          - string
          - 'null'
        previous:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.Enums.SyntheticLocation.SyntheticNetworkType:
      enum:
      - id: 0
        name: Backbone
      - id: 1
        name: LastMile
      - id: 2
        name: Wireless
      - id: 3
        name: Private
      - id: 4
        name: Enterprise
      - id: 5
        name: PublicCloud
      - id: 6
        name: Any
      - id: 7
        name: Bgp
      - id: 8
        name: WebPageTest
      - id: 9
        name: Enterprise Branch
      type: integer
      format: int32
    Microsoft.AspNetCore.JsonPatch.Operations.Operation:
      type: object
      properties:
        value: {}
        path:
          type:
          - string
          - 'null'
        op:
          type:
          - string
          - 'null'
        from:
          type:
          - string
          - 'null'
      additionalProperties: false
    Catchpoint.Symphony.REST.Api.Limit:
      type: object
      properties:
        minute:
          type: integer
          format: int32
        hour:
          type: integer
          format: int32
        day:
          type: integer
          format: int32
      additionalProperties: false
  securitySchemes:
    be

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