Skip to content

REST API Resources

This document provides an overview of the REST API resources in Cloutility and their structures. A more complete documentation of Cloutility's REST API resources can be found here.

APIEndpoint

{
  "name": string,
  "method": string,
  "href": string
}

Action

{
  "href": string,
  "name": string,
  "id": integer,
  "createdDate": date
}

Activity

{
  "inProgress": boolean,
  "type": ActivityType,
  "address": string,
  "examindedFiles": integer,
  "affectedFiles": integer,
  "failedFiles": integer,
  "bytes": integer,
  "idle": integer,
  "mediaWait": integer,
  "processes": integer,
  "successful": boolean,
  "communicateWait": integer,
  "startTime": date,
  "endTime": date,
  "details": string,
  "node": Node,
  "dataMover": Node,
  "filespace": Filespace,
  "subEntity": string,
  "asNode": string,
  "schedule": Schedule,
  "event": Event,
  "activityLogs": [ActivityLog...],
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

ActivityLog

{
  "severity": string,
  "message": string,
  "messageNumber": integer,
  "node": Node,
  "schedule": Schedule,
  "activity": Activity,
  "filtered": boolean,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

ActivityLogFilter

{
  "filter": string,
  "messageNumber": string,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

ActivityType

{
  "name": string,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

Address

{
  "href": string,
  "name": string,
  "street": string,
  "zipCode": string,
  "city": string,
  "contactPerson": string,
  "phone": string,
  "emails": [string...],
  "type": AddressType,
  "country": Country,
  "id": integer,
  "createdDate": date
}

AddressList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [Address...]
}

AddressType

{
  "id": integer,
  "name": string,
  "createdDate": date
}

BackupServer

{
  "href": string,
  "id": integer,
  "name": string
}

BillingCycle

{
  "id": integer,
  "name": string,
  "createdDate": date,
  "months": integer
}

BillingData

{
  "href": string,  // Optional
  "invoiceDateStr": string,
  "summary": [BillingDataSummary...],  // Optional
  "billingBusinessUnit": BusinessUnit,
  "invoiceDate": date,
  "invoices": [Invoice...],
  "id": integer,
  "createdDate": date
}

BillingDataList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [BillingData...]
}

BillingDataSummary

{
  "currency": Currency,
  "total": float
}

BusinessUnit

A business unit.

{
  "href": string,
  "parentBusinessUnit": BusinessUnit,  // Optional
  "timeZone": TimeZone,  // Optional
  "users": UserList | BusinessUnitURL,  // Optional
  "addresses": AddressList | BusinessUnitURL,  // Optional
  "businessUnits": BusinessUnitList | BusinessUnitURL,  // Optional
  "ancestors": BusinessUnitURL,  // Optional
  "note": string,  // Optional
  "contract": Contract,  // Optional
  "domainFilter": [string...],
  "clientOptionSetFilter": [string...],
  "name": string,
  "supportResponsible": boolean,
  "registrationNumber": string,
  "invoiceDay": integer,
  "billingStorageTypeId": integer,
  "billingStorageType": integer,
  "useScheduleBindings": boolean,
  "consumers": [Consumer...],
  "storageLimit": integer,
  "transferLimit": integer,
  "nodeLimit": integer,
  "passwordExpirationDays": integer,
  "requiredApproversOfDeleteRequest": integer,
  "finalDeleteRequestApprover": boolean,
  "usersCanApproveOwnRequests": boolean,
  "reportRemotely": boolean,
  "tags": [BusinessUnitTag...],
  "id": integer,
  "createdDate": date
}

BusinessUnitList

{
  "href": string,
  "total": integer,
  "offset": integer,  // Optional
  "first": string,  // Optional
  "items": [BusinessUnit...]
}

BusinessUnitTag

{
  "id": integer,
  "businessUnitId": integer,
  "text": string,
  "inheritable": boolean,
  "businessUnitCount": integer,
  "consumerCount": integer
}

BusinessUnitURL

{
  "$type": string  // Optional
  "href": string,
  "total": integer,
  "offset": integer,  // Optional
  "first": string,  // Optional
  "items": [BusinessUnit...]
}

ClientOptionSet

{
  "href": string,  // Optional
  "name": string,
  "description": string,  // Optional
  "id": integer,
  "createdDate": date
}

ClientOptionSetList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [ClientOptionSet...]
}

Consumer

{
  "dataSourceType": DataSourceType,
  "dataSourceIsPotentialParent": boolean,
  "dataSourceState": DataSourceState,
  "latestRestorePoint": date,
  "name": string,
  "billingStartDate": date,
  "businessUnit": BusinessUnit,
  "comments": [Comment...],
  "note": string,  // Optional
  "externalReference": string,  // Optional
  "node": Node,
  "limitHighStorage": integer,
  "allowNoActivity": boolean,
  "tags": [BusinessUnitTag...],
  "jobs": [Job...],
  "id": integer,
  "createdDate": date,
  "billingEndDate": boolean,
  "scheduledDeletionDate": boolean
}

ConsumerList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [Consumer...]
}

