openapi: 3.1.0 info: title: Bulk Authentication Operations API description: '' version: 1.0.0 contact: {} servers: - url: https://app.360learning.com description: Production EU - url: https://app.us.360learning.com description: Production US tags: - name: Operations paths: /api/v2/bulk/operations/{bulkOperationId}: get: description: '> 🔑 > > Required OAuth scope: `bulkOperations:read`. Retrieves a bulk operation with its given ID.' operationId: v2.bulk.operations.GetBulkOperationController_getBulkOperation parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: bulkOperationId required: true in: path description: The unique ID of the bulk operation. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '200': description: Returns the requested bulk operation. content: application/json: schema: oneOf: - $ref: '#/components/schemas/PendingOperationDTO' - $ref: '#/components/schemas/QueuedOperationDTO' - $ref: '#/components/schemas/RunningOperationDTO' - $ref: '#/components/schemas/CompletedOperationDTO' - $ref: '#/components/schemas/ErroredOperationDTO' '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The given `bulkOperationId` does not correspond to any existing bulk operation. content: application/json: schema: title: Bulk Operation Not Found type: object properties: error: type: object properties: code: type: string enum: - bulkOperationNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Retrieve a bulk operation tags: - Operations /api/v2/bulk/operations/{bulkOperationId}/results: get: description: '> 🔑 > > Required OAuth scope: `bulkOperations:read`. Retrieves a completed or erroneous bulk operation result given its unique ID.' operationId: v2.bulk.operations.GetBulkOperationResultsController_getBulkOperationResults parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: bulkOperationId required: true in: path description: The unique ID of the bulk operation. schema: format: ObjectId pattern: ^[a-fA-F0-9]{24}$ example: 507f1f77bcf86cd799439011 type: string responses: '200': description: Returns the requested bulk operation. content: application/json: schema: type: array items: anyOf: - $ref: '#/components/schemas/SuccessResultDTO' - $ref: '#/components/schemas/ErrorResultDTO' '400': description: The operation with the given `bulkOperationId` has not run yet. content: application/json: schema: title: Bulk Operation Not Run type: object properties: error: type: object properties: code: type: string enum: - bulkOperationNotRun message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '404': description: The given `bulkOperationId` does not correspond to any existing bulk operation. content: application/json: schema: title: Bulk Operation Not Found type: object properties: error: type: object properties: code: type: string enum: - bulkOperationNotFound message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: Retrieve a bulk operation result tags: - Operations /api/v2/bulk/operations: get: description: '> 🔑 > > Required OAuth scope: `bulkOperations:read`. > 📖 > > This endpoint is paginated with a page size of 20 bulk operations. For more information, see the [Pagination guide](doc:pagination). Lists all bulk operations.' operationId: v2.bulk.operations.GetBulkOperationsController_getBulkOperations parameters: - name: 360-api-version in: header description: The version of the API. required: true schema: type: string enum: - v2.0 - name: createdAt required: false in: query style: deepObject explode: true description: 'Filter on **createdAt** property with LHS bracket notation. Expected value format is a date (YYYY-MM-DDThh:mm:ss.sssZ). The milliseconds are always set to 0.' schema: properties: lt: type: string format: date-time description: Filter on dates lower than the given one example: '2020-01-01T10:30:26.000Z' gte: type: string format: date-time description: Filter on dates greater than or equal the given one example: '2020-01-01T10:30:26.000Z' - name: status required: false in: query style: deepObject explode: true description: 'Filter on **status** property with LHS bracket notation. Expected value format is a string (`pending`, `queued`, `running`, `completed`, `error`).' schema: properties: eq: type: string description: Filter on values equal to the given one example: pending enum: - pending - queued - running - completed - error - name: type required: false in: query style: deepObject explode: true description: 'Filter on **type** property with LHS bracket notation. Expected value format is a string (`addContentsToGroupsCatalog`, `addContentsToGroupsLibrary`, `addSkillReviews`, `addUsersToGroups`, `archiveExternalCourses`, `deleteSkills`, `createGroups`, `createSubscriptionEvents`, `deleteGroups`, `deleteJobs`, `deleteLibraries`, `importExternalCourses`, `importExternalStatistics`, `removeContentsFromGroupsCatalog`, `removeContentsFromGroupsLibrary`, `removeUsersFromGroups`, `replaceJobsSkills`, `replaceUsersJobs`, `upsertJobs`, `upsertLibraries`, `upsertSkills`).' schema: properties: eq: type: string description: Filter on values equal to the given one example: addContentsToGroupsCatalog enum: - addContentsToGroupsCatalog - addContentsToGroupsLibrary - addSkillReviews - addUsersToGroups - archiveExternalCourses - deleteSkills - createGroups - createSubscriptionEvents - deleteGroups - deleteJobs - deleteLibraries - importExternalCourses - importExternalStatistics - removeContentsFromGroupsCatalog - removeContentsFromGroupsLibrary - removeUsersFromGroups - replaceJobsSkills - replaceUsersJobs - upsertJobs - upsertLibraries - upsertSkills responses: '200': description: Returns one page of 20 bulk operations. headers: Link: schema: type: string description: 'URL (between `<` `>`) to fetch the immediate next page of results. For more information, see our [Pagination guide](doc:pagination). ⚠️ Only included if there is another page of results.' example: ; rel="next" content: application/json: schema: type: array items: anyOf: - $ref: '#/components/schemas/PendingOperationDTO' - $ref: '#/components/schemas/QueuedOperationDTO' - $ref: '#/components/schemas/RunningOperationDTO' - $ref: '#/components/schemas/CompletedOperationDTO' - $ref: '#/components/schemas/ErroredOperationDTO' '401': description: The given access token is either missing, invalid, has expired, or has been revoked. content: application/json: schema: type: object properties: error: type: string enum: - invalid_token required: - error '403': description: The given access token does not have the required OAuth scope to execute the request. content: application/json: schema: title: Invalid Scope type: object properties: error: type: object properties: code: type: string enum: - invalid_scope message: type: string example: A human-readable message to help with debugging. required: - code - message required: - error '429': description: 'The client has sent too many requests in a short amount of time. ' content: application/json: schema: type: object properties: error: type: string enum: - tooManyRequests required: - error security: - oauth2: [] summary: List all bulk operations tags: - Operations components: schemas: PendingOperationDTO: title: Pending Operation type: object properties: _id: type: string description: The unique ID of the bulk operation. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - addContentsToGroupsCatalog - addContentsToGroupsLibrary - addSkillReviews - addUsersToGroups - archiveExternalCourses - deleteSkills - createGroups - createSubscriptionEvents - deleteGroups - deleteJobs - deleteLibraries - importExternalCourses - importExternalStatistics - removeContentsFromGroupsCatalog - removeContentsFromGroupsLibrary - removeUsersFromGroups - replaceJobsSkills - replaceUsersJobs - upsertJobs - upsertLibraries - upsertSkills description: The type of bulk operation. createdAt: format: date-time type: string description: The date and time when the bulk operation was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). status: type: string enum: - pending description: The status of the bulk operation. required: - _id - type - createdAt - status OperationProgressDTO: title: Operation Progress type: object properties: index: type: number description: The index of the last processed element of the bulk operation. updatedAt: format: date-time type: string description: The date and time of the last update of the bulk operation, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). required: - index - updatedAt QueuedOperationDTO: title: Queued Operation type: object properties: _id: type: string description: The unique ID of the bulk operation. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - addContentsToGroupsCatalog - addContentsToGroupsLibrary - addSkillReviews - addUsersToGroups - archiveExternalCourses - deleteSkills - createGroups - createSubscriptionEvents - deleteGroups - deleteJobs - deleteLibraries - importExternalCourses - importExternalStatistics - removeContentsFromGroupsCatalog - removeContentsFromGroupsLibrary - removeUsersFromGroups - replaceJobsSkills - replaceUsersJobs - upsertJobs - upsertLibraries - upsertSkills description: The type of bulk operation. createdAt: format: date-time type: string description: The date and time when the bulk operation was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). status: type: string enum: - queued description: The status of the bulk operation. queuedAt: format: date-time type: string description: The date and time when the bulk operation was queued, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). required: - _id - type - createdAt - status - queuedAt CompletedOperationDTO: title: Completed Operation type: object properties: _id: type: string description: The unique ID of the bulk operation. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - addContentsToGroupsCatalog - addContentsToGroupsLibrary - addSkillReviews - addUsersToGroups - archiveExternalCourses - deleteSkills - createGroups - createSubscriptionEvents - deleteGroups - deleteJobs - deleteLibraries - importExternalCourses - importExternalStatistics - removeContentsFromGroupsCatalog - removeContentsFromGroupsLibrary - removeUsersFromGroups - replaceJobsSkills - replaceUsersJobs - upsertJobs - upsertLibraries - upsertSkills description: The type of bulk operation. createdAt: format: date-time type: string description: The date and time when the bulk operation was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). status: type: string enum: - completed description: The status of the bulk operation. progress: description: The current progress of the bulk operation. allOf: - $ref: '#/components/schemas/OperationProgressDTO' queuedAt: format: date-time type: string description: The date and time when the bulk operation was queued, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). startedAt: format: date-time type: string description: The date and time when the bulk operation started, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). endedAt: format: date-time type: string description: The date and time when the bulk operation ended, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). required: - _id - type - createdAt - status - progress - queuedAt - startedAt - endedAt SuccessResultDTO: title: Success Result type: object properties: input: type: object description: The input object used for the operation. status: type: string enum: - success description: The status of the operation result. resourceId: type: string description: The unique ID of the impacted resource. example: ID123456 required: - input - status - resourceId ErroredOperationDTO: title: Errored Operation type: object properties: _id: type: string description: The unique ID of the bulk operation. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - addContentsToGroupsCatalog - addContentsToGroupsLibrary - addSkillReviews - addUsersToGroups - archiveExternalCourses - deleteSkills - createGroups - createSubscriptionEvents - deleteGroups - deleteJobs - deleteLibraries - importExternalCourses - importExternalStatistics - removeContentsFromGroupsCatalog - removeContentsFromGroupsLibrary - removeUsersFromGroups - replaceJobsSkills - replaceUsersJobs - upsertJobs - upsertLibraries - upsertSkills description: The type of bulk operation. createdAt: format: date-time type: string description: The date and time when the bulk operation was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). status: type: string enum: - error description: The status of the bulk operation. progress: description: The current progress of the bulk operation. allOf: - $ref: '#/components/schemas/OperationProgressDTO' errorMessage: type: string description: A human-readable message to help with debugging. queuedAt: format: date-time type: string description: The date and time when the bulk operation was queued, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). startedAt: format: date-time type: string description: The date and time when the bulk operation started, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). endedAt: format: date-time type: string description: The date and time when the bulk operation ended, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). required: - _id - type - createdAt - status - progress - errorMessage - queuedAt - startedAt - endedAt RunningOperationDTO: title: Running Operation type: object properties: _id: type: string description: The unique ID of the bulk operation. format: ObjectId example: 507f1f77bcf86cd799439011 pattern: ^[a-fA-F0-9]{24}$ type: type: string enum: - addContentsToGroupsCatalog - addContentsToGroupsLibrary - addSkillReviews - addUsersToGroups - archiveExternalCourses - deleteSkills - createGroups - createSubscriptionEvents - deleteGroups - deleteJobs - deleteLibraries - importExternalCourses - importExternalStatistics - removeContentsFromGroupsCatalog - removeContentsFromGroupsLibrary - removeUsersFromGroups - replaceJobsSkills - replaceUsersJobs - upsertJobs - upsertLibraries - upsertSkills description: The type of bulk operation. createdAt: format: date-time type: string description: The date and time when the bulk operation was created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). status: type: string enum: - running description: The status of the bulk operation. progress: description: The current progress of the bulk operation. allOf: - $ref: '#/components/schemas/OperationProgressDTO' queuedAt: format: date-time type: string description: The date and time when the bulk operation was queued, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). startedAt: format: date-time type: string description: The date and time when the bulk operation started, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)). required: - _id - type - createdAt - status - progress - queuedAt - startedAt ErrorResultDTO: title: Error Result type: object properties: input: type: object description: The input object used for the operation. status: type: string enum: - error description: The status of the operation result. errorMessage: type: string description: The error message of the failed result. required: - input - status - errorMessage securitySchemes: oauth2: type: oauth2 flows: {} description: 'Use the token from the authentication endpoint in the Authorization header. Example: `Authorization: Bearer `'