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