openapi: 3.0.0
info:
  description: Callback for the WIPO Sequence Validator
  version: "1.0"
  title: WIPO Sequence Validator Callback
paths:
  /api/validator/callback:
    post:
      summary: Return the generated contract
      operationId: callbackUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ServiceRequest"
        description: request
        required: true
      responses:
        "200":
          description: OK
        "201":
          description: CREATED
        "401":
          description: UNAUTHORIZED
        "403":
          description: FORBIDDEN
        "404":
          description: ELEMENT NOT FOUND
        "500":
          description: INTERNAL ERROR SERVER
      deprecated: false
servers:
  - url: //localhost:8080/
components:
  schemas:
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          example: INVALID_VALIDATION_TYPE
          description: error code
        message:
          type: string
          description: error message
        moreInfo:
          type: string
          description: extended info on the error
      title: Error
    MapEntry:
      type: object
      properties:
        key:
          type: string
          xml:
            name: key
            attribute: true
            wrapped: false
        value:
          type: string
      title: MapEntry
      xml:
        name: Parameter
        attribute: false
        wrapped: false
    ServiceRequest:
      type: object
      properties:
        currentApplicationNumber:
          type: string
        currentSEQLVersionNumber:
          type: string
        elapsedTime:
          type: integer
          format: int64
        endTime:
          type: string
        errorSummary:
          type: array
          items:
            $ref: "#/components/schemas/VerificationMessage"
        httpStatus:
          type: string
        parentApplicationNumber:
          type: string
        parentSEQLVersionNumber:
          type: string
        processID:
          type: string
        seqIDQuantity:
          type: integer
          format: int32
        seqInputQuantity:
          type: integer
          format: int32
        seqlType:
          type: string
        startTime:
          type: string
        totalErrorQuantity:
          type: integer
          format: int32
        totalWarningQuantity:
          type: integer
          format: int32
        verificationReportOutputPath:
          type: string
      title: ServiceRequest
    VerificationMessage:
      type: object
      properties:
        dataElement:
          type: string
          xml:
            name: DataElement
            attribute: false
            wrapped: false
        detectedSequence:
          type: string
          xml:
            name: DetectedSequence
            attribute: false
            wrapped: false
        index:
          type: integer
          format: int32
        key:
          type: string
          xml:
            name: MessageKey
            attribute: false
            wrapped: false
        locmessage:
          type: string
          xml:
            name: LocalizedMessage
            attribute: false
            wrapped: false
        params:
          type: object
          additionalProperties:
            type: string
        paramsForXML:
          type: array
          xml:
            name: ParameterBag
            attribute: false
            wrapped: true
          items:
            $ref: "#/components/schemas/MapEntry"
        reportValue:
          type: string
          xml:
            name: DetectedValue
            attribute: false
            wrapped: false
        sequenceIDNumber:
          type: string
        type:
          type: string
          xml:
            name: Severity
            attribute: false
            wrapped: false
      title: VerificationMessage
      xml:
        name: VerificationMessage
        attribute: false
        wrapped: false