openapi: 3.2.0 info: description: 'This API list provides operations for interfacing with the Cohesity Cluster.' title: Cohesity REST Nodes API version: '1.0' servers: - url: https:///irisservices/api/v1 tags: - name: Nodes paths: /public/freeNodes: get: description: 'Sends a request to any Node to list all of the free Nodes that are present on the network.' tags: - Nodes summary: List the free Nodes present on a network operationId: ListFreeNodes responses: '200': $ref: '#/components/responses/ListFreeNodesResponse' default: $ref: '#/components/responses/Error' /public/node/status: get: tags: - Nodes summary: Sends a request to a Node to get the status of that node operationId: GetNodeStatus responses: '200': $ref: '#/components/responses/GetNodeStatusResponse' default: $ref: '#/components/responses/Error' /public/nodes: get: description: 'If no parameters are specified, all Nodes currently on the Cohesity Cluster are returned. Specifying parameters filters the results that are returned.' tags: - Nodes summary: List Nodes of the cluster operationId: GetNodes responses: '200': $ref: '#/components/responses/GetNodesResponse' default: $ref: '#/components/responses/Error' /public/nodes/software: put: description: 'Sends a request to upgrade the software version of a Node. By default, the Node that the request is sent to is the only one upgraded, but the user can specify if they want to attempt to upgrade all free nodes on the network. Before using this, you need to upload a new package to the Node you want to upgrade by using the /public/packages endpoint.' tags: - Nodes summary: Upgrade the software on a Node operationId: UpgradeNode responses: '202': $ref: '#/components/responses/UpgradeNodeResponse' default: $ref: '#/components/responses/Error' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpgradeNodeParameters' required: true /public/nodes/{id}: get: description: Returns the Node corresponding to the specified Node Id. tags: - Nodes summary: List details about a single node operationId: GetNodeById parameters: - x-go-name: Id description: Id of the Node name: id in: path required: true schema: type: integer format: int64 responses: '200': $ref: '#/components/responses/GetNodeByIdResponse' default: $ref: '#/components/responses/Error' components: responses: GetNodesResponse: description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/Node' GetNodeStatusResponse: description: Success content: application/json: schema: $ref: '#/components/schemas/NodeStatusResult' GetNodeByIdResponse: description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/Node' Error: description: Error content: application/json: schema: $ref: '#/components/schemas/RequestError' UpgradeNodeResponse: description: Success content: application/json: schema: $ref: '#/components/schemas/UpgradeNodeResult' ListFreeNodesResponse: description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/FreeNodeInformation' schemas: NodeHardwareInfo: description: NodeHardwareInfo provides the information regarding the hardware. type: object title: Node Hardware Information. properties: cpu: description: Cpu provides the information regarding the CPU. type: - string - 'null' x-go-name: Cpu memorySizeBytes: description: MemorySizeBytes provides the memory size in bytes. type: - integer - 'null' format: int64 x-go-name: MemorySizeBytes network: description: Network provides the information regarding the network cards. type: - string - 'null' x-go-name: Network x-go-package: cohesity/iris/server/data/public ChassisInfo: description: ChassisInfo is the struct for the Chassis. type: object title: Chassis Information. properties: chassisId: description: ChassisId is a unique id assigned to the chassis. type: - integer - 'null' format: int64 x-go-name: ChassisId chassisName: description: 'ChassisName is the name of the chassis. This could be the chassis serial number by default.' type: - string - 'null' x-go-name: ChassisName chassisSerial: description: Chassis serial. type: - string - 'null' x-go-name: ChassisSerial location: description: Location is the location of the chassis within the rack. type: - string - 'null' x-go-name: Location rackId: description: Rack is the rack within which this chassis lives. type: - integer - 'null' format: int64 x-go-name: RackId x-go-package: cohesity/iris/server/data/public RequestError: description: Details about the Error. type: object title: Error properties: errorCode: description: Operation response error code. type: - integer - 'null' format: int64 x-go-name: ErrorCode message: description: Description of the error. type: - string - 'null' x-go-name: Message x-go-package: cohesity/iris/server/data/public UpgradeNodeParameters: description: Specifies the parameters needed for a Node upgrade request. type: object title: Upgrade Node Parameters. properties: nodeIds: description: 'Specifies a list of IDs of additional nodes to be upgraded. These must be free Nodes present on the same local network as the Node that the request was sent to. The ID of the Node the request was sent to should not be included in this list. This parameter can only be specified if upgradeAllFreeNodes is not.' type: - array - 'null' items: type: integer format: int64 x-go-name: NodeIds targetSwVersion: description: 'Specifies the target software version. The node that the request is sent to will search itself for the specified software package and if that package is found, it will be used for the upgrade.' type: - string - 'null' x-go-name: TargetSwVersion upgradeAllFreeNodes: description: 'Specifies whether or not to attempt to upgrade all free nodes which are currently connected to the same local network as the node that the request was sent to. This parameter can only be specified if nodeIds is not.' type: - boolean - 'null' x-go-name: UpgradeAllFreeNodes upgradeSelf: description: 'Specifies that the node that the request is being sent to should be upgraded. By default, this is set to true.' type: - boolean - 'null' x-go-name: UpgradeSelf x-go-package: cohesity/iris/server/data/public NodeSystemDiskInfo: type: object properties: devicePath: description: DevicePath is the device path of the disk. type: - string - 'null' x-go-name: DevicePath id: description: Id is the id of the disk. type: - integer - 'null' format: int64 x-go-name: Id offline: description: Offline specifies whether a disk is marked offline. type: - boolean - 'null' x-go-name: Offline x-go-package: cohesity/iris/server/data/public FreeNodeInformation: description: Specifies the Metadata of a free Node on the network. type: object title: Free Node Information. properties: chassisSerial: description: Specifies the serial number of the Chassis the Node is installed in. type: - string - 'null' x-go-name: ChassisSerial connectedTo: description: Specifies whether or not this is the Node that is sending the response. type: - boolean - 'null' x-go-name: ConnectedTo id: description: Specifies the ID of the node. type: - integer - 'null' format: int64 x-go-name: Id ip: description: Specifies the IP address of the Node. type: - string - 'null' x-go-name: Ip ipmiIp: description: Specifies the IPMI IP of the Node. type: - string - 'null' x-go-name: IpmiIp nodeSerial: description: Specifies the serial number of the Node. type: - string - 'null' x-go-name: NodeSerial nodeUiSlot: description: 'Specifies the postition for the UI to display the Node in the Cluster creation page.' type: - string - 'null' x-go-name: NodeUiSlot numSlotsInChassis: description: 'Specifies the number of Node slots present in the Chassis where this Node is installed.' type: - integer - 'null' format: uint32 x-go-name: NumSlotsInChassis productModel: description: Specifies the product model of the node. type: - string - 'null' x-go-name: ProductModel slotNumber: description: Specifies the number of the slot the Node is installed in. type: - string - 'null' x-go-name: SlotNumber softwareVersion: description: Specifies the version of the software installed on the Node. type: - string - 'null' x-go-name: SoftwareVersion x-go-package: cohesity/iris/server/data/public NodeStats: description: NodeStats provides various statistics for the node. type: object title: Node Statistics. properties: id: description: Id is the Id of the Node. type: - integer - 'null' format: int64 x-go-name: Id usagePerfStats: description: UsagePerfStats provides the usage and performance stats for the node. $ref: '#/components/schemas/UsageAndPerformanceStats' x-go-package: cohesity/iris/server/data/public UsageAndPerformanceStats: description: 'Provides usage and performance statistics for entities such as a disks, Nodes or Clusters.' type: object title: Usage and Performance Statistics properties: dataInBytes: description: 'Specifies the data read from the protected objects by the Cohesity Cluster before any data reduction using deduplication and compression.' type: - integer - 'null' format: int64 x-go-name: DataInBytes dataInBytesAfterReduction: description: 'Morphed Usage before data is replicated to other nodes as per RF or Erasure Coding policy.' type: - integer - 'null' format: int64 x-go-name: DataInBytesAfterReduction minUsablePhysicalCapacityBytes: description: 'Specifies the minimum usable capacity available after erasure coding or RF. This will only be populated for cluster. If a cluster has multiple Domains (View Boxes) with different RF or erasure coding, this metric will be computed using the scheme that will provide least saving.' type: - integer - 'null' format: int64 x-go-name: MinUsablePhysicalCapacityBytes numBytesRead: description: Provides the total number of bytes read in the last 30 seconds. type: - integer - 'null' format: int64 x-go-name: NumBytesRead numBytesWritten: description: Provides the total number of bytes written in the last 30 second. type: - integer - 'null' format: int64 x-go-name: NumBytesWritten physicalCapacityBytes: description: 'Provides the total physical capacity in bytes of all the storage devices, after subtracting space reserved for cluster services' type: - integer - 'null' format: int64 x-go-name: PhysicalCapacityBytes readIos: description: Provides the number of Read IOs that occurred in the last 30 seconds. type: - integer - 'null' format: int64 x-go-name: ReadIos readLatencyMsecs: description: 'Provides the Read latency in milliseconds for the Read IOs that occurred during the last 30 seconds.' type: - number - 'null' format: double x-go-name: ReadLatencyMsecs systemCapacityBytes: description: 'Provides the total available capacity as computed by the Linux ''statfs'' command.' type: - integer - 'null' format: int64 x-go-name: SystemCapacityBytes systemUsageBytes: description: 'Provides the usage of bytes, as computed by the Linux ''statfs'' command, after the size of the data is reduced by change-block tracking, compression and deduplication.' type: - integer - 'null' format: int64 x-go-name: SystemUsageBytes totalPhysicalRawUsageBytes: description: 'Provides the usage of bytes, as computed by the Cohesity Cluster, before the size of the data is reduced by change-block tracking, compression and deduplication.' type: - integer - 'null' format: int64 x-go-name: TotalPhysicalRawUsageBytes totalPhysicalUsageBytes: description: 'Provides the data stored locally, after the data has been reduced by deduplication and compression, including the space required for honoring the resiliency settings (EC/RF).' type: - integer - 'null' format: int64 x-go-name: TotalPhysicalUsageBytes writeIos: description: Provides the number of Write IOs that occurred in the last 30 seconds. type: - integer - 'null' format: int64 x-go-name: WriteIos writeLatencyMsecs: description: 'Provides the Write latency in milliseconds for the Write IOs that occurred during the last 30 seconds.' type: - number - 'null' format: double x-go-name: WriteLatencyMsecs x-go-package: cohesity/iris/server/data/public CapacityByTier: description: 'CapacityByTier provides the physical capacity in bytes of each storage tier.' type: object title: Capacity By Tier. properties: storageTier: description: 'StorageTier is the type of StorageTier. StorageTierType represents the various values for the Storage Tier. ''kPCIeSSD'' indicates storage tier type of Pci Solid State Drive. ''kSATAHDD'' indicates storage tier type of SATA Solid State Drive. ''kSATAHDD'' indicates storage tier type of SATA Hard Disk Drive. ''kCLOUD'' indicates storage tier type of Cloud.' type: - string - 'null' enum: - kPCIeSSD - kSATASSD - kSATAHDD - kCLOUD x-go-name: StorageTier tierMaxPhysicalCapacityBytes: description: 'TierMaxPhysicalCapacityBytes is the maximum physical capacity in bytes of the storage tier.' type: - integer - 'null' format: int64 x-go-name: TierMaxPhysicalCapacityBytes x-go-package: cohesity/iris/server/data/public UpgradeNodeResult: description: Specifies the result returned from a request to upgrade a Node. type: object title: Upgrade Node Result. properties: message: description: Specifies a message describing the result of the request. type: - string - 'null' x-go-name: Message statusUrl: description: 'Specifies a URL that can be queried to get the status of the operation once it has begun.' type: - string - 'null' x-go-name: StatusUrl x-go-package: cohesity/iris/server/data/public Node: description: Node is the struct for a Node. type: object title: Node. properties: capacityByTier: description: CapacityByTier describes the capacity of each storage tier. type: - array - 'null' items: $ref: '#/components/schemas/CapacityByTier' x-go-name: CapacityByTier chassisInfo: description: ChassisInfo describes the information for the chassis of the node. $ref: '#/components/schemas/ChassisInfo' clusterPartitionId: description: 'ClusterPartitionId is the Id of the cluster partition to which the Node belongs.' type: - integer - 'null' format: int64 x-go-name: ClusterPartitionId clusterPartitionName: description: 'ClusterPartitionName is the name of the cluster to which the Node belongs.' type: - string - 'null' x-go-name: ClusterPartitionName cohesityNodeSerial: description: Cohesity Node Serial Number of the Node. type: - string - 'null' x-go-name: CohesityNodeSerial diskCount: description: DiskCount is the number of disks in a node. type: - integer - 'null' format: int64 x-go-name: DiskCount diskCountByTier: description: DiskCountByTier describes the disk number of each storage tier. type: - array - 'null' items: $ref: '#/components/schemas/CountByTier' x-go-name: DiskCountByTier id: description: Id is the Id of the Node. type: - integer - 'null' format: int64 x-go-name: Id ip: description: Ip is the IP address of the Node. type: - string - 'null' x-go-name: Ip isAppNode: description: Whether node is app node. type: - boolean - 'null' x-go-name: IsAppNode isMarkedForRemoval: description: 'IsMarkedForRemoval specifies whether the node has been marked for removal.' type: - boolean - 'null' x-go-name: IsMarkedForRemoval maxPhysicalCapacityBytes: description: 'MaxPhysicalCapacityBytes specifies the maximum physical capacity of the node in bytes.' type: - integer - 'null' format: int64 x-go-name: MaxPhysicalCapacityBytes nodeHardwareInfo: description: HardwareInfo describes the hardware of the node. $ref: '#/components/schemas/NodeHardwareInfo' nodeIncarnationId: description: 'NodeIncarnationId is the incarnation id of this node. The incarnation id is changed every time the data is wiped from the node. Various services on a node is only run if incarnation id of the node matches the incarnation id of the cluster. Whenever a mismatch is detected, Nexus will stop all services and clean the data from the node. After clean operation is completed, Nexus will set the node incarnation id to cluster incarnation id and start the services.' type: - integer - 'null' format: int64 x-go-name: NodeIncarnationId nodeSoftwareVersion: description: 'NodeSoftwareVersion is the current version of Cohesity software installed on a node.' type: - string - 'null' x-go-name: NodeSoftwareVersion nodeType: description: 'Node type: StorageNode, AllFlashNode, RoboNode, AppNode, etc.' type: - string - 'null' x-go-name: NodeType offlineMountPathsOfDisks: description: 'OfflineMountPathsOfDisks provides the corresponding mount paths for direct attached disks that are currently offline - access to these were detected to hang sometime in the past. After these disks have been fixed, their mount paths needs to be removed from the following list before these will be accessed again.' type: - array - 'null' items: type: string x-go-name: OfflineMountPathsOfDisks removalReason: description: 'RemovalReason specifies the removal reason of the node. ''kAutoHealthCheck'' means the entity health is bad. ''kUserGracefulRemoval'' means user initiated a graceful removal. ''kUserAvoidAccess'' means user initiated a mark offline. ''kUserGracefulNodeRemoval'' mean users initiated graceful node removal. ''kUserRemoveDownNode'' mean user initiated graceful removal of down node.' type: - array - 'null' items: type: string enum: - kAutoHealthCheck - kUserGracefulRemoval - kUserAvoidAccess - kUserGracefulNodeRemoval - kUserRemoveDownNode x-go-name: RemovalReason removalState: description: 'RemovalState specifies the removal state of the node. ''kDontRemove'' means the state of object is functional and it is not being removed. ''kMarkedForRemoval'' means the object is being removed. ''kOkToRemove'' means the object has been removed on the Cohesity Cluster and if the object is physical, it can be removed from the Cohesity Cluster.' type: - string - 'null' enum: - kDontRemove - kMarkedForRemoval - kOkToRemove x-go-name: RemovalState slotNumber: description: Slot number occupied by this node within the chassis. type: - integer - 'null' format: uint32 x-go-name: SlotNumber stats: description: Stats describes the node stats. $ref: '#/components/schemas/NodeStats' systemDisks: description: SystemDisk describes the node system disks. type: - array - 'null' items: $ref: '#/components/schemas/NodeSystemDiskInfo' x-go-name: SystemDisks x-go-package: cohesity/iris/server/data/public CountByTier: description: CountByTier provides the disk count of each storage tier. type: object title: Disk count By Tier. properties: diskCount: description: DiskCount is the disk number of the storage tier. type: - integer - 'null' format: int64 x-go-name: DiskCount storageTier: description: 'StorageTier is the type of StorageTier. StorageTierType represents the various values for the Storage Tier. ''kPCIeSSD'' indicates storage tier type of Pci Solid State Drive. ''kSATAHDD'' indicates storage tier type of SATA Solid State Drive. ''kSATAHDD'' indicates storage tier type of SATA Hard Disk Drive. ''kCLOUD'' indicates storage tier type of Cloud.' type: - string - 'null' enum: - kPCIeSSD - kSATASSD - kSATAHDD - kCLOUD x-go-name: StorageTier x-go-package: cohesity/iris/server/data/public ServiceProcessEntry: description: 'Specifies the name of a Service running on the Cluster as well as a list of process IDs associated with that service.' type: object title: Service Process Entry. properties: processIds: description: Specifies the list of process IDs associated with the Service. type: - array - 'null' items: type: integer format: int64 x-go-name: ProcessIds serviceName: description: 'Specifies the name of the Service. ''kApollo'' is a service for reclaiming freed disk sectors on Nodes in the SnapFS distributed file system. ''kBridge'' is a service for managing the SnapFS distributed file system. ''kGenie'' is a service that is responsible for monitoring hardware health on the Cluster. ''kGenieGofer'' is a service that links the Genie service to other services on the Cluster. ''kMagneto'' is the data protection service of the Cohesity Data Platform. ''kIris'' is the service which serves REST API calls to the UI, CLI, and any scripts written by customers. ''kIrisProxy'' is a service that links the Iris service to other services on the Cluster. ''kScribe'' is the service responsible for storing filesystem metadata. ''kStats'' is the service that is responsible for retrieving and aggregating disk metrics across the Cluster. ''kYoda'' is an elastic search indexing service. ''kAlerts'' is a publisher and subscribing service for alerts. ''kKeychain'' is a service for managing disk encryption keys. ''kLogWatcher'' is a service that scans the log directory and reduces the number of logs if required. ''kStatsCollector'' is a service that periodically logs system stats. ''kGandalf'' is a distributed lock service and coordination manager. ''kNexus'' indicates the Nexus service. This is the service that is responsible for creation of Clusters and configuration of Nodes and networking. ''kNexusProxy'' is a service that links the Nexus service to other services on the Cluster. ''kStorageProxy'' is a service for accessing data on external entities. ''kTricorder'' is a diagnostic health testing service for Clusters. ''kRtClient'' is a reverse tunneling client service. ''kVaultProxy'' is a service for managing external targets that Clusters can be backed up to. ''kSmbProxy'' is an SMB protocol service. ''kBridgeProxy'' is the service that links the Bridge service to other services on the Cluster. ''kLibrarian'' is an elastic search indexing service. ''kGroot'' is a service for managing replication of SQL databases across multiple nodes in a Cluster. ''kEagleAgent'' is a service that is responsible for retrieving information on Cluster health. ''kAthena'' is a service for running distributed containerized applications on the Cohesity Data Platform. ''kBifrostBroker'' is a service for communicating with the Cohesity proxies for multitenancy. ''kSmb2Proxy'' is a new SMB protocol service. ''kOs'' can be specified in order to do a full reboot. ''kAtom'' is a service for receiving data for the Continuous Data Protection.' type: - string - 'null' enum: - kApollo - kBridge - kGenie - kGenieGofer - kMagneto - kIris - kIrisProxy - kScribe - kStats - kYoda - kAlerts - kKeychain - kLogWatcher - kStatsCollecter - kGandalf - kNexus - kNexusProxy - kStorageProxy - kTricorder - kRtClient - kVaultProxy - kSmbProxy - kBridgeProxy - kLibrarian - kGroot - kEagleAgent - kAthena - kBifrostBroker - kSmb2Proxy - kOs - kAtom x-go-name: ServiceName x-go-package: cohesity/iris/server/data/public NodeStatusResult: description: Specifies the current status of a Node in the cluster. type: object title: Node Status Result. properties: activeOperation: description: 'Specifies the active operation on the Node if there is one. ''kNone'' specifies that there is no active operation on the Node. ''kDestroyCluster'' specifies that the Cluster which the Node is a part of is currently being destroyed. ''kUpgradeCluster'' specifies that the Cluster which the Node is a part of is currently being upgraded to a new software package. ''kRestartCluster'' specifies that the Cluster which the Node is a part of is currently being restarted. ''kCreateCluster'' specifies that the Node is currently being used to create a new Cluster. ''kExpandCluster'' specifies that the Node is currently being added to a Cluster or being used to assist in adding another Node to a Cluster. ''kUpgradeNode'' specifies that the Node is currently being upgraded to a new software package. ''kRemoveNode'' specifies that the Node is currently being removed from a Cluster or that it is assisting in removing another Node from a Cluster. ''kAddDisks'' specifies that the Node is being used to assist in adding disks to the Cluster. ''kMarkDiskOffline'' specifies that the Node is being use to assist in marking a disk in the Cluster as offline.' type: - string - 'null' enum: - kNone - kDestroyCluster - kUpgradeCluster - kRestartCluster - kCreateCluster - kExpandCluster - kUpgradeNode - kRemoveNode - kAddDisks - kMarkDiskOffline x-go-name: ActiveOperation clusterId: description: Specifies the Cluster ID if the Node is part of a Cluster. type: - integer - 'null' format: int64 x-go-name: ClusterId id: description: Specifies the ID of the Node. type: - integer - 'null' format: int64 x-go-name: Id inCluster: description: Specifies whether or not the Node is part of a Cluster. type: - boolean - 'null' x-go-name: InCluster incarnationId: description: Specifies the Incarnation ID if the Node is part of a Cluster. type: - integer - 'null' format: int64 x-go-name: IncarnationId ip: description: Specifies the IP address of the Node. type: - string - 'null' x-go-name: Ip lastUpgradeTimeSecs: description: Specifies the time of the last upgrade in seconds since the epoch. type: - integer - 'null' format: int64 x-go-name: LastUpgradeTimeSecs markedForRemoval: description: Specifies whether or not this node is marked for removal. type: - boolean - 'null' x-go-name: MarkedForRemoval message: description: Specifies an optional message describing the current state of the Node. type: - string - 'null' x-go-name: Message removalReason: description: 'Specifies the reason for the removal operation if there is a removal operation going on. ''kUnknown'' specifies that the removal reason is not known. ''kAutoHealthCheck'' specifies that an internal health check found problems with the Node. ''kUserGracefulRemoval'' specifies that the user requested a graceful removal. ''kUserAvoidAccess'' specifies that the user requested to avoid access to this Node. ''kUserGracefulNodeRemoval'' specifies that the user requested a graceful removal for all of the disks in this Node. ''kUserRemoveDownNode'' specifies that the user requested a graceful removal of the Node while it is down.' type: - string - 'null' enum: - kUnknown - kAutoHealthCheck - kUserGracefulRemoval - kUserAvoidAccess - kUserGracefulNodeRemoval - kUserRemoveDownNode x-go-name: RemovalReason services: description: 'Specifies the list of services running on the cluster and their process Ids.' type: - array - 'null' items: $ref: '#/components/schemas/ServiceProcessEntry' x-go-name: Services softwareVersion: description: Specifies the version of the software running on the Node. type: - string - 'null' x-go-name: SoftwareVersion uptime: description: Uptime of node. type: - string - 'null' x-go-name: Uptime x-go-package: cohesity/iris/server/data/public