openapi: 3.2.0 info: title: Relativity.ARM.Services.Interfaces Restore Jobs API description: Relativity.ARM.Services.Interfaces version: V3 servers: - url: /Relativity.REST/api/relativity-arm description: The URL prefix for all Kepler services tags: - name: Restore Jobs paths: /v3/restore-jobs: post: tags: - Restore Jobs summary: Asynchronously creates an instance of a Restore Job requestBody: description: Restore job request containing workspace ID, restore directory, and configuration content: application/json: schema: $ref: '#/components/schemas/RestoreJobRequestWrapper' text/json: schema: $ref: '#/components/schemas/RestoreJobRequestWrapper' application/*+json: schema: $ref: '#/components/schemas/RestoreJobRequestWrapper' responses: '200': description: Restore job created successfully content: application/json: schema: $ref: '#/components/schemas/CreateRestoreJobResponse' '400': description: Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '500': description: Internal server error operationId: postV3RestoreJobs x-operation-id-source: derived /v3/restore-jobs/{jobID}: get: tags: - Restore Jobs summary: Asynchronously read an instance of a Restore Job parameters: - name: jobID in: path description: Restore job identifier required: true schema: type: string responses: '200': description: Restore job retrieved successfully content: application/json: schema: $ref: '#/components/schemas/RestoreJobResponse' '404': description: Restore job not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '500': description: Internal server error operationId: getV3RestoreJobsByJobID x-operation-id-source: derived put: tags: - Restore Jobs summary: Asynchronously updates an instance of a Restore Job parameters: - name: jobID in: path description: Restore job identifier required: true schema: type: string requestBody: description: Updated restore job configuration content: application/json: schema: $ref: '#/components/schemas/RestoreJobRequestWrapper' text/json: schema: $ref: '#/components/schemas/RestoreJobRequestWrapper' application/*+json: schema: $ref: '#/components/schemas/RestoreJobRequestWrapper' responses: '200': description: Restore job updated successfully content: application/json: schema: $ref: '#/components/schemas/UpdateRestoreJobResponse' '400': description: Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: Restore job not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '500': description: Internal server error operationId: putV3RestoreJobsByJobID x-operation-id-source: derived delete: tags: - Restore Jobs summary: Asynchronously deletes an instance of a Restore Job parameters: - name: jobID in: path description: Restore job identifier required: true schema: type: string responses: '200': description: Restore job deleted successfully '404': description: Restore job not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '500': description: Internal server error operationId: deleteV3RestoreJobsByJobID x-operation-id-source: derived components: schemas: RestoreJobRequestWrapper: type: object properties: request: $ref: '#/components/schemas/RestoreJobRequest' additionalProperties: false description: Request to create new Restore job V3 RestoreJobRequest: type: object properties: archivePath: type: - string - 'null' description: Gets or sets path to the archive jobPriority: $ref: '#/components/schemas/JobPriority' scheduledStartTime: type: - string - 'null' description: Gets or sets scheduled start time. format: date-time existingTargetDatabase: type: - string - 'null' description: 'Gets or sets existing target database. Required if archive doesn''t have a database backup' destinationOptions: $ref: '#/components/schemas/RestoreDestinationOptions' migratorOptions: type: - object - 'null' additionalProperties: {} description: 'Gets or sets generic per-migrator configuration. Value = JSON string with migrator-specific parameters. If null, all migrators use default configuration.' notificationOptions: $ref: '#/components/schemas/NotificationOptions' uiJobActionsLocked: type: boolean description: Gets or sets a value indicating whether this job ui actions are locked additionalProperties: false description: Request to create new Restore job V3 RestoreDestinationOptions: type: object properties: matterID: type: integer description: Gets or sets a matter that the restored workspace will use. format: int32 additionalProperties: false description: V3 Restore Job destination options RestoreJobResponse: type: object properties: jobID: type: - string - 'null' description: Gets or sets the Job id. jobName: type: - string - 'null' description: Gets or sets the Job name. archivePath: type: - string - 'null' description: Gets or sets the path to the archive. scheduledStartTime: type: - string - 'null' description: Gets or sets scheduled start time. format: date-time sourceWorkspace: type: - string - 'null' description: Gets or sets the name of the source workspace. destinationWorkspaceID: type: - integer - 'null' description: Gets or sets a destination workspace artifact id. format: int32 existingTargetDatabase: type: - string - 'null' description: Gets or sets existing target database. jobDetails: $ref: '#/components/schemas/JobDetails' destinationOptions: $ref: '#/components/schemas/RestoreDestinationOptions' migratorOptions: type: - object - 'null' additionalProperties: {} description: 'Gets or sets generic per-migrator configuration. Value = JSON string with migrator-specific parameters. If null, all migrators use default configuration.' notificationOptions: $ref: '#/components/schemas/NotificationOptions' uiJobActionsLocked: type: boolean description: Gets or sets a value indicating whether this job ui actions are locked. additionalProperties: false description: Response with Restore Job V3 NotificationOptions: type: object properties: notifyJobRunner: type: boolean description: 'Gets or sets a value indicating whether to notify both creator and runner. When true, notifications are sent to both creator and executor.' additionalRecipients: type: - array - 'null' items: type: string description: Gets or sets the list of additional recipient emails. additionalProperties: false description: ARM Job notification options ProblemDetails: type: object properties: type: type: - string - 'null' title: type: - string - 'null' status: type: - integer - 'null' format: int32 detail: type: - string - 'null' instance: type: - string - 'null' additionalProperties: {} JobActions: type: object properties: date: type: string description: Date and time when the action was performed format: date-time type: type: - string - 'null' description: Type of action performed userName: type: - string - 'null' description: User who performed the action additionalProperties: false description: Represents an action performed on a job JobDetails: type: object properties: priority: $ref: '#/components/schemas/JobPriority' actionsHistory: type: - array - 'null' items: $ref: '#/components/schemas/JobActions' description: Gets or sets job action history. additionalProperties: false description: ARM Job details JobPriority: enum: - 0 - 1 - 2 type: integer description: Job priority levels format: int32 UpdateRestoreJobResponse: type: object additionalProperties: false description: Response for Restore Job update CreateRestoreJobResponse: type: object properties: jobID: type: - string - 'null' description: Gets or sets the created Job id. additionalProperties: false description: Response for Restore Job creation