components:
  schemas:
    AccessGrantItem:
      properties:
        created_at:
          title: Created At
          type: string
        granted_by:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Granted By
        identity_id:
          format: uuid
          title: Identity Id
          type: string
      required:
      - identity_id
      - granted_by
      - created_at
      title: AccessGrantItem
      type: object
    AccessGrantList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/AccessGrantItem'
          title: Items
          type: array
        next_cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Cursor
      required:
      - items
      title: AccessGrantList
      type: object
    AddMemberRequest:
      properties:
        identity_id:
          format: uuid
          title: Identity Id
          type: string
      required:
      - identity_id
      title: AddMemberRequest
      type: object
    AdminKeyCreate:
      properties:
        name:
          title: Name
          type: string
        scopes:
          items:
            type: string
          title: Scopes
          type: array
      required:
      - name
      title: AdminKeyCreate
      type: object
    AdminKeyResponse:
      properties:
        id:
          format: uuid
          title: Id
          type: string
        key:
          anyOf:
          - type: string
          - type: 'null'
          title: Key
        key_prefix:
          title: Key Prefix
          type: string
        revoked_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Revoked At
        scopes:
          items:
            type: string
          title: Scopes
          type: array
      required:
      - id
      - key_prefix
      - scopes
      title: AdminKeyResponse
      type: object
    AdministeredApplicationItem:
      properties:
        application_id:
          format: uuid
          title: Application Id
          type: string
        client_id:
          title: Client Id
          type: string
        name:
          title: Name
          type: string
      required:
      - application_id
      - client_id
      - name
      title: AdministeredApplicationItem
      type: object
    AdministeredApplicationsList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/AdministeredApplicationItem'
          title: Items
          type: array
      required:
      - items
      title: AdministeredApplicationsList
      type: object
    AdministratorOut:
      properties:
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        identity_id:
          format: uuid
          title: Identity Id
          type: string
        status:
          title: Status
          type: string
      required:
      - identity_id
      - email
      - status
      title: AdministratorOut
      type: object
    AdministratorSummary:
      properties:
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        identity_id:
          format: uuid
          title: Identity Id
          type: string
        status:
          title: Status
          type: string
      required:
      - identity_id
      - email
      - status
      title: AdministratorSummary
      type: object
    AliasResponse:
      properties:
        alias_email:
          title: Alias Email
          type: string
        alias_id:
          format: uuid
          title: Alias Id
          type: string
        verified_at:
          format: date-time
          title: Verified At
          type: string
      required:
      - alias_id
      - alias_email
      - verified_at
      title: AliasResponse
      type: object
    ApplicationAdminItem:
      properties:
        created_at:
          format: date-time
          title: Created At
          type: string
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        granted_by:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Granted By
        identity_id:
          format: uuid
          title: Identity Id
          type: string
      required:
      - identity_id
      - created_at
      title: ApplicationAdminItem
      type: object
    ApplicationAdminList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ApplicationAdminItem'
          title: Items
          type: array
      required:
      - items
      title: ApplicationAdminList
      type: object
    ApplicationCreate:
      properties:
        access_decision_cache_ttl_seconds:
          default: 0
          title: Access Decision Cache Ttl Seconds
          type: integer
        access_decision_endpoint:
          anyOf:
          - type: string
          - type: 'null'
          title: Access Decision Endpoint
        access_decision_fail_open:
          default: false
          title: Access Decision Fail Open
          type: boolean
        access_decision_timeout_ms:
          default: 3000
          title: Access Decision Timeout Ms
          type: integer
        access_mode:
          default: open
          title: Access Mode
          type: string
        application_type:
          default: spa
          title: Application Type
          type: string
        client_id:
          anyOf:
          - type: string
          - type: 'null'
          description: Optional. The client identifier to register this application under, unique among
            live applications in this tenant and permanent once set. Letters, digits, hyphen, period,
            underscore and tilde only, 8-128 characters; may not begin 'hap_', which is reserved for identifiers
            the platform issues. Omit it and one is generated. The same identifier may be used in other
            tenants and in other installations.
          title: Client Id
        confidential:
          default: false
          title: Confidential
          type: boolean
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        home_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Home Url
        icon_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Icon Url
        invitation_return_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Invitation Return Url
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        name:
          title: Name
          type: string
        redirect_uris:
          items:
            type: string
          title: Redirect Uris
          type: array
        scopes:
          items:
            type: string
          title: Scopes
          type: array
        self_enrollment_enabled:
          default: false
          title: Self Enrollment Enabled
          type: boolean
        show_in_menu:
          anyOf:
          - type: boolean
          - type: 'null'
          description: Whether this application appears on the application menu people see at /t/{slug}
            and in GET /v1/me/applications. Omit it and a registration whose redirect URIs are all loopback
            addresses - a command-line or machine client - is registered unlisted, and everything else
            is registered listed. This setting never affects who may sign in or what they may do; it decides
            only whether the application is offered as a destination.
          title: Show In Menu
      required:
      - name
      title: ApplicationCreate
      type: object
    ApplicationListItem:
      properties:
        access_mode:
          title: Access Mode
          type: string
        application_type:
          title: Application Type
          type: string
        client_id:
          title: Client Id
          type: string
        confidential:
          title: Confidential
          type: boolean
        description:
          anyOf:
          - type: string
          - type: 'null'
          description: One line saying what this application is for, shown on the menu; null when unset.
          title: Description
        disabled_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Disabled At
        enabled:
          default: true
          title: Enabled
          type: boolean
        home_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Home Url
        icon_url:
          anyOf:
          - type: string
          - type: 'null'
          description: Absolute http(s) address of the image shown beside it on the menu; null when unset.
          title: Icon Url
        id:
          format: uuid
          title: Id
          type: string
        is_builtin:
          default: false
          title: Is Builtin
          type: boolean
        label:
          anyOf:
          - type: string
          - type: 'null'
          description: 'The administrator-set display label, or null when none is set. This is the stored
            value, not the resolved one: an application with no label is shown to people under its `name`.
            Contrast GET /v1/me/applications, whose `label` is already resolved.'
          title: Label
        name:
          title: Name
          type: string
        post_logout_redirect_uris:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Post Logout Redirect Uris
        redirect_uris:
          items:
            type: string
          title: Redirect Uris
          type: array
        scopes:
          items:
            type: string
          title: Scopes
          type: array
        secret_rotated_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Secret Rotated At
        self_enrollment_enabled:
          default: false
          title: Self Enrollment Enabled
          type: boolean
        show_in_menu:
          default: true
          description: Whether this application appears on the application menu people see at /t/{slug}.
            The built-in CLI client is registered unlisted in every tenant; a command-line or machine
            client registered with only loopback redirect URIs is too, unless its registrar said otherwise.
          title: Show In Menu
          type: boolean
      required:
      - id
      - client_id
      - name
      - application_type
      - redirect_uris
      - confidential
      - access_mode
      - scopes
      title: ApplicationListItem
      type: object
    ApplicationResponse:
      properties:
        access_decision_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Access Decision Secret
        access_mode:
          default: open
          title: Access Mode
          type: string
        client_id:
          title: Client Id
          type: string
        client_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Secret
        id:
          format: uuid
          title: Id
          type: string
      required:
      - id
      - client_id
      title: ApplicationResponse
      type: object
    ApplicationStateResponse:
      properties:
        client_id:
          title: Client Id
          type: string
        deleted_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Deleted At
        disabled_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Disabled At
        enabled:
          title: Enabled
          type: boolean
        id:
          format: uuid
          title: Id
          type: string
      required:
      - id
      - client_id
      - enabled
      title: ApplicationStateResponse
      type: object
    ApplicationUpdate:
      properties:
        access_decision_cache_ttl_seconds:
          anyOf:
          - type: integer
          - type: 'null'
          title: Access Decision Cache Ttl Seconds
        access_decision_endpoint:
          anyOf:
          - type: string
          - type: 'null'
          title: Access Decision Endpoint
        access_decision_fail_open:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Access Decision Fail Open
        access_decision_timeout_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Access Decision Timeout Ms
        access_mode:
          anyOf:
          - type: string
          - type: 'null'
          title: Access Mode
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        home_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Home Url
        icon_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Icon Url
        invitation_return_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Invitation Return Url
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        post_logout_redirect_uris:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Post Logout Redirect Uris
        redirect_uris:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Redirect Uris
        self_enrollment_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Self Enrollment Enabled
        show_in_menu:
          anyOf:
          - type: boolean
          - type: 'null'
          description: Whether this application appears on the application menu. Omit it, or send null,
            and the stored value is left unchanged.
          title: Show In Menu
      title: ApplicationUpdate
      type: object
    AssignRequest:
      properties:
        expires_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Expires At
        role_id:
          format: uuid
          title: Role Id
          type: string
      required:
      - role_id
      title: AssignRequest
      type: object
    AssignedRole:
      properties:
        expires_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Expires At
        id:
          format: uuid
          title: Id
          type: string
        is_builtin:
          default: false
          title: Is Builtin
          type: boolean
        is_default:
          title: Is Default
          type: boolean
        name:
          title: Name
          type: string
        permissions:
          items:
            type: string
          title: Permissions
          type: array
      required:
      - id
      - name
      - permissions
      - is_default
      title: AssignedRole
      type: object
    AssignedRoleList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/AssignedRole'
          title: Items
          type: array
      required:
      - items
      title: AssignedRoleList
      type: object
    BackupCreate:
      properties:
        fidelity:
          default: full
          enum:
          - full
          - redacted
          title: Fidelity
          type: string
        passphrase:
          minLength: 1
          title: Passphrase
          type: string
        scope:
          enum:
          - full
          - tenant
          title: Scope
          type: string
        tenant_id:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Tenant Id
      required:
      - scope
      - passphrase
      title: BackupCreate
      type: object
    BackupResponse:
      properties:
        checksum:
          anyOf:
          - type: string
          - type: 'null'
          title: Checksum
        completed_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Completed At
        created_at:
          format: date-time
          title: Created At
          type: string
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Code
        fidelity:
          title: Fidelity
          type: string
        id:
          format: uuid
          title: Id
          type: string
        progress:
          additionalProperties: true
          title: Progress
          type: object
        restorable:
          title: Restorable
          type: boolean
        row_counts:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Row Counts
        schema_version:
          anyOf:
          - type: string
          - type: 'null'
          title: Schema Version
        scope:
          title: Scope
          type: string
        size_bytes:
          anyOf:
          - type: integer
          - type: 'null'
          title: Size Bytes
        status:
          title: Status
          type: string
        tenant_id:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Tenant Id
      required:
      - id
      - scope
      - tenant_id
      - fidelity
      - restorable
      - status
      - schema_version
      - size_bytes
      - checksum
      - row_counts
      - progress
      - error_code
      - created_at
      - completed_at
      title: BackupResponse
      type: object
    Body_admin_add_user_t__slug__hosted_admin_users_add_post:
      properties:
        email:
          title: Email
          type: string
        invitation_application_id:
          default: ''
          title: Invitation Application Id
          type: string
        send_invitation:
          default: ''
          title: Send Invitation
          type: string
      required:
      - email
      title: Body_admin_add_user_t__slug__hosted_admin_users_add_post
      type: object
    Body_admin_reassign_owner_t__slug__hosted_admin_groups__group_id__reassign_owner_post:
      properties:
        new_owner:
          title: New Owner
          type: string
      required:
      - new_owner
      title: Body_admin_reassign_owner_t__slug__hosted_admin_groups__group_id__reassign_owner_post
      type: object
    Body_admin_set_status_t__slug__hosted_admin_users__identity_id__status_post:
      properties:
        status:
          title: Status
          type: string
      required:
      - status
      title: Body_admin_set_status_t__slug__hosted_admin_users__identity_id__status_post
      type: object
    Body_admin_set_tenant_admin_t__slug__hosted_admin_users__identity_id__tenant_admin_post:
      properties:
        value:
          title: Value
          type: integer
      required:
      - value
      title: Body_admin_set_tenant_admin_t__slug__hosted_admin_users__identity_id__tenant_admin_post
      type: object
    Body_admin_set_username_t__slug__hosted_admin_users__identity_id__username_post:
      properties:
        clear:
          default: ''
          title: Clear
          type: string
        username:
          default: ''
          title: Username
          type: string
      title: Body_admin_set_username_t__slug__hosted_admin_users__identity_id__username_post
      type: object
    Body_app_access_grant_user_t__slug__hosted_admin_applications__application_id__access_add_post:
      properties:
        email:
          title: Email
          type: string
      required:
      - email
      title: Body_app_access_grant_user_t__slug__hosted_admin_applications__application_id__access_add_post
      type: object
    Body_app_admin_add_t__slug__hosted_admin_applications__application_id__admins_add_post:
      properties:
        email:
          title: Email
          type: string
      required:
      - email
      title: Body_app_admin_add_t__slug__hosted_admin_applications__application_id__admins_add_post
      type: object
    Body_app_group_grant_t__slug__hosted_admin_applications__application_id__groups_add_post:
      properties:
        group_id:
          format: uuid
          title: Group Id
          type: string
      required:
      - group_id
      title: Body_app_group_grant_t__slug__hosted_admin_applications__application_id__groups_add_post
      type: object
    Body_application_edit_submit_t__slug__hosted_admin_applications__application_id__edit_post:
      properties:
        access_mode:
          default: open
          title: Access Mode
          type: string
        description:
          default: ''
          title: Description
          type: string
        home_url:
          default: ''
          title: Home Url
          type: string
        icon_url:
          default: ''
          title: Icon Url
          type: string
        label:
          default: ''
          title: Label
          type: string
        redirect_uris:
          default: ''
          title: Redirect Uris
          type: string
        scopes:
          default: ''
          title: Scopes
          type: string
        self_enrollment_enabled:
          default: ''
          title: Self Enrollment Enabled
          type: string
        show_in_menu:
          default: ''
          title: Show In Menu
          type: string
      title: Body_application_edit_submit_t__slug__hosted_admin_applications__application_id__edit_post
      type: object
    Body_application_rotate_secret_t__slug__hosted_admin_applications__application_id__rotate_secret_post:
      properties:
        overlap_seconds:
          default: 0
          title: Overlap Seconds
          type: integer
      title: Body_application_rotate_secret_t__slug__hosted_admin_applications__application_id__rotate_secret_post
      type: object
    Body_authorize_post_t__tenant_slug__oauth2_authorize_post:
      properties:
        acr_values:
          anyOf:
          - type: string
          - type: 'null'
          title: Acr Values
        client_id:
          title: Client Id
          type: string
        code_challenge:
          anyOf:
          - type: string
          - type: 'null'
          title: Code Challenge
        code_challenge_method:
          anyOf:
          - type: string
          - type: 'null'
          title: Code Challenge Method
        consent:
          anyOf:
          - type: string
          - type: 'null'
          title: Consent
        login_token:
          anyOf:
          - type: string
          - type: 'null'
          title: Login Token
        nonce:
          anyOf:
          - type: string
          - type: 'null'
          title: Nonce
        prompt:
          anyOf:
          - type: string
          - type: 'null'
          title: Prompt
        redirect_uri:
          title: Redirect Uri
          type: string
        response_type:
          default: code
          title: Response Type
          type: string
        scope:
          default: openid
          title: Scope
          type: string
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
      required:
      - client_id
      - redirect_uri
      title: Body_authorize_post_t__tenant_slug__oauth2_authorize_post
      type: object
    Body_backups_create_t__slug__hosted_admin_backups_post:
      properties:
        fidelity:
          default: full
          title: Fidelity
          type: string
        passphrase:
          title: Passphrase
          type: string
      required:
      - passphrase
      title: Body_backups_create_t__slug__hosted_admin_backups_post
      type: object
    Body_branding_save_t__slug__hosted_admin_branding_post:
      properties:
        accent_color:
          default: ''
          title: Accent Color
          type: string
        background_color:
          default: ''
          title: Background Color
          type: string
        error_color:
          default: ''
          title: Error Color
          type: string
        favicon_url:
          default: ''
          title: Favicon Url
          type: string
        font_family:
          default: ''
          title: Font Family
          type: string
        logo_url:
          default: ''
          title: Logo Url
          type: string
        product_name:
          default: ''
          title: Product Name
          type: string
        surround_color:
          default: ''
          title: Surround Color
          type: string
        text_color:
          default: ''
          title: Text Color
          type: string
      title: Body_branding_save_t__slug__hosted_admin_branding_post
      type: object
    Body_create_application_submit_t__slug__hosted_admin_applications_new_post:
      properties:
        access_mode:
          default: open
          title: Access Mode
          type: string
        client_id:
          default: ''
          title: Client Id
          type: string
        client_type:
          default: confidential
          title: Client Type
          type: string
        description:
          default: ''
          title: Description
          type: string
        home_url:
          default: ''
          title: Home Url
          type: string
        icon_url:
          default: ''
          title: Icon Url
          type: string
        label:
          default: ''
          title: Label
          type: string
        name:
          title: Name
          type: string
        redirect_uris:
          default: ''
          title: Redirect Uris
          type: string
        scopes:
          default: ''
          title: Scopes
          type: string
        self_enrollment_enabled:
          default: ''
          title: Self Enrollment Enabled
          type: string
        show_in_menu:
          default: ''
          title: Show In Menu
          type: string
      required:
      - name
      title: Body_create_application_submit_t__slug__hosted_admin_applications_new_post
      type: object
    Body_create_group_admin_submit_t__slug__hosted_admin_groups_new_post:
      properties:
        name:
          title: Name
          type: string
        owner_email:
          title: Owner Email
          type: string
      required:
      - name
      - owner_email
      title: Body_create_group_admin_submit_t__slug__hosted_admin_groups_new_post
      type: object
    Body_create_group_page_t__slug__hosted_groups_create_post:
      properties:
        name:
          title: Name
          type: string
      required:
      - name
      title: Body_create_group_page_t__slug__hosted_groups_create_post
      type: object
    Body_group_add_member_t__slug__hosted_groups__group_id__members_add_post:
      properties:
        email:
          title: Email
          type: string
      required:
      - email
      title: Body_group_add_member_t__slug__hosted_groups__group_id__members_add_post
      type: object
    Body_group_grant_application_t__slug__hosted_groups__group_id__applications_add_post:
      properties:
        application_id:
          format: uuid
          title: Application Id
          type: string
      required:
      - application_id
      title: Body_group_grant_application_t__slug__hosted_groups__group_id__applications_add_post
      type: object
    Body_group_set_admin_t__slug__hosted_groups__group_id__members__identity_id__admin_post:
      properties:
        value:
          title: Value
          type: integer
      required:
      - value
      title: Body_group_set_admin_t__slug__hosted_groups__group_id__members__identity_id__admin_post
      type: object
    Body_group_transfer_t__slug__hosted_groups__group_id__transfer_post:
      properties:
        new_owner:
          format: uuid
          title: New Owner
          type: string
      required:
      - new_owner
      title: Body_group_transfer_t__slug__hosted_groups__group_id__transfer_post
      type: object
    Body_hosted_consent_submit_t__tenant_slug__hosted_consent_post:
      properties:
        decision:
          title: Decision
          type: string
        return_to:
          title: Return To
          type: string
        token:
          title: Token
          type: string
      required:
      - token
      - decision
      - return_to
      title: Body_hosted_consent_submit_t__tenant_slug__hosted_consent_post
      type: object
    Body_hosted_login_request_t__tenant_slug__hosted_login_request_post:
      properties:
        email:
          title: Email
          type: string
        return_to:
          title: Return To
          type: string
      required:
      - return_to
      - email
      title: Body_hosted_login_request_t__tenant_slug__hosted_login_request_post
      type: object
    Body_hosted_login_verify_t__tenant_slug__hosted_login_verify_post:
      properties:
        code:
          title: Code
          type: string
        email:
          title: Email
          type: string
        return_to:
          title: Return To
          type: string
      required:
      - return_to
      - email
      - code
      title: Body_hosted_login_verify_t__tenant_slug__hosted_login_verify_post
      type: object
    Body_introspect_t__tenant_slug__oauth2_introspect_post:
      properties:
        client_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Id
        client_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Secret
        token:
          title: Token
          type: string
      required:
      - token
      title: Body_introspect_t__tenant_slug__oauth2_introspect_post
      type: object
    Body_introspect_token_v1_tokens_introspect_post:
      properties:
        token:
          title: Token
          type: string
      required:
      - token
      title: Body_introspect_token_v1_tokens_introspect_post
      type: object
    Body_registration_save_t__slug__hosted_admin_registration_post:
      properties:
        allowlist_domains:
          default: ''
          title: Allowlist Domains
          type: string
        allowlist_enabled:
          default: ''
          title: Allowlist Enabled
          type: string
        denylist_domains:
          default: ''
          title: Denylist Domains
          type: string
        denylist_enabled:
          default: ''
          title: Denylist Enabled
          type: string
        invitation_only:
          default: ''
          title: Invitation Only
          type: string
        version:
          default: ''
          title: Version
          type: string
      title: Body_registration_save_t__slug__hosted_admin_registration_post
      type: object
    Body_restores_run_t__slug__hosted_admin_restores_post:
      properties:
        backup_id:
          format: uuid
          title: Backup Id
          type: string
        confirmation_token:
          default: ''
          title: Confirmation Token
          type: string
        mode:
          title: Mode
          type: string
        passphrase:
          title: Passphrase
          type: string
      required:
      - backup_id
      - mode
      - passphrase
      title: Body_restores_run_t__slug__hosted_admin_restores_post
      type: object
    Body_revoke_t__tenant_slug__oauth2_revoke_post:
      properties:
        client_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Id
        client_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Secret
        token:
          title: Token
          type: string
      required:
      - token
      title: Body_revoke_t__tenant_slug__oauth2_revoke_post
      type: object
    Body_saml_acs_v1_saml__provider_id__acs_post:
      properties:
        SAMLResponse:
          title: Samlresponse
          type: string
      required:
      - SAMLResponse
      title: Body_saml_acs_v1_saml__provider_id__acs_post
      type: object
    Body_token_t__tenant_slug__oauth2_token_post:
      properties:
        client_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Id
        client_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Secret
        code:
          anyOf:
          - type: string
          - type: 'null'
          title: Code
        code_verifier:
          anyOf:
          - type: string
          - type: 'null'
          title: Code Verifier
        grant_type:
          title: Grant Type
          type: string
        redirect_uri:
          anyOf:
          - type: string
          - type: 'null'
          title: Redirect Uri
        refresh_token:
          anyOf:
          - type: string
          - type: 'null'
          title: Refresh Token
      required:
      - grant_type
      title: Body_token_t__tenant_slug__oauth2_token_post
      type: object
    Body_user_access_add_t__slug__hosted_admin_users__identity_id__access_add_post:
      properties:
        application_id:
          format: uuid
          title: Application Id
          type: string
      required:
      - application_id
      title: Body_user_access_add_t__slug__hosted_admin_users__identity_id__access_add_post
      type: object
    Body_user_roles_add_t__slug__hosted_admin_users__identity_id__roles_add_post:
      properties:
        role_id:
          format: uuid
          title: Role Id
          type: string
      required:
      - role_id
      title: Body_user_roles_add_t__slug__hosted_admin_users__identity_id__roles_add_post
      type: object
    CodeRequest:
      properties:
        code:
          minLength: 1
          title: Code
          type: string
        login_token:
          minLength: 1
          title: Login Token
          type: string
      required:
      - login_token
      - code
      title: CodeRequest
      type: object
    CreateTokenRequest:
      properties:
        audience:
          anyOf:
          - type: string
          - type: 'null'
          title: Audience
        expires_in_days:
          anyOf:
          - type: integer
          - type: 'null'
          title: Expires In Days
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        scope:
          default: ''
          title: Scope
          type: string
      title: CreateTokenRequest
      type: object
    CreatedToken:
      properties:
        audience:
          anyOf:
          - type: string
          - type: 'null'
          title: Audience
        created_at:
          format: date-time
          title: Created At
          type: string
        expires_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Expires At
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        scope:
          title: Scope
          type: string
        token:
          title: Token
          type: string
        token_id:
          format: uuid
          title: Token Id
          type: string
      required:
      - token_id
      - token
      - scope
      - created_at
      title: CreatedToken
      type: object
    DomainListModel:
      description: 'One domain list: whether it is enforced, and the bare domains in it.'
      properties:
        domains:
          items:
            type: string
          title: Domains
          type: array
        enabled:
          default: false
          title: Enabled
          type: boolean
      title: DomainListModel
      type: object
    EffectiveValue:
      description: A setting's in-force value, plus whether this tenant chose it (FR-011).
      properties:
        explicitly_set:
          title: Explicitly Set
          type: boolean
        value:
          title: Value
      required:
      - explicitly_set
      title: EffectiveValue
      type: object
    EmailRequest:
      properties:
        email:
          format: email
          title: Email
          type: string
      required:
      - email
      title: EmailRequest
      type: object
    GroupApplicationGrantResponse:
      properties:
        application_id:
          format: uuid
          title: Application Id
          type: string
        created_at:
          format: date-time
          title: Created At
          type: string
      required:
      - application_id
      - created_at
      title: GroupApplicationGrantResponse
      type: object
    GroupCreate:
      properties:
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        name:
          maxLength: 200
          minLength: 1
          title: Name
          type: string
        owner_identity_id:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Owner Identity Id
      required:
      - name
      title: GroupCreate
      type: object
    GroupDetailResponse:
      properties:
        admin_count:
          title: Admin Count
          type: integer
        created_at:
          format: date-time
          title: Created At
          type: string
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        id:
          format: uuid
          title: Id
          type: string
        member_count:
          title: Member Count
          type: integer
        members:
          items:
            $ref: '#/components/schemas/GroupMemberResponse'
          title: Members
          type: array
        name:
          title: Name
          type: string
        owner_identity_id:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Owner Identity Id
      required:
      - id
      - name
      - owner_identity_id
      - admin_count
      - member_count
      - created_at
      - members
      title: GroupDetailResponse
      type: object
    GroupList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/GroupResponse'
          title: Items
          type: array
        next_cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Cursor
      required:
      - items
      title: GroupList
      type: object
    GroupMemberResponse:
      properties:
        created_at:
          format: date-time
          title: Created At
          type: string
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        identity_id:
          format: uuid
          title: Identity Id
          type: string
        role:
          title: Role
          type: string
        status:
          title: Status
          type: string
      required:
      - identity_id
      - role
      - status
      - created_at
      title: GroupMemberResponse
      type: object
    GroupResponse:
      properties:
        admin_count:
          title: Admin Count
          type: integer
        created_at:
          format: date-time
          title: Created At
          type: string
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        id:
          format: uuid
          title: Id
          type: string
        member_count:
          title: Member Count
          type: integer
        name:
          title: Name
          type: string
        owner_identity_id:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Owner Identity Id
      required:
      - id
      - name
      - owner_identity_id
      - admin_count
      - member_count
      - created_at
      title: GroupResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    HandoverAcceptResponse:
      properties:
        administrators_after:
          title: Administrators After
          type: integer
        administrators_removed:
          default: 0
          title: Administrators Removed
          type: integer
        identity_id:
          format: uuid
          title: Identity Id
          type: string
        status:
          title: Status
          type: string
        tenant:
          additionalProperties:
            type: string
          title: Tenant
          type: object
      required:
      - status
      - tenant
      - identity_id
      - administrators_after
      title: HandoverAcceptResponse
      type: object
    HandoverCreateRequest:
      properties:
        confirmation_token:
          title: Confirmation Token
          type: string
        incoming_email:
          format: email
          title: Incoming Email
          type: string
      required:
      - incoming_email
      - confirmation_token
      title: HandoverCreateRequest
      type: object
    HandoverPreviewRequest:
      properties:
        incoming_email:
          format: email
          title: Incoming Email
          type: string
      required:
      - incoming_email
      title: HandoverPreviewRequest
      type: object
    HandoverPreviewResponse:
      properties:
        confirmation_token:
          title: Confirmation Token
          type: string
        confirmation_token_expires_at:
          title: Confirmation Token Expires At
          type: string
        current_administrators:
          items:
            $ref: '#/components/schemas/AdministratorOut'
          title: Current Administrators
          type: array
        effect:
          default: grant_only
          title: Effect
          type: string
        incoming_email:
          title: Incoming Email
          type: string
        incoming_identity_exists:
          title: Incoming Identity Exists
          type: boolean
        note:
          title: Note
          type: string
        tenant:
          additionalProperties:
            type: string
          title: Tenant
          type: object
      required:
      - tenant
      - current_administrators
      - incoming_email
      - incoming_identity_exists
      - note
      - confirmation_token
      - confirmation_token_expires_at
      title: HandoverPreviewResponse
      type: object
    HandoverResponse:
      properties:
        administrators_notified:
          anyOf:
          - type: integer
          - type: 'null'
          title: Administrators Notified
        effect:
          default: grant_only
          title: Effect
          type: string
        expires_at:
          title: Expires At
          type: string
        handover_id:
          format: uuid
          title: Handover Id
          type: string
        incoming_email:
          title: Incoming Email
          type: string
        proof_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Proof Email
        status:
          title: Status
          type: string
      required:
      - handover_id
      - status
      - incoming_email
      - expires_at
      title: HandoverResponse
      type: object
    IdentityApplicationItem:
      properties:
        access_mode:
          title: Access Mode
          type: string
        application_id:
          format: uuid
          title: Application Id
          type: string
        client_id:
          title: Client Id
          type: string
      required:
      - application_id
      - client_id
      - access_mode
      title: IdentityApplicationItem
      type: object
    IdentityApplicationsList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/IdentityApplicationItem'
          title: Items
          type: array
      required:
      - items
      title: IdentityApplicationsList
      type: object
    IdentityCreate:
      properties:
        custom_claims:
          additionalProperties: true
          title: Custom Claims
          type: object
        email:
          format: email
          title: Email
          type: string
        email_verified:
          default: false
          title: Email Verified
          type: boolean
        family_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Family Name
        given_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Given Name
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        password:
          anyOf:
          - minLength: 1
            type: string
          - type: 'null'
          title: Password
        username:
          anyOf:
          - type: string
          - type: 'null'
          title: Username
      required:
      - email
      title: IdentityCreate
      type: object
    IdentityList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/IdentityResponse'
          title: Items
          type: array
        next_cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Cursor
      required:
      - items
      title: IdentityList
      type: object
    IdentityResponse:
      properties:
        created_at:
          format: date-time
          title: Created At
          type: string
        custom_claims:
          additionalProperties: true
          title: Custom Claims
          type: object
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        email_verified:
          title: Email Verified
          type: boolean
        family_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Family Name
        given_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Given Name
        id:
          format: uuid
          title: Id
          type: string
        is_tenant_admin:
          description: The tenant-administrator designation AS STORED, not the authority as effective.
            The is_tenant_admin CLAIM in an issued token is `status == "active" AND is_tenant_admin`,
            because a relying party must not treat a suspended administrator as an administrator. This
            field is the flag alone, so a caller asking "did my grant land?" still reads true for someone
            granted the designation and later suspended. `GET /v1/identities?tenant_admin=true` filters
            on this flag and NOT on status, so a suspended administrator is listed. Read `status` from
            the same object for the effective form.
          title: Is Tenant Admin
          type: boolean
        mfa_enabled:
          title: Mfa Enabled
          type: boolean
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        status:
          title: Status
          type: string
        username:
          anyOf:
          - type: string
          - type: 'null'
          title: Username
      required:
      - id
      - email
      - email_verified
      - name
      - given_name
      - family_name
      - username
      - status
      - is_tenant_admin
      - mfa_enabled
      - custom_claims
      - created_at
      title: IdentityResponse
      type: object
    IdentityUpdate:
      properties:
        custom_claims:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Custom Claims
        email:
          anyOf:
          - format: email
            type: string
          - type: 'null'
          title: Email
        email_verified:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Email Verified
        family_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Family Name
        given_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Given Name
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
        username:
          anyOf:
          - type: string
          - type: 'null'
          title: Username
      title: IdentityUpdate
      type: object
    InvitationCreateRequest:
      properties:
        application_id:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Application Id
        email:
          title: Email
          type: string
        email_html_body:
          anyOf:
          - type: string
          - type: 'null'
          title: Email Html Body
        email_text_body:
          anyOf:
          - type: string
          - type: 'null'
          title: Email Text Body
        send_email:
          default: false
          title: Send Email
          type: boolean
        welcome_message:
          default: ''
          title: Welcome Message
          type: string
      required:
      - email
      title: InvitationCreateRequest
      type: object
    InvitationCreateResponse:
      properties:
        already_registered:
          title: Already Registered
          type: boolean
        email_delivery:
          description: not_sent | sent | failed
          title: Email Delivery
          type: string
        expires_at:
          format: date-time
          title: Expires At
          type: string
        invitation_url:
          title: Invitation Url
          type: string
      required:
      - invitation_url
      - already_registered
      - expires_at
      - email_delivery
      title: InvitationCreateResponse
      type: object
    KeyMetadata:
      properties:
        audience:
          anyOf:
          - type: string
          - type: 'null'
          title: Audience
        comment:
          anyOf:
          - type: string
          - type: 'null'
          title: Comment
        created_at:
          format: date-time
          title: Created At
          type: string
        expires_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Expires At
        fingerprint:
          title: Fingerprint
          type: string
        key_id:
          format: uuid
          title: Key Id
          type: string
        key_type:
          title: Key Type
          type: string
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        last_used_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Last Used At
        revoked:
          title: Revoked
          type: boolean
        scope:
          title: Scope
          type: string
      required:
      - key_id
      - key_type
      - fingerprint
      - scope
      - created_at
      - revoked
      title: KeyMetadata
      type: object
    LoginBegin:
      properties:
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
      title: LoginBegin
      type: object
    LoginBeginResponse:
      properties:
        handle:
          title: Handle
          type: string
        options:
          additionalProperties: true
          title: Options
          type: object
      required:
      - options
      - handle
      title: LoginBeginResponse
      type: object
    LoginFinish:
      properties:
        credential:
          additionalProperties: true
          title: Credential
          type: object
        handle:
          minLength: 1
          title: Handle
          type: string
      required:
      - handle
      - credential
      title: LoginFinish
      type: object
    LoginFinishResponse:
      properties:
        aal:
          title: Aal
          type: integer
        login_token:
          title: Login Token
          type: string
        session_id:
          title: Session Id
          type: string
      required:
      - login_token
      - session_id
      - aal
      title: LoginFinishResponse
      type: object
    LoginRequest:
      description: 'Primary-credential login (feature 013): identify by email OR username, plus password.'
      properties:
        email:
          anyOf:
          - format: email
            type: string
          - type: 'null'
          title: Email
        password:
          minLength: 1
          title: Password
          type: string
        username:
          anyOf:
          - type: string
          - type: 'null'
          title: Username
      required:
      - password
      title: LoginRequest
      type: object
    MagicLinkRequest:
      properties:
        client_id:
          minLength: 1
          title: Client Id
          type: string
        email:
          anyOf:
          - format: email
            type: string
          - type: 'null'
          title: Email
        redirect_uri:
          minLength: 1
          title: Redirect Uri
          type: string
        username:
          anyOf:
          - type: string
          - type: 'null'
          title: Username
      required:
      - client_id
      - redirect_uri
      title: MagicLinkRequest
      type: object
    MagicLinkVerify:
      properties:
        token:
          minLength: 1
          title: Token
          type: string
      required:
      - token
      title: MagicLinkVerify
      type: object
    MfaResult:
      properties:
        aal:
          anyOf:
          - type: integer
          - type: 'null'
          title: Aal
        ok:
          title: Ok
          type: boolean
      required:
      - ok
      title: MfaResult
      type: object
    MyApplicationsResponse:
      properties:
        applications:
          items:
            $ref: '#/components/schemas/SelectableApplicationItem'
          title: Applications
          type: array
        destinations:
          items:
            type: string
          title: Destinations
          type: array
        selector_relevant:
          title: Selector Relevant
          type: boolean
      required:
      - applications
      - selector_relevant
      - destinations
      title: MyApplicationsResponse
      type: object
    MyGroupEntry:
      properties:
        group:
          $ref: '#/components/schemas/GroupResponse'
        role:
          title: Role
          type: string
      required:
      - group
      - role
      title: MyGroupEntry
      type: object
    OkResult:
      properties:
        ok:
          title: Ok
          type: boolean
      required:
      - ok
      title: OkResult
      type: object
    OtpLoginRequest:
      properties:
        channel:
          enum:
          - email
          - sms
          title: Channel
          type: string
        email:
          anyOf:
          - format: email
            type: string
          - type: 'null'
          title: Email
        phone:
          anyOf:
          - type: string
          - type: 'null'
          title: Phone
        username:
          anyOf:
          - type: string
          - type: 'null'
          title: Username
      required:
      - channel
      title: OtpLoginRequest
      type: object
    OtpLoginVerify:
      properties:
        channel:
          enum:
          - email
          - sms
          title: Channel
          type: string
        code:
          minLength: 1
          title: Code
          type: string
        email:
          anyOf:
          - format: email
            type: string
          - type: 'null'
          title: Email
        phone:
          anyOf:
          - type: string
          - type: 'null'
          title: Phone
        username:
          anyOf:
          - type: string
          - type: 'null'
          title: Username
      required:
      - channel
      - code
      title: OtpLoginVerify
      type: object
    OtpSendRequest:
      properties:
        channel:
          pattern: ^(email|sms)$
          title: Channel
          type: string
        login_token:
          minLength: 1
          title: Login Token
          type: string
      required:
      - login_token
      - channel
      title: OtpSendRequest
      type: object
    OtpVerifyRequest:
      properties:
        channel:
          pattern: ^(email|sms)$
          title: Channel
          type: string
        code:
          minLength: 1
          title: Code
          type: string
        login_token:
          minLength: 1
          title: Login Token
          type: string
      required:
      - login_token
      - channel
      - code
      title: OtpVerifyRequest
      type: object
    PasswordResetConfirm:
      properties:
        new_password:
          minLength: 1
          title: New Password
          type: string
        token:
          minLength: 1
          title: Token
          type: string
      required:
      - token
      - new_password
      title: PasswordResetConfirm
      type: object
    PlatformAdminKeyCreate:
      properties:
        caller_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Caller Id
        name:
          title: Name
          type: string
        scopes:
          items:
            type: string
          title: Scopes
          type: array
      required:
      - name
      title: PlatformAdminKeyCreate
      type: object
    PlatformAdminKeyResponse:
      properties:
        caller_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Caller Id
        id:
          format: uuid
          title: Id
          type: string
        key:
          anyOf:
          - type: string
          - type: 'null'
          title: Key
        key_prefix:
          title: Key Prefix
          type: string
        scopes:
          items:
            type: string
          title: Scopes
          type: array
        tenant_id:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Tenant Id
      required:
      - id
      - key_prefix
      - scopes
      title: PlatformAdminKeyResponse
      type: object
    PlatformOperatorList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/PlatformOperatorSummary'
          title: Items
          type: array
        next_cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Cursor
      required:
      - items
      title: PlatformOperatorList
      type: object
    PlatformOperatorSummary:
      properties:
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        identity_id:
          format: uuid
          title: Identity Id
          type: string
        status:
          title: Status
          type: string
        tenant_id:
          format: uuid
          title: Tenant Id
          type: string
        tenant_slug:
          title: Tenant Slug
          type: string
      required:
      - identity_id
      - tenant_id
      - tenant_slug
      - email
      - status
      title: PlatformOperatorSummary
      type: object
    PreservedRulesModel:
      description: 'Read-only view of the settings this surface preserves but does not manage.


        Presence only — the decision service''s endpoint secret is never exposed in any form.'
      properties:
        block_disposable:
          default: false
          title: Block Disposable
          type: boolean
        decision_service_configured:
          default: false
          title: Decision Service Configured
          type: boolean
        window_end:
          anyOf:
          - type: string
          - type: 'null'
          title: Window End
        window_start:
          anyOf:
          - type: string
          - type: 'null'
          title: Window Start
      title: PreservedRulesModel
      type: object
    ProviderCreate:
      properties:
        authorization_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization Url
        client_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Id
        client_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Secret
        jit_provisioning:
          default: false
          title: Jit Provisioning
          type: boolean
        name:
          title: Name
          type: string
        provider_type:
          title: Provider Type
          type: string
        saml_certificate:
          anyOf:
          - type: string
          - type: 'null'
          title: Saml Certificate
        scim_enabled:
          default: false
          title: Scim Enabled
          type: boolean
        token_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Token Url
        userinfo_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Userinfo Url
        verified_domains:
          items:
            type: string
          title: Verified Domains
          type: array
      required:
      - name
      - provider_type
      title: ProviderCreate
      type: object
    ProviderResponse:
      properties:
        id:
          format: uuid
          title: Id
          type: string
        name:
          title: Name
          type: string
        provider_type:
          title: Provider Type
          type: string
        scim_bearer_token:
          anyOf:
          - type: string
          - type: 'null'
          title: Scim Bearer Token
      required:
      - id
      - name
      - provider_type
      title: ProviderResponse
      type: object
    ReassignOwnerRequest:
      properties:
        new_owner_identity_id:
          format: uuid
          title: New Owner Identity Id
          type: string
      required:
      - new_owner_identity_id
      title: ReassignOwnerRequest
      type: object
    RegisterAliasRequest:
      properties:
        alias_email:
          title: Alias Email
          type: string
      required:
      - alias_email
      title: RegisterAliasRequest
      type: object
    RegisterBegin:
      properties:
        login_token:
          minLength: 1
          title: Login Token
          type: string
      required:
      - login_token
      title: RegisterBegin
      type: object
    RegisterFinish:
      properties:
        credential:
          additionalProperties: true
          title: Credential
          type: object
        login_token:
          minLength: 1
          title: Login Token
          type: string
      required:
      - login_token
      - credential
      title: RegisterFinish
      type: object
    RegisterKeyRequest:
      properties:
        audience:
          anyOf:
          - type: string
          - type: 'null'
          title: Audience
        expires_in_days:
          anyOf:
          - type: integer
          - type: 'null'
          title: Expires In Days
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        public_key:
          title: Public Key
          type: string
        scope:
          default: ''
          title: Scope
          type: string
      required:
      - public_key
      title: RegisterKeyRequest
      type: object
    RegisterRequest:
      properties:
        email:
          format: email
          title: Email
          type: string
        password:
          minLength: 1
          title: Password
          type: string
      required:
      - email
      - password
      title: RegisterRequest
      type: object
    RegisteredKey:
      properties:
        audience:
          anyOf:
          - type: string
          - type: 'null'
          title: Audience
        comment:
          anyOf:
          - type: string
          - type: 'null'
          title: Comment
        created_at:
          format: date-time
          title: Created At
          type: string
        expires_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Expires At
        fingerprint:
          title: Fingerprint
          type: string
        key_id:
          format: uuid
          title: Key Id
          type: string
        key_type:
          title: Key Type
          type: string
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        public_key:
          title: Public Key
          type: string
        scope:
          title: Scope
          type: string
      required:
      - key_id
      - key_type
      - fingerprint
      - public_key
      - scope
      - created_at
      title: RegisteredKey
      type: object
    RegistrationPolicyResponse:
      properties:
        allowlist:
          $ref: '#/components/schemas/DomainListModel'
        denylist:
          $ref: '#/components/schemas/DomainListModel'
        invitation_only:
          title: Invitation Only
          type: boolean
        other_rules:
          $ref: '#/components/schemas/PreservedRulesModel'
        version:
          title: Version
          type: string
      required:
      - invitation_only
      - allowlist
      - denylist
      - other_rules
      - version
      title: RegistrationPolicyResponse
      type: object
    RegistrationPolicyUpdate:
      properties:
        allowlist:
          $ref: '#/components/schemas/DomainListModel'
        denylist:
          $ref: '#/components/schemas/DomainListModel'
        invitation_only:
          title: Invitation Only
          type: boolean
        version:
          anyOf:
          - type: string
          - type: 'null'
          title: Version
      required:
      - invitation_only
      - allowlist
      - denylist
      title: RegistrationPolicyUpdate
      type: object
    RestoreResponse:
      properties:
        completed_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Completed At
        confirmation_token:
          anyOf:
          - type: string
          - type: 'null'
          title: Confirmation Token
        conflicts:
          anyOf:
          - items: {}
            type: array
          - type: 'null'
          title: Conflicts
        created_at:
          format: date-time
          title: Created At
          type: string
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Code
        id:
          format: uuid
          title: Id
          type: string
        mode:
          title: Mode
          type: string
        phase:
          anyOf:
          - type: string
          - type: 'null'
          title: Phase
        preview:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Preview
        scope:
          anyOf:
          - type: string
          - type: 'null'
          title: Scope
        status:
          title: Status
          type: string
        tenant_id:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Tenant Id
      required:
      - id
      - scope
      - tenant_id
      - mode
      - status
      - phase
      - preview
      - conflicts
      - confirmation_token
      - error_code
      - created_at
      - completed_at
      title: RestoreResponse
      type: object
    RoleCreate:
      properties:
        is_default:
          default: false
          title: Is Default
          type: boolean
        name:
          title: Name
          type: string
        permissions:
          items:
            type: string
          title: Permissions
          type: array
      required:
      - name
      title: RoleCreate
      type: object
    RoleList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/RoleResponse'
          title: Items
          type: array
      required:
      - items
      title: RoleList
      type: object
    RoleResponse:
      properties:
        id:
          format: uuid
          title: Id
          type: string
        is_builtin:
          default: false
          title: Is Builtin
          type: boolean
        is_default:
          title: Is Default
          type: boolean
        name:
          title: Name
          type: string
        permissions:
          items:
            type: string
          title: Permissions
          type: array
      required:
      - id
      - name
      - permissions
      - is_default
      title: RoleResponse
      type: object
    RotateSecretRequest:
      properties:
        overlap_seconds:
          anyOf:
          - type: integer
          - type: 'null'
          title: Overlap Seconds
      title: RotateSecretRequest
      type: object
    RotatedSecretResponse:
      properties:
        client_id:
          title: Client Id
          type: string
        client_secret:
          title: Client Secret
          type: string
        id:
          format: uuid
          title: Id
          type: string
        mode:
          title: Mode
          type: string
        overlap_expires_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Overlap Expires At
        secret_rotated_at:
          format: date-time
          title: Secret Rotated At
          type: string
      required:
      - id
      - client_id
      - client_secret
      - mode
      - secret_rotated_at
      title: RotatedSecretResponse
      type: object
    SamlIssueRequest:
      properties:
        client_id:
          minLength: 1
          title: Client Id
          type: string
        login_token:
          minLength: 1
          title: Login Token
          type: string
      required:
      - login_token
      - client_id
      title: SamlIssueRequest
      type: object
    SelectableApplicationItem:
      properties:
        application_id:
          format: uuid
          title: Application Id
          type: string
        client_id:
          title: Client Id
          type: string
        description:
          anyOf:
          - type: string
          - type: 'null'
          description: One line saying what this application is for; null when none is set.
          title: Description
        home_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Home Url
        icon_url:
          anyOf:
          - type: string
          - type: 'null'
          description: Absolute http(s) address of an image to show beside it; null when none is set.
            The platform never fetches this address — render it, or show a placeholder.
          title: Icon Url
        label:
          description: 'The name to show a person for this application: the administrator-set label when
            there is one, otherwise `name`. Always present. Entries are ordered by this field, case-insensitively
            — the same order the hosted menu uses.'
          title: Label
          type: string
        launchable:
          title: Launchable
          type: boolean
        name:
          title: Name
          type: string
        source:
          title: Source
          type: string
      required:
      - application_id
      - client_id
      - name
      - label
      - home_url
      - launchable
      - source
      title: SelectableApplicationItem
      type: object
    SessionList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/SessionResponse'
          title: Items
          type: array
      required:
      - items
      title: SessionList
      type: object
    SessionResponse:
      properties:
        aal:
          title: Aal
          type: integer
        auth_method:
          title: Auth Method
          type: string
        created_at:
          format: date-time
          title: Created At
          type: string
        geo_city:
          anyOf:
          - type: string
          - type: 'null'
          title: Geo City
        geo_country:
          anyOf:
          - type: string
          - type: 'null'
          title: Geo Country
        id:
          format: uuid
          title: Id
          type: string
        ip_address:
          anyOf:
          - type: string
          - type: 'null'
          title: Ip Address
        last_activity_at:
          format: date-time
          title: Last Activity At
          type: string
        mfa_completed:
          title: Mfa Completed
          type: boolean
        status:
          title: Status
          type: string
        user_agent:
          anyOf:
          - type: string
          - type: 'null'
          title: User Agent
      required:
      - id
      - auth_method
      - aal
      - mfa_completed
      - ip_address
      - user_agent
      - geo_country
      - geo_city
      - status
      - last_activity_at
      - created_at
      title: SessionResponse
      type: object
    StartAliasRequest:
      properties:
        alias_email:
          format: email
          title: Alias Email
          type: string
      required:
      - alias_email
      title: StartAliasRequest
      type: object
    SuggestionList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/SuggestionResponse'
          title: Items
          type: array
      required:
      - items
      title: SuggestionList
      type: object
    SuggestionResponse:
      properties:
        confidence:
          title: Confidence
          type: number
        created_at:
          format: date-time
          title: Created At
          type: string
        description:
          title: Description
          type: string
        entity_id:
          format: uuid
          title: Entity Id
          type: string
        entity_type:
          title: Entity Type
          type: string
        id:
          format: uuid
          title: Id
          type: string
        resolved_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Resolved At
        status:
          title: Status
          type: string
        suggestion_type:
          title: Suggestion Type
          type: string
        title:
          title: Title
          type: string
      required:
      - id
      - suggestion_type
      - title
      - description
      - confidence
      - entity_type
      - entity_id
      - status
      - created_at
      - resolved_at
      title: SuggestionResponse
      type: object
    TenantConfiguration:
      description: One tenant's effective, secret-free configuration.
      properties:
        administrators:
          items:
            $ref: '#/components/schemas/AdministratorSummary'
          title: Administrators
          type: array
        audit_retention_days:
          $ref: '#/components/schemas/EffectiveValue'
        branding:
          additionalProperties: true
          title: Branding
          type: object
        created_at:
          format: date-time
          title: Created At
          type: string
        group_creation_policy:
          additionalProperties: true
          title: Group Creation Policy
          type: object
        hosted_login_enabled:
          title: Hosted Login Enabled
          type: boolean
        id:
          format: uuid
          title: Id
          type: string
        issuer:
          title: Issuer
          type: string
        jwks_algorithm:
          title: Jwks Algorithm
          type: string
        jwks_uri:
          title: Jwks Uri
          type: string
        lockout_duration_seconds:
          title: Lockout Duration Seconds
          type: integer
        max_failed_login_attempts:
          title: Max Failed Login Attempts
          type: integer
        mfa_policy:
          title: Mfa Policy
          type: string
        name:
          title: Name
          type: string
        password_policy:
          $ref: '#/components/schemas/EffectiveValue'
        passwordless_jit_provisioning:
          title: Passwordless Jit Provisioning
          type: boolean
        provisioned_by_caller:
          anyOf:
          - type: string
          - type: 'null'
          title: Provisioned By Caller
        rate_limit_policy:
          $ref: '#/components/schemas/EffectiveValue'
        refresh_token_lifetime_seconds:
          title: Refresh Token Lifetime Seconds
          type: integer
        refresh_token_rotation:
          title: Refresh Token Rotation
          type: boolean
        registration_policy:
          additionalProperties: true
          title: Registration Policy
          type: object
        revoke_tokens_on_identity_suspend:
          title: Revoke Tokens On Identity Suspend
          type: boolean
        session_lifetime_seconds:
          title: Session Lifetime Seconds
          type: integer
        signing_key_configured:
          title: Signing Key Configured
          type: boolean
        slug:
          title: Slug
          type: string
        status:
          title: Status
          type: string
        updated_at:
          format: date-time
          title: Updated At
          type: string
        username_quarantine_days:
          $ref: '#/components/schemas/EffectiveValue'
      required:
      - id
      - name
      - slug
      - status
      - provisioned_by_caller
      - created_at
      - updated_at
      - mfa_policy
      - password_policy
      - session_lifetime_seconds
      - refresh_token_lifetime_seconds
      - refresh_token_rotation
      - max_failed_login_attempts
      - lockout_duration_seconds
      - registration_policy
      - passwordless_jit_provisioning
      - hosted_login_enabled
      - group_creation_policy
      - revoke_tokens_on_identity_suspend
      - audit_retention_days
      - username_quarantine_days
      - rate_limit_policy
      - branding
      - issuer
      - jwks_uri
      - jwks_algorithm
      - signing_key_configured
      title: TenantConfiguration
      type: object
    TenantCreate:
      properties:
        admin_email:
          anyOf:
          - format: email
            type: string
          - type: 'null'
          title: Admin Email
        name:
          title: Name
          type: string
        password_policy:
          additionalProperties: true
          title: Password Policy
          type: object
        send_welcome_email:
          default: false
          title: Send Welcome Email
          type: boolean
        slug:
          title: Slug
          type: string
      required:
      - name
      - slug
      title: TenantCreate
      type: object
    TenantList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/TenantSummary'
          title: Items
          type: array
        next_cursor:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Cursor
      required:
      - items
      title: TenantList
      type: object
    TenantResponse:
      properties:
        admin_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Admin Email
        admin_identity_id:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Admin Identity Id
        branding_warnings:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Branding Warnings
        hosted_login_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Hosted Login Enabled
        id:
          format: uuid
          title: Id
          type: string
        jwks_algorithm:
          title: Jwks Algorithm
          type: string
        provisioned_by_caller:
          anyOf:
          - type: string
          - type: 'null'
          title: Provisioned By Caller
        registration_webhook_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Registration Webhook Secret
        slug:
          title: Slug
          type: string
        welcome_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Welcome Email
      required:
      - id
      - slug
      - jwks_algorithm
      title: TenantResponse
      type: object
    TenantSummary:
      description: One row of the tenant inventory.
      properties:
        application_count:
          title: Application Count
          type: integer
        created_at:
          format: date-time
          title: Created At
          type: string
        hosted_login_enabled:
          title: Hosted Login Enabled
          type: boolean
        id:
          format: uuid
          title: Id
          type: string
        name:
          title: Name
          type: string
        provisioned_by_caller:
          anyOf:
          - type: string
          - type: 'null'
          title: Provisioned By Caller
        slug:
          title: Slug
          type: string
        status:
          title: Status
          type: string
        user_count:
          title: User Count
          type: integer
      required:
      - id
      - name
      - slug
      - status
      - hosted_login_enabled
      - provisioned_by_caller
      - user_count
      - application_count
      - created_at
      title: TenantSummary
      type: object
    TenantUpdate:
      properties:
        branding:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Branding
        group_creation_policy:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Group Creation Policy
        hosted_login_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Hosted Login Enabled
        passwordless_jit_provisioning:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Passwordless Jit Provisioning
        registration_policy:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Registration Policy
        revoke_tokens_on_identity_suspend:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Revoke Tokens On Identity Suspend
      title: TenantUpdate
      type: object
    TokenConfirm:
      properties:
        token:
          minLength: 1
          title: Token
          type: string
      required:
      - token
      title: TokenConfirm
      type: object
    TokenMetadata:
      properties:
        audience:
          anyOf:
          - type: string
          - type: 'null'
          title: Audience
        created_at:
          format: date-time
          title: Created At
          type: string
        expires_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Expires At
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        last_used_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          title: Last Used At
        revoked:
          title: Revoked
          type: boolean
        scope:
          title: Scope
          type: string
        token_id:
          format: uuid
          title: Token Id
          type: string
      required:
      - token_id
      - scope
      - created_at
      - revoked
      title: TokenMetadata
      type: object
    TotpEnrollRequest:
      properties:
        login_token:
          minLength: 1
          title: Login Token
          type: string
      required:
      - login_token
      title: TotpEnrollRequest
      type: object
    TotpEnrollResponse:
      properties:
        otpauth_uri:
          title: Otpauth Uri
          type: string
        secret:
          title: Secret
          type: string
      required:
      - secret
      - otpauth_uri
      title: TotpEnrollResponse
      type: object
    TransferOwnershipRequest:
      properties:
        new_owner_identity_id:
          format: uuid
          title: New Owner Identity Id
          type: string
      required:
      - new_owner_identity_id
      title: TransferOwnershipRequest
      type: object
    UsernameBody:
      properties:
        username:
          title: Username
          type: string
      required:
      - username
      title: UsernameBody
      type: object
    UsernameResponse:
      properties:
        username:
          anyOf:
          - type: string
          - type: 'null'
          title: Username
      required:
      - username
      title: UsernameResponse
      type: object
    ValidationError:
      properties:
        ctx:
          title: Context
          type: object
        input:
          title: Input
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
      - loc
      - msg
      - type
      title: ValidationError
      type: object
    VerifyAliasRequest:
      properties:
        alias_email:
          format: email
          title: Alias Email
          type: string
        code:
          title: Code
          type: string
      required:
      - alias_email
      - code
      title: VerifyAliasRequest
      type: object
    WebhookCreate:
      properties:
        event_types:
          items:
            type: string
          title: Event Types
          type: array
        url:
          title: Url
          type: string
      required:
      - url
      - event_types
      title: WebhookCreate
      type: object
    WebhookCreated:
      properties:
        created_at:
          format: date-time
          title: Created At
          type: string
        event_types:
          items:
            type: string
          title: Event Types
          type: array
        failure_count:
          title: Failure Count
          type: integer
        id:
          format: uuid
          title: Id
          type: string
        is_active:
          title: Is Active
          type: boolean
        signing_secret:
          title: Signing Secret
          type: string
        url:
          title: Url
          type: string
      required:
      - id
      - url
      - event_types
      - is_active
      - failure_count
      - created_at
      - signing_secret
      title: WebhookCreated
      type: object
    WebhookList:
      properties:
        items:
          items:
            $ref: '#/components/schemas/WebhookResponse'
          title: Items
          type: array
      required:
      - items
      title: WebhookList
      type: object
    WebhookResponse:
      properties:
        created_at:
          format: date-time
          title: Created At
          type: string
        event_types:
          items:
            type: string
          title: Event Types
          type: array
        failure_count:
          title: Failure Count
          type: integer
        id:
          format: uuid
          title: Id
          type: string
        is_active:
          title: Is Active
          type: boolean
        url:
          title: Url
          type: string
      required:
      - id
      - url
      - event_types
      - is_active
      - failure_count
      - created_at
      title: WebhookResponse
      type: object
    hap__api__v1__email_aliases__LookupRequest:
      properties:
        email:
          title: Email
          type: string
      required:
      - email
      title: LookupRequest
      type: object
    hap__api__v1__ssh_keys__LookupRequest:
      properties:
        fingerprint:
          anyOf:
          - type: string
          - type: 'null'
          title: Fingerprint
        public_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Public Key
      title: LookupRequest
      type: object