Contract

{
  "href": string,  // Optional
  "billingStartDate": date,
  "agreedLegalTerms": string,
  "erpReference": string,
  "discount": float,
  "byCalendar": boolean,
  "prepayConsumption": boolean,
  "useCpuMultiplier": boolean,
  "billingCycle": BillingCycle,  // Optional
  "paymentTerms": PaymentTerms,  // Optional
  "currency": Currency,
  "subscriptions": [ContractSubscription...],
  "referrals": [Referral...],
  "id": integer,
  "createdDate": date
}

ContractSubscription

{
  "billingStartDate": date,  // Optional
  "name": string,
  "currency": Currency,
  "contractCount": integer,
  "components": [SubscriptionComponent...],  // Optional
  "id": integer,
  "createdDate": date
}

Country

{
  "name": string,
  "code": string,
  "id": integer,
  "createdDate": date
}

Currency

{
  "name": string,
  "code": string,
  "symbol": string,
  "displayName": string,
  "longDisplayName": string,
  "id": integer,
  "createdDate": date
}

DataSourceState

{
  "id": integer,
  "name": string
}

DataSourceType

We only have one such resource in use:

{
  "id": 1,
  "name": "SP Backup node"
}

DedupStat

{
  "spCreatedDate": date,
  "storagePoolName": string,
  "storagePool": StoragePool,
  "nodeName": string,
  "filespaceName": string,
  "filespace": Filespace,
  "physicalMegaBytes": float,
  "protectedMegaBytes": float,
  "type": string,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

Domain

{
  "href": string,  // Optional
  "server": BackupServer,  // Optional
  "name": string,
  "description": string,
  "backupRetention": integer,
  "archiveRetention": integer,
  "missingInTsm": boolean,
  "id": integer,
  "createdDate": date
}

DomainList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [Domain...]
}

DurationUnit

