360Learning Operations API
The Operations API from 360Learning — 3 operation(s) for operations.
The Operations API from 360Learning — 3 operation(s) for operations.
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: <my/resource/url>; 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 <token>`'