openapi: 3.0.3
info:
  title: OpenBook REST API
  version: 0.0.1-pre1
  description: Interactive Online Textbooks
  license:
    name: GNU Affero General Public License, Version 3 (or later)
    url: https://www.gnu.org/licenses/agpl-3.0.html.en
paths:
  /api/auth/access_requests/:
    get:
      operationId: auth_access_requests_list
      description: Access requests to get a scoped role assigned
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: decision
        schema:
          type: string
          enum:
          - accepted
          - denied
          - pending
        description: |-
          * `pending` - Decision Pending
          * `accepted` - Accepted
          * `denied` - Denied
      - in: query
        name: decision_date
        schema:
          type: string
          format: date-time
      - in: query
        name: decision_date__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: decision_date__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: role
        schema:
          type: string
      - in: query
        name: scope_type
        schema:
          type: integer
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: user
        schema:
          type: string
      tags:
      - Access Requests
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAccessRequestList'
          description: ''
      x-app-name: User Management
      x-model-name: Access Requests
      summary: List
    post:
      operationId: auth_access_requests_create
      description: Access requests to get a scoped role assigned
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Access Requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AccessRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AccessRequest'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessRequest'
          description: ''
      x-app-name: User Management
      x-model-name: Access Requests
      summary: Create
  /api/auth/access_requests/{id}/:
    get:
      operationId: auth_access_requests_retrieve
      description: Access requests to get a scoped role assigned
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Access Request.
        required: true
      tags:
      - Access Requests
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessRequest'
          description: ''
      x-app-name: User Management
      x-model-name: Access Requests
      summary: Retrieve
    put:
      operationId: auth_access_requests_update
      description: Access requests to get a scoped role assigned
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Access Request.
        required: true
      tags:
      - Access Requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AccessRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AccessRequest'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessRequest'
          description: ''
      x-app-name: User Management
      x-model-name: Access Requests
      summary: Update
    patch:
      operationId: auth_access_requests_partial_update
      description: Access requests to get a scoped role assigned
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Access Request.
        required: true
      tags:
      - Access Requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAccessRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedAccessRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedAccessRequest'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessRequest'
          description: ''
      x-app-name: User Management
      x-model-name: Access Requests
      summary: Partial Update
    delete:
      operationId: auth_access_requests_destroy
      description: Access requests to get a scoped role assigned
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Access Request.
        required: true
      tags:
      - Access Requests
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: User Management
      x-model-name: Access Requests
      summary: Delete
  /api/auth/access_requests/{id}/accept/:
    put:
      operationId: auth_access_requests_accept
      description: Accept the request.
      summary: Accept
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Access Request.
        required: true
      tags:
      - Access Requests
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessRequest'
          description: ''
      x-app-name: User Management
      x-model-name: Access Requests
  /api/auth/access_requests/{id}/deny/:
    put:
      operationId: auth_access_requests_deny
      description: Deny the request.
      summary: Deny
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Access Request.
        required: true
      tags:
      - Access Requests
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessRequest'
          description: ''
      x-app-name: User Management
      x-model-name: Access Requests
  /api/auth/allowed_role_permissions/:
    get:
      operationId: auth_allowed_role_permissions_list
      description: Allowed permissions for the roles of a given scope type
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: permission
        schema:
          type: integer
      - in: query
        name: scope_type
        schema:
          type: integer
      tags:
      - Allowed Role Permissions
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAllowedRolePermissionList'
          description: ''
      x-app-name: User Management
      x-model-name: Allowed Role Permissions
      summary: List
  /api/auth/allowed_role_permissions/{id}/:
    get:
      operationId: auth_allowed_role_permissions_retrieve
      description: Allowed permissions for the roles of a given scope type
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Allowed Role Permission.
        required: true
      tags:
      - Allowed Role Permissions
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllowedRolePermission'
          description: ''
      x-app-name: User Management
      x-model-name: Allowed Role Permissions
      summary: Retrieve
  /api/auth/auth_tokens/:
    get:
      operationId: auth_auth_tokens_list
      description: |-
        Provide authentication tokens for remote clients.

        Authentication tokens provide an authentication mechanism for remote
        clients without giving them a username and password. This allows human
        users to grant access (in their name) to other apps, though those apps
        then impersonate these users. More importantly, this allows creating
        special technical app users for which the access token is the only
        allowed authentication mechanism.
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: end_date
        schema:
          type: string
          format: date-time
      - in: query
        name: end_date__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: end_date__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: start_date
        schema:
          type: string
          format: date-time
      - in: query
        name: start_date__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: start_date__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: user
        schema:
          type: string
      tags:
      - Authentication Tokens
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAuthTokenList'
          description: ''
      x-app-name: User Management
      x-model-name: Authentication Tokens
      summary: List
    post:
      operationId: auth_auth_tokens_create
      description: |-
        Provide authentication tokens for remote clients.

        Authentication tokens provide an authentication mechanism for remote
        clients without giving them a username and password. This allows human
        users to grant access (in their name) to other apps, though those apps
        then impersonate these users. More importantly, this allows creating
        special technical app users for which the access token is the only
        allowed authentication mechanism.
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Authentication Tokens
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthToken'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AuthToken'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AuthToken'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthToken'
          description: ''
      x-app-name: User Management
      x-model-name: Authentication Tokens
      summary: Create
  /api/auth/auth_tokens/{id}/:
    get:
      operationId: auth_auth_tokens_retrieve
      description: |-
        Provide authentication tokens for remote clients.

        Authentication tokens provide an authentication mechanism for remote
        clients without giving them a username and password. This allows human
        users to grant access (in their name) to other apps, though those apps
        then impersonate these users. More importantly, this allows creating
        special technical app users for which the access token is the only
        allowed authentication mechanism.
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Authentication Token.
        required: true
      tags:
      - Authentication Tokens
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthToken'
          description: ''
      x-app-name: User Management
      x-model-name: Authentication Tokens
      summary: Retrieve
    put:
      operationId: auth_auth_tokens_update
      description: |-
        Provide authentication tokens for remote clients.

        Authentication tokens provide an authentication mechanism for remote
        clients without giving them a username and password. This allows human
        users to grant access (in their name) to other apps, though those apps
        then impersonate these users. More importantly, this allows creating
        special technical app users for which the access token is the only
        allowed authentication mechanism.
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Authentication Token.
        required: true
      tags:
      - Authentication Tokens
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthTokenUpdate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AuthTokenUpdate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AuthTokenUpdate'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthTokenUpdate'
          description: ''
      x-app-name: User Management
      x-model-name: Authentication Tokens
      summary: Update
    patch:
      operationId: auth_auth_tokens_partial_update
      description: |-
        Provide authentication tokens for remote clients.

        Authentication tokens provide an authentication mechanism for remote
        clients without giving them a username and password. This allows human
        users to grant access (in their name) to other apps, though those apps
        then impersonate these users. More importantly, this allows creating
        special technical app users for which the access token is the only
        allowed authentication mechanism.
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Authentication Token.
        required: true
      tags:
      - Authentication Tokens
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAuthTokenUpdate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedAuthTokenUpdate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedAuthTokenUpdate'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthTokenUpdate'
          description: ''
      x-app-name: User Management
      x-model-name: Authentication Tokens
      summary: Partial Update
    delete:
      operationId: auth_auth_tokens_destroy
      description: |-
        Provide authentication tokens for remote clients.

        Authentication tokens provide an authentication mechanism for remote
        clients without giving them a username and password. This allows human
        users to grant access (in their name) to other apps, though those apps
        then impersonate these users. More importantly, this allows creating
        special technical app users for which the access token is the only
        allowed authentication mechanism.
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Authentication Token.
        required: true
      tags:
      - Authentication Tokens
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: User Management
      x-model-name: Authentication Tokens
      summary: Delete
  /api/auth/current_user/:
    get:
      operationId: auth_current_user
      description: Returns the currently authenticated user or a fallback response.
      summary: Retrieve
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      tags:
      - Current User
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCurrentUserList'
          description: ''
      x-app-name: User Management
      x-model-name: Current User
    post:
      operationId: auth_current_user_create
      description: Current User
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Current User
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CurrentUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CurrentUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CurrentUser'
        required: true
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentUser'
          description: ''
      x-app-name: User Management
      x-model-name: Current User
      summary: Create
  /api/auth/current_user/{id}/:
    put:
      operationId: auth_current_user_update
      description: Current User
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - Current User
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CurrentUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CurrentUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CurrentUser'
        required: true
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentUser'
          description: ''
      x-app-name: User Management
      x-model-name: Current User
      summary: Update
    patch:
      operationId: auth_current_user_partial_update
      description: Current User
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - Current User
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCurrentUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCurrentUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCurrentUser'
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentUser'
          description: ''
      x-app-name: User Management
      x-model-name: Current User
      summary: Partial Update
    delete:
      operationId: auth_current_user_destroy
      description: Current User
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - Current User
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '204':
          description: No response body
      x-app-name: User Management
      x-model-name: Current User
      summary: Delete
  /api/auth/enrollment_methods/:
    get:
      operationId: auth_enrollment_methods_list
      description: Enrollment methods for self-registration
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: role
        schema:
          type: string
      - in: query
        name: scope_type
        schema:
          type: integer
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - Enrollment Methods
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEnrollmentMethodList'
          description: ''
      x-app-name: User Management
      x-model-name: Enrollment Methods
      summary: List
    post:
      operationId: auth_enrollment_methods_create
      description: Enrollment methods for self-registration
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Enrollment Methods
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrollmentMethod'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EnrollmentMethod'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EnrollmentMethod'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollmentMethod'
          description: ''
      x-app-name: User Management
      x-model-name: Enrollment Methods
      summary: Create
  /api/auth/enrollment_methods/{id}/:
    get:
      operationId: auth_enrollment_methods_retrieve
      description: Enrollment methods for self-registration
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Enrollment Method.
        required: true
      tags:
      - Enrollment Methods
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollmentMethod'
          description: ''
      x-app-name: User Management
      x-model-name: Enrollment Methods
      summary: Retrieve
    put:
      operationId: auth_enrollment_methods_update
      description: Enrollment methods for self-registration
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Enrollment Method.
        required: true
      tags:
      - Enrollment Methods
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrollmentMethod'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EnrollmentMethod'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EnrollmentMethod'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollmentMethod'
          description: ''
      x-app-name: User Management
      x-model-name: Enrollment Methods
      summary: Update
    patch:
      operationId: auth_enrollment_methods_partial_update
      description: Enrollment methods for self-registration
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Enrollment Method.
        required: true
      tags:
      - Enrollment Methods
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedEnrollmentMethod'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedEnrollmentMethod'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedEnrollmentMethod'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollmentMethod'
          description: ''
      x-app-name: User Management
      x-model-name: Enrollment Methods
      summary: Partial Update
    delete:
      operationId: auth_enrollment_methods_destroy
      description: Enrollment methods for self-registration
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Enrollment Method.
        required: true
      tags:
      - Enrollment Methods
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: User Management
      x-model-name: Enrollment Methods
      summary: Delete
  /api/auth/enrollment_methods/{id}/enroll/:
    put:
      operationId: auth_enrollment_method_enroll
      description: Enroll the current user with the selected enrollment method.
      summary: Enroll User
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Enrollment Method.
        required: true
      tags:
      - Enrollment Methods
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrollActionRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EnrollActionRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EnrollActionRequest'
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleAssignment'
          description: ''
      x-app-name: User Management
      x-model-name: Enrollment Methods
  /api/auth/permission_texts/:
    get:
      operationId: auth_permission_texts_list
      description: Permission Labels
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: app
        schema:
          type: string
        description: App
      - in: query
        name: codename
        schema:
          type: string
        description: Code
      - in: query
        name: language
        schema:
          type: string
          title: Language Code
      - in: query
        name: model
        schema:
          type: string
        description: Model
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: perm_string
        schema:
          type: string
        description: Permission String
      tags:
      - Translated Permissions
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPermissionTextList'
          description: ''
      x-app-name: User Management
      x-model-name: Translated Permissions
      summary: List
  /api/auth/permission_texts/{id}/:
    get:
      operationId: auth_permission_texts_retrieve
      description: Permission Labels
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: 'A UUID string identifying this Permission: Translation.'
        required: true
      tags:
      - Translated Permissions
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionText'
          description: ''
      x-app-name: User Management
      x-model-name: Translated Permissions
      summary: Retrieve
  /api/auth/permissions/:
    get:
      operationId: auth_permissions_list
      description: Permissions
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: app
        schema:
          type: string
        description: App
      - in: query
        name: codename
        schema:
          type: string
        description: Code
      - in: query
        name: model
        schema:
          type: string
        description: Model
      - in: query
        name: perm_string
        schema:
          type: string
        description: Permission String
      tags:
      - Translated Permissions
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPermissionList'
          description: ''
      x-app-name: User Management
      x-model-name: Translated Permissions
      summary: List
  /api/auth/permissions/{id}/:
    get:
      operationId: auth_permissions_retrieve
      description: Permissions
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this permission.
        required: true
      tags:
      - Translated Permissions
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
          description: ''
      x-app-name: User Management
      x-model-name: Translated Permissions
      summary: Retrieve
  /api/auth/role_assignments/:
    get:
      operationId: auth_role_assignments_list
      description: Users and their roles in a scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: end_date
        schema:
          type: string
          format: date-time
      - in: query
        name: end_date__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: end_date__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: role
        schema:
          type: string
      - in: query
        name: scope_type
        schema:
          type: integer
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: start_date
        schema:
          type: string
          format: date-time
      - in: query
        name: start_date__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: start_date__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: user
        schema:
          type: string
      tags:
      - Role Assignments
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRoleAssignmentList'
          description: ''
      x-app-name: User Management
      x-model-name: Role Assignments
      summary: List
    post:
      operationId: auth_role_assignments_create
      description: Users and their roles in a scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Role Assignments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleAssignment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RoleAssignment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RoleAssignment'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleAssignment'
          description: ''
      x-app-name: User Management
      x-model-name: Role Assignments
      summary: Create
  /api/auth/role_assignments/{id}/:
    get:
      operationId: auth_role_assignments_retrieve
      description: Users and their roles in a scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Role Assignment.
        required: true
      tags:
      - Role Assignments
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleAssignment'
          description: ''
      x-app-name: User Management
      x-model-name: Role Assignments
      summary: Retrieve
    put:
      operationId: auth_role_assignments_update
      description: Users and their roles in a scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Role Assignment.
        required: true
      tags:
      - Role Assignments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleAssignment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RoleAssignment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/RoleAssignment'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleAssignment'
          description: ''
      x-app-name: User Management
      x-model-name: Role Assignments
      summary: Update
    patch:
      operationId: auth_role_assignments_partial_update
      description: Users and their roles in a scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Role Assignment.
        required: true
      tags:
      - Role Assignments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRoleAssignment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedRoleAssignment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedRoleAssignment'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleAssignment'
          description: ''
      x-app-name: User Management
      x-model-name: Role Assignments
      summary: Partial Update
    delete:
      operationId: auth_role_assignments_destroy
      description: Users and their roles in a scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Role Assignment.
        required: true
      tags:
      - Role Assignments
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: User Management
      x-model-name: Role Assignments
      summary: Delete
  /api/auth/roles/:
    get:
      operationId: auth_roles_list
      description: User Roles Within a Scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: priority
        schema:
          type: integer
      - in: query
        name: priority__gte
        schema:
          type: integer
      - in: query
        name: priority__lte
        schema:
          type: integer
      - in: query
        name: scope_type
        schema:
          type: integer
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: slug
        schema:
          type: string
      tags:
      - Roles
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRoleList'
          description: ''
      x-app-name: User Management
      x-model-name: Roles
      summary: List
    post:
      operationId: auth_roles_create
      description: User Roles Within a Scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Roles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Role'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Role'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Role'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          description: ''
      x-app-name: User Management
      x-model-name: Roles
      summary: Create
  /api/auth/roles/{id}/:
    get:
      operationId: auth_roles_retrieve
      description: User Roles Within a Scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Role.
        required: true
      tags:
      - Roles
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          description: ''
      x-app-name: User Management
      x-model-name: Roles
      summary: Retrieve
    put:
      operationId: auth_roles_update
      description: User Roles Within a Scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Role.
        required: true
      tags:
      - Roles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Role'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Role'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Role'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          description: ''
      x-app-name: User Management
      x-model-name: Roles
      summary: Update
    patch:
      operationId: auth_roles_partial_update
      description: User Roles Within a Scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Role.
        required: true
      tags:
      - Roles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRole'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedRole'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedRole'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          description: ''
      x-app-name: User Management
      x-model-name: Roles
      summary: Partial Update
    delete:
      operationId: auth_roles_destroy
      description: User Roles Within a Scope
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Role.
        required: true
      tags:
      - Roles
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: User Management
      x-model-name: Roles
      summary: Delete
  /api/auth/scope_types/:
    get:
      operationId: auth_scope_types_list
      description: Return a flat list of scope types.
      tags:
      - Scope Types
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ScopeTypeList'
          description: ''
      x-app-name: User Management
      x-model-name: Scope Types
      summary: List
  /api/auth/scope_types/{id}/:
    get:
      operationId: auth_scope_types_retrieve
      description: Return a scope type with scopes and allowed permissions.
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: Unique identifier for the scope (id or pk)
        required: true
      tags:
      - Scope Types
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScopeTypeRetrieve'
          description: ''
      x-app-name: User Management
      x-model-name: Scope Types
      summary: Retrieve
  /api/auth/users/:
    get:
      operationId: auth_users_list
      description: Users
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: description__icontains
        schema:
          type: string
      - in: query
        name: email__icontains
        schema:
          type: string
      - in: query
        name: first_name__icontains
        schema:
          type: string
      - in: query
        name: is_staff
        schema:
          type: boolean
      - in: query
        name: last_name__icontains
        schema:
          type: string
      - in: query
        name: username__icontains
        schema:
          type: string
      tags:
      - User Profiles
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserList'
          description: ''
      x-app-name: User Management
      x-model-name: User Profiles
      summary: List
  /api/auth/users/{username}/:
    get:
      operationId: auth_users_retrieve
      description: Users
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: username
        schema:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
        required: true
      tags:
      - User Profiles
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
      x-app-name: User Management
      x-model-name: User Profiles
      summary: Retrieve
    put:
      operationId: auth_users_update
      description: Users
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: username
        schema:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
        required: true
      tags:
      - User Profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
      x-app-name: User Management
      x-model-name: User Profiles
      summary: Update
    patch:
      operationId: auth_users_partial_update
      description: Users
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: username
        schema:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
        required: true
      tags:
      - User Profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUser'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
      x-app-name: User Management
      x-model-name: User Profiles
      summary: Partial Update
    delete:
      operationId: auth_users_destroy
      description: Users
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: username
        schema:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
        required: true
      tags:
      - User Profiles
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: User Management
      x-model-name: User Profiles
      summary: Delete
  /api/content/course_material_page_ranges/:
    get:
      operationId: content_course_material_page_ranges_list
      description: Course Material Page Ranges
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: end_page
        schema:
          type: string
          format: uuid
      - in: query
        name: material
        schema:
          type: string
          format: uuid
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: position
        schema:
          type: integer
      - in: query
        name: position__gte
        schema:
          type: integer
      - in: query
        name: position__lte
        schema:
          type: integer
      - in: query
        name: start_page
        schema:
          type: string
          format: uuid
      tags:
      - Course Material Page Ranges
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCourseMaterialPageRangeList'
          description: ''
      x-app-name: Content
      x-model-name: Course Material Page Ranges
      summary: List
    post:
      operationId: content_course_material_page_ranges_create
      description: Course Material Page Ranges
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Course Material Page Ranges
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CourseMaterialPageRange'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CourseMaterialPageRange'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CourseMaterialPageRange'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseMaterialPageRange'
          description: ''
      x-app-name: Content
      x-model-name: Course Material Page Ranges
      summary: Create
  /api/content/course_material_page_ranges/{id}/:
    get:
      operationId: content_course_material_page_ranges_retrieve
      description: Course Material Page Ranges
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course Material Page Range.
        required: true
      tags:
      - Course Material Page Ranges
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseMaterialPageRange'
          description: ''
      x-app-name: Content
      x-model-name: Course Material Page Ranges
      summary: Retrieve
    put:
      operationId: content_course_material_page_ranges_update
      description: Course Material Page Ranges
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course Material Page Range.
        required: true
      tags:
      - Course Material Page Ranges
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CourseMaterialPageRange'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CourseMaterialPageRange'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CourseMaterialPageRange'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseMaterialPageRange'
          description: ''
      x-app-name: Content
      x-model-name: Course Material Page Ranges
      summary: Update
    patch:
      operationId: content_course_material_page_ranges_partial_update
      description: Course Material Page Ranges
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course Material Page Range.
        required: true
      tags:
      - Course Material Page Ranges
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCourseMaterialPageRange'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCourseMaterialPageRange'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCourseMaterialPageRange'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseMaterialPageRange'
          description: ''
      x-app-name: Content
      x-model-name: Course Material Page Ranges
      summary: Partial Update
    delete:
      operationId: content_course_material_page_ranges_destroy
      description: Course Material Page Ranges
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course Material Page Range.
        required: true
      tags:
      - Course Material Page Ranges
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: Content
      x-model-name: Course Material Page Ranges
      summary: Delete
  /api/content/course_materials/:
    get:
      operationId: content_course_materials_list
      description: Course Materials
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: course
        schema:
          type: string
          format: uuid
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: position
        schema:
          type: integer
      - in: query
        name: position__gte
        schema:
          type: integer
      - in: query
        name: position__lte
        schema:
          type: integer
      - in: query
        name: textbook
        schema:
          type: string
          format: uuid
      tags:
      - Course Materials
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCourseMaterialList'
          description: ''
      x-app-name: Content
      x-model-name: Course Materials
      summary: List
    post:
      operationId: content_course_materials_create
      description: Course Materials
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Course Materials
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CourseMaterial'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CourseMaterial'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CourseMaterial'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseMaterial'
          description: ''
      x-app-name: Content
      x-model-name: Course Materials
      summary: Create
  /api/content/course_materials/{id}/:
    get:
      operationId: content_course_materials_retrieve
      description: Course Materials
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course Material.
        required: true
      tags:
      - Course Materials
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseMaterial'
          description: ''
      x-app-name: Content
      x-model-name: Course Materials
      summary: Retrieve
    put:
      operationId: content_course_materials_update
      description: Course Materials
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course Material.
        required: true
      tags:
      - Course Materials
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CourseMaterial'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CourseMaterial'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CourseMaterial'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseMaterial'
          description: ''
      x-app-name: Content
      x-model-name: Course Materials
      summary: Update
    patch:
      operationId: content_course_materials_partial_update
      description: Course Materials
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course Material.
        required: true
      tags:
      - Course Materials
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCourseMaterial'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCourseMaterial'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCourseMaterial'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseMaterial'
          description: ''
      x-app-name: Content
      x-model-name: Course Materials
      summary: Partial Update
    delete:
      operationId: content_course_materials_destroy
      description: Course Materials
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course Material.
        required: true
      tags:
      - Course Materials
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: Content
      x-model-name: Course Materials
      summary: Delete
  /api/content/courses/:
    get:
      operationId: content_courses_list
      description: Courses
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: group
        schema:
          type: string
          format: uuid
      - in: query
        name: is_template
        schema:
          type: boolean
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: owner
        schema:
          type: integer
      - in: query
        name: slug
        schema:
          type: string
      tags:
      - Courses
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCourseList'
          description: ''
      x-app-name: Courses
      x-model-name: Courses
      summary: List
    post:
      operationId: content_courses_create
      description: Courses
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Courses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Course'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Course'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Course'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Course'
          description: ''
      x-app-name: Courses
      x-model-name: Courses
      summary: Create
  /api/content/courses/{id}/:
    get:
      operationId: content_courses_retrieve
      description: Courses
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course.
        required: true
      tags:
      - Courses
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Course'
          description: ''
      x-app-name: Courses
      x-model-name: Courses
      summary: Retrieve
    put:
      operationId: content_courses_update
      description: Courses
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course.
        required: true
      tags:
      - Courses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Course'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Course'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Course'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Course'
          description: ''
      x-app-name: Courses
      x-model-name: Courses
      summary: Update
    patch:
      operationId: content_courses_partial_update
      description: Courses
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course.
        required: true
      tags:
      - Courses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCourse'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCourse'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCourse'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Course'
          description: ''
      x-app-name: Courses
      x-model-name: Courses
      summary: Partial Update
    delete:
      operationId: content_courses_destroy
      description: Courses
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Course.
        required: true
      tags:
      - Courses
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: Courses
      x-model-name: Courses
      summary: Delete
  /api/content/library_groups/:
    get:
      operationId: content_library_groups_list
      description: Library Groups
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: owner
        schema:
          type: integer
      - in: query
        name: parent
        schema:
          type: string
          format: uuid
      - in: query
        name: slug
        schema:
          type: string
      tags:
      - Library Groups
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLibraryGroupList'
          description: ''
      x-app-name: Content
      x-model-name: Library Groups
      summary: List
    post:
      operationId: content_library_groups_create
      description: Library Groups
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Library Groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryGroup'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryGroup'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryGroup'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryGroup'
          description: ''
      x-app-name: Content
      x-model-name: Library Groups
      summary: Create
  /api/content/library_groups/{id}/:
    get:
      operationId: content_library_groups_retrieve
      description: Library Groups
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Library Group.
        required: true
      tags:
      - Library Groups
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryGroup'
          description: ''
      x-app-name: Content
      x-model-name: Library Groups
      summary: Retrieve
    put:
      operationId: content_library_groups_update
      description: Library Groups
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Library Group.
        required: true
      tags:
      - Library Groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryGroup'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryGroup'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryGroup'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryGroup'
          description: ''
      x-app-name: Content
      x-model-name: Library Groups
      summary: Update
    patch:
      operationId: content_library_groups_partial_update
      description: Library Groups
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Library Group.
        required: true
      tags:
      - Library Groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLibraryGroup'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedLibraryGroup'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedLibraryGroup'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryGroup'
          description: ''
      x-app-name: Content
      x-model-name: Library Groups
      summary: Partial Update
    delete:
      operationId: content_library_groups_destroy
      description: Library Groups
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Library Group.
        required: true
      tags:
      - Library Groups
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: Content
      x-model-name: Library Groups
      summary: Delete
  /api/content/library_links/:
    get:
      operationId: content_library_links_list
      description: Library Links
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: course
        schema:
          type: string
          format: uuid
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: group
        schema:
          type: string
          format: uuid
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: textbook
        schema:
          type: string
          format: uuid
      tags:
      - Library Links
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLibraryLinkList'
          description: ''
      x-app-name: Content
      x-model-name: Library Links
      summary: List
    post:
      operationId: content_library_links_create
      description: Library Links
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Library Links
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryLink'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryLink'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryLink'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryLink'
          description: ''
      x-app-name: Content
      x-model-name: Library Links
      summary: Create
  /api/content/library_links/{id}/:
    get:
      operationId: content_library_links_retrieve
      description: Library Links
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Library Link.
        required: true
      tags:
      - Library Links
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryLink'
          description: ''
      x-app-name: Content
      x-model-name: Library Links
      summary: Retrieve
    put:
      operationId: content_library_links_update
      description: Library Links
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Library Link.
        required: true
      tags:
      - Library Links
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LibraryLink'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LibraryLink'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/LibraryLink'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryLink'
          description: ''
      x-app-name: Content
      x-model-name: Library Links
      summary: Update
    patch:
      operationId: content_library_links_partial_update
      description: Library Links
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Library Link.
        required: true
      tags:
      - Library Links
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLibraryLink'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedLibraryLink'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedLibraryLink'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LibraryLink'
          description: ''
      x-app-name: Content
      x-model-name: Library Links
      summary: Partial Update
    delete:
      operationId: content_library_links_destroy
      description: Library Links
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Library Link.
        required: true
      tags:
      - Library Links
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: Content
      x-model-name: Library Links
      summary: Delete
  /api/content/textbook_pages/:
    get:
      operationId: content_textbook_pages_list
      description: Textbook Pages
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: parent
        schema:
          type: string
          format: uuid
      - in: query
        name: position
        schema:
          type: integer
      - in: query
        name: position__gte
        schema:
          type: integer
      - in: query
        name: position__lte
        schema:
          type: integer
      - in: query
        name: textbook
        schema:
          type: string
          format: uuid
      tags:
      - Textbook Pages
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTextbookPageList'
          description: ''
      x-app-name: Content
      x-model-name: Textbook Pages
      summary: List
    post:
      operationId: content_textbook_pages_create
      description: Textbook Pages
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Textbook Pages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TextbookPage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TextbookPage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TextbookPage'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TextbookPage'
          description: ''
      x-app-name: Content
      x-model-name: Textbook Pages
      summary: Create
  /api/content/textbook_pages/{id}/:
    get:
      operationId: content_textbook_pages_retrieve
      description: Textbook Pages
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Textbook Page.
        required: true
      tags:
      - Textbook Pages
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TextbookPage'
          description: ''
      x-app-name: Content
      x-model-name: Textbook Pages
      summary: Retrieve
    put:
      operationId: content_textbook_pages_update
      description: Textbook Pages
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Textbook Page.
        required: true
      tags:
      - Textbook Pages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TextbookPage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TextbookPage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TextbookPage'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TextbookPage'
          description: ''
      x-app-name: Content
      x-model-name: Textbook Pages
      summary: Update
    patch:
      operationId: content_textbook_pages_partial_update
      description: Textbook Pages
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Textbook Page.
        required: true
      tags:
      - Textbook Pages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedTextbookPage'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedTextbookPage'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedTextbookPage'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TextbookPage'
          description: ''
      x-app-name: Content
      x-model-name: Textbook Pages
      summary: Partial Update
    delete:
      operationId: content_textbook_pages_destroy
      description: Textbook Pages
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Textbook Page.
        required: true
      tags:
      - Textbook Pages
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: Content
      x-model-name: Textbook Pages
      summary: Delete
  /api/content/textbooks/:
    get:
      operationId: content_textbooks_list
      description: Textbooks
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: string
      - in: query
        name: group
        schema:
          type: string
          format: uuid
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: slug
        schema:
          type: string
      tags:
      - Textbooks
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTextbookList'
          description: ''
      x-app-name: Content
      x-model-name: Textbooks
      summary: List
    post:
      operationId: content_textbooks_create
      description: Textbooks
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Textbooks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Textbook'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Textbook'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Textbook'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Textbook'
          description: ''
      x-app-name: Content
      x-model-name: Textbooks
      summary: Create
  /api/content/textbooks/{id}/:
    get:
      operationId: content_textbooks_retrieve
      description: Textbooks
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Textbook.
        required: true
      tags:
      - Textbooks
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Textbook'
          description: ''
      x-app-name: Content
      x-model-name: Textbooks
      summary: Retrieve
    put:
      operationId: content_textbooks_update
      description: Textbooks
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Textbook.
        required: true
      tags:
      - Textbooks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Textbook'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Textbook'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Textbook'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Textbook'
          description: ''
      x-app-name: Content
      x-model-name: Textbooks
      summary: Update
    patch:
      operationId: content_textbooks_partial_update
      description: Textbooks
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Textbook.
        required: true
      tags:
      - Textbooks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedTextbook'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedTextbook'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedTextbook'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Textbook'
          description: ''
      x-app-name: Content
      x-model-name: Textbooks
      summary: Partial Update
    delete:
      operationId: content_textbooks_destroy
      description: Textbooks
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Textbook.
        required: true
      tags:
      - Textbooks
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: Content
      x-model-name: Textbooks
      summary: Delete
  /api/core/html_library/component_definitions/:
    get:
      operationId: core_html_library_component_definitions_list
      description: HTML Libraries
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: html_component__library__author__icontains
        schema:
          type: string
      - in: query
        name: html_component__library__name__icontains
        schema:
          type: string
      - in: query
        name: html_component__library__organization__icontains
        schema:
          type: string
      - in: query
        name: html_component__tag_name__icontains
        schema:
          type: string
      - in: query
        name: library_version__version
        schema:
          type: string
      tags:
      - HTML Component Definitions
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedHTMLComponentDefinitionList'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: HTML Component Definitions
      summary: List
  /api/core/html_library/component_definitions/{id}/:
    get:
      operationId: core_html_library_component_definitions_retrieve
      description: HTML Libraries
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this HTML Component Definition.
        required: true
      tags:
      - HTML Component Definitions
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTMLComponentDefinition'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: HTML Component Definitions
      summary: Retrieve
  /api/core/html_library/components/:
    get:
      operationId: core_html_library_components_list
      description: HTML Libraries
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: library__author__icontains
        schema:
          type: string
      - in: query
        name: library__name__icontains
        schema:
          type: string
      - in: query
        name: library__organization__icontains
        schema:
          type: string
      - in: query
        name: tag_name__icontains
        schema:
          type: string
      tags:
      - HTML Components
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedHTMLComponentList'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: HTML Components
      summary: List
  /api/core/html_library/components/{id}/:
    get:
      operationId: core_html_library_components_retrieve
      description: HTML Libraries
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this HTML Component.
        required: true
      tags:
      - HTML Components
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTMLComponent'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: HTML Components
      summary: Retrieve
  /api/core/html_library/libraries/:
    get:
      operationId: core_html_library_libraries_list
      description: HTML Libraries
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: author__icontains
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: integer
      - in: query
        name: license__icontains
        schema:
          type: string
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: integer
      - in: query
        name: name__icontains
        schema:
          type: string
      - in: query
        name: organization__icontains
        schema:
          type: string
      - in: query
        name: published
        schema:
          type: boolean
      tags:
      - HTML Libraries
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedHTMLLibraryList'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: HTML Libraries
      summary: List
  /api/core/html_library/libraries/{id}/:
    get:
      operationId: core_html_library_libraries_retrieve
      description: HTML Libraries
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this HTML Library.
        required: true
      tags:
      - HTML Libraries
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTMLLibrary'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: HTML Libraries
      summary: Retrieve
  /api/core/html_library/texts/:
    get:
      operationId: core_html_library_texts_list
      description: HTML Libraries Texts
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: language
        schema:
          type: string
          title: Language Code
      - in: query
        name: parent__author__icontains
        schema:
          type: string
      - in: query
        name: parent__id
        schema:
          type: string
          format: uuid
      - in: query
        name: parent__name__icontains
        schema:
          type: string
      - in: query
        name: parent__organization__icontains
        schema:
          type: string
      - in: query
        name: short_description__icontains
        schema:
          type: string
      tags:
      - HTML Library Texts
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedHTMLLibraryTextList'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: HTML Library Texts
      summary: List
  /api/core/html_library/texts/{id}/:
    get:
      operationId: core_html_library_texts_retrieve
      description: HTML Libraries Texts
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this HTML Library Text.
        required: true
      tags:
      - HTML Library Texts
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTMLLibraryText'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: HTML Library Texts
      summary: Retrieve
  /api/core/html_library/versions/:
    get:
      operationId: core_html_library_versions_list
      description: HTML Library Versions
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: created_at
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: created_by
        schema:
          type: integer
      - in: query
        name: modified_at
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__gte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_at__lte
        schema:
          type: string
          format: date-time
      - in: query
        name: modified_by
        schema:
          type: integer
      - in: query
        name: parent__author__icontains
        schema:
          type: string
      - in: query
        name: parent__id
        schema:
          type: string
          format: uuid
      - in: query
        name: parent__name__icontains
        schema:
          type: string
      - in: query
        name: parent__organization__icontains
        schema:
          type: string
      - in: query
        name: version__icontains
        schema:
          type: string
      tags:
      - HTML Library Versions
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedHTMLLibraryVersionList'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: HTML Library Versions
      summary: List
  /api/core/html_library/versions/{id}/:
    get:
      operationId: core_html_library_versions_retrieve
      description: HTML Library Versions
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this HTML Library Version.
        required: true
      tags:
      - HTML Library Versions
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTMLLibraryVersion'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: HTML Library Versions
      summary: Retrieve
  /api/core/languages/:
    get:
      operationId: core_languages_list
      description: |-
        Allow unrestricted access to the ``list`` and ``retrieve`` actions.

        This small view set mixin class allows unrestricted access to the ``list`` and ``retrieve``
        actions while deferring permission checks for all other actions to the permission classes
        of the view set (usually defined in ``settings.py``).
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      tags:
      - Available Languages
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedLanguageList'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: Available Languages
      summary: List
  /api/core/languages/{language}/:
    get:
      operationId: core_languages_retrieve
      description: |-
        Allow unrestricted access to the ``list`` and ``retrieve`` actions.

        This small view set mixin class allows unrestricted access to the ``list`` and ``retrieve``
        actions while deferring permission checks for all other actions to the permission classes
        of the view set (usually defined in ``settings.py``).
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: language
        schema:
          type: string
          title: Language Code
        description: A unique value identifying this language.
        required: true
      tags:
      - Available Languages
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Language'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: Available Languages
      summary: Retrieve
  /api/core/media_files/:
    get:
      operationId: core_media_files_list
      description: Attached Media Files
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: content_type
        schema:
          type: integer
      - in: query
        name: file_name
        schema:
          type: string
      - in: query
        name: file_size
        schema:
          type: integer
      - in: query
        name: mime_type
        schema:
          type: string
      - in: query
        name: object_id
        schema:
          type: string
          format: uuid
      tags:
      - Media Files
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMediaFileList'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: Media Files
      summary: List
    post:
      operationId: core_media_files_create
      description: Attached Media Files
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Media Files
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MediaFile'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MediaFile'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MediaFile'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MediaFile'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: Media Files
      summary: Create
  /api/core/media_files/{id}/:
    get:
      operationId: core_media_files_retrieve
      description: Attached Media Files
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Media File.
        required: true
      tags:
      - Media Files
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MediaFile'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: Media Files
      summary: Retrieve
    put:
      operationId: core_media_files_update
      description: Attached Media Files
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Media File.
        required: true
      tags:
      - Media Files
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MediaFile'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MediaFile'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MediaFile'
        required: true
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MediaFile'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: Media Files
      summary: Update
    patch:
      operationId: core_media_files_partial_update
      description: Attached Media Files
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Media File.
        required: true
      tags:
      - Media Files
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMediaFile'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMediaFile'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMediaFile'
      security:
      - SessionAuthentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MediaFile'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: Media Files
      summary: Partial Update
    delete:
      operationId: core_media_files_destroy
      description: Attached Media Files
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Media File.
        required: true
      tags:
      - Media Files
      security:
      - SessionAuthentication: []
      responses:
        '204':
          description: No response body
      x-app-name: OpenBook Server
      x-model-name: Media Files
      summary: Delete
  /api/core/sites/:
    get:
      operationId: core_sites_list
      description: General Website Settings
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - name: _page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: _page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: _search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - name: _sort
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: domain
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: short_name
        schema:
          type: string
      tags:
      - Websites
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSiteList'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: Websites
      summary: List
  /api/core/sites/{id}/:
    get:
      operationId: core_sites_retrieve
      description: General Website Settings
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Website.
        required: true
      tags:
      - Websites
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: Websites
      summary: Retrieve
  /api/core/sites/health/:
    get:
      operationId: core_sites_health_retrieve
      description: Return a simple health status that the API is up and running.
      summary: Health Status
      parameters:
      - in: query
        name: _expand
        schema:
          type: string
        description: Relationships to be expanded in the response
      - in: query
        name: _fields
        schema:
          type: string
        description: Fields to be included in the response
      - in: query
        name: _omit
        schema:
          type: string
        description: Fields to be removed from the response
      tags:
      - Websites
      security:
      - SessionAuthentication: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/health-response'
          description: ''
      x-app-name: OpenBook Server
      x-model-name: Websites
