swagger: '2.0' 
info:
    description: 'API for the WIPO Sequence Validator' 
    version: '1.0'
    title: 'WIPO Sequence Validator API' 
    host: 'localhost:8080'
basePath: / 
tags:
-
    name: validation-controller 
    description: 'Validation Controller'
paths:
    /api/v1.0/status: 
        post:
            tags:
            - validation-controller
            summary: 'Request the validation status for a specific ST26 File' 
            operationId: getStatusUsingPOST
            consumes:
                -	application/json 
            produces:
                -	application/json 
            parameters:
                    -
                        in: body 
                        name: request
                        description: 'ST26 File name Object for validation status' 
                        required: false
                        schema:
                            $ref: '#/definitions/ValidationStatusRequest' 
            responses:
                '200':
                    description: 'This code will be complemented with a response message indicating the status of the verification process: RUNNING (the file is being processed) FINISHED-VALID(the file passed the formality validation and the result of the validation is available in the reports folder) FINISHED-INVALID(the file passed the formality validation and the result of the validation is availablein the reports folder)'
                    schema:
                        $ref: '#/definitions/ValidationStatusResponse' 
                '201':
                    description: Created 
                '400':
                    description: 'Bad request. The REST request was not well formed' 
                '401':
                    description: Unauthorized 
                '403':
                    description: Forbidden 
                '404':
                    description: 'Not Found' 
                '500':
                    description: 'Server Error. An internal error happened. This code will be complemented with a response message indicating the detail of the error' deprecated: false
    /api/v1.0/validate:
        post:
            tags:
            - validation-controller
            summary: 'Request the validation of an existing ST26 file in the inbox folder. Returns a unique verificationID for retrieving the status of the validation request' 
            operationId: validationFileUsingPOST
            consumes:
            -	application/json 
            produces:
            -	application/json 
            parameters:
            -
                in: body 
                name: request
                description: 'ST26 File name for validation' 
                required: false
            schema:
                $ref: '#/definitions/ValidationRequest' 
            responses:
                '200':
                    description: OK 
                    schema:
                        $ref: '#/definitions/ValidationResponse'
                '201':
                    description: Created 
                '202':
                    description: 'Accepted. The ST26 file passed the formal validation and their verification has started. This code will be complemented with a response message indicating a unique code for retrieving the verification report (verificationID). ST26 file is moved to the "process" folder for processing' 
                    schema:
                        $ref: '#/definitions/ValidationResponse' 
                '400':
                    description: 'Bad request. The REST request was not well formed or the ST26 file did not pass the XML validation. This code will be complemented with a response message indicating the detail of the error' 
                '401':
                    description: Unauthorized 
                '403':
                    description: Forbidden 
                '404':
                    description: 'File not found. The ST26 file was not found in the Inbox Folder'
                '500':
                    description: 'Server Error. An internal error happened. This code will be complemented with a response message indicating the detail of the error' 
            deprecated: false
definitions: 
    ValidationRequest:
        type: object 
        required:
            -	nameFile
            -	type 
        properties:
            nameFile: 
                type: string
                example: file.xml
                description: 'File Name Validation' 
            type:
                type: string
                example: 'full or formality' 
                description: 'Type of validation'
            currentApplicationNumber: 
                type: string
                example: 1.3
                description: 'The application number associated with the sequence listing' 
            currentSEQLVersionNumber:
                type: string 
                example: 1.2
                description: 'The version number of this sequence listing (internally assigned by an Office)'
            parentApplicationNumber: 
                type: string
                example: WIPO-1234
                description: 'Any associated parent application' 
            parentSEQLVersionNumber:
                type: string 
                example: 1.1
                description: 'The version number of the parent’s sequence listing'
            seqlInputLocation: 
                type: string
                example: /st26/inbox/file.xml
                description: 'Contains the path of the input xml file to be validated' 
            verificationReportOutputPath:
                type: string
                example: /st26/outbox/file.xml
                description: 'Will contain the destination path of the report.xml generated by the tool'
        title: ValidationRequest
        description: 'Class representing a response Validation status File by the application.'
    ValidationResponse: 
        type: object 
        required:
            -	verificationID 
        properties:
        errorMsg: 
            type: string
        verificationID: 
            type: string
            example: 1552208288697FNc2 
            description: verificationID
        title: ValidationResponse
        description: 'Class representing a response Validation ST26 File by the application.'
    ValidationStatusRequest: 
        type: object
        required:
        -	verificationID
        properties: 
            verificationID:
                type: string
                example: 1552208288697FNc2 
                description: verificationID
        title: ValidationStatusRequest
        description: 'Request of the validation status of an ST26 File' 
    ValidationStatusResponse:
        type: object 
        required:
            - status 
        properties: 
            status:
                type: string
                example: 'RUNNING - FINISHED-VALID - FINISHED-INVALID'
                description: 'Validation Status File' 
            reportPath:
                type: string
                example: /st26/reports/1552208288697FNc2/report_file.xml 
                description: ReportFilePath
        title: ValidationStatusResponse
        description: 'Response with the validation status for a specific verificationID.'