---
/auth/otp/token_delivery:
  post:
    x-mojo-to: TwoFactorAuth#send_otp_token
    operationId: send_otp_token
    tags:
      - 2fa
    summary: Send OTP token for second step authentication
    produces:
      - application/json
    responses:
      "200":
        description: OK
        schema:
          type: object
          properties:
            access_token:
              type: string
            token_type:
              type: string
            expires_in:
              type: integer
          additionalProperties: false
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        catalogue: "1"

/auth/two-factor/registration:
  post:
    x-mojo-to: TwoFactorAuth#registration
    operationId: Two factor register
    tags:
      - 2fa
    summary: Generate a secret
    produces:
      - application/json
    responses:
      "201":
        description: OK
        schema:
          type: object
          properties:
            secret32:
              type: string
            qr_code:
              type: string
            issuer:
              type: string
            key_id:
              type: string
          additionalProperties: false
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        catalogue: "1"

/auth/two-factor/registration/verification:
  post:
    x-mojo-to: TwoFactorAuth#verification
    operationId: Two factor register verification
    tags:
      - 2fa
    summary: Verify two-factor registration
    parameters:
      - name: secret32
        in: formData
        description: the secret
        required: true
        type: string
      - name: pin_code
        in: formData
        description: the pin code
        required: true
        type: string
    produces:
      - application/json
    responses:
      "204":
        description: OK
      "401":
        description: Authentication required
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        catalogue: "1"
/auth/providers:
  get:
    x-mojo-to: Auth::Providers#list
    operationId: listAuthProviders
    tags:
      - auth_providers
    summary: List configured identity providers
    parameters:
      - $ref: ../swagger.yaml#/parameters/match
      - $ref: ../swagger.yaml#/parameters/order_by
      - $ref: ../swagger.yaml#/parameters/page
      - $ref: ../swagger.yaml#/parameters/per_page
      - $ref: ../swagger.yaml#/parameters/q_param
      - $ref: ../swagger.yaml#/parameters/q_body
      - $ref: ../swagger.yaml#/parameters/request_id_header
      - name: x-koha-embed
        in: header
        required: false
        description: Embed list sent as a request header
        type: array
        items:
          type: string
          enum:
            - domains
        collectionFormat: csv
    produces:
      - application/json
    responses:
      "200":
        description: A list of identity providers
        schema:
          type: array
          items:
            $ref: ../swagger.yaml#/definitions/auth_provider
      "400":
        description: |
          Bad request. Possible `error_code` attribute values:

            * `invalid_query`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_authentication_providers
  post:
    x-mojo-to: Auth::Providers#add
    operationId: addAuthProvider
    tags:
      - auth_providers
    summary: Add a new identity provider
    parameters:
      - name: body
        in: body
        description: |
          A JSON object containing OAuth provider parameters.

          The `config` object required attributes depends on the chosen `protocol`

          ## OAuth

          Requires:

          * key
          * secret
          * authorize_url
          * token_url

          ## OIDC

          Requires:

          * key
          * secret
          * well_known_url
        required: true
        schema:
          $ref: ../swagger.yaml#/definitions/auth_provider
    produces:
      - application/json
    responses:
      "201":
        description: The generated identity provider
        schema:
          $ref: ../swagger.yaml#/definitions/auth_provider
      "400":
        description: Bad request
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_authentication_providers
"/auth/providers/{auth_provider_id}":
  get:
    x-mojo-to: Auth::Providers#get
    operationId: getAuthProvider
    tags:
      - auth_providers
    summary: Get identity provider
    parameters:
      - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
      - name: x-koha-embed
        in: header
        required: false
        description: Embed list sent as a request header
        type: array
        items:
          type: string
          enum:
            - domains
        collectionFormat: csv
    produces:
      - application/json
    responses:
      "200":
        description: An identity provider
        schema:
          $ref: ../swagger.yaml#/definitions/auth_provider
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_authentication_providers
  put:
    x-mojo-to: Auth::Providers#update
    operationId: updateAuthProvider
    tags:
      - auth_providers
    summary: Update an identity provider
    parameters:
      - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
      - name: body
        in: body
        description: |
          A JSON object containing OAuth provider parameters.

          The `config` object required attributes depends on the chosen `protocol`

          ## OAuth

          Requires:

          * key
          * secret
          * authorize_url
          * token_url

          ## OIDC

          Requires:

          * key
          * secret
          * well_known_url
        required: true
        schema:
          $ref: ../swagger.yaml#/definitions/auth_provider
    produces:
      - application/json
    responses:
      "200":
        description: Updated identity provider
        schema:
          $ref: ../swagger.yaml#/definitions/auth_provider
      "400":
        description: Bad request
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_authentication_providers
  delete:
    x-mojo-to: Auth::Providers#delete
    operationId: delAuthProvider
    tags:
      - auth_providers
    summary: Delete identity provider
    parameters:
      - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
    produces:
      - application/json
    responses:
      "204":
        description: identity provider deleted
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "401":
        description: Authentication required
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "404":
        description: City not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_authentication_providers