components:
  schemas:
    AccessRequest:
      type: object
      description: Access Request
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        scope_type:
          type: string
        scope_uuid:
          type: string
          format: uuid
        user:
          type: string
        role:
          type: string
        end_date:
          type: string
          format: date-time
          nullable: true
          title: Enrollment Ends on
        duration_period:
          oneOf:
          - $ref: '#/components/schemas/DurationPeriodEnum'
          - $ref: '#/components/schemas/BlankEnum'
        duration_value:
          type: number
          format: double
        decision:
          $ref: '#/components/schemas/DecisionEnum'
        decision_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - created_at
      - created_by
      - decision_date
      - id
      - modified_at
      - modified_by
      - role
      - scope_type
      - scope_uuid
      - user
    AllowedPermission:
      type: object
      properties:
        id:
          type: integer
        perm:
          type: string
        app:
          type: string
        model:
          type: string
        name:
          type: string
      required:
      - app
      - id
      - model
      - name
      - perm
    AllowedRolePermission:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        scope_type:
          type: string
        permission:
          type: string
      required:
      - id
      - permission
      - scope_type
    AssignmentMethodEnum:
      enum:
      - manual
      - self-enrollment
      - access-request
      type: string
      description: |-
        * `manual` - Manual Assignment
        * `self-enrollment` - Self-Enrollment
        * `access-request` - Access Request
    AuthToken:
      type: object
      description: Authentication Token
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
        token:
          type: string
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        is_active:
          type: boolean
          title: Active
        start_date:
          type: string
          format: date-time
          nullable: true
          title: Start date and time
        end_date:
          type: string
          format: date-time
          nullable: true
          title: End date and time
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - created_at
      - created_by
      - id
      - modified_at
      - modified_by
      - name
      - token
      - user
    AuthTokenUpdate:
      type: object
      description: Authentication Token
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        is_active:
          type: boolean
          title: Active
        start_date:
          type: string
          format: date-time
          nullable: true
          title: Start date and time
        end_date:
          type: string
          format: date-time
          nullable: true
          title: End date and time
      required:
      - id
      - name
      - user
    BlankEnum:
      enum:
      - ''
    Course:
      type: object
      description: |-
        Provide default scope fields for serializers of models with ScopedRolesMixin.

        Use this as a default serializer that adds all scope fields.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        group:
          type: string
          format: uuid
          title: Library Group
        is_template:
          type: boolean
          description: Flag that this course is only used for creating other courses.
        materials:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        owner:
          type: string
          readOnly: true
        public_permissions:
          type: array
          items:
            type: string
        role_assignments:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        enrollment_methods:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        access_requests:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - access_requests
      - created_at
      - created_by
      - enrollment_methods
      - group
      - id
      - materials
      - modified_at
      - modified_by
      - name
      - owner
      - public_permissions
      - role_assignments
      - slug
    CourseMaterial:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        course:
          type: string
          format: uuid
        textbook:
          type: string
          format: uuid
          nullable: true
        position:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          default: 0
          description: Reading order index inside the course syllabus.
        page_ranges:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - course
      - created_at
      - created_by
      - id
      - modified_at
      - modified_by
      - page_ranges
    CourseMaterialPageRange:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        material:
          type: string
          format: uuid
          title: Course Material
        start_page:
          type: string
          format: uuid
        end_page:
          type: string
          format: uuid
        position:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          default: 0
          description: Order of the selected ranges within one syllabus item.
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - created_at
      - created_by
      - end_page
      - id
      - material
      - modified_at
      - modified_by
      - start_page
    CurrentUser:
      type: object
      description: Current User
      properties:
        id:
          type: integer
          readOnly: true
        username:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        full_name:
          type: string
          readOnly: true
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        description:
          type: string
        picture:
          type: string
          format: uri
          nullable: true
          title: Profile Picture
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        last_login:
          type: string
          format: date-time
          nullable: true
        date_joined:
          type: string
          format: date-time
        email:
          type: string
          format: email
          title: E-Mail Address
          maxLength: 254
        is_authenticated:
          type: boolean
          readOnly: true
      required:
      - email
      - full_name
      - id
      - is_authenticated
      - username
    DecisionEnum:
      enum:
      - pending
      - accepted
      - denied
      type: string
      description: |-
        * `pending` - Decision Pending
        * `accepted` - Accepted
        * `denied` - Denied
    DurationPeriodEnum:
      enum:
      - minutes
      - hours
      - days
      - weeks
      - months
      - years
      type: string
      description: |-
        * `minutes` - Minutes
        * `hours` - Hours
        * `days` - Days
        * `weeks` - Weeks
        * `months` - Months
        * `years` - Years
    EnrollActionRequest:
      type: object
      properties:
        passphrase:
          type: string
    EnrollmentMethod:
      type: object
      description: Enrollment Method
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        scope_type:
          type: string
        scope_uuid:
          type: string
          format: uuid
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        role:
          type: string
        end_date:
          type: string
          format: date-time
          nullable: true
          title: Enrollment Ends on
        duration_period:
          oneOf:
          - $ref: '#/components/schemas/DurationPeriodEnum'
          - $ref: '#/components/schemas/BlankEnum'
        duration_value:
          type: number
          format: double
        passphrase:
          type: string
          maxLength: 100
        is_active:
          type: boolean
          title: Active
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - created_at
      - created_by
      - id
      - modified_at
      - modified_by
      - name
      - role
      - scope_type
      - scope_uuid
    HTMLComponent:
      type: object
      description: HTML Component
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        library:
          type: string
          format: uuid
        tag_name:
          type: string
          maxLength: 100
        definitions:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
      required:
      - definitions
      - id
      - library
      - tag_name
    HTMLComponentDefinition:
      type: object
      description: HTML Component Definition
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        html_component:
          type: string
          format: uuid
        library_version:
          type: string
          format: uuid
        definition:
          title: JSON Definition
      required:
      - html_component
      - id
      - library_version
    HTMLLibrary:
      type: object
      description: HTML Library
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        fqn:
          type: string
          readOnly: true
        organization:
          type: string
          maxLength: 100
        name:
          type: string
          maxLength: 100
        author:
          type: string
          maxLength: 100
        license:
          type: string
          maxLength: 50
        website:
          type: string
          format: uri
          maxLength: 200
        coderepo:
          type: string
          format: uri
          title: Code Repository
          maxLength: 200
        bugtracker:
          type: string
          format: uri
          title: Bug Tracker
          maxLength: 200
        readme:
          type: string
          title: Read Me
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        published:
          type: boolean
          description: Allow other installations to download the library from this
            server
        translations:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        versions:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        components:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - components
      - created_at
      - created_by
      - fqn
      - id
      - modified_at
      - modified_by
      - name
      - organization
      - translations
      - versions
    HTMLLibraryText:
      type: object
      description: HTML Library Text
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        parent:
          type: string
          format: uuid
        language:
          type: string
          title: Language Code
        short_description:
          type: string
          maxLength: 255
      required:
      - id
      - language
      - parent
      - short_description
    HTMLLibraryVersion:
      type: object
      description: HTML Library Version
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        parent:
          type: string
          format: uuid
        version:
          type: string
          maxLength: 50
        dependencies:
          nullable: true
        frontend_url:
          type: string
          readOnly: true
        file_data:
          type: string
          format: uri
        file_name:
          type: string
          maxLength: 255
        file_size:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
        mime_type:
          type: string
          maxLength: 64
        components:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - components
      - created_at
      - created_by
      - frontend_url
      - id
      - modified_at
      - modified_by
      - parent
      - version
    Language:
      type: object
      description: Language
      properties:
        language:
          type: string
          title: Language Code
          maxLength: 3
        name:
          type: string
          title: Translated Name
          maxLength: 64
      required:
      - language
      - name
    LibraryGroup:
      type: object
      description: |-
        Provide default scope fields for serializers of models with ScopedRolesMixin.

        Use this as a default serializer that adds all scope fields.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        parent:
          type: string
          format: uuid
          nullable: true
          title: Parent Group
        children:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        textbooks:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        courses:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        links:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        owner:
          type: string
          readOnly: true
        public_permissions:
          type: array
          items:
            type: string
        role_assignments:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        enrollment_methods:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        access_requests:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - access_requests
      - children
      - courses
      - created_at
      - created_by
      - enrollment_methods
      - id
      - links
      - modified_at
      - modified_by
      - name
      - owner
      - public_permissions
      - role_assignments
      - slug
      - textbooks
    LibraryLink:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        group:
          type: string
          format: uuid
          title: Library Group
        course:
          type: string
          format: uuid
          nullable: true
        textbook:
          type: string
          format: uuid
          nullable: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - created_at
      - created_by
      - group
      - id
      - modified_at
      - modified_by
    MediaFile:
      type: object
      description: Media File
      properties:
        content_type:
          type: integer
        object_id:
          type: string
          format: uuid
        file_name:
          type: string
          maxLength: 255
        file_size:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
        mime_type:
          type: string
          maxLength: 64
        file_data:
          type: string
          format: uri
      required:
      - content_type
      - object_id
    PaginatedAccessRequestList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/AccessRequest'
    PaginatedAllowedRolePermissionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/AllowedRolePermission'
    PaginatedAuthTokenList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/AuthToken'
    PaginatedCourseList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Course'
    PaginatedCourseMaterialList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/CourseMaterial'
    PaginatedCourseMaterialPageRangeList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/CourseMaterialPageRange'
    PaginatedCurrentUserList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/CurrentUser'
    PaginatedEnrollmentMethodList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/EnrollmentMethod'
    PaginatedHTMLComponentDefinitionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/HTMLComponentDefinition'
    PaginatedHTMLComponentList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/HTMLComponent'
    PaginatedHTMLLibraryList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/HTMLLibrary'
    PaginatedHTMLLibraryTextList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/HTMLLibraryText'
    PaginatedHTMLLibraryVersionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/HTMLLibraryVersion'
    PaginatedLanguageList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Language'
    PaginatedLibraryGroupList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/LibraryGroup'
    PaginatedLibraryLinkList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/LibraryLink'
    PaginatedMediaFileList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/MediaFile'
    PaginatedPermissionList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Permission'
    PaginatedPermissionTextList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/PermissionText'
    PaginatedRoleAssignmentList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/RoleAssignment'
    PaginatedRoleList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Role'
    PaginatedSiteList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Site'
    PaginatedTextbookList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Textbook'
    PaginatedTextbookPageList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/TextbookPage'
    PaginatedUserList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?_page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/User'
    PatchedAccessRequest:
      type: object
      description: Access Request
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        scope_type:
          type: string
        scope_uuid:
          type: string
          format: uuid
        user:
          type: string
        role:
          type: string
        end_date:
          type: string
          format: date-time
          nullable: true
          title: Enrollment Ends on
        duration_period:
          oneOf:
          - $ref: '#/components/schemas/DurationPeriodEnum'
          - $ref: '#/components/schemas/BlankEnum'
        duration_value:
          type: number
          format: double
        decision:
          $ref: '#/components/schemas/DecisionEnum'
        decision_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedAuthTokenUpdate:
      type: object
      description: Authentication Token
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        is_active:
          type: boolean
          title: Active
        start_date:
          type: string
          format: date-time
          nullable: true
          title: Start date and time
        end_date:
          type: string
          format: date-time
          nullable: true
          title: End date and time
    PatchedCourse:
      type: object
      description: |-
        Provide default scope fields for serializers of models with ScopedRolesMixin.

        Use this as a default serializer that adds all scope fields.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        group:
          type: string
          format: uuid
          title: Library Group
        is_template:
          type: boolean
          description: Flag that this course is only used for creating other courses.
        materials:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        owner:
          type: string
          readOnly: true
        public_permissions:
          type: array
          items:
            type: string
        role_assignments:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        enrollment_methods:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        access_requests:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedCourseMaterial:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        course:
          type: string
          format: uuid
        textbook:
          type: string
          format: uuid
          nullable: true
        position:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          default: 0
          description: Reading order index inside the course syllabus.
        page_ranges:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedCourseMaterialPageRange:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        material:
          type: string
          format: uuid
          title: Course Material
        start_page:
          type: string
          format: uuid
        end_page:
          type: string
          format: uuid
        position:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          default: 0
          description: Order of the selected ranges within one syllabus item.
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedCurrentUser:
      type: object
      description: Current User
      properties:
        id:
          type: integer
          readOnly: true
        username:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        full_name:
          type: string
          readOnly: true
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        description:
          type: string
        picture:
          type: string
          format: uri
          nullable: true
          title: Profile Picture
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        last_login:
          type: string
          format: date-time
          nullable: true
        date_joined:
          type: string
          format: date-time
        email:
          type: string
          format: email
          title: E-Mail Address
          maxLength: 254
        is_authenticated:
          type: boolean
          readOnly: true
    PatchedEnrollmentMethod:
      type: object
      description: Enrollment Method
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        scope_type:
          type: string
        scope_uuid:
          type: string
          format: uuid
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        role:
          type: string
        end_date:
          type: string
          format: date-time
          nullable: true
          title: Enrollment Ends on
        duration_period:
          oneOf:
          - $ref: '#/components/schemas/DurationPeriodEnum'
          - $ref: '#/components/schemas/BlankEnum'
        duration_value:
          type: number
          format: double
        passphrase:
          type: string
          maxLength: 100
        is_active:
          type: boolean
          title: Active
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedLibraryGroup:
      type: object
      description: |-
        Provide default scope fields for serializers of models with ScopedRolesMixin.

        Use this as a default serializer that adds all scope fields.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        parent:
          type: string
          format: uuid
          nullable: true
          title: Parent Group
        children:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        textbooks:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        courses:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        links:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        owner:
          type: string
          readOnly: true
        public_permissions:
          type: array
          items:
            type: string
        role_assignments:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        enrollment_methods:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        access_requests:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedLibraryLink:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        group:
          type: string
          format: uuid
          title: Library Group
        course:
          type: string
          format: uuid
          nullable: true
        textbook:
          type: string
          format: uuid
          nullable: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedMediaFile:
      type: object
      description: Media File
      properties:
        content_type:
          type: integer
        object_id:
          type: string
          format: uuid
        file_name:
          type: string
          maxLength: 255
        file_size:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
        mime_type:
          type: string
          maxLength: 64
        file_data:
          type: string
          format: uri
    PatchedRole:
      type: object
      description: Role
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        scope_type:
          type: string
        scope_uuid:
          type: string
          format: uuid
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        priority:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          description: Low values mean less privileges. Make sure to correctly prioritize
            the rolls to avoid privilege escalation.
        is_active:
          type: boolean
          title: Active
        permissions:
          type: array
          items:
            type: string
        role_assignments:
          type: array
          items:
            type: string
            format: uuid
        enrollment_methods:
          type: array
          items:
            type: string
            format: uuid
        access_requests:
          type: array
          items:
            type: string
            format: uuid
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedRoleAssignment:
      type: object
      description: Role Assignment
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        scope_type:
          type: string
        scope_uuid:
          type: string
          format: uuid
        role:
          type: string
        user:
          type: string
        assignment_method:
          $ref: '#/components/schemas/AssignmentMethodEnum'
        enrollment_method:
          type: string
          format: uuid
          nullable: true
        access_request:
          type: string
          format: uuid
          nullable: true
        is_active:
          type: boolean
          title: Active
        start_date:
          type: string
          format: date-time
          nullable: true
          title: Start date and time
        end_date:
          type: string
          format: date-time
          nullable: true
          title: End date and time
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedTextbook:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        group:
          type: string
          format: uuid
          title: Library Group
        pages:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        used_in_courses:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        library_links:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedTextbookPage:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        textbook:
          type: string
          format: uuid
        parent:
          type: string
          format: uuid
          nullable: true
          title: Parent Page
        children:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        position:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          default: 0
          description: Position among siblings in ascending order.
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        content:
          title: Content Tree
          description: DOM-like content tree with text and interactive components.
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
    PatchedUser:
      type: object
      description: User
      properties:
        id:
          type: integer
          readOnly: true
        username:
          type: string
          readOnly: true
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
        full_name:
          type: string
          readOnly: true
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        description:
          type: string
        picture:
          type: string
          format: uri
          nullable: true
          title: Profile Picture
        is_staff:
          type: boolean
          readOnly: true
          title: Staff status
          description: Designates whether the user can log into this admin site.
        last_login:
          type: string
          format: date-time
          nullable: true
        date_joined:
          type: string
          format: date-time
    Permission:
      type: object
      description: Permission
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
        codename:
          type: string
          maxLength: 100
        perm_string:
          type: string
          readOnly: true
        perm_display_name:
          type: string
          readOnly: true
        app:
          type: string
          readOnly: true
        app_display_name:
          type: string
          readOnly: true
        model:
          type: string
          readOnly: true
        model_display_name:
          type: string
          readOnly: true
      required:
      - app
      - app_display_name
      - codename
      - id
      - model
      - model_display_name
      - name
      - perm_display_name
      - perm_string
    PermissionText:
      type: object
      description: Permission Label
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        language:
          type: string
          title: Language Code
        parent:
          type: string
        name:
          type: string
          title: Translated Name
          maxLength: 255
      required:
      - id
      - language
      - name
      - parent
    Role:
      type: object
      description: Role
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        scope_type:
          type: string
        scope_uuid:
          type: string
          format: uuid
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        priority:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          description: Low values mean less privileges. Make sure to correctly prioritize
            the rolls to avoid privilege escalation.
        is_active:
          type: boolean
          title: Active
        permissions:
          type: array
          items:
            type: string
        role_assignments:
          type: array
          items:
            type: string
            format: uuid
        enrollment_methods:
          type: array
          items:
            type: string
            format: uuid
        access_requests:
          type: array
          items:
            type: string
            format: uuid
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - access_requests
      - created_at
      - created_by
      - enrollment_methods
      - id
      - modified_at
      - modified_by
      - name
      - permissions
      - priority
      - role_assignments
      - scope_type
      - scope_uuid
      - slug
    RoleAssignment:
      type: object
      description: Role Assignment
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        scope_type:
          type: string
        scope_uuid:
          type: string
          format: uuid
        role:
          type: string
        user:
          type: string
        assignment_method:
          $ref: '#/components/schemas/AssignmentMethodEnum'
        enrollment_method:
          type: string
          format: uuid
          nullable: true
        access_request:
          type: string
          format: uuid
          nullable: true
        is_active:
          type: boolean
          title: Active
        start_date:
          type: string
          format: date-time
          nullable: true
          title: Start date and time
        end_date:
          type: string
          format: date-time
          nullable: true
          title: End date and time
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - created_at
      - created_by
      - id
      - modified_at
      - modified_by
      - role
      - scope_type
      - scope_uuid
      - user
    ScopeObject:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
      required:
      - name
      - uuid
    ScopeTypeList:
      type: object
      properties:
        pk:
          type: integer
        id:
          type: string
        label:
          type: string
      required:
      - id
      - label
      - pk
    ScopeTypeRetrieve:
      type: object
      properties:
        pk:
          type: integer
        id:
          type: string
        label:
          type: string
        objects:
          type: array
          items:
            $ref: '#/components/schemas/ScopeObject'
        allowed_permissions:
          type: array
          items:
            $ref: '#/components/schemas/AllowedPermission'
      required:
      - id
      - label
      - pk
    Site:
      type: object
      description: Site
      properties:
        id:
          type: integer
          readOnly: true
        domain:
          type: string
          title: Domain name
          maxLength: 100
        name:
          type: string
          title: Display name
          maxLength: 50
        short_name:
          type: string
          maxLength: 50
        about_url:
          type: string
          format: uri
          title: Information Website
          description: URL of your website with information for your users
          maxLength: 200
        brand_color:
          type: string
          pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
          maxLength: 25
        auth_config:
          type: integer
      required:
      - about_url
      - auth_config
      - domain
      - id
      - name
      - short_name
    TextFormatEnum:
      enum:
      - TEXT
      - HTML
      - MD
      type: string
      description: |-
        * `TEXT` - Plain Text
        * `HTML` - HTML
        * `MD` - Markdown
    Textbook:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        group:
          type: string
          format: uuid
          title: Library Group
        pages:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        used_in_courses:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        library_links:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - created_at
      - created_by
      - group
      - id
      - library_links
      - modified_at
      - modified_by
      - name
      - pages
      - slug
      - used_in_courses
    TextbookPage:
      type: object
      description: |-
        Reuse full cleaning and validation logic of the models in the REST API.

        Reuse ``full_clean()``, ``clean()``, field validation, and uniqueness checks.
        Also make sure that the pre-filled model instance can be accessed in the DRF view.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        textbook:
          type: string
          format: uuid
        parent:
          type: string
          format: uuid
          nullable: true
          title: Parent Page
        children:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
        position:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          default: 0
          description: Position among siblings in ascending order.
        name:
          type: string
          maxLength: 255
        description:
          type: string
        text_format:
          $ref: '#/components/schemas/TextFormatEnum'
        content:
          title: Content Tree
          description: DOM-like content tree with text and interactive components.
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        modified_by:
          type: string
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - children
      - created_at
      - created_by
      - id
      - modified_at
      - modified_by
      - name
      - textbook
    User:
      type: object
      description: User
      properties:
        id:
          type: integer
          readOnly: true
        username:
          type: string
          readOnly: true
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
        full_name:
          type: string
          readOnly: true
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        description:
          type: string
        picture:
          type: string
          format: uri
          nullable: true
          title: Profile Picture
        is_staff:
          type: boolean
          readOnly: true
          title: Staff status
          description: Designates whether the user can log into this admin site.
        last_login:
          type: string
          format: date-time
          nullable: true
        date_joined:
          type: string
          format: date-time
      required:
      - full_name
      - id
      - is_staff
      - username
    health-response:
      type: object
      properties:
        status:
          type: string
          description: Status of the API server
      required:
      - status
  securitySchemes:
    SessionAuthentication:
      type: apiKey
      in: header
      name: sessionId
servers:
- url: http://localhost:8000
  description: Local Development
x-tagGroups:
- name: Content
  tags:
  - Course Material Page Ranges
  - Course Materials
  - Library Groups
  - Library Links
  - Textbook Pages
  - Textbooks
- name: Courses
  tags:
  - Courses
- name: OpenBook Server
  tags:
  - Available Languages
  - HTML Component Definitions
  - HTML Components
  - HTML Libraries
  - HTML Library Texts
  - HTML Library Versions
  - Media Files
  - Websites
- name: User Management
  tags:
  - Access Requests
  - Allowed Role Permissions
  - Authentication Tokens
  - Current User
  - Enrollment Methods
  - Role Assignments
  - Roles
  - Scope Types
  - Translated Permissions
  - User Profiles
