openapi: 3.2.0 info: version: 1.0.0 description: Public APIs for Site Continuity v2 service. title: Site Continuity v2 Service Applications API termsOfService: https://cohesity.com contact: email: support@cohesity.com servers: - url: https://helios.cohesity.com/v2/mcm/site-continuity/v2 security: - ApiKeyAuth: [] tags: - name: Applications paths: /applications: post: description: 'Privileges: DRAAS_MODIFY Creates a new application consisting of objects, delays and scripts.' tags: - Applications summary: Creates a new application operationId: SCCreateApp responses: 201: $ref: '#/components/responses/SCCreateAppResponse' default: $ref: '#/components/responses/SCErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/SCAppCreateOrUpdateParams' description: Specifies the parameters to create an application. required: true get: description: 'Privileges: DRAAS_VIEW Returns a list of applications based on the defined filter criteria.' tags: - Applications summary: Returns a list of applications operationId: SCGetApps parameters: - name: appIds description: Specifies IDs to filter the applications response. in: query schema: type: array items: type: integer format: int64 - name: appNames description: Specifies app names to filter the applications response. This is case insensitive and supports substring search. in: query schema: type: array items: type: string - name: siteIds description: Specifies site IDs to filter the applications response. in: query schema: type: array items: type: integer format: int64 - name: statuses description: Specifies the application statuses to filter the applications response. 'NotReady' status specifies that application is currently not ready to be used for DR operations.

'Ready' status specifies that application is ready for performing DR operations.