"/auth/providers/{auth_provider_id}/domains":
  get:
    x-mojo-to: Auth::Provider::Domains#list
    operationId: listAuthProviderDomains
    tags:
      - auth_providers
    summary: Get identity provider configured domains
    parameters:
      - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
      - $ref: ../swagger.yaml#/parameters/match
      - $ref: ../swagger.yaml#/parameters/order_by
      - $ref: ../swagger.yaml#/parameters/page
      - $ref: ../swagger.yaml#/parameters/per_page
      - $ref: ../swagger.yaml#/parameters/q_param
      - $ref: ../swagger.yaml#/parameters/q_body
      - $ref: ../swagger.yaml#/parameters/request_id_header
      - name: x-koha-embed
        in: header
        required: false
        description: Embed list sent as a request header
        type: array
        items:
          type: string
          enum:
            - domains
        collectionFormat: csv
    produces:
      - application/json
    responses:
      "200":
        description: An identity provider
        schema:
          items:
            $ref: ../swagger.yaml#/definitions/auth_provider_domain
      "400":
        description: |
          Bad request. Possible `error_code` attribute values:

            * `invalid_query`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_authentication_providers
  post:
    x-mojo-to: Auth::Provider::Domains#add
    operationId: addAuthProviderDomain
    tags:
      - auth_providers
    summary: Add an identity provider domain
    parameters:
      - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
      - name: body
        in: body
        description: An identity provider domain object
        required: true
        schema:
          $ref: ../swagger.yaml#/definitions/auth_provider_domain
    produces:
      - application/json
    responses:
      "201":
        description: Updated identity provider domain
        schema:
          $ref: ../swagger.yaml#/definitions/auth_provider_domain
      "400":
        description: Bad request
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_authentication_providers
"/auth/providers/{auth_provider_id}/domains/{auth_provider_domain_id}":
  get:
    x-mojo-to: Auth::Provider::Domains#get
    operationId: getAuthProviderDomain
    tags:
      - auth_providers
    summary: Get identity provider domain
    parameters:
      - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
      - $ref: ../swagger.yaml#/parameters/auth_provider_domain_id_pp
    produces:
      - application/json
    responses:
      "200":
        description: An identity provider
        schema:
          $ref: ../swagger.yaml#/definitions/auth_provider_domain
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_authentication_providers
  delete:
    x-mojo-to: Auth::Provider::Domains#delete
    operationId: delAuthProviderDomain
    tags:
      - auth_providers
    summary: Delete identity provider
    parameters:
      - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
      - $ref: ../swagger.yaml#/parameters/auth_provider_domain_id_pp
    produces:
      - application/json
    responses:
      "204":
        description: identity provider deleted
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "401":
        description: Authentication required
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "404":
        description: City not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_authentication_providers
