iQualify Management API icon

iQualify Management API

The iQualify API offers management responses for building

COMMUNITYAPI KEY0 INSTALLS
OpenAPI Specificationv3.0
{
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "https://api.iqualify.com/v1"
    }
  ],
  "info": {
    "contact": {
      "x-twitter": "hello_iqualify"
    },
    "description": "The iQualify API offers management responses for building\nlearning experiences using your iQualify instance data.\n\nOnce you’ve registered with iQualify, you can request an API access token by\nnavigating to the API access section of the \"Account Settings\" area.\n\nFind out how to [Request your API access token](https://www.iqualify.com/help/connecting-iqualify-to-other-systems/api/how-to-access-and-manage-your-api-token)\non our Knowledge base.\n\nAll endpoints are only accessible via https and are located at\napi.iqualify.com. For instance: you can find your current offerings by\naccessing the following URL:\n\n    https://api.iqualify.com/v1/offerings/current\n\n",
    "title": "iQualify Management API",
    "version": "v1",
    "x-apisguru-categories": [
      "education"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_twitter.com_hello_iqualify_profile_image.png"
    },
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://api.iqualify.com/v1/management.json",
        "version": "3.0"
      }
    ],
    "x-providerName": "iqualify.com"
  },
  "security": [
    {
      "Authorization": []
    }
  ],
  "tags": [],
  "paths": {
    "/": {
      "get": {
        "description": "Responds with all supported endpoints URLs for v2 version.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "Supported endpoints"
          }
        },
        "summary": "List supported endpoints URLs",
        "tags": [
          "API info"
        ]
      }
    },
    "/course-mappings": {
      "get": {
        "description": "Returns all course mappings for course offerings.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "title": "course mappings",
                  "type": "object"
                }
              }
            },
            "description": "Course Mappings"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          }
        },
        "summary": "Find course mappings",
        "tags": [
          "Course mappings"
        ]
      }
    },
    "/course-mappings/externalcourse/{externalCourseId}": {
      "get": {
        "description": "Responds with course mapping details by externalCourseId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/externalCourseId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Course Mapping"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find course mappings by externalCourseId",
        "tags": [
          "Course mappings"
        ]
      }
    },
    "/course-mappings/{offeringId}": {
      "get": {
        "description": "Responds with course mapping details by offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Course Mapping"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find course mappings by offeringId",
        "tags": [
          "Course mappings"
        ]
      }
    },
    "/course-mappings/{offeringId}/{externalCourseId}": {
      "delete": {
        "description": "Removes the course mapping between the offering and the externalCourseId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/externalCourseId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Course Mapping"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Remove course mapping",
        "tags": [
          "Course mappings"
        ]
      },
      "put": {
        "description": "Creates a mapping between the offering and the externalCourseId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/externalCourseId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Course Mapping"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Add course mapping",
        "tags": [
          "Course mappings"
        ]
      }
    },
    "/courses": {
      "get": {
        "description": "Responds with all courses (draft and published.)",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CourseResponse"
                  },
                  "title": "Courses",
                  "type": "array"
                }
              }
            },
            "description": "All courses (draft and published) in the organisation."
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          }
        },
        "summary": "Find courses",
        "tags": [
          "Courses"
        ]
      }
    },
    "/courses/{contentId}": {
      "get": {
        "description": "Responds with a course matching the contentId.",
        "parameters": [
          {
            "description": "The content Id",
            "in": "path",
            "name": "contentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseMetaResponse"
                }
              }
            },
            "description": "Course detail"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find course by contentId",
        "tags": [
          "Courses"
        ]
      }
    },
    "/courses/{contentId}/activations": {
      "get": {
        "description": "Responds with all activations for the contentId provided.",
        "parameters": [
          {
            "description": "The content Id",
            "in": "path",
            "name": "contentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivationResponse"
                }
              }
            },
            "description": "Activation list."
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find activations for a contentId",
        "tags": [
          "Courses"
        ]
      }
    },
    "/courses/{contentId}/metadata/category": {
      "put": {
        "description": "Add or update course category in the metadata of a course.",
        "parameters": [
          {
            "description": "The content Id",
            "in": "path",
            "name": "contentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "category": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseMetaResponse"
                }
              }
            },
            "description": "Course detail"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaAdditionalPropertiesError": {
                    "$ref": "#/components/examples/SchemaAdditionalPropertiesError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update course category",
        "tags": [
          "Course metadata"
        ]
      }
    },
    "/courses/{contentId}/metadata/level": {
      "put": {
        "description": "Add or update the course level in the metadata of a course.",
        "parameters": [
          {
            "description": "The content Id",
            "in": "path",
            "name": "contentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "level": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseMetaResponse"
                }
              }
            },
            "description": "Course detail"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaAdditionalPropertiesError": {
                    "$ref": "#/components/examples/SchemaAdditionalPropertiesError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update course level",
        "tags": [
          "Course metadata"
        ]
      }
    },
    "/courses/{contentId}/metadata/tags": {
      "put": {
        "description": "Add or update course tags in the metadata of a course.",
        "parameters": [
          {
            "description": "The content Id",
            "in": "path",
            "name": "contentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "tags": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseMetaResponse"
                }
              }
            },
            "description": "Course detail"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaAdditionalPropertiesError": {
                    "$ref": "#/components/examples/SchemaAdditionalPropertiesError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update course tags",
        "tags": [
          "Course metadata"
        ]
      }
    },
    "/courses/{contentId}/metadata/topic": {
      "put": {
        "description": "Add or update the course topic in the metadata of a course.",
        "parameters": [
          {
            "description": "The content Id",
            "in": "path",
            "name": "contentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "topic": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseMetaResponse"
                }
              }
            },
            "description": "Course detail"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaAdditionalPropertiesError": {
                    "$ref": "#/components/examples/SchemaAdditionalPropertiesError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update course topic",
        "tags": [
          "Course metadata"
        ]
      }
    },
    "/courses/{contentId}/permissions": {
      "get": {
        "description": "Responds with users who have access to a specific course by contentId.",
        "parameters": [
          {
            "description": "The content Id",
            "in": "path",
            "name": "contentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserPermission"
                }
              }
            },
            "description": "List of users who have access to the content ID provided."
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find users who have access to the contentId provided",
        "tags": [
          "Courses"
        ]
      }
    },
    "/courses/{rootContentId}/permissions/{userEmail}": {
      "post": {
        "description": "Provide a user with access to a specific course by rootContentId.",
        "parameters": [
          {
            "description": "The content Id",
            "in": "path",
            "name": "rootContentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The user email",
            "in": "path",
            "name": "userEmail",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "isBuilder": {
                    "default": true,
                    "type": "boolean"
                  },
                  "isReviewer": {
                    "default": false,
                    "type": "boolean"
                  }
                },
                "title": "permission to be granted to the user.",
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "contentId": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "user successfully added to the course with the specified permission."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "MultipleObjectsError": {
                    "$ref": "#/components/examples/MultipleObjectsError"
                  },
                  "ObjectIsNotError": {
                    "$ref": "#/components/examples/ObjectIsNotError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update course access",
        "tags": [
          "Courses"
        ]
      }
    },
    "/offerings": {
      "get": {
        "description": "Responds with all offerings for your organisation.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingMetadataResponse"
                  },
                  "title": "Offerings",
                  "type": "array"
                }
              }
            },
            "description": "all offerings (current, past and future ones)"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          }
        },
        "summary": "Find current, past and future offerings",
        "tags": [
          "Offerings"
        ]
      },
      "post": {
        "description": "Creates a new offering.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OfferingRequired"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfferingMetadataResponse"
                }
              }
            },
            "description": "offering created"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "IncompatibleParametersError": {
                    "$ref": "#/components/examples/IncompatibleParametersError"
                  },
                  "InvalidContentError": {
                    "$ref": "#/components/examples/InvalidContentError"
                  },
                  "MissingInfoError": {
                    "$ref": "#/components/examples/MissingInfoError"
                  },
                  "OfferingIncompatibleDatesError": {
                    "$ref": "#/components/examples/OfferingIncompatibleDatesError"
                  },
                  "SchemaFormatError": {
                    "$ref": "#/components/examples/SchemaFormatError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Create offering",
        "tags": [
          "Offerings"
        ]
      }
    },
    "/offerings/current": {
      "get": {
        "description": "Responds with active offerings for your organisation.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingMetadataResponse"
                  },
                  "title": "Offerings",
                  "type": "array"
                }
              }
            },
            "description": "current offerings"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          }
        },
        "summary": "Find active offerings",
        "tags": [
          "Offerings"
        ]
      }
    },
    "/offerings/future": {
      "get": {
        "description": "Responds with scheduled offerings for your organisation. Scheduled offerings have a start date after today's date (inclusive).",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingMetadataResponse"
                  },
                  "title": "Offerings",
                  "type": "array"
                }
              }
            },
            "description": "future offerings"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          }
        },
        "summary": "Find scheduled offerings",
        "tags": [
          "Offerings"
        ]
      }
    },
    "/offerings/info/{textPattern}": {
      "get": {
        "description": "Find offerings where info field matches the specified text pattern.",
        "parameters": [
          {
            "description": "Text pattern to search for (minimum of 3 characters length).",
            "in": "path",
            "name": "textPattern",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PortfolioActivations"
                  },
                  "title": "Offerings",
                  "type": "array"
                }
              }
            },
            "description": "Offerings"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "TextPatternError": {
                    "$ref": "#/components/examples/TextPatternError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find offerings where info field matches the specified textPattern",
        "tags": [
          "Offerings"
        ]
      }
    },
    "/offerings/past": {
      "get": {
        "description": "Responds with past offerings for your organisation.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingMetadataResponse"
                  },
                  "title": "Offerings",
                  "type": "array"
                }
              }
            },
            "description": "past offerings"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          }
        },
        "summary": "Find past offerings",
        "tags": [
          "Offerings"
        ]
      }
    },
    "/offerings/summary": {
      "get": {
        "description": "Responds with a summary of all offerings for your organisation.",
        "parameters": [
          {
            "description": "Returns only the first n results.",
            "in": "query",
            "name": "$top",
            "schema": {
              "default": "50",
              "type": "string"
            }
          },
          {
            "description": "Sorts the results.",
            "in": "query",
            "name": "$orderby",
            "schema": {
              "type": "string"
            }
          },
          {
            "allowReserved": true,
            "description": "Filters the results, based on a Boolean condition.",
            "in": "query",
            "name": "$filter",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PortfolioActivations"
                  },
                  "title": "Offerings",
                  "type": "array"
                }
              }
            },
            "description": "all offerings."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ApiValidationError": {
                    "$ref": "#/components/examples/ApiValidationError"
                  },
                  "SchemaQueryError": {
                    "$ref": "#/components/examples/SchemaQueryError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          }
        },
        "summary": "Offerings summary",
        "tags": [
          "Offerings"
        ]
      }
    },
    "/offerings/{offeringId}": {
      "get": {
        "description": "Responds with an offering matching the offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfferingMetadataResponse"
                }
              }
            },
            "description": "offering"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find offering by ID",
        "tags": [
          "Offerings"
        ]
      },
      "patch": {
        "description": "Updates the offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Offering"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfferingMetadataResponse"
                }
              }
            },
            "description": "offering updated"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "IncompatibleParametersError": {
                    "$ref": "#/components/examples/IncompatibleParametersError"
                  },
                  "MissingInfoError": {
                    "$ref": "#/components/examples/MissingInfoError"
                  },
                  "ObjectExistsError": {
                    "$ref": "#/components/examples/ObjectExistsError"
                  },
                  "OfferingIncompatibleDatesError": {
                    "$ref": "#/components/examples/OfferingIncompatibleDatesError"
                  },
                  "SchemaFormatError": {
                    "$ref": "#/components/examples/SchemaFormatError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update offering",
        "tags": [
          "Offerings"
        ]
      }
    },
    "/offerings/{offeringId}/activities/openresponse": {
      "get": {
        "description": "Responds with the activities in a specific offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingActivitiesResponse"
                  },
                  "title": "Activities",
                  "type": "array"
                }
              }
            },
            "description": "offering's learners"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find offering's activities",
        "tags": [
          "Assessment management"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/activities/responses": {
      "get": {
        "description": "Responds with all learner activity attempts for open response activities in an offering matching the offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ActivityAttemptOpenResponse"
                  },
                  "title": "OfferingActivityAttemptOpenResponses",
                  "type": "array"
                }
              }
            },
            "description": "Offering activity attempt open responses"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find open response activity attempts",
        "tags": [
          "Assessment data"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/channels/{channelId}/comments": {
      "get": {
        "description": "Responds with a list of comments made in any posts in a specified channel, within an offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/channelId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Comment"
                  },
                  "title": "Comments",
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find comments",
        "tags": [
          "Channels"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/channels/{channelId}/posts": {
      "get": {
        "description": "Responds with a list of posts made in a specified channel, within an offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/channelId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/httpPost"
                  },
                  "title": "Posts",
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find posts",
        "tags": [
          "Channels"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/channels/{channelId}/replies": {
      "get": {
        "description": "Responds with a list of replies to comments in any posts in a specified channel, within an offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/channelId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Comment"
                  },
                  "title": "Comments",
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find replies",
        "tags": [
          "Channels"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/learners-progress": {
      "get": {
        "description": "Responds with all learner progress in the offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/LearnerProgressResponse"
                  },
                  "title": "LearnersProgress",
                  "type": "array"
                }
              }
            },
            "description": "Learners progress"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find learner progress in a specified offering",
        "tags": [
          "Learner activity"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/marks/assignments": {
      "get": {
        "description": "Responds with all learner assessment marks in an offering matching the offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AssignmentMarkResponse"
                  },
                  "title": "AssignmentsMarks",
                  "type": "array"
                }
              }
            },
            "description": "Assignments marks"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find assessment marks",
        "tags": [
          "Assessment data"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/marks/quizzes": {
      "get": {
        "description": "Responds with all learner quiz marks in an offering matching the offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/QuizMarkResponse"
                  },
                  "title": "QuizzesMarks",
                  "type": "array"
                }
              }
            },
            "description": "Quizzes marks"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find quiz marks",
        "tags": [
          "Assessment data"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/pulses": {
      "get": {
        "description": "Responds with the IDs of all pulses that learners have responded to in a specified offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Pulses' ids"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find all pulse IDs in the specified offering",
        "tags": [
          "Pulses"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/pulses/responses": {
      "get": {
        "description": "Responds with pulse's responses in an offering matching the offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "description": "Filter pulse responses by type.",
            "in": "query",
            "name": "pulseType",
            "schema": {
              "enum": [
                "submit_text",
                "MCQ",
                "spatial_triangular",
                "spatial_planar",
                "spatial_linear"
              ],
              "type": "string"
            }
          },
          {
            "allowReserved": true,
            "description": "Filter pulse responses by responseTime. Lower then (`lt`), lower then or equal (`lte`), greater then (`gt`) and greater then or equal (`gte`) operators are available. Example of filtering by time range __gte__2017-03-14T07:30:00Z__",
            "in": "query",
            "name": "responseTime",
            "schema": {
              "oneOf": [
                {
                  "minLength": 1,
                  "type": "string"
                },
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PulseResponse"
                  },
                  "title": "Pulses",
                  "type": "array"
                }
              }
            },
            "description": "All pulses' responses"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find pulses by offeringId",
        "tags": [
          "Pulses"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/pulses/{pulseId}/responses": {
      "get": {
        "description": "Responds with pulse's responses, matching the pulseId, in an offering matching the offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "description": "pulse's base id",
            "in": "path",
            "name": "pulseId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PulseResponse"
                  },
                  "title": "Pulses",
                  "type": "array"
                }
              }
            },
            "description": "Pulse data matching pulseId"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find pulses by offeringId and pulseId",
        "tags": [
          "Pulses"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/social-notes": {
      "get": {
        "description": "Responds with all shared social notes in a specified offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SocialNotesResponse"
                  },
                  "title": "OfferingSocialNotes",
                  "type": "array"
                }
              }
            },
            "description": "Offering social notes"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find shared social notes in an offering",
        "tags": [
          "Learner activity"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/submissions/assignments": {
      "get": {
        "description": "Responds with all learner assessment submissions and marks, if any, in an offering matching the offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AssignmentMarkResponse"
                  },
                  "title": "AssignmentsSubmissions",
                  "type": "array"
                }
              }
            },
            "description": "Assignments submissions"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find submissions to assessments, including marks if any",
        "tags": [
          "Assessment data"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/submissions/open-response/{assessmentId}": {
      "get": {
        "description": "Responds with all learner assessment submissions and marks, if any, in a specified open response assessment.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/assessmentId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SubmissionMarkResponse"
                  },
                  "title": "SubmissionMarkResponse",
                  "type": "array"
                }
              }
            },
            "description": "Responds with assignment submissions for the specified assignment."
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find submissions to a specified open response assessment, including marks if any",
        "tags": [
          "Assessment data"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/submissions/{userEmail}/assignments/{assessmentId}": {
      "get": {
        "description": "Responds with the learner's assessment submission and any marks for the submission.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/userEmail"
          },
          {
            "$ref": "#/components/parameters/assessmentId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SubmissionMarkResponse"
                  },
                  "title": "SubmissionMarkResponse",
                  "type": "array"
                }
              }
            },
            "description": "Responds with the learner's assessment submission and any marks for the submission."
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find a learner's submission to a specified assessment, including marks if any",
        "tags": [
          "Assessment data"
        ]
      }
    },
    "/offerings/{offeringId}/analytics/unit-reactions": {
      "get": {
        "description": "Responds with user reactions to units in a specified offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/UnitReactionsAnalyticsResponse"
                  },
                  "title": "UnitReactiosAnalytics",
                  "type": "array"
                }
              }
            },
            "description": "Unit Reactions"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find unit reactions",
        "tags": [
          "Learner activity"
        ]
      }
    },
    "/offerings/{offeringId}/assessments": {
      "get": {
        "description": "Responds with all assessments in an offering matching the offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AssessmentResponse"
                  },
                  "title": "Assessments",
                  "type": "array"
                }
              }
            },
            "description": "offering's assessments"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find offering's assessments",
        "tags": [
          "Assessment management"
        ]
      }
    },
    "/offerings/{offeringId}/assessments/{assessmentId}": {
      "patch": {
        "description": "Updates the assessment details for a specified assessment in an offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "description": "assessment's id",
            "in": "path",
            "name": "assessmentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Assessment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentResponse"
                }
              }
            },
            "description": "assessment successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaFormatError": {
                    "$ref": "#/components/examples/SchemaFormatError"
                  },
                  "SchemaMinLengthError": {
                    "$ref": "#/components/examples/SchemaMinLengthError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update assessment details",
        "tags": [
          "Assessment management"
        ]
      }
    },
    "/offerings/{offeringId}/assessments/{assessmentId}/documents": {},
    "/offerings/{offeringId}/assessments/{assessmentId}/documents/{documentId}": {
      "delete": {
        "description": "Removes the assessment document file for a specified assessment in an offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "description": "assessment's id",
            "in": "path",
            "name": "assessmentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "documents's id",
            "in": "path",
            "name": "documentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "assessment document successfully removed"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Remove assessment document",
        "tags": [
          "Assessment management"
        ]
      }
    },
    "/offerings/{offeringId}/assessments/{assessmentId}/{userEmail}": {
      "patch": {
        "description": "Updates the due dates for a learner's quiz attempt specified by the assessmentId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "description": "assessment's id",
            "in": "path",
            "name": "assessmentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "user's email",
            "in": "path",
            "name": "userEmail",
            "required": true,
            "schema": {
              "format": "email",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "dueDate": {
                    "format": "date-time",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successfully updated assessment due date."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "InvalidParameterError": {
                    "$ref": "#/components/examples/InvalidParameterError"
                  },
                  "ObjectInvalidPropertyError": {
                    "$ref": "#/components/examples/ObjectInvalidPropertyError"
                  },
                  "SchemaFormatError": {
                    "$ref": "#/components/examples/SchemaFormatError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update the due dates for a learner's quiz attempt",
        "tags": [
          "Assessment management"
        ]
      }
    },
    "/offerings/{offeringId}/badges": {
      "get": {
        "description": "Responds with the badge for an offering matching the offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Badge"
                }
              }
            },
            "description": "badges"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find offering badges",
        "tags": [
          "Badges"
        ]
      }
    },
    "/offerings/{offeringId}/channels": {
      "get": {
        "description": "Responds with a list of channels in an offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ChannelResponse"
                  },
                  "title": "List of channels in a offering",
                  "type": "array"
                }
              }
            },
            "description": "Succesful response"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find channels",
        "tags": [
          "Channels"
        ]
      },
      "post": {
        "description": "Adds new channel to the specified offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChannelRequired"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelResponse"
                }
              }
            },
            "description": "channel successfully added"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaMinLengthError": {
                    "$ref": "#/components/examples/SchemaMinLengthError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Add channel",
        "tags": [
          "Channels"
        ]
      }
    },
    "/offerings/{offeringId}/channels/{channelId}": {
      "patch": {
        "description": "Updates a channel in an offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/channelId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Channel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelResponse"
                }
              }
            },
            "description": "channel successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaMinLengthError": {
                    "$ref": "#/components/examples/SchemaMinLengthError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update channel",
        "tags": [
          "Channels"
        ]
      }
    },
    "/offerings/{offeringId}/channels/{channelId}/learners": {
      "delete": {
        "description": "Removes a learner from the specified group channel.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/channelId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "email": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Learner successfully removed from the channel."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "InvalidGroupChannelError": {
                    "$ref": "#/components/examples/InvalidGroupChannelError"
                  },
                  "UserNotInOfferingError": {
                    "$ref": "#/components/examples/UserNotInOfferingError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Remove learners from a group channel",
        "tags": [
          "Channels"
        ]
      },
      "get": {
        "description": "Finds all learners in a specified group channel.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/channelId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelResponse"
                }
              }
            },
            "description": "channel data"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "InvalidGroupChannelError": {
                    "$ref": "#/components/examples/InvalidGroupChannelError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find learners in a group channel",
        "tags": [
          "Channels"
        ]
      },
      "post": {
        "description": "Adds a learner to a specified group channel.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/channelId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "email": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Learner successfully added to the channel."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "InvalidGroupChannelError": {
                    "$ref": "#/components/examples/InvalidGroupChannelError"
                  },
                  "ObjectExistsError": {
                    "$ref": "#/components/examples/ObjectExistsError"
                  },
                  "SchemaMinLengthError": {
                    "$ref": "#/components/examples/SchemaMinLengthError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  },
                  "UserNotInOfferingError": {
                    "$ref": "#/components/examples/UserNotInOfferingError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Add learners to a group channel",
        "tags": [
          "Channels"
        ]
      }
    },
    "/offerings/{offeringId}/cover-image": {},
    "/offerings/{offeringId}/groups": {
      "get": {
        "description": "Responds with a list of assessment groups in an offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AssessmentGroupResponse"
                  },
                  "title": "List of assessment groups in an offering",
                  "type": "array"
                }
              }
            },
            "description": "Succesful response"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find assessment groups",
        "tags": [
          "Assessment groups"
        ]
      },
      "post": {
        "description": "Creates a new assessment group in an offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssessmentGroupRequired"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentGroupResponse"
                }
              }
            },
            "description": "assessment group successfully added"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaMinLengthError": {
                    "$ref": "#/components/examples/SchemaMinLengthError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Add an assessment group",
        "tags": [
          "Assessment groups"
        ]
      }
    },
    "/offerings/{offeringId}/groups/{groupId}/learners": {
      "get": {
        "description": "Responds with a list of learners in a specified assessment group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/groupId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/UserResponse"
                  },
                  "title": "List of learners",
                  "type": "array"
                }
              }
            },
            "description": "Succesful response"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaMinLengthError": {
                    "$ref": "#/components/examples/SchemaMinLengthError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find learners in an assessment group",
        "tags": [
          "Assessment groups"
        ]
      },
      "post": {
        "description": "Adds a learner into the specified assessment group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/groupId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "email": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            },
            "description": "Succesful response"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ApiValidationError": {
                    "$ref": "#/components/examples/ApiValidationError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Add a learner to an assessment group",
        "tags": [
          "Assessment groups"
        ]
      }
    },
    "/offerings/{offeringId}/groups/{groupId}/learners/{userEmail}": {
      "delete": {
        "description": "Removes a learner from the specified assessment group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/groupId"
          },
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "responses": {
          "204": {
            "description": "user successfully removed from the assessment group"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ApiValidationError": {
                    "$ref": "#/components/examples/ApiValidationError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Remove a learner from an assessment group",
        "tags": [
          "Assessment groups"
        ]
      }
    },
    "/offerings/{offeringId}/learners/pending-submission": {
      "get": {
        "description": "Responds with learners who have one or more assessments due x days before the due date, with each assessment that is due, where x = the number of days specified in the request. The default is 3 days.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "description": "days to assessment due date. Default is 3 days",
            "in": "query",
            "name": "days",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AssessmentPendingSubmission"
                  },
                  "title": "Assessments",
                  "type": "array"
                }
              }
            },
            "description": "offering's learners"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find learners with assessments pending x days before due date within the specified offeringId",
        "tags": [
          "Assessment management"
        ]
      }
    },
    "/offerings/{offeringId}/metadata/category": {
      "put": {
        "description": "Updates the offering category metadata.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "category": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfferingMetadataResponse"
                }
              }
            },
            "description": "offering updated"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update offering category metadata",
        "tags": [
          "Offering metadata"
        ]
      }
    },
    "/offerings/{offeringId}/metadata/level": {
      "put": {
        "description": "Updates the offering level metadata.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "level": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfferingMetadataResponse"
                }
              }
            },
            "description": "offering updated"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update offering level metadata",
        "tags": [
          "Offering metadata"
        ]
      }
    },
    "/offerings/{offeringId}/metadata/tags": {
      "put": {
        "description": "Updates the offering tags metadata.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "tags": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfferingMetadataResponse"
                }
              }
            },
            "description": "offering updated"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update offering tags metadata",
        "tags": [
          "Offering metadata"
        ]
      }
    },
    "/offerings/{offeringId}/metadata/topic": {
      "put": {
        "description": "Updates the offering topic metadata.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "topic": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfferingMetadataResponse"
                }
              }
            },
            "description": "offering updated"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update offering topic metadata",
        "tags": [
          "Offering metadata"
        ]
      }
    },
    "/offerings/{offeringId}/study-plan": {},
    "/offerings/{offeringId}/users": {
      "get": {
        "description": "Responds with a list of users in the offering (facilitators, learners and markers.).",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "description": "If true, facilitators are included in the results.",
            "in": "query",
            "name": "facilitators",
            "schema": {
              "default": "true",
              "enum": [
                "true",
                "false"
              ],
              "type": "string"
            }
          },
          {
            "description": "If true, learners are included in the results.",
            "in": "query",
            "name": "learners",
            "schema": {
              "default": "true",
              "enum": [
                "true",
                "false"
              ],
              "type": "string"
            }
          },
          {
            "description": "If true, markers are included in the results.",
            "in": "query",
            "name": "markers",
            "schema": {
              "default": "true",
              "enum": [
                "true",
                "false"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingUserResponse"
                  },
                  "title": "offering's users",
                  "type": "array"
                }
              }
            },
            "description": "offering's users"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaAllowedValuesError": {
                    "$ref": "#/components/examples/SchemaAllowedValuesError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find offering's users",
        "tags": [
          "Offering learners"
        ]
      },
      "post": {
        "description": "Adds one or more users to the offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/OfferingUser"
                },
                "title": "users to be added to the offering.",
                "type": "array"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingUserAddResponse"
                  },
                  "type": "array"
                }
              }
            },
            "description": "user successfully added to the offering"
          },
          "207": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/OfferingUserAddResponse"
                      },
                      {
                        "$ref": "#/components/schemas/Error"
                      }
                    ]
                  },
                  "type": "array"
                }
              }
            },
            "description": "Partially successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ApiValidationError": {
                    "$ref": "#/components/examples/ApiValidationError"
                  },
                  "ObjectExistsError": {
                    "$ref": "#/components/examples/ObjectExistsError"
                  },
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  },
                  "SchemaRequiredError": {
                    "$ref": "#/components/examples/SchemaRequiredError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Adds user to the offering",
        "tags": [
          "Offering learners"
        ]
      }
    },
    "/offerings/{offeringId}/users/{markerEmail}/marks": {
      "delete": {
        "description": "Removes an array of learners from coach's marking list.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "description": "marker's email",
            "in": "path",
            "name": "markerEmail",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            }
          },
          "description": "array of learners e-mails",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingUser"
                  },
                  "title": "learners marked by the marker",
                  "type": "array"
                }
              }
            },
            "description": "learners marked by the marker"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ObjectIsNotError": {
                    "$ref": "#/components/examples/ObjectIsNotError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Remove learners from coach's marking list",
        "tags": [
          "Offering learners"
        ]
      },
      "get": {
        "description": "Responds with all learners marked by the specified coach.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "description": "marker's email",
            "in": "path",
            "name": "markerEmail",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingUser"
                  },
                  "title": "learners marked by the marker",
                  "type": "array"
                }
              }
            },
            "description": "learners marked by the marker"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find Learners marked by a coach",
        "tags": [
          "Offering learners"
        ]
      },
      "post": {
        "description": "Adds an array of learners to be marked by the specified coach.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "description": "marker's email",
            "in": "path",
            "name": "markerEmail",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            }
          },
          "description": "array of learners e-mails",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingUser"
                  },
                  "title": "learners marked by the marker",
                  "type": "array"
                }
              }
            },
            "description": "learners marked by the marker"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ObjectIsNotError": {
                    "$ref": "#/components/examples/ObjectIsNotError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Add learners to be marked by a coach",
        "tags": [
          "Offering learners"
        ]
      }
    },
    "/offerings/{offeringId}/users/{userEmail}": {
      "delete": {
        "description": "Removes a user from the offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "responses": {
          "204": {
            "description": "user successfully removed from the offering"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ApiValidationError": {
                    "$ref": "#/components/examples/ApiValidationError"
                  },
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Removes user from the offering",
        "tags": [
          "Offering learners"
        ]
      }
    },
    "/offerings/{offeringId}/users/{userEmail}/assessments/{assessmentId}": {
      "delete": {
        "description": "Resets the user's submitted assessment to a draft state.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/userEmail"
          },
          {
            "$ref": "#/components/parameters/assessmentId"
          }
        ],
        "responses": {
          "204": {
            "description": "User's assessment successfully moved to draft state."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "AssessmentNotSubmittedError": {
                    "$ref": "#/components/examples/AssessmentNotSubmittedError"
                  },
                  "ObjectInvalidPropertyError": {
                    "$ref": "#/components/examples/ObjectInvalidPropertyError"
                  },
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Reset user's assessment to draft state",
        "tags": [
          "Assessment management"
        ]
      }
    },
    "/offerings/{offeringId}/users/{userEmail}/badges/award": {
      "post": {
        "description": "Awards a badge to a user in the offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AwardedResponse"
                }
              }
            },
            "description": "Awarded badge response"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "MissingInfoError": {
                    "$ref": "#/components/examples/MissingInfoError"
                  },
                  "UserNotInOfferingError": {
                    "$ref": "#/components/examples/UserNotInOfferingError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Award badge",
        "tags": [
          "Badges"
        ]
      }
    },
    "/offerings/{offeringId}/users/{userEmail}/submissions/open-response": {
      "get": {
        "description": "Responds with open response assessment submissions by a learner in an offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offeringId"
          },
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Assignments"
                  },
                  "title": "user's assignments",
                  "type": "array"
                }
              }
            },
            "description": "user open response submission and mark details"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find learner's open response assessment submissions",
        "tags": [
          "Assessment management"
        ]
      }
    },
    "/org": {
      "get": {
        "description": "Returns the current organisation info.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrgResponse"
                }
              }
            },
            "description": "organisation summary data"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Gets the current organisation",
        "tags": [
          "Organisation"
        ]
      }
    },
    "/users": {
      "post": {
        "description": "Creates a new user.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          },
          "description": "user",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            },
            "description": "user added"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ObjectExistsError": {
                    "$ref": "#/components/examples/ObjectExistsError"
                  },
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  },
                  "SchemaFormatError": {
                    "$ref": "#/components/examples/SchemaFormatError"
                  },
                  "SchemaMinLengthError": {
                    "$ref": "#/components/examples/SchemaMinLengthError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  },
                  "UserSuspendedError": {
                    "$ref": "#/components/examples/UserSuspendedError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Add new user",
        "tags": [
          "Users in iQualify"
        ]
      }
    },
    "/users/all/progress": {
      "get": {
        "description": "Responds with all learners' progress in all offerings.",
        "parameters": [
          {
            "description": "Returns only the first n results.",
            "in": "query",
            "name": "$top",
            "schema": {
              "default": "50",
              "type": "string"
            }
          },
          {
            "description": "Sorts the results.",
            "in": "query",
            "name": "$orderby",
            "schema": {
              "type": "string"
            }
          },
          {
            "allowReserved": true,
            "description": "Filters the results, based on a Boolean condition.",
            "in": "query",
            "name": "$filter",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "properties": {
                        "progress": {
                          "items": {
                            "$ref": "#/components/schemas/LearnerResponse"
                          },
                          "title": "Learners",
                          "type": "array"
                        }
                      }
                    },
                    "top": {
                      "type": "integer"
                    }
                  }
                }
              }
            },
            "description": "Learners progress"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ApiValidationError": {
                    "$ref": "#/components/examples/ApiValidationError"
                  },
                  "SchemaQueryError": {
                    "$ref": "#/components/examples/SchemaQueryError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          }
        },
        "summary": "Find learner progress in all offerings",
        "tags": [
          "Learner activity"
        ]
      }
    },
    "/users/{userEmail}": {
      "get": {
        "description": "Responds with a user matching the specified email.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            },
            "description": "user data"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find user by email",
        "tags": [
          "Users in iQualify"
        ]
      },
      "patch": {
        "description": "Updates the specified user by email.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            },
            "description": "user updated"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ObjectExistsError": {
                    "$ref": "#/components/examples/ObjectExistsError"
                  },
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  },
                  "SchemaFormatError": {
                    "$ref": "#/components/examples/SchemaFormatError"
                  },
                  "SchemaMinLengthError": {
                    "$ref": "#/components/examples/SchemaMinLengthError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Update user",
        "tags": [
          "Users in iQualify"
        ]
      }
    },
    "/users/{userEmail}/badges": {
      "get": {
        "description": "Responds with all badges that the specified user has been awarded.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/UserBadge"
                  },
                  "title": "Badges",
                  "type": "array"
                }
              }
            },
            "description": "user's badges"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find user's badges",
        "tags": [
          "Badges"
        ]
      }
    },
    "/users/{userEmail}/invite-email": {
      "post": {
        "description": "Re-sends an invitation e-mail to the specified user.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "responses": {
          "204": {
            "description": "successfully requested invitation e-mail sending"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Resend invitation email",
        "tags": [
          "Users in iQualify"
        ]
      }
    },
    "/users/{userEmail}/offerings": {
      "get": {
        "description": "Responds with all offerings that the user in.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingMetadataResponse"
                  },
                  "title": "Offerings",
                  "type": "array"
                }
              }
            },
            "description": "user's offerings"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find user's offerings",
        "tags": [
          "Users in iQualify"
        ]
      },
      "post": {
        "description": "Adds a user to an array of offerings by offeringId.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            }
          },
          "description": "offering ids",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OfferingMetadataResponse"
                  },
                  "title": "Offerings",
                  "type": "array"
                }
              }
            },
            "description": "user's offerings"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "MissingInfoError": {
                    "$ref": "#/components/examples/MissingInfoError"
                  },
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Adds the user to the specified offerings as a learner",
        "tags": [
          "Users in iQualify"
        ]
      }
    },
    "/users/{userEmail}/offerings/{offeringId}/progress": {
      "get": {
        "description": "Responds with the learner's progress in a specified offering.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          },
          {
            "$ref": "#/components/parameters/offeringId"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "completion": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "firstName": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "lastName": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "user's offerings"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  },
                  "UserNotInOfferingError": {
                    "$ref": "#/components/examples/UserNotInOfferingError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find learner's progress in a specified offering",
        "tags": [
          "Learner activity"
        ]
      }
    },
    "/users/{userEmail}/permissions/{permissionName}": {
      "post": {
        "description": "Adds additional permissions to the specified user.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          },
          {
            "$ref": "#/components/parameters/permissionName"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            },
            "description": "permission successfully added to user"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "MissingInfoError": {
                    "$ref": "#/components/examples/MissingInfoError"
                  },
                  "ObjectAlreadyIsError": {
                    "$ref": "#/components/examples/ObjectAlreadyIsError"
                  },
                  "SchemaAllowedValuesError": {
                    "$ref": "#/components/examples/SchemaAllowedValuesError"
                  },
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Add permission to user",
        "tags": [
          "Users in iQualify"
        ]
      }
    },
    "/users/{userEmail}/progress": {
      "get": {
        "description": "Responds with the specified learner's progress in all offerings.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerResponse"
                }
              }
            },
            "description": "Learner Progress"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Find learner's progress in offerings",
        "tags": [
          "Learner activity"
        ]
      }
    },
    "/users/{userEmail}/suspend": {
      "put": {
        "description": "Suspends the specified user's account.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuspendedRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "User suspended."
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "InvalidParameterError": {
                    "$ref": "#/components/examples/InvalidParameterError"
                  },
                  "ObjectExistsError": {
                    "$ref": "#/components/examples/ObjectExistsError"
                  },
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  },
                  "SchemaFormatError": {
                    "$ref": "#/components/examples/SchemaFormatError"
                  },
                  "SchemaTypeError": {
                    "$ref": "#/components/examples/SchemaTypeError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Suspend user",
        "tags": [
          "Users in iQualify"
        ]
      }
    },
    "/users/{userEmail}/transfer": {
      "patch": {
        "description": "Moves the user's access and progress from one offering to another.",
        "parameters": [
          {
            "$ref": "#/components/parameters/userEmail"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferRequest"
              }
            }
          },
          "description": "transfer_data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated user information"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "ContentDoNotMatchError": {
                    "$ref": "#/components/examples/ContentDoNotMatchError"
                  },
                  "InvalidSourceAndTargetError": {
                    "$ref": "#/components/examples/InvalidSourceAndTargetError"
                  },
                  "SchemaEmailError": {
                    "$ref": "#/components/examples/SchemaEmailError"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "$ref": "#/components/responses/NotAuthorizedError"
          },
          "403": {
            "$ref": "#/components/responses/AccessDeniedError"
          },
          "404": {
            "$ref": "#/components/responses/ObjectNotFoundError"
          }
        },
        "summary": "Transfer a user between offerings",
        "tags": [
          "Offering learners"
        ]
      }
    }
  },
  "components": {
    "examples": {
      "ApiValidationError": {
        "summary": "API validation error",
        "value": {
          "details": "invalid $filter parameter.",
          "name": "ApiValidationError"
        }
      },
      "AssessmentNotSubmittedError": {
        "summary": "the specified user has not submitted an assessment",
        "value": {
          "details": "The user alex.doe@test.te has not submitted assessment as1.",
          "name": "AssessmentNotSubmittedError"
        }
      },
      "ContentDoNotMatchError": {
        "summary": "The specified content needs to be the same in order to perform the requested operation.",
        "value": {
          "details": "contentId needs to be the same in order to perform the requested operation.",
          "name": "ContentDoNotMatchError"
        }
      },
      "IncompatibleParametersError": {
        "summary": "Two properties in the request contains incompatible values with each other",
        "value": {
          "details": "A cannot be B when C is D",
          "name": "IncompatibleParametersError"
        }
      },
      "InvalidChannelPropertiesError": {
        "summary": "A channel can only have one of these properties set as true: groupDiscussion, isBroadcastOnly or privateSupport",
        "value": {
          "details": "A channel can only have one of these properties set as true: groupDiscussion, isBroadcastOnly or privateSupport",
          "name": "InvalidChannelPropertiesError"
        }
      },
      "InvalidContentError": {
        "summary": "You need to specify content_id or rootContentId.",
        "value": {
          "details": "You need to specify content_id or rootContentId.",
          "name": "InvalidContentError"
        }
      },
      "InvalidGroupChannelError": {
        "summary": "Specified channel is not a group discussion channel.",
        "value": {
          "details": "Channel channel1 is not a group discussion channel.",
          "name": "InvalidGroupChannelError"
        }
      },
      "InvalidObjectIdError": {
        "summary": "The user has been suspended.",
        "value": {
          "details": "The specified task id has an invalid value '1111'.",
          "name": "InvalidObjectIdError"
        }
      },
      "InvalidParameterError": {
        "summary": "the specified source object already exists in the target object",
        "value": {
          "details": "The specified parameter file.mimetype (image mimetype) has an invalid value \\'text/plain\\'.",
          "name": "InvalidParameterError"
        }
      },
      "InvalidSourceAndTargetError": {
        "summary": "Source and target offerings cannot be the same.",
        "value": {
          "details": "Source and target offerings cannot be the same.",
          "name": "InvalidSourceAndTargetError"
        }
      },
      "MissingInfoError": {
        "summary": "Specified info is missing.",
        "value": {
          "details": "The field 'Offering Badge' is missing or invalid.",
          "name": "MissingInfoError"
        }
      },
      "MultipleObjectsError": {
        "summary": "The specified object has multiple properties of which should have only one",
        "value": {
          "details": "There are multiple permission with value true (isBuilder | isReviewer).",
          "name": "ObjectIsNotError"
        }
      },
      "ObjectAlreadyIsError": {
        "summary": "The specified object already has a property",
        "value": {
          "details": "The user john.doe@test.te is already a manager.",
          "name": "ObjectAlreadyIsError"
        }
      },
      "ObjectExistsError": {
        "summary": "the specified source object already exists in the target object",
        "value": {
          "details": "The badge already exists in the offering OFFERING ID.",
          "name": "ObjectExistsError"
        }
      },
      "ObjectInvalidPropertyError": {
        "summary": "the specified source object already exists in the target object",
        "value": {
          "details": "The A property B is invalid. Expected value: C",
          "name": "ObjectInvalidPropertyError"
        }
      },
      "ObjectIsNotError": {
        "summary": "the specified object is not of the specified type",
        "value": {
          "details": "The user john.doe@test.te is not a builder.",
          "name": "ObjectIsNotError"
        }
      },
      "ObjectNotFoundError": {
        "summary": "a referenced object is not found",
        "value": {
          "details": "The content badcontentId was not found.",
          "name": "ObjectNotFoundError"
        }
      },
      "OfferingIncompatibleDatesError": {
        "summary": "The specified offering has relative dates enabled. Absolute task dates can not be set.",
        "value": {
          "details": "The specified offering has relative dates enabled. Absolute task dates can not be set.",
          "name": "OfferingIncompatibleDatesError"
        }
      },
      "SchemaAdditionalPropertiesError": {
        "summary": "The request body should not have extra properties",
        "value": {
          "details": "should NOT have additional properties",
          "name": "SchemaValidationError"
        }
      },
      "SchemaAllowedValuesError": {
        "summary": "should be equal to one of the allowed values",
        "value": {
          "details": "[PARAMETER_NAME] PARAMETER_VALUE should be equal to one of the allowed values a, b",
          "name": "SchemaValidationError"
        }
      },
      "SchemaEmailError": {
        "summary": "Parameter should be a valid e-mail",
        "value": {
          "details": "PARAMETER_NAME PARAMETER_VALUE should match format \"email\".",
          "name": "SchemaValidationError"
        }
      },
      "SchemaFormatError": {
        "summary": "should match specific format",
        "value": {
          "details": "PARAMETER_NAME PARAMETER_VALUE should match format \"example\"",
          "name": "SchemaValidationError"
        }
      },
      "SchemaMediaError": {
        "summary": "unsupported media type in the content-type header",
        "value": {
          "details": "unsupported media type application/json",
          "name": "SchemaValidationError"
        }
      },
      "SchemaMinLengthError": {
        "summary": "should be longer than the minimum required",
        "value": {
          "details": "[PARAMETER_NAME] PARAMETER_VALUE should NOT be shorter than 3 characters",
          "name": "SchemaValidationError"
        }
      },
      "SchemaQueryError": {
        "summary": "Unknown query parameter",
        "value": {
          "details": "[PARAMETER_NAME] PARAMETER_VALUE Unknown query parameter 'example'",
          "name": "SchemaValidationError"
        }
      },
      "SchemaRequiredError": {
        "summary": "should have a specific required property",
        "value": {
          "details": "should have required property 'example'",
          "name": "SchemaValidationError"
        }
      },
      "SchemaTypeError": {
        "summary": "should be of a specific type",
        "value": {
          "details": "[PARAMETER_NAME] PARAMETER_VALUE should be string",
          "name": "SchemaValidationError"
        }
      },
      "TextPatternError": {
        "summary": "Text pattern must be a minimum of n characters in length.",
        "value": {
          "details": "Text pattern must be a minimum of 3 characters in length.",
          "name": "TextPatternError"
        }
      },
      "UserDoesNotHaveBadgeError": {
        "summary": "The specified user does not have a badge in the specified offering",
        "value": {
          "details": "The user A has not been awarded a badge in the offering B.",
          "name": "UserDoesNotHaveBadgeError"
        }
      },
      "UserNotInChannelError": {
        "summary": "Specified user is not in the channel.",
        "value": {
          "details": "The user john.doe@test.te is not a learner in the channel -MEF8kFyURUr6_CZ4IXD.",
          "name": "UserNotInChannelError"
        }
      },
      "UserNotInOfferingError": {
        "summary": "Specified user is not in the offering.",
        "value": {
          "details": "The user john.doe@test.te is not a learner in the offering -MEF8kFyURUr6_CZ4IXD.",
          "name": "UserNotInOfferingError"
        }
      },
      "UserSuspendedError": {
        "summary": "The user has been suspended.",
        "value": {
          "details": "The user (john.doe@test.te) has been suspended.",
          "name": "UserSuspendedError"
        }
      },
      "ValidationAllowTasksError": {
        "summary": "The specified parameter offeringId does not have tasks enabled",
        "value": {
          "details": "The specified parameter offeringId has an invalid value 'The specified parameter offeringId does not have tasks enabled'.",
          "name": "ValidationError"
        }
      },
      "ValidationError": {
        "summary": "The specified parameter dueDate has an invalid value",
        "value": {
          "details": "The specified parameter dueDate has an invalid value \"Thu Apr 16 2020 19:15:00 GMT-0300 is before the openDate\".",
          "name": "ValidationError"
        }
      },
      "ValidationTaskNotInOfferingError": {
        "summary": "The specified parameter taskId is not in the offering",
        "value": {
          "details": "The specified parameter taskId has an invalid value 'The specified parameter taskId is not in the offering'.",
          "name": "ValidationError"
        }
      }
    },
    "parameters": {
      "assessmentId": {
        "description": "assessment's id",
        "in": "path",
        "name": "assessmentId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "badgeId": {
        "description": "badge's id",
        "in": "path",
        "name": "badgeId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "channelId": {
        "description": "channel's id",
        "in": "path",
        "name": "channelId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "evaluatorEmail": {
        "description": "Evaluator's email",
        "in": "path",
        "name": "evaluatorEmail",
        "required": true,
        "schema": {
          "format": "email",
          "type": "string"
        }
      },
      "externalCourseId": {
        "description": "external course's id",
        "in": "path",
        "name": "externalCourseId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "groupId": {
        "description": "Assessment group id",
        "in": "path",
        "name": "groupId",
        "required": true,
        "schema": {
          "pattern": "^[0-9a-fA-F]{24}$",
          "type": "string"
        }
      },
      "offeringId": {
        "description": "offering's id",
        "in": "path",
        "name": "offeringId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "permissionName": {
        "description": "permission name",
        "in": "path",
        "name": "permissionName",
        "required": true,
        "schema": {
          "enum": [
            "builder",
            "manager"
          ],
          "type": "string"
        }
      },
      "rootContentId": {
        "description": "Protfolio root content id",
        "in": "path",
        "name": "rootContentId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "sectionId": {
        "description": "section's id",
        "in": "path",
        "name": "sectionId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "submissionId": {
        "description": "submission id",
        "in": "path",
        "name": "submissionId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "taskId": {
        "description": "task id",
        "in": "path",
        "name": "taskId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "userEmail": {
        "description": "user's email",
        "in": "path",
        "name": "userEmail",
        "required": true,
        "schema": {
          "format": "email",
          "type": "string"
        }
      }
    },
    "responses": {
      "AccessDeniedError": {
        "content": {
          "application/json": {
            "example": {
              "details": "You are not allowed to access this resource",
              "name": "AccessDeniedError"
            },
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "You are not allowed to access this resource."
      },
      "InvalidContentError": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "You need to specify content_id or rootContentId."
      },
      "NotAuthorizedError": {
        "content": {
          "application/json": {
            "example": {
              "details": "No authorization token was found.",
              "name": "NotAuthorizedError"
            },
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "No authorization token was found."
      },
      "NotImplementedError": {
        "content": {
          "application/json": {
            "example": {
              "details": "The endpoint is not implemented.",
              "name": "NotImplementedError"
            },
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "Endpoint Not Implemented"
      },
      "ObjectNotFoundError": {
        "content": {
          "application/json": {
            "example": {
              "details": "The content badcontentId was not found.",
              "name": "ObjectNotFoundError"
            },
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "Not Found"
      },
      "RouteNotFoundError": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "Invalid path."
      },
      "ServerError": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "We're sorry, but something went wrong."
      },
      "TooManyRequestsError": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "Request rate is too large."
      }
    },
    "schemas": {
      "ActivationResponse": {
        "properties": {
          "end": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "info": {
            "type": "string"
          },
          "learnersCount": {
            "description": "number of learners in the offering, excluding facilitators and coaches",
            "type": "string"
          },
          "metadata": {
            "properties": {
              "rootContentId": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "start": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ActivityAttemptOpenResponse": {
        "properties": {
          "activityId": {
            "type": "string"
          },
          "activityType": {
            "type": "string"
          },
          "feedback": {
            "$ref": "#/components/schemas/ActivityAttemptOpenResponseFeedback"
          },
          "learnerEmail": {
            "type": "string"
          },
          "offeringId": {
            "type": "string"
          },
          "responseText": {
            "type": "string"
          },
          "uploadedFiles": {
            "$ref": "#/components/schemas/ActivityAttemptOpenResponseFiles"
          }
        },
        "type": "object"
      },
      "ActivityAttemptOpenResponseFeedback": {
        "properties": {
          "facilitatorEmail": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ActivityAttemptOpenResponseFiles": {
        "properties": {
          "filename": {
            "type": "string"
          },
          "mimetype": {
            "type": "string"
          },
          "size": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Assessment": {
        "properties": {
          "content": {
            "type": "string"
          },
          "dueDate": {
            "format": "date-time",
            "type": "string"
          },
          "markNumber": {
            "minLength": 1,
            "type": "string"
          },
          "markType": {
            "minLength": 1,
            "type": "string"
          },
          "openDate": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AssessmentGroupRequired": {
        "properties": {
          "title": {
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "type": "object"
      },
      "AssessmentGroupResponse": {
        "properties": {
          "createdAt": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "title": {
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AssessmentPendingSubmission": {
        "properties": {
          "content": {
            "type": "string"
          },
          "documents": {
            "items": {
              "$ref": "#/components/schemas/Document"
            },
            "type": "array"
          },
          "dueDate": {
            "format": "date-time",
            "type": "string"
          },
          "durationMinutes": {
            "format": "int32",
            "type": "integer"
          },
          "filename": {
            "type": "string"
          },
          "hidden": {
            "default": false,
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "markNumber": {
            "minLength": 1,
            "type": "string"
          },
          "markType": {
            "minLength": 1,
            "type": "string"
          },
          "maxAttempts": {
            "format": "int32",
            "type": "integer"
          },
          "offeringId": {
            "type": "string"
          },
          "offeringName": {
            "type": "string"
          },
          "openDate": {
            "format": "date-time",
            "type": "string"
          },
          "pid": {
            "type": "string"
          },
          "points": {
            "type": "string"
          },
          "themes": {
            "items": {
              "$ref": "#/components/schemas/ThemeResponse"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          },
          "totalQuestions": {
            "format": "int32",
            "type": "integer"
          },
          "totalThemes": {
            "format": "int32",
            "type": "integer"
          },
          "type": {
            "type": "string"
          },
          "users": {
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "AssessmentResponse": {
        "properties": {
          "content": {
            "type": "string"
          },
          "documents": {
            "items": {
              "$ref": "#/components/schemas/Document"
            },
            "type": "array"
          },
          "dueDate": {
            "format": "date-time",
            "type": "string"
          },
          "durationMinutes": {
            "format": "int32",
            "type": "integer"
          },
          "filename": {
            "type": "string"
          },
          "hidden": {
            "default": false,
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "markNumber": {
            "minLength": 1,
            "type": "string"
          },
          "markType": {
            "minLength": 1,
            "type": "string"
          },
          "maxAttempts": {
            "format": "int32",
            "type": "integer"
          },
          "openDate": {
            "format": "date-time",
            "type": "string"
          },
          "pid": {
            "type": "string"
          },
          "points": {
            "type": "string"
          },
          "themes": {
            "items": {
              "$ref": "#/components/schemas/ThemeResponse"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          },
          "totalQuestions": {
            "format": "int32",
            "type": "integer"
          },
          "totalThemes": {
            "format": "int32",
            "type": "integer"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "AssignmentMarkResponse": {
        "properties": {
          "assessmentId": {
            "type": "string"
          },
          "assessmentItemDetails": {
            "type": "string"
          },
          "assessmentItemName": {
            "type": "string"
          },
          "courseName": {
            "type": "string"
          },
          "learnerEmail": {
            "type": "string"
          },
          "learnerFirstName": {
            "type": "string"
          },
          "learnerLastName": {
            "type": "string"
          },
          "learnerPersonId": {
            "type": "string"
          },
          "mark": {
            "type": "string"
          },
          "markFeedback": {
            "type": "string"
          },
          "markedBy": {
            "type": "string"
          },
          "markedByEvaluator": {
            "type": "boolean"
          },
          "markedByFacilitator": {
            "type": "boolean"
          },
          "markedByMarker": {
            "type": "boolean"
          },
          "markedDateTime": {
            "format": "date-time",
            "type": "string"
          },
          "submissionDateTime": {
            "format": "date-time",
            "type": "string"
          }
        },
        "title": "AssignmentMark",
        "type": "object"
      },
      "Assignments": {
        "properties": {
          "files": {
            "items": {
              "$ref": "#/components/schemas/Document"
            },
            "type": "array"
          },
          "marks": {
            "items": {
              "$ref": "#/components/schemas/Mark"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          },
          "submittedAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AwardedResponse": {
        "properties": {
          "awarded": {
            "type": "boolean"
          },
          "badgeId": {
            "type": "string"
          },
          "badgeUrl": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Badge": {
        "properties": {
          "badgeExpiry": {
            "$ref": "#/components/schemas/BadgeExpiry"
          },
          "badgeUrl": {
            "type": "string"
          },
          "criterias": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Criteria"
              }
            ]
          },
          "description": {
            "type": "string"
          },
          "openBadge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OpenBadgeClass"
              }
            ]
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "BadgeExpiry": {
        "properties": {
          "expirationDate": {
            "format": "date-time",
            "type": "string"
          },
          "expires": {
            "type": "boolean"
          },
          "expiryType": {
            "enum": [
              "date",
              "timeframe"
            ],
            "type": "string"
          },
          "timeframeAmount": {
            "type": "number"
          },
          "timeframeUnit": {
            "enum": [
              "days",
              "months",
              "years"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "Channel": {
        "properties": {
          "group": {
            "properties": {
              "autoAssign": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "groupDiscussion": {
            "type": "boolean"
          },
          "isBroadcastOnly": {
            "type": "boolean"
          },
          "privateSupport": {
            "type": "boolean"
          },
          "title": {
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChannelRequired": {
        "properties": {
          "isBroadcastOnly": {
            "default": false,
            "type": "boolean"
          },
          "title": {
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "type": "object"
      },
      "ChannelResponse": {
        "properties": {
          "id": {
            "type": "string"
          },
          "isBroadcastOnly": {
            "default": false,
            "type": "boolean"
          },
          "title": {
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Comment": {
        "properties": {
          "content": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "isFacilitatorPost": {
            "type": "boolean"
          },
          "moderation": {
            "$ref": "#/components/schemas/Moderation"
          },
          "parentCommentId": {
            "type": "string"
          },
          "postId": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "CourseMetaResponse": {
        "properties": {
          "coverImageUrl": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "properties": {
              "category": {
                "type": "string"
              },
              "learning_outcomes": {
                "items": {
                  "$ref": "#/components/schemas/LearningOutcomes"
                },
                "type": "array"
              },
              "level": {
                "type": "string"
              },
              "rootContentId": {
                "type": "string"
              },
              "tags": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "topic": {
                "type": "string"
              }
            }
          },
          "name": {
            "type": "string"
          },
          "tasksEnabled": {
            "type": "boolean"
          }
        },
        "title": "Course",
        "type": "object"
      },
      "CourseResponse": {
        "properties": {
          "coverImageUrl": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "properties": {
              "learning_outcomes": {
                "items": {
                  "$ref": "#/components/schemas/LearningOutcomes"
                },
                "type": "array"
              }
            }
          },
          "name": {
            "type": "string"
          }
        },
        "title": "Course",
        "type": "object"
      },
      "Criteria": {
        "properties": {
          "hasCompletedCourse": {
            "default": true,
            "type": "boolean"
          },
          "hasPassedMandatoryAssessedQuizzes": {
            "default": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "Document": {
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "filename": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "mimetype": {
            "type": "string"
          },
          "size": {
            "format": "int64",
            "type": "integer"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "DocumentResponse": {
        "properties": {
          "id": {
            "type": "string"
          },
          "mimetype": {
            "type": "string"
          },
          "size": {
            "format": "int64",
            "type": "integer"
          },
          "url": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Error": {
        "properties": {
          "error": {
            "properties": {
              "details": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "Invite": {
        "properties": {
          "url": {
            "description": "if sendInvite in request is false",
            "type": "string"
          }
        },
        "type": "object"
      },
      "LearnerOfferingDates": {
        "properties": {
          "start": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "LearnerProgressResponse": {
        "properties": {
          "completion": {
            "type": "string"
          },
          "courseId": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastLoggedInAt": {
            "format": "date-time",
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "personId": {
            "type": "string"
          }
        },
        "title": "LearnerProgress",
        "type": "object"
      },
      "LearnerResponse": {
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "offerings": {
            "items": {
              "$ref": "#/components/schemas/OfferingProgressRow"
            },
            "type": "array"
          },
          "personId": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "LearningOutcomes": {
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Mark": {
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "feedback": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "mark": {
            "type": "string"
          },
          "markFeedback": {
            "items": {
              "$ref": "#/components/schemas/MarkFeedback"
            },
            "type": "array"
          },
          "markedBy": {
            "type": "string"
          },
          "markerId": {
            "type": "string"
          }
        }
      },
      "MarkFeedback": {
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "feedback": {
            "type": "string"
          },
          "feedbackBy": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "mark": {
            "type": "string"
          },
          "markerId": {
            "type": "string"
          }
        }
      },
      "Moderation": {
        "properties": {
          "isMuted": {
            "type": "boolean"
          },
          "moderator": {
            "$ref": "#/components/schemas/Moderator"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Moderator": {
        "properties": {
          "avatarUrl": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Offering": {
        "properties": {
          "badge": {
            "additionalProperties": false,
            "properties": {
              "badgeExpiry": {
                "$ref": "#/components/schemas/BadgeExpiry"
              },
              "description": {
                "type": "string"
              },
              "requiresApproval": {
                "type": "boolean"
              },
              "title": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "contentId": {
            "description": "The identifier for a specific version of a course",
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "minLength": 1,
            "type": "string"
          },
          "earlyCloseOffDate": {
            "format": "date-time",
            "type": "string"
          },
          "end": {
            "format": "date-time",
            "type": "string"
          },
          "hasEarlyCloseOff": {
            "type": "boolean"
          },
          "identifier": {
            "type": "string"
          },
          "isReadonly": {
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": false,
            "properties": {
              "category": {
                "type": "string"
              },
              "level": {
                "type": "string"
              },
              "tags": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "topic": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "overview": {
            "type": "string"
          },
          "rootContentId": {
            "description": "Every time a course is republished it is assigned a new contentId. rootContentId is the first original contentId associated with a course.",
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "type": "string"
          },
          "trailerVideoUrl": {
            "minLength": 1,
            "type": "string"
          },
          "useRelativeDates": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "OfferingActivitiesResponse": {
        "properties": {
          "activityId": {
            "type": "string"
          },
          "time": {
            "description": "expected minutes to complete",
            "type": "number"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "OfferingMetadata": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "rootContentId": {
            "type": "string"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "topic": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "OfferingMetadataResponse": {
        "properties": {
          "contentId": {
            "minLength": 1,
            "type": "string"
          },
          "coverImageUrl": {
            "minLength": 1,
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "description": {
            "minLength": 1,
            "type": "string"
          },
          "earlyCloseOffDate": {
            "format": "date-time",
            "type": "string"
          },
          "end": {
            "format": "date-time",
            "type": "string"
          },
          "enrollmentLimit": {
            "type": "number"
          },
          "hasEarlyCloseOff": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "identifier": {
            "type": "string"
          },
          "isReadonly": {
            "type": "boolean"
          },
          "metadata": {
            "$ref": "#/components/schemas/OfferingMetadata"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "overview": {
            "description": "content can contain html",
            "minLength": 1,
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "start": {
            "format": "date-time",
            "type": "string"
          },
          "tasksEnabled": {
            "type": "boolean"
          },
          "trailerVideoUrl": {
            "minLength": 1,
            "type": "string"
          },
          "useRelativeDates": {
            "default": false,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "OfferingProgressRow": {
        "properties": {
          "completion": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "OfferingRequired": {
        "properties": {
          "badge": {
            "additionalProperties": false,
            "properties": {
              "badgeExpiry": {
                "$ref": "#/components/schemas/BadgeExpiry"
              },
              "description": {
                "type": "string"
              },
              "requiresApproval": {
                "type": "boolean"
              },
              "title": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "contentId": {
            "description": "The identifier for a specific version of a course",
            "minLength": 1,
            "type": "string"
          },
          "createDefaultChannels": {
            "default": false,
            "type": "boolean"
          },
          "description": {
            "minLength": 1,
            "type": "string"
          },
          "earlyCloseOffDate": {
            "format": "date-time",
            "type": "string"
          },
          "end": {
            "format": "date-time",
            "type": "string"
          },
          "hasEarlyCloseOff": {
            "type": "boolean"
          },
          "identifier": {
            "type": "string"
          },
          "isReadonly": {
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": false,
            "properties": {
              "category": {
                "type": "string"
              },
              "level": {
                "type": "string"
              },
              "tags": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "topic": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "rootContentId": {
            "description": "Every time a course is republished it's assigned a new contentId. rootContentId is the first original contentId associated with a course.",
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "type": "string"
          },
          "trailerVideoUrl": {
            "minLength": 1,
            "type": "string"
          },
          "useRelativeDates": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "start"
        ],
        "type": "object"
      },
      "OfferingResponse": {
        "properties": {
          "contentId": {
            "minLength": 1,
            "type": "string"
          },
          "coverImageUrl": {
            "minLength": 1,
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "description": {
            "minLength": 1,
            "type": "string"
          },
          "earlyCloseOffDate": {
            "format": "date-time",
            "type": "string"
          },
          "end": {
            "format": "date-time",
            "type": "string"
          },
          "enrollmentLimit": {
            "type": "number"
          },
          "hasEarlyCloseOff": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "identifier": {
            "type": "string"
          },
          "isReadonly": {
            "type": "boolean"
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "start": {
            "format": "date-time",
            "type": "string"
          },
          "tasksEnabled": {
            "type": "boolean"
          },
          "trailerVideoUrl": {
            "minLength": 1,
            "type": "string"
          }
        },
        "type": "object"
      },
      "OfferingUser": {
        "additionalProperties": false,
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string"
          },
          "firstName": {
            "minLength": 1,
            "type": "string"
          },
          "isFacilitator": {
            "default": false,
            "type": "boolean"
          },
          "isMarker": {
            "default": false,
            "type": "boolean"
          },
          "isReadonly": {
            "default": false,
            "type": "boolean"
          },
          "lastName": {
            "minLength": 1,
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/UserMetadata"
          },
          "personId": {
            "minLength": 1,
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/UserProfileRequest"
          },
          "sendInvite": {
            "default": true,
            "type": "boolean"
          },
          "sendNotificationEmail": {
            "default": true,
            "type": "boolean"
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "OfferingUserAddResponse": {
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string"
          },
          "firstName": {
            "minLength": 1,
            "type": "string"
          },
          "invite": {
            "$ref": "#/components/schemas/Invite"
          },
          "isFacilitator": {
            "default": false,
            "type": "boolean"
          },
          "isMarker": {
            "default": false,
            "type": "boolean"
          },
          "isReadonly": {
            "default": false,
            "type": "boolean"
          },
          "lastName": {
            "minLength": 1,
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/UserMetadata"
          },
          "personId": {
            "minLength": 1,
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/UserProfileRequest"
          },
          "sendInvite": {
            "default": true,
            "type": "boolean"
          },
          "sendNotificationEmail": {
            "default": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "OfferingUserResponse": {
        "properties": {
          "avatarUrl": {
            "type": "string"
          },
          "email": {
            "format": "email",
            "minLength": 1,
            "type": "string"
          },
          "evaluatedBy": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "evaluates": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "firstName": {
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "isFacilitator": {
            "default": false,
            "type": "boolean"
          },
          "isMarker": {
            "default": false,
            "type": "boolean"
          },
          "isReadonly": {
            "default": false,
            "type": "boolean"
          },
          "lastName": {
            "minLength": 1,
            "type": "string"
          },
          "markedBy": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "marks": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "personId": {
            "minLength": 1,
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/UserProfile"
          }
        },
        "type": "object"
      },
      "OpenBadgeClass": {
        "properties": {
          "criteria": {
            "additionalProperties": false,
            "properties": {
              "narrative": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "issuer": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "OrgRequest": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "OrgResponse": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "PortfolioActivations": {
        "properties": {
          "contentId": {
            "type": "string"
          },
          "end": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "info": {
            "type": "string"
          },
          "learnersCount": {
            "description": "number of learners in the offering, excluding facilitators and coaches",
            "type": "number"
          },
          "metadata": {
            "properties": {
              "rootContentId": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PortfolioLicenseResponse": {
        "properties": {
          "licenses": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "owner": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "PortfolioMetadata": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "type": "string"
          },
          "level": {
            "type": "string"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "topic": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "PulseAnswer": {
        "properties": {
          "multiChoiceAnswer": {
            "items": {
              "$ref": "#/components/schemas/PulseMCQOption"
            },
            "type": "array"
          },
          "spatialAnswer": {
            "items": {
              "$ref": "#/components/schemas/PulseSpatialOption"
            },
            "type": "array"
          },
          "textAnswer": {
            "type": "string"
          }
        },
        "title": "Answer",
        "type": "object"
      },
      "PulseMCQOption": {
        "properties": {
          "option": {
            "type": "string"
          },
          "value": {
            "type": "boolean"
          }
        },
        "title": "MultiChoiceOption",
        "type": "object"
      },
      "PulseResponse": {
        "properties": {
          "learnerFirstName": {
            "type": "string"
          },
          "learnerId": {
            "type": "string"
          },
          "learnerLastName": {
            "type": "string"
          },
          "pulseBaseId": {
            "type": "string"
          },
          "pulseInstanceId": {
            "type": "string"
          },
          "pulseQuestion": {
            "type": "string"
          },
          "pulseRunDurationMinutes": {
            "type": "integer"
          },
          "pulseRunStart": {
            "format": "date-time",
            "type": "string"
          },
          "pulseType": {
            "type": "string"
          },
          "response": {
            "$ref": "#/components/schemas/PulseAnswer"
          },
          "responseTime": {
            "format": "date-time",
            "type": "string"
          }
        },
        "title": "Pulse",
        "type": "object"
      },
      "PulseSpatialOption": {
        "properties": {
          "option": {
            "type": "string"
          },
          "value": {
            "format": "float",
            "type": "number"
          }
        },
        "title": "SpatialOption",
        "type": "object"
      },
      "QuizMarkResponse": {
        "properties": {
          "attempts": {
            "format": "int32",
            "type": "integer"
          },
          "lastAttemptAt": {
            "format": "date-time",
            "type": "string"
          },
          "learnerEmail": {
            "type": "string"
          },
          "learnerFullname": {
            "type": "string"
          },
          "learnerPersonId": {
            "type": "string"
          },
          "mark": {
            "type": "string"
          },
          "quizId": {
            "type": "string"
          },
          "quizTitle": {
            "type": "string"
          }
        },
        "title": "QuizMark",
        "type": "object"
      },
      "RevokedResponse": {
        "properties": {
          "badgeId": {
            "type": "string"
          },
          "badgeUrl": {
            "type": "string"
          },
          "revocationReason": {
            "type": "string"
          },
          "revoked": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "SocialNotesResponse": {
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "pageId": {
            "type": "string"
          },
          "personId": {
            "type": "string"
          },
          "social-note-content": {
            "type": "string"
          },
          "social-note-paragraphId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "SubmissionMarkResponse": {
        "properties": {
          "assessmentId": {
            "type": "string"
          },
          "assessmentItemDetails": {
            "type": "string"
          },
          "assessmentItemName": {
            "type": "string"
          },
          "courseName": {
            "type": "string"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/Document"
            },
            "type": "array"
          },
          "html": {
            "type": "string"
          },
          "learnerEmail": {
            "type": "string"
          },
          "learnerFirstName": {
            "type": "string"
          },
          "learnerLastName": {
            "type": "string"
          },
          "learnerPersonId": {
            "type": "string"
          },
          "marks": {
            "items": {
              "$ref": "#/components/schemas/Mark"
            },
            "type": "array"
          },
          "status": {
            "type": "string"
          },
          "submissionDateTime": {
            "format": "date-time",
            "type": "string"
          }
        },
        "title": "SubmissionMark"
      },
      "SuspendedRequest": {
        "properties": {
          "suspended": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ThemeResponse": {
        "properties": {
          "filter": {
            "type": "string"
          },
          "numberOfQuestions": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "TransferRequest": {
        "properties": {
          "fromOfferingId": {
            "type": "string"
          },
          "sendInvite": {
            "type": "boolean"
          },
          "toOfferingId": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "UnitReactionsAnalyticsResponse": {
        "properties": {
          "feedback": {
            "$ref": "#/components/schemas/UnitReactionsFeedback"
          },
          "pageId": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "UnitReactionsFeedback": {
        "properties": {
          "thumbs-down": {
            "type": "number"
          },
          "thumbs-up": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "User": {
        "additionalProperties": false,
        "properties": {
          "email": {
            "format": "email",
            "minLength": 1,
            "type": "string"
          },
          "firstName": {
            "minLength": 1,
            "type": "string"
          },
          "lastName": {
            "minLength": 1,
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/UserMetadata"
          },
          "personId": {
            "minLength": 1,
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/UserProfileRequest"
          },
          "sendInvite": {
            "default": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "UserBadge": {
        "properties": {
          "awardedAt": {
            "format": "date-time",
            "type": "string"
          },
          "badgeExpiry": {
            "properties": {
              "expirationDate": {
                "format": "date-time",
                "type": "string"
              },
              "expires": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "badgeUrl": {
            "type": "string"
          },
          "criterias": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Criteria"
              }
            ]
          },
          "description": {
            "type": "string"
          },
          "offeringId": {
            "type": "string"
          },
          "openBadge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OpenBadgeClass"
              }
            ]
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserMetadata": {
        "additionalProperties": false,
        "properties": {
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "UserPermission": {
        "properties": {
          "email": {
            "type": "string"
          },
          "isBuilder": {
            "type": "boolean"
          },
          "isReviewer": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          }
        },
        "title": "User"
      },
      "UserProfile": {
        "properties": {
          "displayName": {
            "type": "string"
          },
          "mobile": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserProfileRequest": {
        "properties": {
          "displayName": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserResponse": {
        "properties": {
          "avatarUrl": {
            "type": "string"
          },
          "email": {
            "format": "email",
            "minLength": 1,
            "type": "string"
          },
          "firstAccessAt": {
            "format": "date-time",
            "type": "string"
          },
          "firstName": {
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "invite": {
            "$ref": "#/components/schemas/Invite"
          },
          "lastAccessAt": {
            "format": "date-time",
            "type": "string"
          },
          "lastName": {
            "minLength": 1,
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/UserMetadata"
          },
          "personId": {
            "minLength": 1,
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/UserProfile"
          }
        },
        "type": "object"
      },
      "httpPost": {
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/DocumentResponse"
            },
            "type": "array"
          },
          "content": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "isFacilitatorPost": {
            "type": "boolean"
          },
          "moderation": {
            "$ref": "#/components/schemas/Moderation"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "Authorization": {
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      }
    }
  }
}