openapi: 3.0.3
info:
  title: CITC Equipment Tracker Backend
  version: 1.0.0
  description: An IT Elective 4 Project
paths:
  /api/v1/accounts/jwt/create/:
    post:
      operationId: api_v1_accounts_jwt_create_create
      description: |-
        Takes a set of user credentials and returns an access and refresh JSON web
        token pair to prove the authentication of those credentials.
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenObtainPair'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenObtainPair'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TokenObtainPair'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenObtainPair'
          description: ''
  /api/v1/accounts/jwt/refresh/:
    post:
      operationId: api_v1_accounts_jwt_refresh_create
      description: |-
        Takes a refresh type JSON web token and returns an access type JSON web
        token if the refresh token is valid.
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRefresh'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenRefresh'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TokenRefresh'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenRefresh'
          description: ''
  /api/v1/accounts/jwt/verify/:
    post:
      operationId: api_v1_accounts_jwt_verify_create
      description: |-
        Takes a token and indicates if it is valid.  This view provides no
        information about a token's fitness for a particular use.
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenVerify'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenVerify'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TokenVerify'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenVerify'
          description: ''
  /api/v1/accounts/users/:
    get:
      operationId: api_v1_accounts_users_list
      tags:
      - api
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomUser'
          description: ''
    post:
      operationId: api_v1_accounts_users_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRegistration'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserRegistration'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserRegistration'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRegistration'
          description: ''
  /api/v1/accounts/users/{id}/:
    get:
      operationId: api_v1_accounts_users_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - api
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUser'
          description: ''
    put:
      operationId: api_v1_accounts_users_update
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CustomUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CustomUser'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUser'
          description: ''
    patch:
      operationId: api_v1_accounts_users_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCustomUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCustomUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCustomUser'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUser'
          description: ''
    delete:
      operationId: api_v1_accounts_users_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user.
        required: true
      tags:
      - api
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/v1/accounts/users/activation/:
    post:
      operationId: api_v1_accounts_users_activation_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Activation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Activation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Activation'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activation'
          description: ''
  /api/v1/accounts/users/me/:
    get:
      operationId: api_v1_accounts_users_me_retrieve
      tags:
      - api
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUser'
          description: ''
    put:
      operationId: api_v1_accounts_users_me_update
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CustomUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CustomUser'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUser'
          description: ''
    patch:
      operationId: api_v1_accounts_users_me_partial_update
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCustomUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCustomUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCustomUser'
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUser'
          description: ''
    delete:
      operationId: api_v1_accounts_users_me_destroy
      tags:
      - api
      security:
      - jwtAuth: []
      responses:
        '204':
          description: No response body
  /api/v1/accounts/users/resend_activation/:
    post:
      operationId: api_v1_accounts_users_resend_activation_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendEmailReset'
          description: ''
  /api/v1/accounts/users/reset_password/:
    post:
      operationId: api_v1_accounts_users_reset_password_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendEmailReset'
          description: ''
  /api/v1/accounts/users/reset_password_confirm/:
    post:
      operationId: api_v1_accounts_users_reset_password_confirm_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirm'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirm'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordResetConfirm'
          description: ''
  /api/v1/accounts/users/reset_username/:
    post:
      operationId: api_v1_accounts_users_reset_username_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SendEmailReset'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendEmailReset'
          description: ''
  /api/v1/accounts/users/reset_username_confirm/:
    post:
      operationId: api_v1_accounts_users_reset_username_confirm_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UsernameResetConfirm'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UsernameResetConfirm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UsernameResetConfirm'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsernameResetConfirm'
          description: ''
  /api/v1/accounts/users/set_password/:
    post:
      operationId: api_v1_accounts_users_set_password_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetPassword'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SetPassword'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SetPassword'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetPassword'
          description: ''
  /api/v1/accounts/users/set_username/:
    post:
      operationId: api_v1_accounts_users_set_username_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetUsername'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SetUsername'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SetUsername'
        required: true
      security:
      - jwtAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetUsername'
          description: ''
  /api/v1/equipments/equipment_instances/:
    get:
      operationId: api_v1_equipments_equipment_instances_list
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EquipmentInstance'
          description: ''
    post:
      operationId: api_v1_equipments_equipment_instances_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EquipmentInstance'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EquipmentInstance'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EquipmentInstance'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentInstance'
          description: ''
  /api/v1/equipments/equipment_instances/{equipment_id}/logs/:
    get:
      operationId: api_v1_equipments_equipment_instances_logs_list_2
      parameters:
      - in: path
        name: equipment_id
        schema:
          type: integer
        required: true
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EquipmentInstanceLog'
          description: ''
  /api/v1/equipments/equipment_instances/{id}/:
    get:
      operationId: api_v1_equipments_equipment_instances_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this equipment instance.
        required: true
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentInstance'
          description: ''
    put:
      operationId: api_v1_equipments_equipment_instances_update
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this equipment instance.
        required: true
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EquipmentInstance'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EquipmentInstance'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EquipmentInstance'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentInstance'
          description: ''
    patch:
      operationId: api_v1_equipments_equipment_instances_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this equipment instance.
        required: true
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedEquipmentInstance'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedEquipmentInstance'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedEquipmentInstance'
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentInstance'
          description: ''
    delete:
      operationId: api_v1_equipments_equipment_instances_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this equipment instance.
        required: true
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '204':
          description: No response body
  /api/v1/equipments/equipment_instances/latest:
    get:
      operationId: api_v1_equipments_equipment_instances_latest_list
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EquipmentInstance'
          description: ''
  /api/v1/equipments/equipment_instances/logs:
    get:
      operationId: api_v1_equipments_equipment_instances_logs_list
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EquipmentInstanceLogs'
          description: ''
  /api/v1/equipments/equipments/:
    get:
      operationId: api_v1_equipments_equipments_list
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Equipment'
          description: ''
    post:
      operationId: api_v1_equipments_equipments_create
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Equipment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Equipment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Equipment'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Equipment'
          description: ''
  /api/v1/equipments/equipments/{equipment_id}/logs/:
    get:
      operationId: api_v1_equipments_equipments_logs_list_2
      parameters:
      - in: path
        name: equipment_id
        schema:
          type: integer
        required: true
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EquipmentLog'
          description: ''
  /api/v1/equipments/equipments/{id}/:
    get:
      operationId: api_v1_equipments_equipments_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this equipment.
        required: true
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Equipment'
          description: ''
    put:
      operationId: api_v1_equipments_equipments_update
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this equipment.
        required: true
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Equipment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Equipment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Equipment'
        required: true
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Equipment'
          description: ''
    patch:
      operationId: api_v1_equipments_equipments_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this equipment.
        required: true
      tags:
      - api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedEquipment'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedEquipment'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedEquipment'
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Equipment'
          description: ''
    delete:
      operationId: api_v1_equipments_equipments_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this equipment.
        required: true
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '204':
          description: No response body
  /api/v1/equipments/equipments/latest:
    get:
      operationId: api_v1_equipments_equipments_latest_list
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Equipment'
          description: ''
  /api/v1/equipments/equipments/logs:
    get:
      operationId: api_v1_equipments_equipments_logs_list
      tags:
      - api
      security:
      - jwtAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EquipmentLogs'
          description: ''
