---
/erm/eholdings/{provider}/packages:
  get:
    x-mojo-to: ERM::EHoldings::Packages#list
    operationId: listErmEHoldingsPackages
    tags:
      - eHoldings package
    summary: List packages
    produces:
      - application/json
    parameters:
      - description: Provider name
        in: path
        name: provider
        required: true
        type: string
      - description: Case insensitive search on package package_id
        in: query
        name: package_id
        required: false
        type: string
      - description: Case insensitive search on package vendor_id
        in: query
        name: vendor_id
        required: false
        type: integer
      - description: Case insensitive search on package name
        in: query
        name: name
        required: false
        type: string
      - description: Case insensitive search on package external_package_id
        in: query
        name: external_package_id
        required: false
        type: integer
      - description: Case insensitive search on package type
        in: query
        name: package_type
        required: false
        type: string
      - description: Case insensitive search on package content_type
        in: query
        name: content_type
        required: false
        type: string
      - description: Case insensitive search on package notes
        in: query
        name: notes
        required: false
        type: string
      - description: Case insensitive search on package creation date
        in: query
        name: created_on
        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"
    responses:
      200:
        description: A list of package
        schema:
          items:
            $ref: "../swagger.yaml#/definitions/erm_eholdings_package"
          type: array
      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:
        erm: 1
    x-koha-embed:
      - vendors
      - resources+count
  post:
    x-mojo-to: ERM::EHoldings::Packages#add
    operationId: addErmEHoldingsPackages
    tags:
      - eHoldings package
    summary: Add package
    consumes:
      - application/json
    produces:
      - application/json
    parameters:
      - description: A JSON object containing information about the new package
        in: body
        name: body
        required: true
        schema:
            $ref: "../swagger.yaml#/definitions/erm_eholdings_package"
    responses:
      201:
        description: A successfully created package
        schema:
          items:
            $ref: "../swagger.yaml#/definitions/erm_eholdings_package"
      400:
        description: Bad parameter
        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: Ressource 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:
        erm: 1
"/erm/eholdings/{provider}/packages/{package_id}":
  get:
    x-mojo-to: ERM::EHoldings::Packages#get
    operationId: getErmEHoldingsPackages
    tags:
      - package
    summary: Get eHoldings package
    produces:
      - application/json
    parameters:
      - description: Provider name
        in: path
        name: provider
        required: true
        type: string
      - $ref: "../swagger.yaml#/parameters/eholdings_package_id_pp"
    responses:
      200:
        description: A package
        schema:
          items:
            $ref: "../swagger.yaml#/definitions/erm_eholdings_package"
      401:
        description: Authentication required
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      403:
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      404:
        description: Ressource 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:
        erm: 1
    x-koha-embed:
      - agreements
      - resources
  put:
    x-mojo-to: ERM::EHoldings::Packages#update
    operationId: updateErmEHoldingsPackages
    tags:
      - package
    summary: Update eHoldings package
    consumes:
      - application/json
    produces:
      - application/json
    parameters:
      - $ref: "../swagger.yaml#/parameters/eholdings_package_id_pp"
      - name: body
        in: body
        description: A JSON object containing new information about existing package
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/erm_eholdings_package"
    responses:
      200:
        description: A successfully updated package
        schema:
          items:
            $ref: "../swagger.yaml#/definitions/erm_eholdings_package"
      400:
        description: Bad parameter
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      403:
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      404:
        description: Ressource 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:
        erm: 1
    x-koha-embed:
      - agreements
      - resources
  delete:
    x-mojo-to: ERM::EHoldings::Packages#delete
    operationId: deleteErmEHoldingsPackages
    tags:
      - package
    summary: Delete eHoldings package
    produces:
      - application/json
    parameters:
      - $ref: "../swagger.yaml#/parameters/eholdings_package_id_pp"
    responses:
      204:
        description: package deleted
      400:
        description: package deletion failed
        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: Ressource not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      409:
        description: Conflict in deleting 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:
        erm: 1
  patch:
    x-mojo-to: ERM::EHoldings::Packages#edit
    operationId: editErmEHoldingsPackages
    tags:
      - eholdings
    summary: Edit a package
    produces:
      - application/json
    parameters:
      - description: Provider name
        in: path
        name: provider
        required: true
        type: string
      - description: A JSON object containing the fields to edit
        in: body
        name: body
        required: true
        schema:
          type: object
          properties:
            is_selected:
              description: Add or remove this package from remote holdings
              type: boolean
          additionalProperties: false
      - $ref: "../swagger.yaml#/parameters/eholdings_package_id_pp"
    responses:
      200:
        description: What has been modified
        schema:
          type: object
          properties:
            is_selected:
              description: Add or remove this package from remote holdings
              type: boolean
          additionalProperties: false
      401:
        description: Authentication required
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      403:
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      404:
        description: Package 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:
        erm: 1
