---
/import_batch_profiles:
  get:
    x-mojo-to: ImportBatchProfiles#list
    operationId: listImportBatchProfiles
    tags:
      - batch_import_profiles
    summary: List batch import profiles
    parameters:
      - name: name
        in: query
        description: Search on profile's name
        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"
    consumes:
      - application/json
    produces:
      - application/json
    responses:
      "200":
        description: A list of import batch profiles
        schema:
          $ref: "../swagger.yaml#/definitions/import_batch_profiles"
      "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"
      "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:
        tools: stage_marc_import
  post:
    x-mojo-to: ImportBatchProfiles#add
    operationId: addImportBatchProfiles
    tags:
      - batch_import_profiles
    summary: Add batch import profile
    parameters:
      - name: body
        in: body
        description: A JSON object containing a import batch profile
        required: true
        schema:
          type: object
          properties:
            name:
              description: name of this profile
              type: string
            matcher_id:
              description: the id of the match rule used (matchpoints.matcher_id)
              type:
                - integer
                - "null"
            template_id:
              description: the id of the marc modification template
              type:
                - integer
                - "null"
            overlay_action:
              description: how to handle duplicate records
              type:
                - string
                - "null"
            nomatch_action:
              description: how to handle records where no match is found
              type:
                - string
                - "null"
            item_action:
              description: what to do with item records
              type:
                - string
                - "null"
            parse_items:
              description: should items be parsed
              type:
                - boolean
                - "null"
            record_type:
              description: type of record in the batch
              type:
                - string
                - "null"
            encoding:
              description: file encoding
              type:
                - string
                - "null"
            format:
              description: marc format
              type:
                - string
                - "null"
            comments:
              description: any comments added when the file was uploaded
              type:
                - string
                - "null"
          additionalProperties: false
    consumes:
      - application/json
    produces:
      - application/json
    responses:
      "201":
        description: Created Profile
        schema:
          $ref: "../swagger.yaml#/definitions/import_batch_profile"
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "401":
        description: Authentication required
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Hold not allowed
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Borrower 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:
        tools: stage_marc_import
"/import_batch_profiles/{import_batch_profile_id}":
  put:
    x-mojo-to: ImportBatchProfiles#edit
    operationId: editImportBatchProfiles
    tags:
      - batch_import_profiles
    summary: Update batch import profile
    parameters:
      - $ref: "../swagger.yaml#/parameters/import_batch_profile_id_pp"
      - name: body
        in: body
        description: A JSON object containing a import batch profile
        required: true
        schema:
          type: object
          properties:
            name:
              description: name of this profile
              type: string
            matcher_id:
              description: the id of the match rule used (matchpoints.matcher_id)
              type:
                - integer
                - "null"
            template_id:
              description: the id of the marc modification template
              type:
                - integer
                - "null"
            overlay_action:
              description: how to handle duplicate records
              type:
                - string
                - "null"
            nomatch_action:
              description: how to handle records where no match is found
              type:
                - string
                - "null"
            item_action:
              description: what to do with item records
              type:
                - string
                - "null"
            parse_items:
              description: should items be parsed
              type:
                - boolean
                - "null"
            record_type:
              description: type of record in the batch
              type:
                - string
                - "null"
            encoding:
              description: file encoding
              type:
                - string
                - "null"
            format:
              description: marc format
              type:
                - string
                - "null"
            comments:
              description: any comments added when the file was uploaded
              type:
                - string
                - "null"
          additionalProperties: false
    consumes:
      - application/json
    produces:
      - application/json
    responses:
      "200":
        description: Updated profile
        schema:
          $ref: "../swagger.yaml#/definitions/import_batch_profile"
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "401":
        description: Authentication required
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Hold not allowed
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Borrower 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:
        tools: stage_marc_import
  delete:
    x-mojo-to: ImportBatchProfiles#delete
    operationId: deleteImportBatchProfiles
    tags:
      - batch_import_profiles
    summary: Delete batch import profile
    parameters:
      - $ref: "../swagger.yaml#/parameters/import_batch_profile_id_pp"
    produces:
      - application/json
    responses:
      "204":
        description: Profile deleted
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "401":
        description: Authentication required
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Hold not allowed
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Hold 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:
        tools: stage_marc_import