in: query schema: type: array items: type: string enum: - NotReady - Ready - name: includeSummary description: Specifies the parameter to include summary information for application response. This must be passed as true to include the summary in the response. in: query schema: type: boolean responses: 200: $ref: '#/components/responses/SCGetAppsResponse' default: $ref: '#/components/responses/SCErrorResponse' /applications/{id}: get: description: 'Privileges: DRAAS_VIEW Gets application information using its ID.' tags: - Applications summary: Returns an application by ID operationId: SCGetAppById parameters: - name: id description: Specifies the ID of the application. in: path required: true schema: type: integer format: int64 responses: 200: $ref: '#/components/responses/SCGetAppByIdResponse' default: $ref: '#/components/responses/SCErrorResponse' put: description: 'Privileges: DRAAS_MODIFY Updates application''s information using its ID.' tags: - Applications summary: Updates an application by ID operationId: SCUpdateAppById parameters: - name: id description: Specifies the ID of the application. in: path required: true schema: type: integer format: int64 responses: 200: $ref: '#/components/responses/SCUpdateApplicationResponse' default: $ref: '#/components/responses/SCErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/SCAppCreateOrUpdateParams' description: Specifies the parameters to update an application. required: true delete: description: 'Privileges: DRAAS_MODIFY Deletes an application using its ID. Delete operation will not be allowed if the application is currently used by a DR plan.' tags: - Applications summary: Deletes an application by ID operationId: SCDeleteAppById parameters: - name: id description: Specifies the ID of the Application. in: path required: true schema: type: integer format: int64 responses: 204: description: No content default: $ref: '#/components/responses/SCErrorResponse' /applications/{id}/versions: get: description: 'Privileges: DRAAS_VIEW Get list of versions associated with the application.' tags: - Applications summary: Returns a list of application versions operationId: SCGetVersionsForApp parameters: - name: id description: Specifies the ID of the application. in: path required: true schema: type: integer format: int64 - name: versions description: Specifies version numbers to filter specific versions of the application. in: query schema: type: array items: type: integer format: int64 responses: 200: $ref: '#/components/responses/SCGetAppVersionsResponse' default: $ref: '#/components/responses/SCErrorResponse' /applications/{id}/replicated-snapshots: get: description: 'Privileges: DRAAS_VIEW Gets the replicated snapshot details for all objects from the latest application version. API will return the latest replicated snapshot for all objects when no filters are specified. These replicated snapshots are served from the internal cache and may be stale.' tags: - Applications summary: Returns list of replicated snapshots for an application operationId: SCGetSnapshotForAppId parameters: - name: id description: Specifies the ID of the application. in: path required: true schema: type: integer format: int64 - name: objectIds description: Specifies the list of objectIDs to filter the snapshot information. This list should only contain the list of objectIDs at the source site that were added while creating the application. 'fromTimeUsecs' and 'toTimeUsecs' must be set to valid timestamps when using the 'objectIds' filter. in: query schema: type: array items: type: integer format: int64 - name: fromTimeUsecs description: Specifies the starting timestamp in Unix time epoch in microseconds to get the snapshots response. 'objectIds' filter must be specified with at least one ID when using 'fromTimeUsecs' filter. in: query schema: type: integer format: int64 - name: toTimeUsecs description: Specifies the ending timestamp in Unix time epoch in microseconds to get the snapshots response. 'objectIds' filter must be specified with at least one ID when using 'toTimeUsecs' filter. in: query schema: type: integer format: int64 responses: 200: $ref: '#/components/responses/SCGetLatestSnapshotByAppIdResponse' default: $ref: '#/components/responses/SCErrorResponse' components: schemas: SCApplicationVersion: description: Specifies the application details for a given version. type: object properties: siteId: description: Specifies the unique site identifier to which current application version belongs to. type: - integer - 'null' format: int64 version: description: Specifies the version number of the application. type: - integer - 'null' format: int64 spec: description: Specifies the application configuration consisting source information, object details, scripts and time delays. type: - object - 'null' $ref: '#/components/schemas/SCAppSpec' previousToCurrentVersionMap: description: Specifies the map for linking data objects from previous version to current version. This map will help identifying the recovered objects on DR cluster after successful failover or failback operation. This field will not be populated for very first version of the application. type: - object - 'null' $ref: '#/components/schemas/SCAppVersionMapping' SCApplicationsSummary: description: Specifies the summary information of existing applications. type: object properties: numApplications: description: Specifies the total number of existing applications. type: - integer - 'null' format: int64 numUniqueLocations: description: Specifies the total number of unique locations associated with the existing applications. type: - integer - 'null' format: int64 numApplicationObjects: description: Specifies the total number of objects added in all the existing applications. type: - integer - 'null' format: int64 SCAppComponentScriptConfig: description: Specifies the parameters required for adding a script. required: - name - content properties: name: description: Specifies name of the script. type: - string - 'null' content: description: Specifies contents/code of the script. Contents should be base64 encoded to avoid issues associated with special characters. type: - string - 'null' arguments: description: Specifies the list of arguments to the script. type: array items: type: string SCAppSourceVMwareParams: description: Specifies the source details for adding VMware objects. type: object required: - sourceType properties: sourceType: description: Specifies the type of the VMware source. type: - string - 'null' enum: - vCenter vCenterParams: description: Specifies the parameters to configure vCenter as a DR target. type: object $ref: '#/components/schemas/SCAppSourceVCenterParams' SCObjectSnapshot: description: Specifies the snapshot details for an object. The details include object details, snapshot details and point in time recovery timestamps. If object is protected by CDP (Continuous Data Protection) then refer point in time recovery timestamps for fetching replicated snapshot information. type: object properties: objectDetails: description: Specifies the specific details of the object. Following details belong to the objects added in the application spec while configuration. type: object $ref: '#/components/schemas/SCObjectDetails' replicatedSnapshots: description: Specifies the list of replicated snapshots associated with the object. Following list will always contain the latest replicated snapshot as first record. If specific 'objectIds' are requested in query params then the following list will also contain the list of non latest snapshots based on the provided timestamps. type: array items: $ref: '#/components/schemas/SCSnapshotDetails' timeRanges: description: Specifies the list of time ranges associated with the object. This list will be populated for the objects that are protected via CDP. Following list will always contain the latest time range as first record. If specific 'objectIds' are requested in query params then the following list will also contain the list of non latest time ranges based on the provided timestamps. A time range will be added to this list if it lies partially or completely within the provided timestamps, StartTime and EndTime in filter, (both inclusive). Partial match can happen when - timeRange's endTimeUsecs lies in the filter range but startTimeUsecs lies outside the filter range. - timeRange's startTimeUsecs lies in the filter range but endTimeUsecs lies outside the filter range. type: array items: $ref: '#/components/schemas/SCTimeRange' sourceBackupDetails: description: Specifies the details about the backup information from the source site which initiated the backup for the object. type: object $ref: '#/components/schemas/SCBackupDetails' SCObjectDetails: description: Specifies the object level details. type: object properties: objectId: description: Specifies the ID of the object. type: - integer - 'null' format: int64 objectName: description: Specifies the name of the object. type: - string - 'null' objectType: description: Specifies the type of the object. type: - string - 'null' enum: - virtualMachine virtualMachineInfo: description: Specifies the details specific to the virtualMachine object type. type: object $ref: '#/components/schemas/SCVMDetails' SCCommonAppParams: description: Specifies the common parameters required to create or update application. type: object required: - name properties: name: description: Specifies the name of the application. type: - string - 'null' SCPaginationInfo: description: Specifies information needed to support pagination. type: object properties: cookie: description: Specifies a cookie which can be passed in by the user in order to retrieve the next page of results. type: - string - 'null' SCAppSourceVCenterParams: description: Specifies the vCenter parameters required to be included as DR target. type: object required: - objectId properties: objectId: description: Specifies the object ID of the vCenter. This object identifier uniquely locates the vCenter object within Cohesity. type: - integer - 'null' format: int64 uuid: description: Specifies the UUID of the VMWare source. type: - string - 'null' readOnly: true SCAppSpec: description: Specifies the application configuration. type: object required: - source - components properties: source: description: Specifies the source details for managing data objects such as VMs, Views, etc. type: - object - 'null' $ref: '#/components/schemas/SCAppSourceConfig' components: description: Specifies the configuration for app components such as objects (VMs, Views, DBs, etc), scripts and time delays in ordered list. Ordered list will preserve the sequence of components and will failover or failback in the order of the sequence provided here. type: array items: $ref: '#/components/schemas/SCAppComponentsConfig' SCAppComponentsConfig: description: Specifies the configuration for app components such as objects (VMs, Views, DBs, etc), scripts and time delays in ordered list. type: object required: - type properties: type: description: Specifies the type of the component. type: - string - 'null' enum: - objects - script - delay objectParams: description: Specifies the configuration to add data objects such as VMs, Views, DBs, etc. When multiple objects are specified in this field then they will be processed and recovered in parallel at the time of failover or failback. type: array items: $ref: '#/components/schemas/SCAppComponentObjectConfig' scriptParams: description: Specifies the parameters to add a script component. type: - object - 'null' $ref: '#/components/schemas/SCAppComponentScriptConfig' delayParams: description: Specifies the parameters to configure a time delay. type: - object - 'null' $ref: '#/components/schemas/SCAppComponentTimeDelayConfig' SCAppComponentVMParams: description: Specifies the configuration parameters for virtual machine object. type: object properties: protectionGroupId: description: Specifies the Protection Group Id associated with the object. type: - string - 'null' username: description: Specifies the username associated with the VM. type: - string - 'null' password: description: Specifies the password associated with the VM. type: - string - 'null' scriptExecutionPath: description: Specifies the directory path in guest OS where user scripts will be placed for execution. type: - string - 'null' scriptParams: description: Specifies the parameters to add a script component inside a virtual machine. type: - object - 'null' $ref: '#/components/schemas/SCAppComponentScriptConfig' SCSnapshotDetails: description: Specifies the specific details of the snapshot. type: object properties: snapshotId: description: Specifies the unique identifier for the snapshot. type: - string - 'null' snapshotTimeUsecs: description: Specifies the Unix time epoch in microseconds when the snapshot was taken. type: - integer - 'null' format: int64 SCTimeRange: description: Specifies the time range for the objects protected typically protected via CDP. type: object properties: startTimeUsecs: description: Specifies the start time of the time range specified as unix epoch timestamp. type: - integer - 'null' format: int64 endTimeUsecs: description: Specifies the end time of the time range specified as unix epoch timestamp. type: - integer - 'null' format: int64 SCVMDetails: description: Specifies the details specific to the virtualMachine object type. type: object properties: isCdpProtected: description: Specifies true if the VM is protected using Continuous Data Protection (CDP). type: - boolean - 'null' SCApplication: description: Specifies the information about the application. type: object properties: id: description: Specifies the unique identifier for the application. type: - integer - 'null' format: int64 status: description: Specifies the current status of the application. Status will be always associated with latest version of the application.