/auth/identity_providers:
  get:
    x-mojo-to: Auth::Identity::Providers#list
    operationId: listIdentityProviders
    tags:
      - identity_providers
    summary: List configured identity providers
    parameters:
      - $ref: ../swagger.yaml#/parameters/match
      - $ref: ../swagger.yaml#/parameters/order_by
      - $ref: ../swagger.yaml#/parameters/page
      - $ref: ../swagger.yaml#/parameters/per_page
      - $ref: ../swagger.yaml#/parameters/q_param
      - $ref: ../swagger.yaml#/parameters/q_body
      - $ref: ../swagger.yaml#/parameters/request_id_header
      - name: x-koha-embed
        in: header
        required: false
        description: Embed list sent as a request header
        type: array
        items:
          type: string
          enum:
            - domains
        collectionFormat: csv
    produces:
      - application/json
    responses:
      "200":
        description: A list of identity providers
        schema:
          type: array
          items:
            $ref: ../swagger.yaml#/definitions/identity_provider
      "400":
        description: |
          Bad request. Possible `error_code` attribute values:

            * `invalid_query`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_identity_providers
  post:
    x-mojo-to: Auth::Identity::Providers#add
    operationId: addIdentityProvider
    tags:
      - identity_providers
    summary: Add a new identity provider
    parameters:
      - name: body
        in: body
        description: |
          A JSON object containing OAuth provider parameters.

          The `config` object required attributes depends on the chosen `protocol`

          ## OAuth

          Requires:

          * key
          * secret
          * authorize_url
          * token_url

          ## OIDC

          Requires:

          * key
          * secret
          * well_known_url
        required: true
        schema:
          $ref: ../swagger.yaml#/definitions/identity_provider
    produces:
      - application/json
    responses:
      "201":
        description: The generated identity provider
        schema:
          $ref: ../swagger.yaml#/definitions/identity_provider
      "400":
        description: Bad request
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_identity_providers
"/auth/identity_providers/{identity_provider_id}":
  get:
    x-mojo-to: Auth::Identity::Providers#get
    operationId: getIdentityProvider
    tags:
      - identity_providers
    summary: Get identity provider
    parameters:
      - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
      - name: x-koha-embed
        in: header
        required: false
        description: Embed list sent as a request header
        type: array
        items:
          type: string
          enum:
            - domains
        collectionFormat: csv
    produces:
      - application/json
    responses:
      "200":
        description: An identity provider
        schema:
          $ref: ../swagger.yaml#/definitions/identity_provider
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_identity_providers
  put:
    x-mojo-to: Auth::Identity::Providers#update
    operationId: updateIdentityProvider
    tags:
      - identity_providers
    summary: Update an identity provider
    parameters:
      - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
      - name: body
        in: body
        description: |
          A JSON object containing OAuth provider parameters.

          The `config` object required attributes depends on the chosen `protocol`

          ## OAuth

          Requires:

          * key
          * secret
          * authorize_url
          * token_url

          ## OIDC

          Requires:

          * key
          * secret
          * well_known_url
        required: true
        schema:
          $ref: ../swagger.yaml#/definitions/identity_provider
    produces:
      - application/json
    responses:
      "200":
        description: Updated identity provider
        schema:
          $ref: ../swagger.yaml#/definitions/identity_provider
      "400":
        description: Bad request
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_identity_providers
  delete:
    x-mojo-to: Auth::Identity::Providers#delete
    operationId: delIdentityProvider
    tags:
      - identity_providers
    summary: Delete identity provider
    parameters:
      - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
    produces:
      - application/json
    responses:
      "204":
        description: Identity provider deleted
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "401":
        description: Authentication required
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "404":
        description: City not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_identity_providers
