---
"/patrons/{patron_id}/extended_attributes":
  get:
    x-mojo-to: Patrons::Attributes#list_patron_attributes
    operationId: getPatronAttributes
    tags:
      - patrons
    summary: List extended attributes for a patron
    parameters:
      - $ref: "../swagger.yaml#/parameters/patron_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"
    produces:
      - application/json
    responses:
      "200":
        description: The patron extended attributes
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/patron_extended_attribute"
      "400":
        description: |
          Bad request. Possible `error_code` attribute values:

            * `invalid_query`
        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: Patron 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:
        borrowers: edit_borrowers
  post:
    x-mojo-to: Patrons::Attributes#add
    operationId: addPatronAttribute
    tags:
      - patrons
    summary: Add extended attribute for a patron
    parameters:
      - $ref: "../swagger.yaml#/parameters/patron_id_pp"
      - name: body
        in: body
        description: A JSON representation of the patron extended attribute
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/patron_extended_attribute"
    produces:
      - application/json
    responses:
      "201":
        description: A successfully created patron extended attribute
        schema:
          $ref: "../swagger.yaml#/definitions/patron_extended_attribute"
      "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: Patron not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "409":
        description: Conflict in creating resource
        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: edit_borrowers
  put:
    x-mojo-to: Patrons::Attributes#overwrite
    operationId: overwritePatronAttributes
    tags:
      - patrons
    summary: Overwrite extended attributes for a patron
    parameters:
      - $ref: "../swagger.yaml#/parameters/patron_id_pp"
      - name: body
        in: body
        description: A JSON representation of the patron extended attribute
        required: true
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/patron_extended_attribute"
    produces:
      - application/json
    responses:
      "200":
        description: The successfully created patron extended attributes
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/patron_extended_attribute"
      "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: Patron not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "409":
        description: Conflict in creating resource
        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: edit_borrowers
"/patrons/{patron_id}/extended_attributes/{extended_attribute_id}":
  patch:
    x-mojo-to: Patrons::Attributes#update
    operationId: updatePatronAttribute
    tags:
      - patrons
    summary: Update extended attribute
    parameters:
      - $ref: "../swagger.yaml#/parameters/patron_id_pp"
      - name: extended_attribute_id
        in: path
        description: Internal patron extended attribute identifier
        type: integer
        required: true
      - name: body
        in: body
        description: An object containing the updated values for the patron extended
          attribute
        required: true
        schema:
          type: object
          properties:
            value:
              description: Extended attribute value
              type: string
          additionalProperties: false
    produces:
      - application/json
    responses:
      "200":
        description: A successfully updated patron extended attribute
        schema:
          $ref: "../swagger.yaml#/definitions/patron_extended_attribute"
      "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: Object not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "409":
        description: Conflict in updating resource
        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: edit_borrowers
  delete:
    x-mojo-to: Patrons::Attributes#delete
    operationId: deletePatronAttribute
    tags:
      - patrons
    summary: Delete extended attribute
    parameters:
      - $ref: "../swagger.yaml#/parameters/patron_id_pp"
      - name: extended_attribute_id
        in: path
        description: Internal patron extended attribute identifier
        type: integer
        required: true
    produces:
      - application/json
    responses:
      "204":
        description: Extended patron attribute 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: Patron 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:
        borrowers: edit_borrowers