{
  "name": string,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

Event

{
  "status": EventStatus,
  "result": integer,
  "reason": EventReason,
  "scheduledStart": date,
  "actualStart": date,
  "completed": date,
  "updatedToJob": boolean,
  "node": Node,
  "dataMover": Node,
  "domain": Domain,
  "schedule": Schedule,
  "activities": [Activity...],
  "importedFromNodeUpdate": boolean,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

EventReason

{
  "name": string,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

EventStatus

{
  "name": string,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

Filespace

{
  "href": string,
  "tsmFilespaceId": string,
  "type": string,
  "capacityMegaBytes": float,
  "frontEndCapacityMegaBytes": integer,
  "percentageUtilized": float,
  "lastBackupStart": date,
  "lastBackupEnd": date,
  "occupancies": [FilespaceOccupancy...],
  "dedupStats": [DedupStat...],
  "activities": [Activity...],
  "events": [Event...],
  "node": Node,
  "retentionSets": [RetentionSet...],
  "name": string,
  "dataSourceState": DataSourceState,
  "id": integer,
  "createdDate": date
}

FilespaceList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [Filespace...]
}

FilespaceOccupancy

{
  "storagePool": StoragePool,
  "files": integer,
  "logicalMegaBytes": float,
  "logicalMegaBytesCorrected": float,
  "dedupStatNeeded": boolean,
  "dedupStatUpToDate": boolean,
  "physicalMegaBytes": float,
  "reportingMegaBytes": float,
  "storageMegaBytes": float,
  "type": FilespaceOccupancyType,
  "id": integer,
  "createdDate": date
}

FilespaceOccupancyType

{
  "id": integer,
  "name": string,
  "createdDate": date
}

IdentityProvider

{
  "guid": string,
  "name": string,
  "inherited": boolean,
  "public": boolean,
  "entityId": integer,
  "identityLocation": string,
  "singleSignOnUrl": string,
  "signInUrl": string,
  "certificate": bytes,
  "certificateName": string,
  "certificateInfo": string,
  "publicKey": string,
  "signatureKeys": string,
  "enableUserEmail": boolean,
  "ignoreTotp": boolean,
  "latestSamlAssertion": string,
  "businessUnit": BusinessUnit,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

Invoice

{
  "href": string,
  "payingBusinessUnit": BusinessUnit,
  "lines": [InvoiceLine...],
  "id": integer,
  "createdDate": date
}

InvoiceLine

{
  "subscription": Subscription,
  "product": Product,
  "startDate": date,
  "endDate": date,
  "unitPrice": float,
  "quantity": float,
  "note": string,
  "id": integer,
  "createdDate": date
}

InvoiceList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [Invoice...]
}

InvoiceMethod

{
  "name": string,
  "invoicesRemoteData": boolean,
  "isQuantifiable": boolean,
  "replicationAware": boolean,
  "isSystemOnly": boolean,
  "usesSettlementMethod": boolean,
  "type": InvoiceMethodType,
  "id": integer,
  "createdDate": date
}

InvoiceMethodType

{
  "name": string,
  "id": integer,
  "createdDate": date
}

Job

{
  "href": string,
  "businessUnitId": integer,
  "consumerId": integer,
  "dataSourceId": integer,
  "serverId": integer,
  "tags": [Tag...],
  "type": JobType,  // Optional
  "status": JobStatus,  // Optional
  "severity": JobSeverity,
  "supportStatus": SupportStatus,  // Optional
  "dataSourceType": DataSourceType,  // Optional
  "dataSourceState": DataSourceState,  // Optional
  "scheduled": boolean,
  "scheduledStart": date,  // Optional
  "actualStart": date,  // Optional
  "completed": date,
  "examinedFiles": integer,
  "affectedFiles": integer,
  "failedFiles": integer,
  "result": integer,
  "transferredMegaBytes": float,
  "transferredGigaBytes": float,
  "serverType": ServerType,  // Optional
  "jobName": JobName,  // Optional
  "name": string,
  "duration": timedelta,
  "transferredMegaBytesPerSecond": float,
  "id": integer,
  "createdDate": date
}

The values that JobSeverity can assume are defined here.

JobList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [Job...]
}

JobName

{
  "name": string,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

JobStatus

{
  "id": integer,
  "name": string
}

JobType

{
  "id": integer,
  "name": string
}

Language

{
  "name": string,
  "iso639Code": string,
  "id": integer,
  "createdDate": date
}

Node

A backup node.

{
  "href": string,
  "cpuCount": integer,
  "activatedDate": date,  // Optional
  "locked": boolean,
  "operatingSystem": NodeOperatingSystem,
  "type": NodeType,
  "syncState": NodeSyncState,
  "domain": Domain,
  "clientOptionSet": ClientOptionSet,
  "schedules": [Schedule...],
  "nodeSchedules": [NodeSchedule...],
  "filespaces": [Filespace...],
  "events": [Event...],
  "unscheduledActivities": [Activity...],
  "ticket": string,
  "retentionSets": [RetentionSet...],
  "activityLogs": [ActivityLog...],
  "proxyAgents": [Node...],
  "proxyTargets": [Node...],
  "nodeGroups": [NodeGroup...],
  "tsmName": string,
  "tsmNodeId": string,  // Optional
  "tsmPassword": string,
  "contact": string,
  "platform": NodePlatform,
  "tsmClientVersion": NodeTsmClientVersion,
  "osLevel": NodeOSLevel,
  "tcpName": string,
  "tcpAddress": string,
  "macAddress": string,  // Optional
  "sessionSecurity": SessionSecurity,
  "hypervisor": string,  // Optional
  "containsVmFilespaces": boolean,
  "lastAccessTime": string,  // Optional
  "registeredTime": string,  // Optional
  "decommissioned": boolean,
  "replicationState": boolean,
  "replicationMode": integer,
  "replicationServerPrimary": string,  // Optional
  "replicationServerSecondary": string,  // Optional
  "replicationServerSecondary2": string,  // Optional
  "activityLogFilters": [ActivityLogFilter...],
  "remoteActivities": [...],  // SAP-HANA specific, should always be empty
  "name": string,
  "dataSourceState": DataSourceState,
  "dataSourceType": DataSourceType,
  "consumer": Consumer,
  "id": integer,
  "createdDate": date
}

NodeGroup

{
  "name": string,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

NodeList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [Node...]
}

NodeOSLevel

{
  "name": string,
  "id": integer,
  "createdDate": date
}

NodeOperatingSystem

{
  "href": string,  // Optional
  "name": string,
  "shortName": string,
  "supportedNodeTypes": [NodeType...],  // Optional
  "id": integer,
  "createdDate": date
}

NodeOperatingSystemList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [NodeOperatingSystem...]
}

NodePlatform

{
  "name": string,
  "id": integer,
  "createdDate": date
}

NodeReport

{
  "name": string,  // Consumption unit name
  "statusReportId": integer,
  "pending": boolean,
  "dataSourceType": DataSourceType,
  "nodeReportTypeId": integer,
  "dataSource": string,  // Node name
  "dataSourceState": DataSourceState,
  "deviceName": string,
  "tsmName": string,  // Node name
  "status": ErrorStatus,
  "tsmServerName": string,
  "proxyNodeReports": [NodeReport...],
  "errorsDeactivated": boolean,
  "errorsDeactivatedNoActivity": boolean,
  "megaBytes": float,
  "backupMegaBytes": float,
  "archiveMegaBytes": float,
  "megaBytesDelta": float,
  "megaBytesDeltaPercentage": float,
  "backupMegaBytesDeltaPercentage": float,
  "archiveMegaBytesDeltaPercentage": float,
  "backupMegaBytesDelta": float,
  "archiveMegaBytesDelta": float,
  "megaBytesForCurrentBusinessUnit": float,
  "backupMegaBytesForCurrentBusinessUnit": float,
  "archiveMegaBytesForCurrentBusinessUnit": float,
  "comments": [Comment...],
  "transferredMegaBytes": float,
  "transferredBackupMegaBytes": float,
  "transferredRestoreMegaBytes": float,
  "percentOfTotalStorageOfBusinessUnit": float,
  "consumerId": integer,
  "nodeId": integer,
  "businessUnitId": integer,
  "businessUnitName": string,
  "reportDate": date,
  "warnings": [NodeReportWarning...],  // Optional
  "id": integer,
  "createdDate": date,
  "href": string
}
All ErrorStatus values are defined here.

NodeReportList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [NodeReport...]
}

NodeReportWarning

{
  "type": NodeWarningType,
  "status": ErrorStatus,
  "days": integer,
  "limit": float,
  "nodeReportId": integer,
  "id": integer,
  "createdDate": date
}
All ErrorStatus values are defined here.

NodeSchedule

{
  "schedule": Schedule,
  "node": Node,
  "lastSuccessful": date,
  "errorCount": integer,
  "errorHandled": boolean,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

NodeSyncState

{
  "name": string,
  "id": integer,
  "createdDate": date
}

NodeTsmClientVersion

{
  "name": string,
  "id": integer,
  "createdDate": date
}

NodeType

{
  "href": string,  // Optional
  "id": integer,
  "name": string,
  "shortName": string,  // Optional
  "createdDate": date
}

NodeTypeList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [NodeType...]
}

NodeWarningType

{
  "name": string,  // Optional
  "usesLimit": boolean,
  "id": integer,
  "createdDate": date
}

NodeWarningTypeList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [NodeWarningType...]
}