components:
  schemas:
    Activation:
      type: object
      properties:
        uid:
          type: string
        token:
          type: string
      required:
      - token
      - uid
    CustomUser:
      type: object
      properties:
        username:
          type: string
          readOnly: true
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        avatar:
          type: string
          format: uri
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
      required:
      - avatar
      - first_name
      - last_name
      - username
    Equipment:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
        description:
          type: string
        last_updated:
          type: string
          format: date-time
          readOnly: true
        last_updated_by:
          type: string
          readOnly: true
        date_added:
          type: string
          format: date-time
          readOnly: true
      required:
      - date_added
      - description
      - id
      - last_updated
      - last_updated_by
      - name
    EquipmentInstance:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        equipment:
          type: integer
        status:
          type: string
        remarks:
          type: string
        last_updated:
          type: string
          format: date-time
          readOnly: true
        last_updated_by:
          type: string
          readOnly: true
        date_added:
          type: string
          format: date-time
          readOnly: true
      required:
      - date_added
      - equipment
      - id
      - last_updated
      - last_updated_by
      - remarks
      - status
    EquipmentInstanceLog:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        equipment:
          type: integer
        status:
          type: string
        remarks:
          type: string
        last_updated:
          type: string
          format: date-time
          readOnly: true
        date_added:
          type: string
          format: date-time
          readOnly: true
        last_updated_by:
          type: string
          readOnly: true
        history:
          type: array
          items:
            type: object
            additionalProperties: {}
      required:
      - date_added
      - equipment
      - history
      - id
      - last_updated
      - last_updated_by
      - remarks
      - status
    EquipmentInstanceLogs:
      type: object
      properties:
        history_id:
          type: integer
          readOnly: true
        status:
          allOf:
          - $ref: '#/components/schemas/StatusEnum'
          readOnly: true
        remarks:
          type: string
          readOnly: true
        history_date:
          type: string
          format: date-time
          readOnly: true
        history_user:
          type: string
          readOnly: true
      required:
      - history_date
      - history_id
      - history_user
      - remarks
      - status
    EquipmentLog:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
        description:
          type: string
        last_updated:
          type: string
          format: date-time
          readOnly: true
        date_added:
          type: string
          format: date-time
          readOnly: true
        last_updated_by:
          type: string
          readOnly: true
        history:
          type: array
          items:
            type: object
            additionalProperties: {}
      required:
      - date_added
      - description
      - history
      - id
      - last_updated
      - last_updated_by
      - name
    EquipmentLogs:
      type: object
      properties:
        history_id:
          type: integer
          readOnly: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        history_date:
          type: string
          format: date-time
          readOnly: true
        history_user:
          type: string
          readOnly: true
      required:
      - description
      - history_date
      - history_id
      - history_user
      - name
    PasswordResetConfirm:
      type: object
      properties:
        uid:
          type: string
        token:
          type: string
        new_password:
          type: string
      required:
      - new_password
      - token
      - uid
    PatchedCustomUser:
      type: object
      properties:
        username:
          type: string
          readOnly: true
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        avatar:
          type: string
          format: uri
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
    PatchedEquipment:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
        description:
          type: string
        last_updated:
          type: string
          format: date-time
          readOnly: true
        last_updated_by:
          type: string
          readOnly: true
        date_added:
          type: string
          format: date-time
          readOnly: true
    PatchedEquipmentInstance:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        equipment:
          type: integer
        status:
          type: string
        remarks:
          type: string
        last_updated:
          type: string
          format: date-time
          readOnly: true
        last_updated_by:
          type: string
          readOnly: true
        date_added:
          type: string
          format: date-time
          readOnly: true
    SendEmailReset:
      type: object
      properties:
        email:
          type: string
          format: email
      required:
      - email
    SetPassword:
      type: object
      properties:
        new_password:
          type: string
        current_password:
          type: string
      required:
      - current_password
      - new_password
    SetUsername:
      type: object
      properties:
        current_password:
          type: string
        new_username:
          type: string
          title: Username
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
      required:
      - current_password
      - new_username
    StatusEnum:
      enum:
      - Working
      - Broken
      - Under Maintenance
      - Decomissioned
      type: string
      description: "* `Working` - Working\n* `Broken` - Broken\n* `Under Maintenance`\
        \ - Under Maintenance\n* `Decomissioned` - Decomissioned  "
    TokenObtainPair:
      type: object
      properties:
        username:
          type: string
          writeOnly: true
        password:
          type: string
          writeOnly: true
        access:
          type: string
          readOnly: true
        refresh:
          type: string
          readOnly: true
      required:
      - access
      - password
      - refresh
      - username
    TokenRefresh:
      type: object
      properties:
        access:
          type: string
          readOnly: true
        refresh:
          type: string
          writeOnly: true
      required:
      - access
      - refresh
    TokenVerify:
      type: object
      properties:
        token:
          type: string
          writeOnly: true
      required:
      - token
    UserRegistration:
      type: object
      properties:
        username:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        email:
          type: string
          format: email
        password:
          type: string
          writeOnly: true
        avatar:
          type: string
          format: uri
          nullable: true
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
      required:
      - email
      - first_name
      - last_name
      - password
      - username
    UsernameResetConfirm:
      type: object
      properties:
        new_username:
          type: string
          title: Username
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
      required:
      - new_username
  securitySchemes:
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