info:
  description: API-first, headless, multi-tenant identity engine. OAuth 2.0 / OpenID Connect authorization
    server with identities and password credentials (MVP).
  title: Headless Auth Platform
  version: 0.1.0
openapi: 3.1.0
paths:
  /healthz:
    get:
      operationId: healthz_healthz_get
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Healthz Healthz Get
                type: object
          description: Successful Response
      summary: Healthz
      tags:
      - health
  /invitations/{token}:
    get:
      operationId: open_invitation_invitations__token__get
      parameters:
      - in: path
        name: token
        required: true
        schema:
          title: Token
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Open Invitation
      tags:
      - invitations
  /invitations/{token}/accept:
    post:
      operationId: accept_invitation_invitations__token__accept_post
      parameters:
      - in: path
        name: token
        required: true
        schema:
          title: Token
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Accept Invitation
      tags:
      - invitations
  /invitations/{token}/reject:
    post:
      operationId: reject_invitation_invitations__token__reject_post
      parameters:
      - in: path
        name: token
        required: true
        schema:
          title: Token
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Reject Invitation
      tags:
      - invitations
  /menu/{tenant_slug}:
    get:
      description: Short alias reached from OUTSIDE the tenant, where the session cookie does not travel.
      operationId: hosted_menu_shortcut_menu__tenant_slug__get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Menu Shortcut
      tags:
      - hosted-login
  /platform:
    get:
      operationId: platform_root_platform_get
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
      summary: Platform Root
      tags:
      - hosted-platform
  /platform/tenants:
    get:
      operationId: platform_tenants_platform_tenants_get
      parameters:
      - in: query
        name: cursor
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Cursor
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Platform Tenants
      tags:
      - hosted-platform
  /platform/tenants/{tenant_id}:
    get:
      operationId: platform_tenant_detail_platform_tenants__tenant_id__get
      parameters:
      - in: path
        name: tenant_id
        required: true
        schema:
          format: uuid
          title: Tenant Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Platform Tenant Detail
      tags:
      - hosted-platform
  /readyz:
    get:
      operationId: readyz_readyz_get
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
      summary: Readyz
      tags:
      - health
  /scim/v2/ServiceProviderConfig:
    get:
      operationId: service_provider_config_scim_v2_ServiceProviderConfig_get
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Service Provider Config Scim V2 Serviceproviderconfig Get
                type: object
          description: Successful Response
      summary: Service Provider Config
      tags:
      - scim
  /scim/v2/Users:
    post:
      operationId: create_user_scim_v2_Users_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              title: Body
              type: object
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Create User Scim V2 Users Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create User
      tags:
      - scim
  /scim/v2/Users/{user_id}:
    delete:
      operationId: delete_user_scim_v2_Users__user_id__delete
      parameters:
      - in: path
        name: user_id
        required: true
        schema:
          format: uuid
          title: User Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Delete User
      tags:
      - scim
    get:
      operationId: get_user_scim_v2_Users__user_id__get
      parameters:
      - in: path
        name: user_id
        required: true
        schema:
          format: uuid
          title: User Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Get User Scim V2 Users  User Id  Get
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get User
      tags:
      - scim
    patch:
      operationId: patch_user_scim_v2_Users__user_id__patch
      parameters:
      - in: path
        name: user_id
        required: true
        schema:
          format: uuid
          title: User Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              title: Body
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Patch User Scim V2 Users  User Id  Patch
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Patch User
      tags:
      - scim
  /t/{slug}/hosted/admin:
    get:
      operationId: admin_console_t__slug__hosted_admin_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin Console
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications:
    get:
      operationId: applications_page_t__slug__hosted_admin_applications_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Applications Page
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/new:
    get:
      operationId: create_application_page_t__slug__hosted_admin_applications_new_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Application Page
      tags:
      - hosted-admin
    post:
      operationId: create_application_submit_t__slug__hosted_admin_applications_new_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_create_application_submit_t__slug__hosted_admin_applications_new_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Application Submit
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}:
    get:
      operationId: application_detail_t__slug__hosted_admin_applications__application_id__get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Application Detail
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/access/add:
    post:
      operationId: app_access_grant_user_t__slug__hosted_admin_applications__application_id__access_add_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_app_access_grant_user_t__slug__hosted_admin_applications__application_id__access_add_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: App Access Grant User
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/access/{identity_id}/remove:
    post:
      operationId: app_access_revoke_user_t__slug__hosted_admin_applications__application_id__access__identity_id__remove_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: App Access Revoke User
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/admins/add:
    post:
      operationId: app_admin_add_t__slug__hosted_admin_applications__application_id__admins_add_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_app_admin_add_t__slug__hosted_admin_applications__application_id__admins_add_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: App Admin Add
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/admins/{identity_id}/remove:
    post:
      operationId: app_admin_remove_t__slug__hosted_admin_applications__application_id__admins__identity_id__remove_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: App Admin Remove
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/delete:
    post:
      operationId: application_delete_t__slug__hosted_admin_applications__application_id__delete_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Application Delete
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/disable:
    post:
      operationId: application_disable_t__slug__hosted_admin_applications__application_id__disable_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Application Disable
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/edit:
    get:
      operationId: application_edit_page_t__slug__hosted_admin_applications__application_id__edit_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Application Edit Page
      tags:
      - hosted-admin
    post:
      operationId: application_edit_submit_t__slug__hosted_admin_applications__application_id__edit_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_application_edit_submit_t__slug__hosted_admin_applications__application_id__edit_post'
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Application Edit Submit
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/enable:
    post:
      operationId: application_enable_t__slug__hosted_admin_applications__application_id__enable_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Application Enable
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/groups/add:
    post:
      operationId: app_group_grant_t__slug__hosted_admin_applications__application_id__groups_add_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_app_group_grant_t__slug__hosted_admin_applications__application_id__groups_add_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: App Group Grant
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/groups/{group_id}/remove:
    post:
      operationId: app_group_revoke_t__slug__hosted_admin_applications__application_id__groups__group_id__remove_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: App Group Revoke
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/applications/{application_id}/rotate-secret:
    post:
      operationId: application_rotate_secret_t__slug__hosted_admin_applications__application_id__rotate_secret_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_application_rotate_secret_t__slug__hosted_admin_applications__application_id__rotate_secret_post'
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Application Rotate Secret
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/backups:
    get:
      operationId: backups_page_t__slug__hosted_admin_backups_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Backups Page
      tags:
      - hosted-admin
    post:
      operationId: backups_create_t__slug__hosted_admin_backups_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_backups_create_t__slug__hosted_admin_backups_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Backups Create
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/backups/{backup_id}/delete:
    post:
      operationId: backups_delete_t__slug__hosted_admin_backups__backup_id__delete_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: backup_id
        required: true
        schema:
          format: uuid
          title: Backup Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Backups Delete
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/backups/{backup_id}/download:
    get:
      operationId: backups_download_t__slug__hosted_admin_backups__backup_id__download_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: backup_id
        required: true
        schema:
          format: uuid
          title: Backup Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Backups Download
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/branding:
    get:
      operationId: branding_page_t__slug__hosted_admin_branding_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Branding Page
      tags:
      - hosted-admin
    post:
      operationId: branding_save_t__slug__hosted_admin_branding_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_branding_save_t__slug__hosted_admin_branding_post'
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Branding Save
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/groups:
    get:
      description: Group administration (feature 028 FR-006) — moved off the console, otherwise unchanged.
      operationId: admin_groups_page_t__slug__hosted_admin_groups_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin Groups Page
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/groups/new:
    get:
      operationId: create_group_admin_page_t__slug__hosted_admin_groups_new_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Group Admin Page
      tags:
      - hosted-admin
    post:
      operationId: create_group_admin_submit_t__slug__hosted_admin_groups_new_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_create_group_admin_submit_t__slug__hosted_admin_groups_new_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Group Admin Submit
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/groups/{group_id}/reassign-owner:
    post:
      operationId: admin_reassign_owner_t__slug__hosted_admin_groups__group_id__reassign_owner_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_admin_reassign_owner_t__slug__hosted_admin_groups__group_id__reassign_owner_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin Reassign Owner
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/platform:
    get:
      description: 'Hand a designated operator across to the platform view (feature 022, research R5).


        This route exists because of a collision between two shipped decisions: the operator view must

        live outside any tenant''s URL space (022 FR-018), and since feature 023 the session cookie is

        scoped to ``Path=/t/{slug}`` — so the browser sends nothing to ``/platform/…``. Here, inside the

        cookie''s path, the ordinary tenant session still authenticates; we re-present that **same**

        token under ``/platform`` and redirect.


        A non-operator gets **404**, not 403: a tenant administrator who lacks the designation should

        not learn that a platform surface exists behind this path.'
      operationId: platform_handoff_t__slug__hosted_admin_platform_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Platform Handoff
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/registration:
    get:
      operationId: registration_page_t__slug__hosted_admin_registration_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Registration Page
      tags:
      - hosted-admin
    post:
      operationId: registration_save_t__slug__hosted_admin_registration_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_registration_save_t__slug__hosted_admin_registration_post'
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Registration Save
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/restores:
    post:
      operationId: restores_run_t__slug__hosted_admin_restores_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_restores_run_t__slug__hosted_admin_restores_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Restores Run
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/search-users:
    get:
      description: 'Tenant-wide email autocomplete for the emergency owner-reassign field; tenant admins
        only.


        When ``group`` is given, the group''s current owner is excluded (reassigning to them is a no-op).'
      operationId: admin_search_users_t__slug__hosted_admin_search_users_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: query
        name: q
        required: false
        schema:
          default: ''
          title: Q
          type: string
      - in: query
        name: group
        required: false
        schema:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Group
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin Search Users
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users:
    get:
      description: User administration (feature 028 FR-005) — moved off the console, otherwise unchanged.
      operationId: admin_users_page_t__slug__hosted_admin_users_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin Users Page
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/add:
    post:
      operationId: admin_add_user_t__slug__hosted_admin_users_add_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_admin_add_user_t__slug__hosted_admin_users_add_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin Add User
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/{identity_id}:
    get:
      operationId: user_detail_t__slug__hosted_admin_users__identity_id__get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: User Detail
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/{identity_id}/access:
    get:
      operationId: user_access_page_t__slug__hosted_admin_users__identity_id__access_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: User Access Page
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/{identity_id}/access/add:
    post:
      operationId: user_access_add_t__slug__hosted_admin_users__identity_id__access_add_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_user_access_add_t__slug__hosted_admin_users__identity_id__access_add_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: User Access Add
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/{identity_id}/access/{application_id}/remove:
    post:
      operationId: user_access_remove_t__slug__hosted_admin_users__identity_id__access__application_id__remove_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: User Access Remove
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/{identity_id}/roles:
    get:
      operationId: user_roles_page_t__slug__hosted_admin_users__identity_id__roles_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: User Roles Page
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/{identity_id}/roles/add:
    post:
      operationId: user_roles_add_t__slug__hosted_admin_users__identity_id__roles_add_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_user_roles_add_t__slug__hosted_admin_users__identity_id__roles_add_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: User Roles Add
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/{identity_id}/roles/{role_id}/remove:
    post:
      operationId: user_roles_remove_t__slug__hosted_admin_users__identity_id__roles__role_id__remove_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: path
        name: role_id
        required: true
        schema:
          format: uuid
          title: Role Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: User Roles Remove
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/{identity_id}/status:
    post:
      operationId: admin_set_status_t__slug__hosted_admin_users__identity_id__status_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_admin_set_status_t__slug__hosted_admin_users__identity_id__status_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin Set Status
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/{identity_id}/tenant-admin:
    post:
      operationId: admin_set_tenant_admin_t__slug__hosted_admin_users__identity_id__tenant_admin_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_admin_set_tenant_admin_t__slug__hosted_admin_users__identity_id__tenant_admin_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin Set Tenant Admin
      tags:
      - hosted-admin
  /t/{slug}/hosted/admin/users/{identity_id}/username:
    post:
      description: 'Set or remove a person''s username (feature 013) from the console.


        ``self_service=False`` deliberately: the 24-hour change cooldown is an anti-abuse rule aimed at

        people churning their own handle (013 FR-020), and an administrator correcting someone''s

        username should not be held off by it. The released handle still enters quarantine either way.


        Both halves have REST equivalents already — ``PATCH /v1/identities/{id}`` carries ``username``

        and ``DELETE /v1/identities/{id}/username`` clears it — so this adds no UI-only capability

        (constitution Principle II).'
      operationId: admin_set_username_t__slug__hosted_admin_users__identity_id__username_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_admin_set_username_t__slug__hosted_admin_users__identity_id__username_post'
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin Set Username
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups:
    get:
      operationId: my_groups_page_t__slug__hosted_groups_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: My Groups Page
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups/create:
    post:
      operationId: create_group_page_t__slug__hosted_groups_create_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_create_group_page_t__slug__hosted_groups_create_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Group Page
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups/{group_id}:
    get:
      operationId: group_page_t__slug__hosted_groups__group_id__get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Group Page
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups/{group_id}/applications/add:
    post:
      operationId: group_grant_application_t__slug__hosted_groups__group_id__applications_add_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_group_grant_application_t__slug__hosted_groups__group_id__applications_add_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Group Grant Application
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups/{group_id}/applications/{application_id}/remove:
    post:
      operationId: group_revoke_application_t__slug__hosted_groups__group_id__applications__application_id__remove_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Group Revoke Application
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups/{group_id}/leave:
    post:
      operationId: group_leave_t__slug__hosted_groups__group_id__leave_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Group Leave
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups/{group_id}/members/add:
    post:
      operationId: group_add_member_t__slug__hosted_groups__group_id__members_add_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_group_add_member_t__slug__hosted_groups__group_id__members_add_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Group Add Member
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups/{group_id}/members/{identity_id}/admin:
    post:
      operationId: group_set_admin_t__slug__hosted_groups__group_id__members__identity_id__admin_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_group_set_admin_t__slug__hosted_groups__group_id__members__identity_id__admin_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Group Set Admin
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups/{group_id}/members/{identity_id}/remove:
    post:
      operationId: group_remove_member_t__slug__hosted_groups__group_id__members__identity_id__remove_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Group Remove Member
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups/{group_id}/search-users:
    get:
      description: Email-autocomplete for the add-member field; group/tenant admins only.
      operationId: group_search_users_t__slug__hosted_groups__group_id__search_users_get
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: query
        name: q
        required: false
        schema:
          default: ''
          title: Q
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Group Search Users
      tags:
      - hosted-admin
  /t/{slug}/hosted/groups/{group_id}/transfer:
    post:
      operationId: group_transfer_t__slug__hosted_groups__group_id__transfer_post
      parameters:
      - in: path
        name: slug
        required: true
        schema:
          title: Slug
          type: string
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_group_transfer_t__slug__hosted_groups__group_id__transfer_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Group Transfer
      tags:
      - hosted-admin
  /t/{tenant_slug}:
    get:
      description: 'The application selector (FR-020). Parameter-free, so any application can link to
        it.


        Served at TWO addresses, by this one handler: the tenant root ``/t/{slug}`` and the original

        ``/t/{slug}/hosted/apps``. The root is where this is going — ``…/hosted/apps`` is to be retired

        — so the two are the same function and the same session cookie, never a redirect between them

        and never a second implementation. See the migration note below the ``…/go`` handler.'
      operationId: hosted_application_selector_t__tenant_slug__get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Application Selector
      tags:
      - hosted-login
  /t/{tenant_slug}/.well-known/oauth-authorization-server:
    get:
      operationId: discovery_t__tenant_slug___well_known_oauth_authorization_server_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Discovery T  Tenant Slug   Well Known Oauth Authorization Server Get
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Discovery
      tags:
      - oauth
  /t/{tenant_slug}/.well-known/openid-configuration:
    get:
      operationId: discovery_t__tenant_slug___well_known_openid_configuration_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Discovery T  Tenant Slug   Well Known Openid Configuration Get
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Discovery
      tags:
      - oauth
  /t/{tenant_slug}/exit:
    get:
      description: 'Leave an application: to the selector when there is a choice, otherwise out (FR-018/019/020).


        "Otherwise" means the person has at most one application and no administrative reach. Sending

        them to the selector would show a page with one button back into the application they just

        left; sending them to that application would be a loop. Exit means exit.


        A missing, expired or unusable session takes the same branch (FR-021). `hosted_logout` is

        already best-effort about the cookie — it clears and renders the signed-out page with no error

        — so there is nothing to special-case, and demanding a sign-in from someone trying to leave

        would be the wrong direction entirely.'
      operationId: hosted_exit_t__tenant_slug__exit_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Exit
      tags:
      - hosted-login
  /t/{tenant_slug}/hosted/apps:
    get:
      description: 'The application selector (FR-020). Parameter-free, so any application can link to
        it.


        Served at TWO addresses, by this one handler: the tenant root ``/t/{slug}`` and the original

        ``/t/{slug}/hosted/apps``. The root is where this is going — ``…/hosted/apps`` is to be retired

        — so the two are the same function and the same session cookie, never a redirect between them

        and never a second implementation. See the migration note below the ``…/go`` handler.'
      operationId: hosted_application_selector_t__tenant_slug__hosted_apps_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Application Selector
      tags:
      - hosted-login
  /t/{tenant_slug}/hosted/apps/{application_id}/go:
    post:
      description: 'Choose an application: register if needed, then forward (FR-022).


        A POST because it writes an entitlement. The application id comes from the URL, and is

        therefore caller-supplied — so it is checked against a list rebuilt here, not against anything

        the page said (FR-019).'
      operationId: hosted_application_go_t__tenant_slug__hosted_apps__application_id__go_post
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Application Go
      tags:
      - hosted-login
  /t/{tenant_slug}/hosted/consent:
    get:
      description: Ask the person whether this application may act for them (FR-001/002).
      operationId: hosted_consent_page_t__tenant_slug__hosted_consent_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      - in: query
        name: return_to
        required: false
        schema:
          default: ''
          title: Return To
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Consent Page
      tags:
      - hosted-login
    post:
      description: Record the answer and resume (FR-003/004).
      operationId: hosted_consent_submit_t__tenant_slug__hosted_consent_post
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_hosted_consent_submit_t__tenant_slug__hosted_consent_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Consent Submit
      tags:
      - hosted-login
  /t/{tenant_slug}/hosted/exit:
    get:
      description: 'The pre-2026-09-02 spelling. Kept working, as a redirect, for applications already
        shipped.


        A 307 rather than a 301: a permanent redirect is cached by browsers and proxies and would make

        the old path effectively un-retirable later, which is the opposite of the point.'
      operationId: hosted_exit_legacy_t__tenant_slug__hosted_exit_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Exit Legacy
      tags:
      - hosted-login
  /t/{tenant_slug}/hosted/login:
    get:
      operationId: hosted_login_page_t__tenant_slug__hosted_login_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      - in: query
        name: return_to
        required: false
        schema:
          default: ''
          title: Return To
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Login Page
      tags:
      - hosted-login
  /t/{tenant_slug}/hosted/login/request:
    post:
      operationId: hosted_login_request_t__tenant_slug__hosted_login_request_post
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_hosted_login_request_t__tenant_slug__hosted_login_request_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Login Request
      tags:
      - hosted-login
  /t/{tenant_slug}/hosted/login/verify:
    post:
      operationId: hosted_login_verify_t__tenant_slug__hosted_login_verify_post
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_hosted_login_verify_t__tenant_slug__hosted_login_verify_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Login Verify
      tags:
      - hosted-login
  /t/{tenant_slug}/hosted/logout:
    get:
      description: 'RP-initiated logout: revoke the hosted session, clear the cookie, then return the
        browser.


        Mirrors the OIDC ``end_session_endpoint``. ``post_logout_redirect_uri`` is honoured only when

        it is registered for the named ``client_id`` (never an open redirect); otherwise a plain

        signed-out page is shown.'
      operationId: hosted_logout_t__tenant_slug__hosted_logout_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      - in: query
        name: client_id
        required: false
        schema:
          default: ''
          title: Client Id
          type: string
      - in: query
        name: post_logout_redirect_uri
        required: false
        schema:
          default: ''
          title: Post Logout Redirect Uri
          type: string
      - in: query
        name: state
        required: false
        schema:
          default: ''
          title: State
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Logout
      tags:
      - hosted-login
  /t/{tenant_slug}/menu:
    get:
      description: 'Short in-tenant alias: redirect to the tenant root, which serves the selector.'
      operationId: hosted_menu_alias_t__tenant_slug__menu_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Hosted Menu Alias
      tags:
      - hosted-login
  /t/{tenant_slug}/oauth2/authorize:
    get:
      operationId: authorize_get_t__tenant_slug__oauth2_authorize_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      - in: query
        name: client_id
        required: true
        schema:
          title: Client Id
          type: string
      - in: query
        name: response_type
        required: false
        schema:
          default: code
          title: Response Type
          type: string
      - in: query
        name: redirect_uri
        required: true
        schema:
          title: Redirect Uri
          type: string
      - in: query
        name: scope
        required: false
        schema:
          default: openid
          title: Scope
          type: string
      - in: query
        name: state
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: State
      - in: query
        name: code_challenge
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Code Challenge
      - in: query
        name: code_challenge_method
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Code Challenge Method
      - in: query
        name: nonce
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Nonce
      - in: query
        name: login_token
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Login Token
      - in: query
        name: consent
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Consent
      - in: query
        name: acr_values
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Acr Values
      - in: query
        name: prompt
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Prompt
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Authorize Get
      tags:
      - oauth
    post:
      operationId: authorize_post_t__tenant_slug__oauth2_authorize_post
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_authorize_post_t__tenant_slug__oauth2_authorize_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Authorize Post
      tags:
      - oauth
  /t/{tenant_slug}/oauth2/introspect:
    post:
      operationId: introspect_t__tenant_slug__oauth2_introspect_post
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_introspect_t__tenant_slug__oauth2_introspect_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Introspect T  Tenant Slug  Oauth2 Introspect Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Introspect
      tags:
      - oauth
  /t/{tenant_slug}/oauth2/jwks:
    get:
      operationId: jwks_t__tenant_slug__oauth2_jwks_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Jwks T  Tenant Slug  Oauth2 Jwks Get
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Jwks
      tags:
      - oauth
  /t/{tenant_slug}/oauth2/revoke:
    post:
      operationId: revoke_t__tenant_slug__oauth2_revoke_post
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_revoke_t__tenant_slug__oauth2_revoke_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Revoke T  Tenant Slug  Oauth2 Revoke Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke
      tags:
      - oauth
  /t/{tenant_slug}/oauth2/token:
    post:
      operationId: token_t__tenant_slug__oauth2_token_post
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_token_t__tenant_slug__oauth2_token_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Token
      tags:
      - oauth
  /t/{tenant_slug}/oauth2/userinfo:
    get:
      operationId: userinfo_t__tenant_slug__oauth2_userinfo_get
      parameters:
      - in: path
        name: tenant_slug
        required: true
        schema:
          title: Tenant Slug
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Userinfo T  Tenant Slug  Oauth2 Userinfo Get
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Userinfo
      tags:
      - oauth
  /tenant-handovers/{token}:
    get:
      description: 'A thin browser page over the real POST below (Principle II: no UI-only capability).'
      operationId: handover_page_tenant_handovers__token__get
      parameters:
      - in: path
        name: token
        required: true
        schema:
          title: Token
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Handover Page
      tags:
      - tenant-handover
  /tenant-handovers/{token}/accept:
    post:
      operationId: accept_handover_tenant_handovers__token__accept_post
      parameters:
      - in: path
        name: token
        required: true
        schema:
          title: Token
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HandoverAcceptResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Accept Handover
      tags:
      - tenant-handover
  /tenant-handovers/{token}/decline:
    post:
      operationId: decline_handover_tenant_handovers__token__decline_post
      parameters:
      - in: path
        name: token
        required: true
        schema:
          title: Token
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Decline Handover Tenant Handovers  Token  Decline Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Decline Handover
      tags:
      - tenant-handover
  /v1/admin-keys:
    get:
      operationId: list_admin_keys_v1_admin_keys_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/AdminKeyResponse'
                title: Response List Admin Keys V1 Admin Keys Get
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Admin Keys
      tags:
      - admin
    post:
      operationId: create_admin_key_v1_admin_keys_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminKeyCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminKeyResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Admin Key
      tags:
      - admin
  /v1/admin-keys/{key_id}:
    delete:
      operationId: revoke_admin_key_v1_admin_keys__key_id__delete
      parameters:
      - in: path
        name: key_id
        required: true
        schema:
          format: uuid
          title: Key Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke Admin Key
      tags:
      - admin
  /v1/ai/suggestions:
    get:
      operationId: list_suggestions_v1_ai_suggestions_get
      parameters:
      - in: query
        name: status
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestionList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Suggestions
      tags:
      - ai
  /v1/ai/suggestions/{suggestion_id}:accept:
    post:
      operationId: accept_suggestion_v1_ai_suggestions__suggestion_id__accept_post
      parameters:
      - in: path
        name: suggestion_id
        required: true
        schema:
          format: uuid
          title: Suggestion Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestionResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Accept Suggestion
      tags:
      - ai
  /v1/ai/suggestions/{suggestion_id}:dismiss:
    post:
      operationId: dismiss_suggestion_v1_ai_suggestions__suggestion_id__dismiss_post
      parameters:
      - in: path
        name: suggestion_id
        required: true
        schema:
          format: uuid
          title: Suggestion Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestionResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Dismiss Suggestion
      tags:
      - ai
  /v1/applications:
    get:
      description: 'List this tenant''s live applications: ids, URIs, registered scopes, lifecycle state.


        Read-only; lets operators find an application''s `id` to manage it (PATCH/disable/rotate/delete)

        without a DB query. Deleted applications are excluded. Never returns secrets.'
      operationId: list_applications_v1_applications_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ApplicationListItem'
                title: Response List Applications V1 Applications Get
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Applications
      tags:
      - admin
    post:
      operationId: create_application_v1_applications_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Application
      tags:
      - admin
  /v1/applications/{application_id}:
    delete:
      description: Permanently retire an application (terminal soft-delete) + cascade (feature 016).
      operationId: delete_application_v1_applications__application_id__delete
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Delete Application
      tags:
      - admin
    patch:
      description: Update access mode and decision-hook config (005; manageable by an app admin, 018).
      operationId: update_application_v1_applications__application_id__patch
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationUpdate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Update Application
      tags:
      - admin
  /v1/applications/{application_id}/access:
    get:
      operationId: list_application_access_v1_applications__application_id__access_get
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: query
        name: cursor
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Cursor
      - in: query
        name: limit
        required: false
        schema:
          default: 50
          maximum: 200
          minimum: 1
          title: Limit
          type: integer
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessGrantList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Application Access
      tags:
      - access-control
  /v1/applications/{application_id}/access/{identity_id}:
    delete:
      description: Revoke an identity's access (tenant admin or an app admin of this app, feature 018).
      operationId: revoke_access_v1_applications__application_id__access__identity_id__delete
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke Access
      tags:
      - access-control
    put:
      description: Grant an identity access to the application (tenant admin or an app admin, feature
        018).
      operationId: grant_access_v1_applications__application_id__access__identity_id__put
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Grant Access
      tags:
      - access-control
  /v1/applications/{application_id}/admins:
    get:
      description: List this application's administrators (tenant admin or an app admin of it).
      operationId: list_application_admins_v1_applications__application_id__admins_get
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationAdminList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Application Admins
      tags:
      - admin
  /v1/applications/{application_id}/admins/{identity_id}:
    delete:
      description: Remove an administrator designation (idempotent; no last-admin lockout).
      operationId: remove_application_admin_v1_applications__application_id__admins__identity_id__delete
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Remove Application Admin
      tags:
      - admin
    put:
      description: Designate an identity as an admin of this application (tenant admin or an app admin).
      operationId: assign_application_admin_v1_applications__application_id__admins__identity_id__put
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Assign Application Admin
      tags:
      - admin
  /v1/applications/{application_id}/disable:
    post:
      description: Reversibly disable an application; revokes its tokens/sessions/grants (feature 016).
      operationId: disable_application_v1_applications__application_id__disable_post
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationStateResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Disable Application
      tags:
      - admin
  /v1/applications/{application_id}/enable:
    post:
      description: Re-enable a disabled application (deleted apps are terminal → 404) (feature 016).
      operationId: enable_application_v1_applications__application_id__enable_post
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationStateResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Enable Application
      tags:
      - admin
  /v1/applications/{application_id}/rotate-secret:
    post:
      description: Rotate a confidential application's client secret; return it once (feature 016).
      operationId: rotate_application_secret_v1_applications__application_id__rotate_secret_post
      parameters:
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/RotateSecretRequest'
              - type: 'null'
              title: Body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RotatedSecretResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Rotate Application Secret
      tags:
      - admin
  /v1/auth/login:
    post:
      description: 'Verify primary credentials; return a short-lived login token for /authorize.


        Feature 013: the user may identify by email OR username. A username is resolved to its

        identity''s email before verification; an unresolved identifier still runs verification (against

        a non-existent address) so failures stay non-enumerating.'
      operationId: login_v1_auth_login_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Login V1 Auth Login Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Login
      tags:
      - auth
  /v1/auth/magic-link/request:
    post:
      description: Email a one-click sign-in link (redeemed by the integrating app). Always 202.
      operationId: magic_link_request_v1_auth_magic_link_request_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MagicLinkRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Magic Link Request
      tags:
      - auth
  /v1/auth/magic-link/verify:
    post:
      description: Redeem a magic-link token and return a login token.
      operationId: magic_link_verify_v1_auth_magic_link_verify_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MagicLinkVerify'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Magic Link Verify V1 Auth Magic Link Verify Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Magic Link Verify
      tags:
      - auth
  /v1/auth/otp/request:
    post:
      description: Send a passwordless one-time code (email or SMS). Always 202 (no enumeration).
      operationId: otp_login_request_v1_auth_otp_request_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OtpLoginRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Otp Login Request
      tags:
      - auth
  /v1/auth/otp/verify:
    post:
      description: Verify a passwordless code and return a login token.
      operationId: otp_login_verify_v1_auth_otp_verify_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OtpLoginVerify'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Otp Login Verify V1 Auth Otp Verify Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Otp Login Verify
      tags:
      - auth
  /v1/auth/password-reset/confirm:
    post:
      operationId: password_reset_confirm_v1_auth_password_reset_confirm_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordResetConfirm'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Password Reset Confirm V1 Auth Password Reset Confirm Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Password Reset Confirm
      tags:
      - auth
  /v1/auth/password-reset/request:
    post:
      operationId: password_reset_request_v1_auth_password_reset_request_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Password Reset Request
      tags:
      - auth
  /v1/auth/register:
    post:
      operationId: register_v1_auth_register_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Register
      tags:
      - auth
  /v1/auth/verify-email/confirm:
    post:
      operationId: verify_email_confirm_v1_auth_verify_email_confirm_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenConfirm'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Verify Email Confirm V1 Auth Verify Email Confirm Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Verify Email Confirm
      tags:
      - auth
  /v1/auth/verify-email/request:
    post:
      operationId: verify_email_request_v1_auth_verify_email_request_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Verify Email Request
      tags:
      - auth
  /v1/backups:
    get:
      operationId: list_backups_v1_backups_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/BackupResponse'
                title: Response List Backups V1 Backups Get
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Backups
      tags:
      - backups
    post:
      operationId: create_backup_v1_backups_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BackupCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackupResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Backup
      tags:
      - backups
  /v1/backups/{backup_id}:
    delete:
      operationId: delete_backup_v1_backups__backup_id__delete
      parameters:
      - in: path
        name: backup_id
        required: true
        schema:
          format: uuid
          title: Backup Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Delete Backup
      tags:
      - backups
    get:
      operationId: get_backup_v1_backups__backup_id__get
      parameters:
      - in: path
        name: backup_id
        required: true
        schema:
          format: uuid
          title: Backup Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackupResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get Backup
      tags:
      - backups
  /v1/backups/{backup_id}/download:
    get:
      operationId: download_backup_v1_backups__backup_id__download_get
      parameters:
      - in: path
        name: backup_id
        required: true
        schema:
          format: uuid
          title: Backup Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Download Backup
      tags:
      - backups
  /v1/email-aliases/lookup:
    post:
      description: Resolve a commit-author address → owning identity (the git-push hot path).
      operationId: lookup_alias_v1_email_aliases_lookup_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/hap__api__v1__email_aliases__LookupRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Lookup Alias V1 Email Aliases Lookup Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Lookup Alias
      tags:
      - email-aliases
  /v1/groups:
    get:
      operationId: list_groups_v1_groups_get
      parameters:
      - in: query
        name: cursor
        required: false
        schema:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          title: Cursor
      - in: query
        name: limit
        required: false
        schema:
          default: 50
          maximum: 200
          minimum: 1
          title: Limit
          type: integer
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Groups
      tags:
      - groups
    post:
      operationId: create_group_v1_groups_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Group
      tags:
      - groups
  /v1/groups/{group_id}:
    get:
      operationId: get_group_v1_groups__group_id__get
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupDetailResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get Group
      tags:
      - groups
  /v1/groups/{group_id}/applications:
    get:
      operationId: list_group_applications_v1_groups__group_id__applications_get
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/GroupApplicationGrantResponse'
                title: Response List Group Applications V1 Groups  Group Id  Applications Get
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Group Applications
      tags:
      - groups
  /v1/groups/{group_id}/applications/{application_id}:
    delete:
      operationId: revoke_application_v1_groups__group_id__applications__application_id__delete
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke Application
      tags:
      - groups
    put:
      operationId: grant_application_v1_groups__group_id__applications__application_id__put
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: path
        name: application_id
        required: true
        schema:
          format: uuid
          title: Application Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Grant Application
      tags:
      - groups
  /v1/groups/{group_id}/leave:
    post:
      operationId: leave_group_v1_groups__group_id__leave_post
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Leave Group
      tags:
      - groups
  /v1/groups/{group_id}/members:
    post:
      operationId: add_member_v1_groups__group_id__members_post
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddMemberRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupDetailResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Add Member
      tags:
      - groups
  /v1/groups/{group_id}/members/{identity_id}:
    delete:
      operationId: remove_member_v1_groups__group_id__members__identity_id__delete
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Remove Member
      tags:
      - groups
  /v1/groups/{group_id}/members/{identity_id}/admin:
    delete:
      operationId: revoke_admin_v1_groups__group_id__members__identity_id__admin_delete
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke Admin
      tags:
      - groups
    put:
      operationId: grant_admin_v1_groups__group_id__members__identity_id__admin_put
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Grant Admin
      tags:
      - groups
  /v1/groups/{group_id}/reassign-owner:
    post:
      operationId: reassign_owner_v1_groups__group_id__reassign_owner_post
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReassignOwnerRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Reassign Owner
      tags:
      - groups
  /v1/groups/{group_id}/transfer-ownership:
    post:
      operationId: transfer_ownership_v1_groups__group_id__transfer_ownership_post
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          format: uuid
          title: Group Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferOwnershipRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Transfer Ownership
      tags:
      - groups
  /v1/identities:
    get:
      operationId: list_identities_v1_identities_get
      parameters:
      - in: query
        name: email
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
      - in: query
        name: status
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
      - description: 'Filter on the tenant-administrator designation: omit for all identities, true for
          administrators only, false for everyone else. Reports the stored designation, not the active-and-designated
          form asserted in tokens — it filters on the flag and NOT on status, so a SUSPENDED administrator
          is listed with is_tenant_admin true. Read each item''s status for the effective form.'
        in: query
        name: tenant_admin
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          description: 'Filter on the tenant-administrator designation: omit for all identities, true
            for administrators only, false for everyone else. Reports the stored designation, not the
            active-and-designated form asserted in tokens — it filters on the flag and NOT on status,
            so a SUSPENDED administrator is listed with is_tenant_admin true. Read each item''s status
            for the effective form.'
          title: Tenant Admin
      - in: query
        name: cursor
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Cursor
      - in: query
        name: limit
        required: false
        schema:
          default: 50
          maximum: 200
          minimum: 1
          title: Limit
          type: integer
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Identities
      tags:
      - identities
    post:
      operationId: create_identity_v1_identities_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Identity
      tags:
      - identities
  /v1/identities/{identity_id}:
    delete:
      operationId: delete_identity_v1_identities__identity_id__delete
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Delete Identity
      tags:
      - identities
    get:
      operationId: get_identity_v1_identities__identity_id__get
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get Identity
      tags:
      - identities
    patch:
      operationId: update_identity_v1_identities__identity_id__patch
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityUpdate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Update Identity
      tags:
      - identities
  /v1/identities/{identity_id}/administered-applications:
    get:
      description: List the applications an identity administers (feature 018).
      operationId: list_administered_applications_v1_identities__identity_id__administered_applications_get
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdministeredApplicationsList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Administered Applications
      tags:
      - access-control
  /v1/identities/{identity_id}/applications:
    get:
      operationId: list_identity_applications_v1_identities__identity_id__applications_get
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityApplicationsList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Identity Applications
      tags:
      - access-control
  /v1/identities/{identity_id}/email-aliases:
    get:
      operationId: list_aliases_v1_identities__identity_id__email_aliases_get
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/AliasResponse'
                title: Response List Aliases V1 Identities  Identity Id  Email Aliases Get
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Aliases
      tags:
      - email-aliases
    post:
      description: 'Start verification: 202 pending (code emailed to the alias) / 200 already_verified.'
      operationId: start_alias_verification_v1_identities__identity_id__email_aliases_post
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartAliasRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Start Alias Verification
      tags:
      - email-aliases
  /v1/identities/{identity_id}/email-aliases/register:
    post:
      description: 'Operator-asserted pre-verified alias — 201 created / 200 already_verified. NO email
        sent.


        Behind the dedicated ``email_aliases:register`` scope (not ``:write``), so the member

        self-service key cannot mint a verified alias without the emailed-code proof. Because no email

        is sent, validation is syntactic only — reserved/non-routable domains (``user@host.local``) are

        accepted; the emailed-code start/verify paths keep full ``EmailStr`` validation.'
      operationId: register_alias_v1_identities__identity_id__email_aliases_register_post
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterAliasRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Register Alias
      tags:
      - email-aliases
  /v1/identities/{identity_id}/email-aliases/verify:
    post:
      operationId: verify_alias_v1_identities__identity_id__email_aliases_verify_post
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyAliasRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Verify Alias
      tags:
      - email-aliases
  /v1/identities/{identity_id}/email-aliases/{alias_id}:
    delete:
      operationId: remove_alias_v1_identities__identity_id__email_aliases__alias_id__delete
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: path
        name: alias_id
        required: true
        schema:
          format: uuid
          title: Alias Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Remove Alias
      tags:
      - email-aliases
  /v1/identities/{identity_id}/group-create-grant:
    delete:
      operationId: revoke_group_create_v1_identities__identity_id__group_create_grant_delete
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke Group Create
      tags:
      - identities
    put:
      operationId: grant_group_create_v1_identities__identity_id__group_create_grant_put
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Grant Group Create
      tags:
      - identities
  /v1/identities/{identity_id}/roles:
    get:
      description: 'Read back the roles an identity holds (feature 029, FR-018).


        The headless half of the console''s roles page. Without it a tenant administrator could grant
        a

        role through the API but never confirm what somebody currently holds.'
      operationId: list_identity_roles_v1_identities__identity_id__roles_get
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignedRoleList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Identity Roles
      tags:
      - rbac
    post:
      operationId: assign_role_v1_identities__identity_id__roles_post
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Assign Role V1 Identities  Identity Id  Roles Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Assign Role
      tags:
      - rbac
  /v1/identities/{identity_id}/roles/{role_id}:
    delete:
      operationId: revoke_role_v1_identities__identity_id__roles__role_id__delete
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: path
        name: role_id
        required: true
        schema:
          format: uuid
          title: Role Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke Role
      tags:
      - rbac
  /v1/identities/{identity_id}/sessions:
    get:
      operationId: admin_list_sessions_v1_identities__identity_id__sessions_get
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin List Sessions
      tags:
      - sessions
  /v1/identities/{identity_id}/sessions:revoke-all:
    post:
      operationId: admin_revoke_all_v1_identities__identity_id__sessions_revoke_all_post
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: integer
                title: Response Admin Revoke All V1 Identities  Identity Id  Sessions Revoke All Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Admin Revoke All
      tags:
      - sessions
  /v1/identities/{identity_id}/ssh-keys:
    get:
      operationId: list_keys_v1_identities__identity_id__ssh_keys_get
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/KeyMetadata'
                title: Response List Keys V1 Identities  Identity Id  Ssh Keys Get
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Keys
      tags:
      - ssh-keys
    post:
      operationId: register_key_v1_identities__identity_id__ssh_keys_post
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterKeyRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisteredKey'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Register Key
      tags:
      - ssh-keys
  /v1/identities/{identity_id}/ssh-keys/{key_id}:
    delete:
      operationId: remove_key_v1_identities__identity_id__ssh_keys__key_id__delete
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: path
        name: key_id
        required: true
        schema:
          format: uuid
          title: Key Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Remove Key
      tags:
      - ssh-keys
  /v1/identities/{identity_id}/tenant-admin:
    delete:
      operationId: revoke_tenant_admin_v1_identities__identity_id__tenant_admin_delete
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke Tenant Admin
      tags:
      - identities
    put:
      operationId: grant_tenant_admin_v1_identities__identity_id__tenant_admin_put
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Grant Tenant Admin
      tags:
      - identities
  /v1/identities/{identity_id}/tokens:
    get:
      operationId: list_tokens_v1_identities__identity_id__tokens_get
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/TokenMetadata'
                title: Response List Tokens V1 Identities  Identity Id  Tokens Get
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Tokens
      tags:
      - personal-tokens
    post:
      operationId: create_token_v1_identities__identity_id__tokens_post
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTokenRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatedToken'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Token
      tags:
      - personal-tokens
  /v1/identities/{identity_id}/tokens/{token_id}:
    delete:
      operationId: revoke_token_v1_identities__identity_id__tokens__token_id__delete
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: path
        name: token_id
        required: true
        schema:
          format: uuid
          title: Token Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke Token
      tags:
      - personal-tokens
  /v1/identities/{identity_id}/username:
    delete:
      description: Remove a user's username (admin); the released handle enters quarantine (feature 013).
      operationId: clear_username_v1_identities__identity_id__username_delete
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Clear Username
      tags:
      - identities
  /v1/invitations:
    post:
      operationId: create_invitation_v1_invitations_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvitationCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationCreateResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Invitation
      tags:
      - invitations
  /v1/me/applications:
    get:
      description: 'The applications this person may use — the typed twin of the hosted selector (FR-029).


        Same list, same order, same ``launchable`` flags as the page, because both call

        ``app_selector.list_available``. An entry with ``launchable: false`` has no home page recorded

        and MUST NOT be forwarded to; it is returned rather than hidden so a caller can show the same

        "ask an administrator" message the page shows.


        Feature 028 adds ``selector_relevant`` and ``destinations`` (FR-028): the hosted exit page

        branches on exactly this answer, and a capability the Hosted UI has must be reachable through

        the typed API (constitution Principle II). Both come from ``resolve_selector_context``, which

        the exit page also calls, so the two cannot disagree.'
      operationId: list_my_applications_v1_me_applications_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MyApplicationsResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List My Applications
      tags:
      - account
  /v1/me/groups:
    get:
      operationId: my_groups_v1_me_groups_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/MyGroupEntry'
                title: Response My Groups V1 Me Groups Get
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: My Groups
      tags:
      - groups
  /v1/me/ssh-keys:
    get:
      operationId: list_my_keys_v1_me_ssh_keys_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/KeyMetadata'
                title: Response List My Keys V1 Me Ssh Keys Get
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List My Keys
      tags:
      - ssh-keys
    post:
      operationId: register_my_key_v1_me_ssh_keys_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterKeyRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisteredKey'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Register My Key
      tags:
      - ssh-keys
  /v1/me/ssh-keys/{key_id}:
    delete:
      operationId: remove_my_key_v1_me_ssh_keys__key_id__delete
      parameters:
      - in: path
        name: key_id
        required: true
        schema:
          format: uuid
          title: Key Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Remove My Key
      tags:
      - ssh-keys
  /v1/me/username:
    get:
      operationId: get_my_username_v1_me_username_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsernameResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get My Username
      tags:
      - account
    put:
      operationId: set_my_username_v1_me_username_put
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UsernameBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsernameResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Set My Username
      tags:
      - account
  /v1/mfa/otp/send:
    post:
      operationId: otp_send_v1_mfa_otp_send_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OtpSendRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MfaResult'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Otp Send
      tags:
      - mfa
  /v1/mfa/otp/verify:
    post:
      operationId: otp_verify_v1_mfa_otp_verify_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OtpVerifyRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MfaResult'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Otp Verify
      tags:
      - mfa
  /v1/mfa/totp/confirm:
    post:
      operationId: totp_confirm_v1_mfa_totp_confirm_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CodeRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MfaResult'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Totp Confirm
      tags:
      - mfa
  /v1/mfa/totp/enroll:
    post:
      operationId: totp_enroll_v1_mfa_totp_enroll_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TotpEnrollRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TotpEnrollResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Totp Enroll
      tags:
      - mfa
  /v1/mfa/totp/verify:
    post:
      operationId: totp_verify_v1_mfa_totp_verify_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CodeRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MfaResult'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Totp Verify
      tags:
      - mfa
  /v1/platform/admin-keys:
    post:
      description: Issue a tenant-unbound admin key, optionally carrying a provisioning caller label.
      operationId: create_platform_admin_key_v1_platform_admin_keys_post
      parameters:
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformAdminKeyCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformAdminKeyResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Platform Admin Key
      tags:
      - admin
  /v1/platform/operators:
    get:
      operationId: list_platform_operators_v1_platform_operators_get
      parameters:
      - in: query
        name: cursor
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Cursor
      - in: query
        name: limit
        required: false
        schema:
          default: 50
          maximum: 200
          minimum: 1
          title: Limit
          type: integer
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformOperatorList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Platform Operators
      tags:
      - platform
  /v1/platform/operators/{identity_id}:
    delete:
      description: Remove the designation. Idempotent, and permitted even for the last operator.
      operationId: revoke_platform_operator_v1_platform_operators__identity_id__delete
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke Platform Operator
      tags:
      - platform
    put:
      description: Designate an identity a platform operator. Idempotent.
      operationId: grant_platform_operator_v1_platform_operators__identity_id__put
      parameters:
      - in: path
        name: identity_id
        required: true
        schema:
          format: uuid
          title: Identity Id
          type: string
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Grant Platform Operator
      tags:
      - platform
  /v1/providers:
    post:
      operationId: create_provider_v1_providers_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProviderCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Provider
      tags:
      - admin
  /v1/providers/{provider_id}/callback:
    get:
      operationId: provider_callback_v1_providers__provider_id__callback_get
      parameters:
      - in: path
        name: provider_id
        required: true
        schema:
          format: uuid
          title: Provider Id
          type: string
      - in: query
        name: code
        required: true
        schema:
          title: Code
          type: string
      - in: query
        name: state
        required: true
        schema:
          title: State
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Provider Callback V1 Providers  Provider Id  Callback Get
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Provider Callback
      tags:
      - federation
  /v1/providers/{provider_id}/login:
    get:
      operationId: provider_login_v1_providers__provider_id__login_get
      parameters:
      - in: path
        name: provider_id
        required: true
        schema:
          format: uuid
          title: Provider Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Provider Login V1 Providers  Provider Id  Login Get
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Provider Login
      tags:
      - federation
  /v1/rbac/roles:
    get:
      operationId: list_roles_v1_rbac_roles_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Roles
      tags:
      - rbac
    post:
      operationId: create_role_v1_rbac_roles_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Role
      tags:
      - rbac
  /v1/registration-policy:
    get:
      description: Read who may self-register in this tenant.
      operationId: read_registration_policy_v1_registration_policy_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistrationPolicyResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Read Registration Policy
      tags:
      - registration-policy
    put:
      description: Replace the managed sign-up settings, preserving every setting this surface does not
        show.
      operationId: update_registration_policy_v1_registration_policy_put
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegistrationPolicyUpdate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistrationPolicyResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Update Registration Policy
      tags:
      - registration-policy
  /v1/restores:
    post:
      operationId: create_restore_v1_restores_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestoreResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Restore
      tags:
      - backups
  /v1/restores/{restore_id}:
    get:
      operationId: get_restore_v1_restores__restore_id__get
      parameters:
      - in: path
        name: restore_id
        required: true
        schema:
          format: uuid
          title: Restore Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestoreResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get Restore
      tags:
      - backups
  /v1/saml/issue:
    post:
      description: Issue a signed SAML assertion for a saml_sp application (SP-initiated, headless).
      operationId: saml_issue_v1_saml_issue_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SamlIssueRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Saml Issue V1 Saml Issue Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Saml Issue
      tags:
      - federation
  /v1/saml/{provider_id}/acs:
    post:
      operationId: saml_acs_v1_saml__provider_id__acs_post
      parameters:
      - in: path
        name: provider_id
        required: true
        schema:
          format: uuid
          title: Provider Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_saml_acs_v1_saml__provider_id__acs_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  type: string
                title: Response Saml Acs V1 Saml  Provider Id  Acs Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Saml Acs
      tags:
      - federation
  /v1/saml/{provider_id}/metadata:
    get:
      operationId: saml_metadata_v1_saml__provider_id__metadata_get
      parameters:
      - in: path
        name: provider_id
        required: true
        schema:
          format: uuid
          title: Provider Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Saml Metadata
      tags:
      - federation
  /v1/sessions:
    delete:
      operationId: logout_everywhere_v1_sessions_delete
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Logout Everywhere
      tags:
      - sessions
    get:
      operationId: list_my_sessions_v1_sessions_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List My Sessions
      tags:
      - sessions
  /v1/sessions/{session_id}:
    delete:
      operationId: revoke_my_session_v1_sessions__session_id__delete
      parameters:
      - in: path
        name: session_id
        required: true
        schema:
          format: uuid
          title: Session Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Revoke My Session
      tags:
      - sessions
  /v1/ssh-keys/lookup:
    post:
      operationId: lookup_key_v1_ssh_keys_lookup_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/hap__api__v1__ssh_keys__LookupRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Lookup Key V1 Ssh Keys Lookup Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Lookup Key
      tags:
      - ssh-keys
  /v1/tenants:
    get:
      description: 'The tenant inventory — every tenant, every lifecycle status, in stable pages.


        Not audited: FR-023 asks for an audit entry when a tenant''s *configuration* is read, and a row

        per tenant per page view would bury the trail it exists to strengthen.'
      operationId: list_tenants_v1_tenants_get
      parameters:
      - in: query
        name: cursor
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Cursor
      - in: query
        name: limit
        required: false
        schema:
          default: 50
          maximum: 200
          minimum: 1
          title: Limit
          type: integer
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Tenants
      tags:
      - platform
    post:
      description: 'Create a tenant — with its first administrator when ``admin_email`` is supplied.


        Authority moved from the root bootstrap credential (``require_platform_admin``) to the narrow

        ``tenants:provision`` scope on a platform-scoped key, so the caller that creates tenants no

        longer needs authority over everything else (feature 023, FR-009). The bootstrap key still

        works: it holds every scope.'
      operationId: create_tenant_v1_tenants_post
      parameters:
      - in: header
        name: Idempotency-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Idempotency-Key
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TenantCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Tenant
      tags:
      - admin
  /v1/tenants/{tenant_id}:
    get:
      description: One tenant's effective, secret-free configuration, whatever its lifecycle status.
      operationId: read_tenant_v1_tenants__tenant_id__get
      parameters:
      - in: path
        name: tenant_id
        required: true
        schema:
          format: uuid
          title: Tenant Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      - in: header
        name: Authorization
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantConfiguration'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Read Tenant
      tags:
      - platform
    patch:
      description: 'Toggle opt-in tenant surfaces (Hosted Login / passwordless JIT) on an existing tenant.


        Lets operators enable Hosted Login without a raw DB write (the only prior path). Platform-admin

        scoped, like tenant creation.'
      operationId: update_tenant_v1_tenants__tenant_id__patch
      parameters:
      - in: path
        name: tenant_id
        required: true
        schema:
          format: uuid
          title: Tenant Id
          type: string
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TenantUpdate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Update Tenant
      tags:
      - admin
  /v1/tenants/{tenant_id}/admin-handovers:
    get:
      operationId: list_handovers_v1_tenants__tenant_id__admin_handovers_get
      parameters:
      - in: path
        name: tenant_id
        required: true
        schema:
          format: uuid
          title: Tenant Id
          type: string
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/HandoverResponse'
                title: Response List Handovers V1 Tenants  Tenant Id  Admin Handovers Get
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Handovers
      tags:
      - tenant-handover
    post:
      description: 'Confirm a previewed handover: create it, email the proof, notify current administrators.'
      operationId: create_handover_v1_tenants__tenant_id__admin_handovers_post
      parameters:
      - in: path
        name: tenant_id
        required: true
        schema:
          format: uuid
          title: Tenant Id
          type: string
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HandoverCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HandoverResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Handover
      tags:
      - tenant-handover
  /v1/tenants/{tenant_id}/admin-handovers/preview:
    post:
      description: Describe the change and issue a confirmation token. Persists nothing.
      operationId: preview_handover_v1_tenants__tenant_id__admin_handovers_preview_post
      parameters:
      - in: path
        name: tenant_id
        required: true
        schema:
          format: uuid
          title: Tenant Id
          type: string
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HandoverPreviewRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HandoverPreviewResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Preview Handover
      tags:
      - tenant-handover
  /v1/tenants/{tenant_id}/admin-handovers/{handover_id}:
    get:
      operationId: get_handover_v1_tenants__tenant_id__admin_handovers__handover_id__get
      parameters:
      - in: path
        name: tenant_id
        required: true
        schema:
          format: uuid
          title: Tenant Id
          type: string
      - in: path
        name: handover_id
        required: true
        schema:
          format: uuid
          title: Handover Id
          type: string
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HandoverResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get Handover
      tags:
      - tenant-handover
  /v1/tokens/introspect:
    post:
      operationId: introspect_token_v1_tokens_introspect_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_introspect_token_v1_tokens_introspect_post'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Introspect Token V1 Tokens Introspect Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Introspect Token
      tags:
      - personal-tokens
  /v1/webauthn/login/begin:
    post:
      operationId: login_begin_v1_webauthn_login_begin_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginBegin'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginBeginResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Login Begin
      tags:
      - webauthn
  /v1/webauthn/login/finish:
    post:
      operationId: login_finish_v1_webauthn_login_finish_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginFinish'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginFinishResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Login Finish
      tags:
      - webauthn
  /v1/webauthn/register/begin:
    post:
      operationId: register_begin_v1_webauthn_register_begin_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterBegin'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Register Begin V1 Webauthn Register Begin Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Register Begin
      tags:
      - webauthn
  /v1/webauthn/register/finish:
    post:
      operationId: register_finish_v1_webauthn_register_finish_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterFinish'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OkResult'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Register Finish
      tags:
      - webauthn
  /v1/webhooks:
    get:
      operationId: list_webhooks_v1_webhooks_get
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookList'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Webhooks
      tags:
      - webhooks
    post:
      operationId: create_webhook_v1_webhooks_post
      parameters:
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookCreated'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Webhook
      tags:
      - webhooks
  /v1/webhooks/{webhook_id}:
    delete:
      operationId: delete_webhook_v1_webhooks__webhook_id__delete
      parameters:
      - in: path
        name: webhook_id
        required: true
        schema:
          format: uuid
          title: Webhook Id
          type: string
      - in: header
        name: X-Tenant-Id
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Tenant-Id
      - in: header
        name: X-Admin-Key
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Admin-Key
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Delete Webhook
      tags:
      - webhooks