{
    "basePath": "http://localhost/taxmapp-api/public",
    "swaggerVersion": "1.2",
    "apiVersion": "1.0.0",
    "resourcePath": "/tax-returns",
    "apis": [
        {
            "path": "/v2/tax-returns",
            "operations": [
                {
                    "method": "GET",
                    "summary": "Get all Tax Returns",
                    "nickname": "getTaxReturns",
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                },
                {
                    "method": "POST",
                    "summary": "Create a tax return",
                    "nickname": "tax-return",
                    "parameters": [
                        {
                            "paramType": "query",
                            "name": "user_id",
                            "type": "string",
                            "required": true,
                            "description": "User ID"
                        },
                        {
                            "paramType": "query",
                            "name": "tax_year_id",
                            "type": "string",
                            "required": true,
                            "description": "Tax year ID"
                        },
                        {
                            "paramType": "query",
                            "name": "email",
                            "type": "string",
                            "required": true,
                            "description": "Email"
                        },
                        {
                            "paramType": "query",
                            "name": "type_of_return",
                            "type": "string",
                            "description": "Type of return"
                        },
                        {
                            "paramType": "query",
                            "name": "SA101",
                            "type": "string",
                            "description": "SA101"
                        },
                        {
                            "paramType": "query",
                            "name": "SA102",
                            "type": "string",
                            "description": "SA102"
                        },
                        {
                            "paramType": "query",
                            "name": "SA102M",
                            "type": "string",
                            "description": "SA102M"
                        },
                        {
                            "paramType": "query",
                            "name": "SA103S",
                            "type": "string",
                            "description": "SA103S"
                        },
                        {
                            "paramType": "query",
                            "name": "SA103L",
                            "type": "string",
                            "description": "SA103L"
                        },
                        {
                            "paramType": "query",
                            "name": "SA103F",
                            "type": "string",
                            "description": "SA103F"
                        },
                        {
                            "paramType": "query",
                            "name": "SA104F",
                            "type": "string",
                            "description": "SA104F"
                        },
                        {
                            "paramType": "query",
                            "name": "SA104S",
                            "type": "string",
                            "description": "SA104S"
                        },
                        {
                            "paramType": "query",
                            "name": "SA105",
                            "type": "string",
                            "description": "SA105"
                        },
                        {
                            "paramType": "query",
                            "name": "SA106",
                            "type": "string",
                            "description": "SA106"
                        },
                        {
                            "paramType": "query",
                            "name": "SA107",
                            "type": "string",
                            "description": "SA107"
                        },
                        {
                            "paramType": "query",
                            "name": "SA108",
                            "type": "string",
                            "description": "SA108"
                        },
                        {
                            "paramType": "query",
                            "name": "SA109",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "tax_return_generated",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "tax_calculation",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "status",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "original_xml_submission_file",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "HMRC_response",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "error_messages",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "IR_mark",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "locked",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "confirmation_email",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "additional_note",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "submission_date",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "declaration_date",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "params",
                            "type": "string",
                            "description": "SA109"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/tax-returns/{id}",
            "operations": [
                {
                    "method": "GET",
                    "summary": "Get one tax-return",
                    "nickname": "tax-return",
                    "parameters": [
                        {
                            "paramType": "path",
                            "name": "id",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Id"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                },
                {
                    "method": "PUT",
                    "summary": "Update a tax return",
                    "nickname": "updateTaxReturn",
                    "parameters": [
                        {
                            "paramType": "query",
                            "name": "user_id",
                            "type": "string",
                            "required": true,
                            "description": "User ID"
                        },
                        {
                            "paramType": "query",
                            "name": "tax_year_id",
                            "type": "string",
                            "required": true,
                            "description": "Tax year ID"
                        },
                        {
                            "paramType": "query",
                            "name": "email",
                            "type": "string",
                            "required": true,
                            "description": "Email"
                        },
                        {
                            "paramType": "query",
                            "name": "type_of_return",
                            "type": "string",
                            "description": "Type of return"
                        },
                        {
                            "paramType": "query",
                            "name": "SA101",
                            "type": "string",
                            "description": "SA101"
                        },
                        {
                            "paramType": "query",
                            "name": "SA102",
                            "type": "string",
                            "description": "SA102"
                        },
                        {
                            "paramType": "query",
                            "name": "SA102M",
                            "type": "string",
                            "description": "SA102M"
                        },
                        {
                            "paramType": "query",
                            "name": "SA103S",
                            "type": "string",
                            "description": "SA103S"
                        },
                        {
                            "paramType": "query",
                            "name": "SA103L",
                            "type": "string",
                            "description": "SA103L"
                        },
                        {
                            "paramType": "query",
                            "name": "SA103F",
                            "type": "string",
                            "description": "SA103F"
                        },
                        {
                            "paramType": "query",
                            "name": "SA104F",
                            "type": "string",
                            "description": "SA104F"
                        },
                        {
                            "paramType": "query",
                            "name": "SA104S",
                            "type": "string",
                            "description": "SA104S"
                        },
                        {
                            "paramType": "query",
                            "name": "SA105",
                            "type": "string",
                            "description": "SA105"
                        },
                        {
                            "paramType": "query",
                            "name": "SA106",
                            "type": "string",
                            "description": "SA106"
                        },
                        {
                            "paramType": "query",
                            "name": "SA107",
                            "type": "string",
                            "description": "SA107"
                        },
                        {
                            "paramType": "query",
                            "name": "SA108",
                            "type": "string",
                            "description": "SA108"
                        },
                        {
                            "paramType": "query",
                            "name": "SA109",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "tax_return_generated",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "tax_calculation",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "status",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "original_xml_submission_file",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "HMRC_response",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "error_messages",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "IR_mark",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "locked",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "confirmation_email",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "additional_note",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "submission_date",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "declaration_date",
                            "type": "string",
                            "description": "SA109"
                        },
                        {
                            "paramType": "query",
                            "name": "params",
                            "type": "string",
                            "description": "SA109"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                },
                {
                    "method": "DELETE",
                    "summary": "Delete a tax-return",
                    "nickname": "tax-return",
                    "parameters": [
                        {
                            "paramType": "path",
                            "name": "id",
                            "type": "string",
                            "required": true,
                            "description": "Id"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/tax-returns/{id}/poll",
            "operations": [
                {
                    "method": "GET",
                    "summary": "Poll to HMRC",
                    "nickname": "pollToHMRC",
                    "parameters": [
                        {
                            "paramType": "path",
                            "name": "id",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Year number"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/tax-returns/{id}/submit",
            "operations": [
                {
                    "method": "GET",
                    "summary": "Submit to HMRC",
                    "nickname": "submitToHMRC",
                    "parameters": [
                        {
                            "paramType": "path",
                            "name": "id",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Year number"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        }
    ],
    "produces": [
        "application/json"
    ]
}