openapi: 3.0.3
info:
  title: authentik
  version: 2023.10.4
  description: Making authentication simple.
  contact:
    email: hello@goauthentik.io
  license:
    name: MIT
    url: https://github.com/goauthentik/authentik/blob/main/LICENSE
paths:
  /authenticators/mobile/:
    get:
      operationId: authenticators_mobile_list
      description: Viewset for Mobile authenticator devices
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - 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
      tags:
      - authenticators
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMobileDeviceList'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
  /authenticators/mobile/{uuid}/:
    get:
      operationId: authenticators_mobile_retrieve
      description: Viewset for Mobile authenticator devices
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Mobile Device.
        required: true
      tags:
      - authenticators
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MobileDevice'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
    put:
      operationId: authenticators_mobile_update
      description: Viewset for Mobile authenticator devices
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Mobile Device.
        required: true
      tags:
      - authenticators
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MobileDeviceRequest'
        required: true
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MobileDevice'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
    patch:
      operationId: authenticators_mobile_partial_update
      description: Viewset for Mobile authenticator devices
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Mobile Device.
        required: true
      tags:
      - authenticators
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMobileDeviceRequest'
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MobileDevice'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
    delete:
      operationId: authenticators_mobile_destroy
      description: Viewset for Mobile authenticator devices
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Mobile Device.
        required: true
      tags:
      - authenticators
      security:
      - authentik: []
      responses:
        '204':
          description: No response body
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
  /authenticators/mobile/{uuid}/check_in/:
    post:
      operationId: authenticators_mobile_check_in_create
      description: Check in data about a device
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Mobile Device.
        required: true
      tags:
      - authenticators
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MobileDeviceInfoRequest'
        required: true
      security:
      - mobile_device_token: []
      responses:
        '204':
          description: Checked in
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
  /authenticators/mobile/{uuid}/enrollment_callback/:
    post:
      operationId: authenticators_mobile_enrollment_callback_create
      description: Enrollment callback
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Mobile Device.
        required: true
      tags:
      - authenticators
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MobileDeviceEnrollmentRequest'
        required: true
      security:
      - mobile_device_token: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MobileDeviceEnrollmentCallback'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
  /authenticators/mobile/{uuid}/enrollment_status/:
    post:
      operationId: authenticators_mobile_enrollment_status_create
      description: Check device enrollment status
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Mobile Device.
        required: true
      tags:
      - authenticators
      security:
      - mobile_device_token: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MobileDeviceEnrollmentStatus'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
  /authenticators/mobile/{uuid}/receive_response/:
    post:
      operationId: authenticators_mobile_receive_response_create
      description: Get response from notification on phone
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Mobile Device.
        required: true
      tags:
      - authenticators
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MobileDeviceResponseRequest'
        required: true
      security:
      - mobile_device_token: []
      responses:
        '204':
          description: Key successfully set
        '404':
          description: Transaction not found
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
  /authenticators/mobile/{uuid}/set_notification_key/:
    post:
      operationId: authenticators_mobile_set_notification_key_create
      description: Called by the phone whenever the firebase key changes and we need
        to update it
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Mobile Device.
        required: true
      tags:
      - authenticators
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MobileDeviceSetPushKeyRequest'
        required: true
      security:
      - mobile_device_token: []
      responses:
        '204':
          description: Key successfully set
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
  /authenticators/mobile/{uuid}/used_by/:
    get:
      operationId: authenticators_mobile_used_by_list
      description: Get a list of all objects that use this object
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Mobile Device.
        required: true
      tags:
      - authenticators
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UsedBy'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
          description: ''