"/auth/identity_providers/{identity_provider_id}/domains":
  get:
    x-mojo-to: Auth::Identity::Provider::Domains#list
    operationId: listIdentityProviderDomains
    tags:
      - identity_providers
    summary: Get identity provider configured domains
    parameters:
      - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
      - $ref: ../swagger.yaml#/parameters/match
      - $ref: ../swagger.yaml#/parameters/order_by
      - $ref: ../swagger.yaml#/parameters/page
      - $ref: ../swagger.yaml#/parameters/per_page
      - $ref: ../swagger.yaml#/parameters/q_param
      - $ref: ../swagger.yaml#/parameters/q_body
      - $ref: ../swagger.yaml#/parameters/request_id_header
      - name: x-koha-embed
        in: header
        required: false
        description: Embed list sent as a request header
        type: array
        items:
          type: string
          enum:
            - domains
        collectionFormat: csv
    produces:
      - application/json
    responses:
      "200":
        description: An identity provider
        schema:
          items:
            $ref: ../swagger.yaml#/definitions/identity_provider_domain
      "400":
        description: |
          Bad request. Possible `error_code` attribute values:

            * `invalid_query`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_identity_providers
  post:
    x-mojo-to: Auth::Identity::Provider::Domains#add
    operationId: addIdentityProviderDomain
    tags:
      - identity_providers
    summary: Add an identity provider domain
    parameters:
      - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
      - name: body
        in: body
        description: An identity provider domain object
        required: true
        schema:
          $ref: ../swagger.yaml#/definitions/identity_provider_domain
    produces:
      - application/json
    responses:
      "201":
        description: Updated identity provider domain
        schema:
          $ref: ../swagger.yaml#/definitions/identity_provider_domain
      "400":
        description: Bad request
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_identity_providers
"/auth/identity_providers/{identity_provider_id}/domains/{identity_provider_domain_id}":
  get:
    x-mojo-to: Auth::Identity::Provider::Domains#get
    operationId: getIdentityProviderDomain
    tags:
      - identity_providers
    summary: Get identity provider domain
    parameters:
      - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
      - $ref: ../swagger.yaml#/parameters/identity_provider_domain_id_pp
    produces:
      - application/json
    responses:
      "200":
        description: An identity provider
        schema:
          $ref: ../swagger.yaml#/definitions/identity_provider_domain
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_identity_providers
  put:
    x-mojo-to: Auth::Identity::Provider::Domains#update
    operationId: updateIdentityProviderDomain
    tags:
      - identity_providers
    summary: Update an identity provider domain
    parameters:
      - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
      - $ref: ../swagger.yaml#/parameters/identity_provider_domain_id_pp
      - name: body
        in: body
        description: An identity provider domain object
        required: true
        schema:
          $ref: ../swagger.yaml#/definitions/identity_provider_domain
    produces:
      - application/json
    responses:
      "200":
        description: Updated identity provider domain
        schema:
          $ref: ../swagger.yaml#/definitions/identity_provider_domain
      "400":
        description: Bad request
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "404":
        description: Object not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_identity_providers
  delete:
    x-mojo-to: Auth::Identity::Provider::Domains#delete
    operationId: delIdentityProviderDomain
    tags:
      - identity_providers
    summary: Delete identity provider
    parameters:
      - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
      - $ref: ../swagger.yaml#/parameters/identity_provider_domain_id_pp
    produces:
      - application/json
    responses:
      "204":
        description: identity provider deleted
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "401":
        description: Authentication required
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "404":
        description: City not found
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        parameters: manage_identity_providers
"/auth/password/validation":
  post:
    x-mojo-to: Auth::Password#validate
    operationId: validateUserAndPassword
    tags:
      - patrons
    summary: Check validity of username and password
    parameters:
      - name: body
        in: body
        description: |
          A JSON object containing a patron identifier and password information.

          The identifier will be used to match patrons on the database using the
          following order:

          * userid
          * cardnumber

          Optionally, you can specify the `userid` attribute if you don't want it
          to be checked against the patron cardnumbers.
        schema:
          type: object
          properties:
            identifier:
              description: A patron identifier (`userid` or `cardnumber`)
              type: string
            password:
              description: Password (plain text)
              type: string
            userid:
              description: A patron userid
              type: string
          required:
            - password
          additionalProperties: false
    produces:
      - application/json
    responses:
      "201":
        description: Validation successful
        schema:
          type: object
          properties:
            cardnumber:
              type: string
              description: cardnumber for the validated patron
            patron_id:
              type: integer
              description: Internal patron identifier
            userid:
              type: string
              description: userid for the validated patron
          additionalProperties: false
      "400":
        description: Bad request
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "401":
        description: Authentication required
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "403":
        description: Access forbidden
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: ../swagger.yaml#/definitions/error
      "503":
        description: Under maintenance
        schema:
          $ref: ../swagger.yaml#/definitions/error
    x-koha-authorization:
      permissions:
        borrowers: "1"
