openapi: 3.2.0 info: description: Public APIs exposed by Helios Reporting service. version: v1 title: Helios Reporting service Schedules API termsOfService: https://cohesity.com contact: email: support@cohesity.com servers: - url: https://helios.cohesity.com/heliosreporting/api/v1 security: - ApiKeyAuth: [] tags: - name: Schedules paths: /public/schedules: get: description: Fetches list of all schedules accessible to the logged in user. tags: - Schedules summary: List all schedules operationId: GetSchedules parameters: - name: ids description: '"The Ids for which schedules need to be fetched."' in: query schema: type: array items: type: string - name: reportIds description: The reportIds for which schedules need to be fetched. in: query schema: type: array items: type: string - name: emailIds description: The email ids for which schedules need to be fetched. in: query schema: type: array items: type: string - name: state description: The state of schedules which should be fetched. Can be Active/Inactive. If this is nil, all schedules are returned. in: query schema: type: string enum: - Active - Inactive - name: includeLatestTaskInfo description: Specifies whether to include latest task information. If not specified or false, latest task information will not be sent. in: query schema: type: boolean responses: 200: $ref: '#/components/responses/GetSchedulesResponse' default: $ref: '#/components/responses/ErrorResponse' post: description: Create a schedule for a configured report. tags: - Schedules summary: Create a Schedule operationId: CreateSchedule responses: 200: $ref: '#/components/responses/GetScheduleByIdResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/Schedule' description: Request body params in order to schedule a given report. required: true /public/schedules/{id}: get: description: Get a report schedule for a given id. tags: - Schedules summary: Fetch a Schedule operationId: GetScheduleById parameters: - name: id in: path description: Specifies the id of the schedule. required: true schema: type: string responses: 200: $ref: '#/components/responses/GetScheduleByIdResponse' default: $ref: '#/components/responses/ErrorResponse' put: description: Update schedule for a given id. tags: - Schedules summary: Update a Schedule operationId: UpdateSchedule parameters: - name: id in: path description: Specifies the id of the schedule. required: true schema: type: string responses: 200: $ref: '#/components/responses/GetScheduleByIdResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/Schedule' description: Request body params in order to update a schedule. required: true delete: description: Delete schedule for a given id. tags: - Schedules summary: Delete a Schedule operationId: DeleteSchedule parameters: - name: id in: path description: Specifies the id of the schedule to delete. required: true schema: type: string responses: 204: $ref: '#/components/responses/NoContentResponse' default: $ref: '#/components/responses/ErrorResponse' /public/schedules/{id}/run: post: description: Runs the schedule on the demand. tags: - Schedules summary: Run a schedule on demand operationId: RunScheduleOnDemand parameters: - name: id in: path description: Specifies the id of the schedule. required: true schema: type: string responses: 204: $ref: '#/components/responses/NoContentResponse' default: $ref: '#/components/responses/ErrorResponse' /public/schedules/state: post: description: Update report schedules state. tags: - Schedules summary: Update Schedules State operationId: UpdateSchedulesState responses: 200: $ref: '#/components/responses/UpdateSchedulesStateResponse' default: $ref: '#/components/responses/ErrorResponse' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateSchedulesStateRequest' description: Request body params to update schedules state. required: true components: schemas: Schedules: description: Specifies a list of Schedules. type: object properties: schedules: description: Specifies list of schedules. type: - array - 'null' items: $ref: '#/components/schemas/Schedule' UpdateSchedulesState: description: Response of update schedules state call. type: object properties: failedSchedules: description: Schedule ids that failed to update. type: array items: $ref: '#/components/schemas/FailedScheduleDetails' successfulScheduleIds: description: Schedule ids that were updated successfully. type: array items: type: - string - 'null' TimeRangeFilterParams: description: Specifies the time range filter. Specifying this will pre filter all the results on necessary resources like Protection Runs etc before applying aggregations. Currently, maximum allowed time range is 60 days. type: object properties: lowerBound: description: Specifies the lower bound value. If specified, all the results which are greater than this value will be returned. type: - integer - 'null' format: int64 x-go-custom-tag: bson:"lowerBound,omitempty" upperBound: description: Specifies the upper bound value. If specified, all the results which are lesser than this value will be returned. type: - integer - 'null' format: int64 x-go-custom-tag: bson:"upperBound,omitempty" durationHours: description: Specifies the duration preceding the current time for which the data must be fetch i.e fetch data between currentTime and currentTime - durationHours. This filter is only considered if neither upperBound, lowerBound or dateRange is specified. type: - integer - 'null' format: int64 x-go-custom-tag: bson:"durationHours,omitempty" dateRange: description: Enum value for specifying the date range for a time filter. Considered only if lowerBound and upperBound are empty. type: - string - 'null' enum: - Last1Hour - Last24Hours - Last7Days - CurrentMonth - Last30Days - LastMonth - Last90Days - Last3Months - Last180Days - Last6Months - CurrentYear - Last365Days - LastYear x-go-custom-tag: bson:"dateRange,omitempty" SystemsFilterParams: description: Specifies the systems filter. Specifying this will pre filter all the results provided list of system identifier before applying aggregations. type: object required: - systemIds properties: systemNames: description: Specifies the optional system names labels. type: array items: type: string x-go-custom-tag: bson:"systemNames,omitempty" systemIds: description: Specifies an array of system identifiers. System identifiers may be of format clusterid:clusterincarnationid or a regionid (applicable only in case of DMaaS). type: array items: type: string minItems: 1 x-go-custom-tag: bson:"systemIds,omitempty" ScheduleTimeParams: description: Specifies the time parameters of a schedule for a report. type: object required: - minutesOfDay properties: minutesOfDay: description: Specifies minutes of the day when report needs to be scheduled for email. Currently, one time per day at 30 min interval is only supported. Array with a unique value between 0 and (24*60-1=1439) inclusive. type: - array - 'null' items: type: integer format: int32 maxItems: 1 minimum: 0 maximum: 1439 uniqueItems: true x-go-custom-tag: bson:"minutesOfDay,omitempty" daysOfWeek: description: Specifies days in a week when report needs to be scheduled for email. Array with unique value between 0 and 6 inclusive. Week is from Sunday [0] to Saturday [6]. type: - array - 'null' items: type: integer format: int32 maxItems: 7 minimum: 0 maximum: 6 uniqueItems: true x-go-custom-tag: bson:"daysOfWeek,omitempty" daysOfMonth: description: Specifies days in a month when report needs to be scheduled for email. Array with unique value between -1 and 31 inclusive. Day of a month starts from 1 to 31. Last day of a month can be set as -1. 0 is invalid input. type: - array - 'null' items: type: integer format: int32 maxItems: 32 minimum: -1 maximum: 31 uniqueItems: true x-go-custom-tag: bson:"daysOfMonth,omitempty" timezone: description: Specifies timezone of ScheduleTimeParams type: - string - 'null' readOnly: true x-go-custom-tag: bson:"timezone,omitempty" userTimezone: description: Specifies timezone of user schedule. If nil, defaults to UTC. The time specified should be a location name in the IANA Time Zone database, for example, 'America/Los_Angeles' type: - string - 'null' x-go-custom-tag: bson:"userTimezone,omitempty" UpdateSchedulesStateRequest: description: Definition to update schedules state. type: object required: - state properties: state: description: State to upgrade the schedules to. type: - string - 'null' enum: - Active - Inactive ids: description: Schedule ids to be updated. type: array items: type: - string - 'null' FailedScheduleDetails: description: Specifies the schedule that failed to update along with error. type: object properties: id: description: Schedule id of the failed update. type: - string - 'null' errorMessage: description: Error message of the failure. type: - string - 'null' AttributeFilter: description: Specifies the filters that are applied on attributes. type: object required: - attribute - filterType properties: attribute: description: Specifies the attribute. type: - string - 'null' x-go-custom-tag: bson:"attribute,omitempty" filterType: description: Specifies the type of the filter that needs to be applied. type: - string - 'null' enum: - In - Range - TimeRange - Systems - Tenants x-go-custom-tag: bson:"filterType,omitempty" inFilterParams: description: Specifies the params for applying IN filter. This will filter the results for the specified values for the specified attribute $ref: '#/components/schemas/InFilterParams' x-go-custom-tag: bson:"inFilterParams,omitempty" rangeFilterParams: description: Specifies the params for applying range filter. This will filter the results for the specified range for the specified attribute. $ref: '#/components/schemas/RangeFilterParams' x-go-custom-tag: bson:"rangeFilterParams,omitempty" timeRangeFilterParams: description: Specifies the params for applying timerange filter. This basically applies the time bound on which resources are pre filtered. $ref: '#/components/schemas/TimeRangeFilterParams' x-go-custom-tag: bson:"timeRangeFilterParams,omitempty" systemsFilterParams: description: Specifies the params for applying filter on system identifiers. $ref: '#/components/schemas/SystemsFilterParams' x-go-custom-tag: bson:"systemsFilterParams,omitempty" tenantsFilterParams: description: Specifies the params for applying filter on system identifiers. $ref: '#/components/schemas/TenantsFilterParams' x-go-custom-tag: bson:"tenantsFilterParams,omitempty" TenantsFilterParams: description: 'Specifies the tenants filter. Specifying this will pre filter all the results with provided list of tenants before applying aggregations.' type: object properties: includeTenants: description: 'Specifies whether to include tenants. Defaults to true. If false, it will not consider below filters. False will result in no data for helios tenant or dmaas user.' type: - boolean - 'null' x-go-custom-tag: bson:"includeTenants,omitempty" tenantNames: description: Specifies the optional tenant names labels. type: array items: type: string x-go-custom-tag: bson:"tenantNames,omitempty" tenantIds: description: 'Specifies an array of tenant identifiers. Provide local tenant identifiers.' type: array items: type: string minItems: 1 x-go-custom-tag: bson:"tenantIds,omitempty" InFilterParams: description: Specifies the in filter that are applied on attributes. type: object required: - attributeDataType properties: attributeDataType: description: Specifies the data type of the attribute. type: - string - 'null' enum: - Bool - String - Int64 - Int32 - StringArray - Int64Array - Float64 x-go-custom-tag: bson:"attributeDataType,omitempty" attributeLabels: description: Specifies the optional label values for the attribute. type: array items: type: string x-go-custom-tag: bson:"attributeLabels,omitempty" int64FilterValues: description: Specifies list of int64 values to filter results on. type: array items: type: integer format: int64 x-go-custom-tag: bson:"int64FilterValues,omitempty" boolFilterValues: description: Specifies list of boolean values to filter results on. type: array items: type: boolean x-go-custom-tag: bson:"boolFilterValues,omitempty" stringFilterValues: description: Specifies list of string values to filter results on. type: array items: type: string x-go-custom-tag: bson:"stringFilterValues,omitempty" int32FilterValues: description: Specifies list of int32 values to filter results on. type: array items: type: integer format: int32 x-go-custom-tag: bson:"int32FilterValues,omitempty" Task: description: Definition of a task. type: object required: - reportId properties: taskId: description: Specifies id of the task. type: - string - 'null' x-go-custom-tag: bson:"taskId,omitempty" reportId: description: Specifies the id of the report for which the task was created. type: - string - 'null' x-go-custom-tag: bson:"reportId,omitempty" scheduleId: description: Specifies the id of the schedule for which the task was created. Maybe nil for export related tasks. type: - string - 'null' x-go-custom-tag: bson:"scheduleId,omitempty" emailSubject: description: Email Subject for scheduled report to be sent. type: - string - 'null' x-go-custom-tag: bson:"emailSubject,omitempty" emailIds: description: Email ids to which the scheduled report to be sent. type: - array - 'null' items: type: - string - 'null' x-go-custom-tag: bson:"emailIds,omitempty" filters: description: Specifies list of global filters that are applicable to the components in the report. type: - array - 'null' items: $ref: '#/components/schemas/AttributeFilter' x-go-custom-tag: bson:"filters,omitempty" layout: description: The layout of the report which needs to be exported. type: - string - 'null' x-go-custom-tag: bson:"layout,omitempty" timezone: description: The timezone in which the report needs to be exported. type: - string - 'null' x-go-custom-tag: bson:"timezone,omitempty" createdTimeUsecs: description: Time when the task was created. type: - integer - 'null' format: int64 readOnly: true x-go-custom-tag: bson:"createdTimeUsecs,omitempty" updatedTimeUsecs: description: Time when the task was updated. type: - integer - 'null' format: int64 readOnly: true x-go-custom-tag: bson:"updatedTimeUsecs,omitempty" startTimeUsecs: description: Time when the task started. type: - integer - 'null' format: int64 x-go-custom-tag: bson:"startTimeUsecs,omitempty" endTimeUsecs: description: Time when the task ended. type: - integer - 'null' format: int64 x-go-custom-tag: bson:"endTimeUsecs,omitempty" status: description: The status of the task. type: - string - 'null' enum: - Created - InProgress - Completed - Error x-go-custom-tag: bson:"status,omitempty" message: description: The message present for the task. type: - string - 'null' x-go-custom-tag: bson:"message,omitempty" reportFormat: description: The formats in which the report task has been requested. Can be PDF/CSV/XLS/HTML. type: - array - 'null' items: type: - string - 'null' enum: - PDF - XLS - CSV x-go-custom-tag: bson:"reportFormat,omitempty" Schedule: description: Definition of a Schedule for a report. type: object required: - reportId - scheduleTime properties: scheduleId: description: Specifies id of the schedule. type: - string - 'null' readOnly: true x-go-custom-tag: bson:"scheduleId,omitempty" reportId: description: Specifies id of the report that is scheduled. type: - string - 'null' x-go-custom-tag: bson:"reportId,omitempty" name: description: The name of the schedule. type: - string - 'null' x-go-custom-tag: bson:"name,omitempty" scheduleTime: $ref: '#/components/schemas/ScheduleTimeParams' state: description: State of the schedule. Can be Active/Inactive. type: - string - 'null' enum: - Active - Inactive x-go-custom-tag: bson:"state,omitempty" emailSubject: description: Subject to be sent in the email. type: - string - 'null' x-go-custom-tag: bson:"emailSubject,omitempty" emailIds: description: Email ids to which schedule needs to be sent. type: - array - 'null' items: type: - string - 'null' x-go-custom-tag: bson:"emailIds,omitempty" reportFormat: description: The formats in which the report has been requested. Can be PDF/CSV/XLS/HTML. type: - array - 'null' items: type: - string - 'null' enum: - PDF - XLS - CSV x-go-custom-tag: bson:"reportFormat,omitempty" latestTask: $ref: '#/components/schemas/Task' filters: description: Specifies list of global filters that are applicable to given components in the report. type: - array - 'null' items: $ref: '#/components/schemas/AttributeFilter' x-go-custom-tag: bson:"filters,omitempty" layout: description: The layout of the report which needs to be exported. type: - string - 'null' x-go-custom-tag: bson:"layout,omitempty" createdTimeUsecs: description: Time when the schedule was created. type: - integer - 'null' format: int64 readOnly: true x-go-custom-tag: bson:"createdTimeUsecs,omitempty" updatedTimeUsecs: description: Time when the schedule was updated. type: - integer - 'null' format: int64 readOnly: true x-go-custom-tag: bson:"updatedTimeUsecs,omitempty" lastQueuedTimeUsecs: description: Time when the schedule was last queued. type: - integer - 'null' format: int64 readOnly: true x-go-custom-tag: bson:"lastQueuedTimeUsecs,omitempty" RangeFilterParams: description: Specifies the filters that are applied on attributes. type: object properties: lowerBound: description: Specifies the lower bound value. If specified, all the results which are greater than this value will be returned. type: - integer - 'null' format: int64 x-go-custom-tag: bson:"lowerBound,omitempty" upperBound: description: Specifies the upper bound value. If specified, all the results which are lesser than this value will be returned. type: - integer - 'null' format: int64 x-go-custom-tag: bson:"upperBound,omitempty" Error: description: Specifies the error object with error code and a message. type: object properties: errorCode: description: Specifies the error code. type: integer errorMessage: description: Specifies the error message. type: string responses: ErrorResponse: description: Error content: application/json: schema: $ref: '#/components/schemas/Error' GetScheduleByIdResponse: description: Success content: application/json: schema: $ref: '#/components/schemas/Schedule' NoContentResponse: description: No Content GetSchedulesResponse: description: Success content: application/json: schema: $ref: '#/components/schemas/Schedules' UpdateSchedulesStateResponse: description: Success content: application/json: schema: $ref: '#/components/schemas/UpdateSchedulesState' securitySchemes: ApiKeyAuth: type: apiKey in: header name: apiKey