components:
  schemas:
    ActionEnum:
      enum:
      - CASCADE
      - CASCADE_MANY
      - SET_NULL
      - SET_DEFAULT
      type: string
      description: |-
        * `CASCADE` - CASCADE
        * `CASCADE_MANY` - CASCADE_MANY
        * `SET_NULL` - SET_NULL
        * `SET_DEFAULT` - SET_DEFAULT
    GenericError:
      type: object
      description: Generic API Error
      properties:
        detail:
          type: string
        code:
          type: string
      required:
      - detail
    MobileDevice:
      type: object
      description: Serializer for Mobile authenticator devices
      properties:
        pk:
          type: string
          format: uuid
          title: Uuid
        name:
          type: string
          description: The human-readable name of this device.
          maxLength: 64
        state:
          type: object
          additionalProperties: {}
        last_checkin:
          allOf:
          - $ref: '#/components/schemas/MobileDeviceInfo'
          readOnly: true
      required:
      - last_checkin
      - name
    MobileDeviceEnrollmentCallback:
      type: object
      properties:
        token:
          type: string
      required:
      - token
    MobileDeviceEnrollmentRequest:
      type: object
      description: Enrollment request, send the device's unique identifier
      properties:
        device_uid:
          type: string
          minLength: 1
        info:
          $ref: '#/components/schemas/MobileDeviceInfoRequest'
      required:
      - device_uid
      - info
    MobileDeviceEnrollmentStatus:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/StatusEnum'
      required:
      - status
    MobileDeviceInfo:
      type: object
      description: Info about a mobile device
      properties:
        platform:
          $ref: '#/components/schemas/PlatformEnum'
        os_version:
          type: string
        model:
          type: string
        hostname:
          type: string
        app_version:
          type: string
        others:
          type: object
          additionalProperties: {}
      required:
      - app_version
      - hostname
      - model
      - os_version
      - others
      - platform
    MobileDeviceInfoRequest:
      type: object
      description: Info about a mobile device
      properties:
        platform:
          $ref: '#/components/schemas/PlatformEnum'
        os_version:
          type: string
          minLength: 1
        model:
          type: string
          minLength: 1
        hostname:
          type: string
          minLength: 1
        app_version:
          type: string
          minLength: 1
        others:
          type: object
          additionalProperties: {}
      required:
      - app_version
      - hostname
      - model
      - os_version
      - others
      - platform
    MobileDeviceRequest:
      type: object
      description: Serializer for Mobile authenticator devices
      properties:
        pk:
          type: string
          format: uuid
          title: Uuid
        name:
          type: string
          minLength: 1
          description: The human-readable name of this device.
          maxLength: 64
        state:
          type: object
          additionalProperties: {}
      required:
      - name
    MobileDeviceResponseRequest:
      type: object
      description: Response from push sent to phone
      properties:
        tx_id:
          type: string
          format: uuid
        selected_item:
          type: string
          minLength: 1
      required:
      - selected_item
      - tx_id
    MobileDeviceSetPushKeyRequest:
      type: object
      description: Set notification key
      properties:
        firebase_key:
          type: string
          minLength: 1
      required:
      - firebase_key
    PaginatedMobileDeviceList:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        results:
          type: array
          items:
            $ref: '#/components/schemas/MobileDevice'
      required:
      - pagination
      - results
    Pagination:
      type: object
      properties:
        next:
          type: number
        previous:
          type: number
        count:
          type: number
        current:
          type: number
        total_pages:
          type: number
        start_index:
          type: number
        end_index:
          type: number
      required:
      - next
      - previous
      - count
      - current
      - total_pages
      - start_index
      - end_index
    PatchedMobileDeviceRequest:
      type: object
      description: Serializer for Mobile authenticator devices
      properties:
        pk:
          type: string
          format: uuid
          title: Uuid
        name:
          type: string
          minLength: 1
          description: The human-readable name of this device.
          maxLength: 64
        state:
          type: object
          additionalProperties: {}
    PlatformEnum:
      enum:
      - ios
      - android
      - other
      type: string
      description: |-
        * `ios` - iOS
        * `android` - Android
        * `other` - Other
    StatusEnum:
      enum:
      - success
      - waiting
      type: string
      description: |-
        * `success` - Success
        * `waiting` - Waiting
    UsedBy:
      type: object
      description: A list of all objects referencing the queried object
      properties:
        app:
          type: string
        model_name:
          type: string
        pk:
          type: string
        name:
          type: string
        action:
          $ref: '#/components/schemas/ActionEnum'
      required:
      - action
      - app
      - model_name
      - name
      - pk
    ValidationError:
      type: object
      description: Validation Error
      properties:
        non_field_errors:
          type: array
          items:
            type: string
        code:
          type: string
      additionalProperties: {}
  securitySchemes:
    authentik:
      type: apiKey
      in: header
      name: Authorization
      scheme: bearer
    mobile_device_token:
      type: apiKey
      in: header
      name: Authorization
      scheme: bearer
servers:
- url: /api/v3/