---
/tickets:
  get:
    x-mojo-to: Tickets#list
    operationId: listTickets
    tags:
      - tickets
    summary: List tickets
    produces:
      - application/json
    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:
            - assignee
            - reporter
            - resolver
            - biblio
            - updates+count
            - +strings
        collectionFormat: csv
    responses:
      "200":
        description: A list of tickets
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/ticket"
      "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:
        catalogue: "1"
  post:
    x-mojo-to: Tickets#add
    operationId: addTicket
    tags:
      - tickets
    summary: Add ticket
    parameters:
      - name: body
        in: body
        description: A JSON object containing informations about the new ticket
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/ticket"
    produces:
      - application/json
    responses:
      "201":
        description: Ticket added
        schema:
          $ref: "../swagger.yaml#/definitions/ticket"
      "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:
        catalogue: "1"
"/tickets/{ticket_id}":
  get:
    x-mojo-to: Tickets#get
    operationId: getTicket
    tags:
      - tickets
    summary: Get ticket
    parameters:
      - $ref: "../swagger.yaml#/parameters/ticket_id_pp"
    produces:
      - application/json
    responses:
      "200":
        description: A ticket
        schema:
          $ref: "../swagger.yaml#/definitions/ticket"
      "400":
        description: |
          Bad request. Possible `error_code` attribute values:

            * `invalid_query`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Ticket 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:
        catalogue: "1"
  put:
    x-mojo-to: Tickets#update
    operationId: updateTicket
    tags:
      - tickets
    summary: Update ticket
    parameters:
      - $ref: "../swagger.yaml#/parameters/ticket_id_pp"
      - name: body
        in: body
        description: A ticket object
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/ticket"
    produces:
      - application/json
    responses:
      "200":
        description: A ticket
        schema:
          $ref: "../swagger.yaml#/definitions/ticket"
      "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: Ticket not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: Internal error
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        editcatalogue: edit_catalogue
  delete:
    x-mojo-to: Tickets#delete
    operationId: deleteTicket
    tags:
      - tickets
    summary: Delete ticket
    parameters:
      - $ref: "../swagger.yaml#/parameters/ticket_id_pp"
    produces:
      - application/json
    responses:
      "204":
        description: Ticket 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: Ticket not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: Internal error
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        editcatalogue: edit_catalogue
"/tickets/{ticket_id}/updates":
  get:
    x-mojo-to: Tickets#list_updates
    operationId: listTicketUpdates
    tags:
      - tickets
    summary: List ticket updates
    produces:
      - application/json
    parameters:
      - $ref: "../swagger.yaml#/parameters/ticket_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:
            - assignee
            - user
            - +strings
        collectionFormat: csv
    responses:
      "200":
        description: A list of ticket updates
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/ticket_update"
      "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"
      "404":
        description: Ticket 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:
        catalogue: "1"
  post:
    x-mojo-to: Tickets#add_update
    operationId: addTicketUpdate
    tags:
      - tickets
    summary: Add an update to the ticket
    parameters:
      - $ref: "../swagger.yaml#/parameters/ticket_id_pp"
      - name: body
        in: body
        description: A ticket update object
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/ticket_update"
    produces:
      - application/json
    responses:
      "201":
        description: Ticket added
        schema:
          $ref: "../swagger.yaml#/definitions/ticket_update"
      "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: Ticket not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: Internal error
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        editcatalogue: edit_catalogue
/public/tickets:
  post:
    x-mojo-to: Tickets#add
    operationId: addTicketPublic
    tags:
      - tickets
    summary: Add ticket
    parameters:
      - name: body
        in: body
        description: A JSON object containing informations about the new ticket
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/ticket"
    produces:
      - application/json
    responses:
      "201":
        description: Ticket added
        schema:
          $ref: "../swagger.yaml#/definitions/ticket"
      "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"