'NotReady' status specifies that Application is currently not ready to be used when creating or updating DR plans. This usually happens if there are no backup jobs associated with objects added in the application.

'Ready' status specifies that application is ready to be added in DR plan.

type: - string - 'null' enum: - NotReady - Ready markedForDeletion: description: Specifies whether the application is undergoing deletion in background. Once the application is fully deleted, the response will not contain this application. type: - boolean - 'null' allOf: - $ref: '#/components/schemas/SCCommonAppParams' - type: object properties: latestAppVersion: description: Specifies the details of latest application version. Latest version is the recently created application object and allows performing edits on the application. type: - object - 'null' $ref: '#/components/schemas/SCApplicationVersion' drPlanId: description: Specifies the DR plan ID where this application is currently being used. This filed will only populated when application status is 'IsUse'. type: - integer - 'null' format: int64 SCBackupDetails: description: Specifies the details about the backup information. type: object properties: protectionGroupId: description: Specifies the uniques identifier of the Protection Group. type: - string - 'null' protectionGroupName: description: Specifies name of the protection group. type: - string - 'null' SCGetSnapshotsByAppIdResponse: description: Specifies the response for fetching snapshots for all the objects belonging to an application. type: object properties: appId: description: Specifies the unique identifier for the application. type: - integer - 'null' format: int64 objectSnapshots: description: Specifies the latest snapshot for all entities belonging to the latest version of the application. type: array items: $ref: '#/components/schemas/SCObjectSnapshot' SCApplicationsResponse: description: Specifies the list of applications. type: object properties: applications: description: Specifies the list of applications. type: array items: $ref: '#/components/schemas/SCApplication' summary: description: Specifies the summary information of existing applications. $ref: '#/components/schemas/SCApplicationsSummary' paginationInfo: description: Specifies the information needed in order to support pagination. This will not be included for the last page of results. $ref: '#/components/schemas/SCPaginationInfo' SCAppComponentTimeDelayConfig: description: Specifies the time delay config. required: - unit - delay properties: unit: description: Specifies the unit for the time delay. type: - string - 'null' enum: - Seconds - Minutes - Hours delay: description: Specifies the delay to be added. type: - integer - 'null' format: int64 SCAppComponentObjectConfig: description: Specifies configuration required for adding an object component. required: - id - type properties: id: description: Specifies the unique ID of the data object. This identifier uniquely locates a data object along with the source added to Cohesity. type: - integer - 'null' format: int64 type: description: Specifies the type of the object. type: - string - 'null' enum: - virtualMachine virtualMachineParams: description: Specifies the virtual machine object selection parameters. type: object $ref: '#/components/schemas/SCAppComponentVMParams' SCApplicationVersionsResponse: description: Specifies the list of application versions. type: object properties: application: description: Specifies the information about application. type: - object - 'null' $ref: '#/components/schemas/SCApplication' versions: description: Specifies the list of application versions. Listed versions will be returned in decreasing order. Latest version will appear first and next will be one previous to latest and so on. type: array items: type: object $ref: '#/components/schemas/SCApplicationVersion' paginationInfo: description: Specifies the information needed in order to support pagination. This will not be included for the last page of results. $ref: '#/components/schemas/SCPaginationInfo' SCAppCreateOrUpdateParams: description: Specifies the parameters required to create or update application. type: object allOf: - $ref: '#/components/schemas/SCCommonAppParams' - type: object required: - siteId - spec properties: siteId: description: Specifies the unique identifier of the site. type: - integer - 'null' format: int64 spec: description: Specifies the application configuration consisting source information, object details, scripts and time delays. type: - object - 'null' $ref: '#/components/schemas/SCAppSpec' SCAppSourceConfig: description: Specifies the source details for managing data objects such as VMs, Views, etc. type: object required: - environment properties: environment: description: Specifies the environment required for adding data objects. type: string enum: - vmware vmwareParams: description: Specifies the source for adding VMware data object parameters. Only vCenter is supported at this time. type: object $ref: '#/components/schemas/SCAppSourceVMwareParams' SCErrorCode: description: Specifies all the error codes that are returned by API server type: string enum: - kNoError - kValidationError - kInternalError SCAppVersionMapping: description: Specifies the map for linking data objects from previous version to current version. This map will help identifying the recovered objects on DR cluster after successful failover or failback operation. type: object properties: currentVersion: description: Specifies the current version number of the application. type: - integer - 'null' format: int32 previousVersion: description: Specifies the previous version number of the application. type: - integer - 'null' format: int32 currentSiteId: description: Specifies the unique site identifier in the current application version. type: - integer - 'null' format: int64 previousSiteId: description: Specifies the unique site identifier in the previous application version. type: - integer - 'null' format: int64 drPlanActionId: description: Specifies the identifier of a successful DR plan action that was initially triggered to create this current version. This action will be typically either a failover or failback action. type: - integer - 'null' format: int64 objectLinkage: description: Specifies the map for linking data objects from previous version to current version. type: array items: $ref: '#/components/schemas/SCAppObjectLinkage' SCAppObjectLinkage: description: Specifies the map for linking data objects from previous version to current version. type: object properties: previousObjectId: description: Specifies the unique ID of the data object from the previous version. This ID along with the registered source uniquely locates the object on the primary site in the context of most recent failover or failback operation. type: - integer - 'null' format: int64 currentObjectId: description: Specifies the unique ID of the data object in the current version. This ID will be uniquely associated with the DR site after most recent successful failover or failback operation. type: - integer - 'null' format: int64 SCError: description: Specifies the error object with error code and a message. type: object properties: errorCode: description: Specifies the error code. $ref: '#/components/schemas/SCErrorCode' errorMessage: description: Specifies the error message. type: - string - 'null' responses: SCGetAppByIdResponse: description: Specifies the response of a successful get application operation. content: application/json: schema: $ref: '#/components/schemas/SCApplication' SCGetAppsResponse: description: Specifies the response of a successful get applications operation. content: application/json: schema: $ref: '#/components/schemas/SCApplicationsResponse' SCCreateAppResponse: description: Specifies the response of a successful application creation. content: application/json: schema: $ref: '#/components/schemas/SCApplication' SCUpdateApplicationResponse: description: Specifies the response of a successful application update. content: application/json: schema: $ref: '#/components/schemas/SCApplication' SCGetLatestSnapshotByAppIdResponse: description: Specifies the response of a successful get snapshots operation on an app Id. content: application/json: schema: $ref: '#/components/schemas/SCGetSnapshotsByAppIdResponse' SCGetAppVersionsResponse: description: Specifies the response of a successful get application versions operation. content: application/json: schema: $ref: '#/components/schemas/SCApplicationVersionsResponse' SCErrorResponse: description: Specifies the common error definition. content: application/json: schema: $ref: '#/components/schemas/SCError' securitySchemes: ApiKeyAuth: type: apiKey in: header name: apiKey