openapi: 3.0.1 info: title: Catchpoint REST API v2.0 Account NodeGroup 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.\r\n \r\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:**\r\n \r\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:\r\n* **value** – The value property provides the new value.\r\n \r\n* **path** – The path property indicates the element to update. The entire path with slashes needs to be provided here. Example: /status/id\r\n \r\n* **op** – The op property indicates the type of operation; we support the following three operations.\r\n \r\n * **add** - Add a property or array element. For existing property: set value.\r\n \r\n * **Remove** - Remove a property or array element.\r\n \r\n * **replace** - Same as remove followed by add at same location.\r\n \r\n* **from** - [Not Used]\r\n \r\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.v2_0.ObjectTypeResponse: type: object properties: objectTypes: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.EnumLookupModel`1[System.Int32]' nullable: true hasMore: type: boolean nullable: true next: type: string nullable: true previous: type: string nullable: true 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 items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage' nullable: true errors: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel' nullable: true completed: type: boolean readOnly: true traceId: type: string nullable: true usageLimits: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics' 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 nullable: true next: type: string nullable: true previous: type: string nullable: true additionalProperties: false Microsoft.AspNetCore.JsonPatch.Operations.Operation: type: object properties: value: nullable: true path: type: string nullable: true op: type: string nullable: true from: type: string nullable: true additionalProperties: false Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationCityModel: type: object properties: id: type: integer format: int32 name: type: string nullable: true nodesCount: type: integer format: int32 additionalProperties: false Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupResponse`1[System.Collections.Generic.List`1[System.Int32]]: type: object properties: nodeGroups: type: array items: type: integer format: int32 nullable: true hasMore: type: boolean nullable: true next: type: string nullable: true previous: type: string nullable: true 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 items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage' nullable: true errors: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel' nullable: true completed: type: boolean readOnly: true traceId: type: string nullable: true usageLimits: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics' 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 nullable: true readOnly: true divisionUsageStatistics: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.DivisionUsageStatistics' nullable: true additionalProperties: false Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel: type: object properties: id: type: integer format: int64 name: type: string nullable: true changeDate: type: string format: date-time description: type: string nullable: true syntheticNetworkType: $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.EnumLookupModel`1[System.Int32]' divisionId: type: integer format: int32 nullable: true nodesCount: type: integer format: int32 nullable: true nodes: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeAPIModel' nullable: true nodeLocations: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeGroupItemApiModel' nullable: true additionalProperties: false Catchpoint.Symphony.REST.Common.Models.InfoMessage: type: object properties: information: type: string nullable: true ignoredPath: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.PatchIgnoredPath' nullable: true 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 items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage' nullable: true errors: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel' nullable: true completed: type: boolean readOnly: true traceId: type: string nullable: true usageLimits: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics' 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 nullable: true next: type: string nullable: true previous: type: string nullable: true additionalProperties: false Catchpoint.Symphony.REST.Common.Response.v2_0.NodeLocationResponse: type: object properties: continents: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationContinentModel' nullable: true hasMore: type: boolean nullable: true next: type: string nullable: true previous: type: string nullable: true 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 format: int32 nullable: true additionalProperties: false Catchpoint.Symphony.ViewModels.EnumLookupModel`1[System.Byte]: type: object properties: id: type: integer format: int32 name: type: string nullable: true additionalProperties: false Catchpoint.Symphony.REST.Common.Response.v2_0.NetworkTypeResponse: type: object properties: networkTypes: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.EnumLookupModel`1[System.Byte]' nullable: true hasMore: type: boolean nullable: true next: type: string nullable: true previous: type: string nullable: true additionalProperties: false Catchpoint.Symphony.ViewModels.MessageModel: type: object properties: id: type: string nullable: true message: type: string nullable: true additionalProperties: false Catchpoint.Symphony.REST.Common.Utility.IdNameModel`1[System.Int32]: type: object properties: id: type: integer format: int32 name: type: string nullable: true 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 items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.NodeGroupAPIModel' nullable: true hasMore: type: boolean nullable: true next: type: string nullable: true previous: type: string nullable: true additionalProperties: false Catchpoint.Symphony.REST.Common.Models.PatchIgnoredPath: type: object properties: ops: type: string nullable: true path: type: string nullable: true 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 ? 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 items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage' nullable: true errors: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel' nullable: true completed: type: boolean readOnly: true traceId: type: string nullable: true usageLimits: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics' additionalProperties: false Catchpoint.Symphony.REST.Api.DivisionUsageStatistics: type: object properties: divisionId: type: integer format: int32 consumerStatistics: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ConsumerStatistics' nullable: true additionalProperties: false Catchpoint.Symphony.ViewModels.EnumLookupModel`1[System.Int32]: type: object properties: id: type: integer format: int32 name: type: string nullable: true additionalProperties: false Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationContinentModel: type: object properties: id: type: integer format: int32 name: type: string nullable: true nodesCount: type: integer format: int32 countries: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationCountryModel' nullable: true 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.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 items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage' nullable: true errors: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel' nullable: true completed: type: boolean readOnly: true traceId: type: string nullable: true usageLimits: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics' 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 Catchpoint.Symphony.REST.Common.Response.v2_0.NodeAPIModel: type: object properties: id: type: integer format: int64 name: type: string nullable: true networkType: $ref: '#/components/schemas/Catchpoint.Symphony.Enums.SyntheticLocation.SyntheticNetworkType' status: $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.EnumLookupModel`1[System.Int32]' ipAddress: type: string nullable: true 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 items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Models.InfoMessage' nullable: true errors: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.ViewModels.MessageModel' nullable: true completed: type: boolean readOnly: true traceId: type: string nullable: true usageLimits: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Api.ApiUsageStatistics' additionalProperties: false Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationCountryModel: type: object properties: id: type: integer format: int32 name: type: string nullable: true nodesCount: type: integer format: int32 cities: type: array items: $ref: '#/components/schemas/Catchpoint.Symphony.REST.Common.Response.v2_0.Node.NodeLocationCityModel' nullable: true additionalProperties: false securitySchemes: bearer: type: http scheme: bearer bearerFormat: JWT