360Learning Operations API

The Operations API from 360Learning — 3 operation(s) for operations.

OpenAPI Specification

360learning-operations-api-openapi.yml Raw ↑
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>`'