PaymentTerms

{
  "name": string,
  "code": string,
  "id": integer,
  "createdDate": date
}

PeriodUnit

{
  "name": string,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

Privilege

{
  "name": string,
  "operation": string,
  "resource": string,
  "id": integer,
  "createdDate": date
}

Product

{
  "name": string,
  "inherited": boolean,
  "inheritable": boolean,
  "method": InvoiceMethod,
  "replicationType": integer,
  "inheritedProductCode": ProductCode,  // Optional
  "id": integer,
  "createdDate": date
}

Find replication types here.

ProductCode

{
  "name": string,
  "id": integer,
  "createdDate": date
}

QuantityCalculationOption

{
  "id": integer,
  "name": string
}

Referral

{
  "contract": Contract,
  "referrer": BusinessUnit,
  "percentage": float,
  "billingStartDate": date,
  "billingEndDate": date,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

RetentionRule

{
  "name": string,
  "nodePaths": string,
  "filespacePaths": string,
  "retentionDays": integer,
  "isActive": boolean,
  "startTime": date,
  "description": string,
  "scheduleStyle": string,
  "frequency": string,
  "dayOfWeek": string,
  "month": string,
  "dayOfMonth": string,
  "weekOfMonth": string,
  "nextStart": date,
  "previousStart": date,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

RetentionSet

{
  "description": string,
  "expiryDate": date,
  "fileCount": integer,
  "spId": integer,
  "retentionPeriod": string,
  "rule": RetentionRule,
  "sizeMegaBytes": integer,
  "state": RetentionSetState,
  "pointInTime": date,
  "lastUpdatedBy": string,
  "lastUpdated": date,
  "nodes": [Node...],
  "filespaces": [Filespace...],
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

RetentionSetState

{
  "name": string,
  "id": integer
}

Role

{
  "inheritable": boolean,
  "name": string,
  "description": string,
  "privileges": [Privilege...],
  "id": integer,
  "createdDate": date
}

Schedule

{
  "name": string,
  "description": string,
  "domain": Domain,
  "action": Action,
  "objects": string,
  "options": string,
  "asNodeNames": [string...],
  "startTime": date,
  "periodUnit": PeriodUnit,
  "duration": integer,
  "durationUnit": DurationUnit,
  "priority": integer,
  "dayOfWeek": string,
  "monday": boolean,
  "tuesday": boolean,
  "wednesday": boolean,
  "thursday": boolean,
  "friday": boolean,
  "saturday": boolean,
  "sunday": boolean,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

ServerType

There should only be one such resource:

{
  "id": 1,
  "name": "IBM Storage Protect"
}

SessionSecurity

{
  "id": integer,
  "name": string
}

SimpleBusinessUnit

{
  "id": integer,
  "parentId": integer,  // Optional
  "name": string,
  "groupName": string,
  "reportRemotely": boolean,
  "businessUnits": [SimpleBusinessUnit...],
  "tags": [BusinessUnitTag...],
  "invoiceDay": integer
}

StoragePool

{
  "name": string,
  "type": string,
  "totalStorageMegaBytes": float,
  "freeStorageMegaBytes": float,
  "maxProcesses": integer,
  "id": integer,
  "createdDate": date
}

SubscriptionComponent

{
  "quantity": integer,
  "price": float,
  "isCapacity": boolean,
  "includedBundles": integer,
  "startDate": date,
  "quantityCalculationOption": QuantityCalculationOption,
  "product": Product,
  "replicationType": integer,
  "id": integer,
  "createdDate": date
}

SupportStatus

{
  "id": integer,
  "name": string
}

TimeZone

{
  "$type": string,  // Optional
  "href": string,  // Optional
  "actions": [APIEndpoint...],  // Optional
  "name": string,
  "windowsId": string,
  "offset": integer,
  "id": integer,
  "createdDate": date
}

TimeZoneList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [TimeZone...]
}

User

{
  "href": string,
  "actions": [Action...],
  "name": string,
  "phone": string,
  "email": string,
  "failedLoginAttempts": integer,
  "usesTotp": boolean,
  "locked": boolean,
  "dateFormatInitialized": string,
  "timeFormatInitialized": string,
  "dateTimeFormat": string,
  "dateAtTimeFormat": string,
  "csvDelimiter": string,
  "decimalMark": string,
  "role": Role,
  "lastLoginDate": date,
  "lastPasswordChange": string,
  "businessUnit": BusinessUnit,
  "businessUnitId": integer,
  "language": Language,
  "receiveCommentNotifications": boolean,
  "receiveDeleteRequestNotifications": boolean,
  "useOwnReportErrorConfig": boolean,
  "groupStatusReportByBusinessUnits": boolean,
  "itemsPerPage": integer,
  "excludeJobTags": boolean,
  "userIdentities": [UserIdentity...],
  "displayName": string,
  "id": integer,
  "createdDate": date
}

UserIdentity

{
  "identifier": string,
  "user": User,
  "identityProvider": IdentityProvider,
  "id": integer,
  "createdDate": date,
  "archivedDate": date
}

UserList

{
  "href": string,
  "total": integer,
  "offset": integer,
  "first": string,
  "items": [User...]
}