---
/libraries:
  get:
    x-mojo-to: Libraries#list
    operationId: listLibraries
    tags:
      - libraries
    summary: List libraries
    parameters:
      - name: name
        in: query
        description: Case insensitive 'starts-with' search on name
        required: false
        type: string
      - name: address1
        in: query
        description: Case insensitive 'starts-with' search on address1
        required: false
        type: string
      - name: address2
        in: query
        description: Case insensitive 'starts-with' search on address2
        required: false
        type: string
      - name: address3
        in: query
        description: Case insensitive 'starts-with' search on address3
        required: false
        type: string
      - name: postal_code
        in: query
        description: Case insensitive 'starts-with' search on postal code
        required: false
        type: string
      - name: city
        in: query
        description: Case insensitive 'starts-with' search on city
        required: false
        type: string
      - name: state
        in: query
        description: Case insensitive 'starts-with' search on state
        required: false
        type: string
      - name: country
        in: query
        description: Case insensitive 'starts_with' search on country
        required: false
        type: string
      - name: phone
        in: query
        description: Case insensitive 'starts_with' search on phone number
        required: false
        type: string
      - name: fax
        in: query
        description: Case insensitive 'starts_with' search on fax number
        required: false
        type: string
      - name: email
        in: query
        description: Case insensitive 'starts_with' search on email address
        required: false
        type: string
      - name: reply_to_email
        in: query
        description: Case insensitive 'starts_with' search on Reply-To email address
        required: false
        type: string
      - name: return_path_email
        in: query
        description: Case insensitive 'starts_with' search on Return-Path email address
        required: false
        type: string
      - name: url
        in: query
        description: Case insensitive 'starts_with' search on website URL
        required: false
        type: string
      - name: ip
        in: query
        description: Case insensitive 'starts_with' search on IP address
        required: false
        type: string
      - name: notes
        in: query
        description: Case insensitive 'starts_with' search on notes
        required: false
        type: string
      - $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/q_header"
      - $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:
            - smtp_server
        collectionFormat: csv
    produces:
      - application/json
    responses:
      "200":
        description: A list of libraries
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/library"
      "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:
        catalogue: "1"
  post:
    x-mojo-to: Libraries#add
    operationId: addLibrary
    tags:
      - libraries
    summary: Add library
    parameters:
      - name: body
        in: body
        description: A JSON object containing informations about the new library
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/library"
    produces:
      - application/json
    responses:
      "201":
        description: Library added
        schema:
          $ref: "../swagger.yaml#/definitions/library"
      "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"
      "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:
        parameters: manage_libraries
"/libraries/{library_id}":
  get:
    x-mojo-to: Libraries#get
    operationId: getLibrary
    tags:
      - libraries
    summary: Get library
    parameters:
      - $ref: "../swagger.yaml#/parameters/library_id_pp"
      - name: x-koha-embed
        in: header
        required: false
        description: Embed list sent as a request header
        type: array
        items:
          type: string
          enum:
            - smtp_server
        collectionFormat: csv
    produces:
      - application/json
    responses:
      "200":
        description: A library
        schema:
          $ref: "../swagger.yaml#/definitions/library"
      "404":
        description: Library not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        catalogue: "1"
  put:
    x-mojo-to: Libraries#update
    operationId: updateLibrary
    tags:
      - libraries
    summary: Update library
    parameters:
      - $ref: "../swagger.yaml#/parameters/library_id_pp"
      - name: body
        in: body
        description: A JSON object containing information on the library
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/library"
    consumes:
      - application/json
    produces:
      - application/json
    responses:
      "200":
        description: A library
        schema:
          $ref: "../swagger.yaml#/definitions/library"
      "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: Library 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_libraries
  delete:
    x-mojo-to: Libraries#delete
    operationId: deleteLibrary
    tags:
      - libraries
    summary: Delete library
    parameters:
      - $ref: "../swagger.yaml#/parameters/library_id_pp"
    produces:
      - application/json
    responses:
      "204":
        description: Library deleted
        schema:
          type: string
      "401":
        description: Authentication required
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Library 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_libraries
/public/libraries:
  get:
    x-mojo-to: Libraries#list
    operationId: listLibrariesPublic
    tags:
      - libraries
    summary: List libraries
    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/q_header"
      - $ref: "../swagger.yaml#/parameters/request_id_header"
    produces:
      - application/json
    responses:
      "200":
        description: A list of libraries
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/library"
      "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"
"/public/libraries/{library_id}":
  get:
    x-mojo-to: Libraries#get
    operationId: getLibraryPublic
    tags:
      - libraries
    summary: Get library (public)
    parameters:
      - $ref: "../swagger.yaml#/parameters/library_id_pp"
    produces:
      - application/json
    responses:
      "200":
        description: A library
      "401":
        description: Authentication required
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Library not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "406":
        description: Not acceptable
        schema:
          type: array
          description: Accepted content-types
          items:
            type: string
      "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"
