{
    "swagger": "2.0",
    "info": {
        "description": "New Fee API to retrieve the correct fee.",
        "version": "1.0",
        "title": "New Fee API",
        "contact": {
            "name": "Eduardo Magdalena, Tarun Palisetty",
            "email": "eduardo.magdalena@hmcts.net, tarun.palisetty@hmcts.net"
        }
    },
    "host": "localhost:8080",
    "basePath": "/",
    "tags": [
        {
            "name": "fee-controller",
            "description": "Operations pertaining to fees"
        },
        {
            "name": "fee-version-controller",
            "description": "Operations pertaining to fees"
        },
        {
            "name": "reference-data-controller",
            "description": "Operations pertaining to fees reference data"
        }
    ],
    "paths": {
        "/applicant-types": {
            "get": {
                "tags": [
                    "reference-data-controller"
                ],
                "summary": "Get application types reference data",
                "operationId": "getAllApplicantTypesUsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/ApplicantTypeDto"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/channel-types": {
            "get": {
                "tags": [
                    "reference-data-controller"
                ],
                "summary": "Get channel types reference data",
                "operationId": "getAllChannelTypesUsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/ChannelTypeDto"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/direction-types": {
            "get": {
                "tags": [
                    "reference-data-controller"
                ],
                "summary": "Get direction types reference data",
                "operationId": "getAllDirectionTypesUsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/DirectionTypeDto"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/event-types": {
            "get": {
                "tags": [
                    "reference-data-controller"
                ],
                "summary": "Get event types reference data",
                "operationId": "getAllEventTypesUsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/EventTypeDto"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/fees-register/banded-fees": {
            "post": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Create banded fee",
                "operationId": "createBandedFeeUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/BandedFeeDto"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees-register/bulk-fixed-fees": {
            "post": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Create bulk fees",
                "operationId": "createFixedFeesUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "fixedFeeDtos",
                        "description": "fixedFeeDtos",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/FixedFeeDto"
                            }
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees-register/fees": {
            "get": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Search for fees based on criteria",
                "operationId": "searchUsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "amount",
                        "in": "query",
                        "description": "amount",
                        "required": false,
                        "type": "number"
                    },
                    {
                        "name": "applicant_type",
                        "in": "query",
                        "description": "applicant_type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "approvedBy",
                        "in": "query",
                        "description": "approvedBy",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "author",
                        "in": "query",
                        "description": "author",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "channel",
                        "in": "query",
                        "description": "channel",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "description",
                        "in": "query",
                        "description": "description",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "event",
                        "in": "query",
                        "description": "event",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "feeVersionAmount",
                        "in": "query",
                        "description": "feeVersionAmount",
                        "required": false,
                        "type": "number"
                    },
                    {
                        "name": "feeVersionStatus",
                        "in": "query",
                        "description": "feeVersionStatus",
                        "required": false,
                        "type": "string",
                        "enum": [
                            "draft",
                            "approved",
                            "pending_approval"
                        ]
                    },
                    {
                        "name": "isActive",
                        "in": "query",
                        "description": "isActive",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "isDraft",
                        "in": "query",
                        "description": "isDraft",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "isExpired",
                        "in": "query",
                        "description": "isExpired",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "jurisdiction1",
                        "in": "query",
                        "description": "jurisdiction1",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "jurisdiction2",
                        "in": "query",
                        "description": "jurisdiction2",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "service",
                        "in": "query",
                        "description": "service",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "siRefId",
                        "in": "query",
                        "description": "siRefId",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "unspecifiedClaimAmounts",
                        "in": "query",
                        "description": "unspecifiedClaimAmounts",
                        "required": false,
                        "type": "boolean"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Fee2Dto"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/fees-register/fees/lookup": {
            "get": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Fee lookup based on reference data and amount",
                "operationId": "lookupUsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "amount_or_volume",
                        "in": "query",
                        "description": "amount_or_volume",
                        "required": false,
                        "type": "number"
                    },
                    {
                        "name": "applicant_type",
                        "in": "query",
                        "description": "applicant_type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "channel",
                        "in": "query",
                        "description": "channel",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "event",
                        "in": "query",
                        "description": "event",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "jurisdiction1",
                        "in": "query",
                        "description": "jurisdiction1",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "jurisdiction2",
                        "in": "query",
                        "description": "jurisdiction2",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "service",
                        "in": "query",
                        "description": "service",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "$ref": "#/definitions/FeeLookupResponseDto"
                        }
                    },
                    "204": {
                        "description": "Found, but fee amount is zero",
                        "schema": {
                            "$ref": "#/definitions/FeeLookupResponseDto"
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/fees-register/fees/lookup-unspecified": {
            "get": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Lookup for unspecified fee based on reference data",
                "operationId": "lookupUnspecifiedUsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "applicant_type",
                        "in": "query",
                        "description": "applicant_type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "channel",
                        "in": "query",
                        "description": "channel",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "event",
                        "in": "query",
                        "description": "event",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "jurisdiction1",
                        "in": "query",
                        "description": "jurisdiction1",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "jurisdiction2",
                        "in": "query",
                        "description": "jurisdiction2",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "service",
                        "in": "query",
                        "description": "service",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "$ref": "#/definitions/FeeLookupResponseDto"
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/fees-register/fees/{code}": {
            "get": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Get a fee for the given fee code",
                "operationId": "getFeeUsingGET_1",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "path",
                        "description": "code",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "$ref": "#/definitions/Fee2Dto"
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "head": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "doesFeeExist",
                "operationId": "doesFeeExistUsingHEAD",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "path",
                        "description": "code",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "delete": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Delete a fee for the given fee code",
                "operationId": "deleteFeeUsingDELETE",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "path",
                        "description": "code",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successfully deleted the fee for the given fee code."
                    },
                    "403": {
                        "description": "Unable to delete fee due to an existing approved version"
                    }
                }
            }
        },
        "/fees-register/fixed-fees": {
            "post": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Create fixed fee",
                "operationId": "createFixedFeeUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/FixedFeeDto"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees-register/fixed-fees/{code}": {
            "put": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Update fixed fee",
                "operationId": "updateFixedFeeUsingPUT",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "path",
                        "description": "code",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/FixedFeeDto"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated"
                    },
                    "204": {
                        "description": "No Content"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees-register/ranged-fees": {
            "post": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Create ranged fee",
                "operationId": "createRangedFeeUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/RangedFeeDto"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees-register/ranged-fees/{code}": {
            "put": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Update ranged fee",
                "operationId": "updateRangedFeeUsingPUT",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "path",
                        "description": "code",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/RangedFeeDto"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated"
                    },
                    "204": {
                        "description": "No Content"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees-register/rateable-fees": {
            "post": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Create rateable fee",
                "operationId": "createRateableFeeUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/RateableFeeDto"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees-register/relational-fees": {
            "post": {
                "tags": [
                    "fee-controller"
                ],
                "summary": "Create relational fee",
                "operationId": "createRelationalFeeUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/RelationalFeeDto"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees/{code}/versions/{version}": {
            "delete": {
                "tags": [
                    "fee-version-controller"
                ],
                "summary": "Deletes a fee version for the given fee code if its on draft state",
                "operationId": "deleteFeeVersionUsingDELETE",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "code",
                        "in": "path",
                        "description": "code",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "version",
                        "in": "path",
                        "description": "version",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Successfully deleted the fee version for the given fee code."
                    }
                }
            }
        },
        "/fees/{feeCode}/versions": {
            "post": {
                "tags": [
                    "fee-version-controller"
                ],
                "summary": "Create fee version",
                "operationId": "createVersionUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "feeCode",
                        "in": "path",
                        "description": "feeCode",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/FeeVersionDto"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees/{feeCode}/versions/{version}/approve": {
            "patch": {
                "tags": [
                    "fee-version-controller"
                ],
                "summary": "Approve a fee version",
                "operationId": "approveUsingPATCH",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "feeCode",
                        "in": "path",
                        "description": "feeCode",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "version",
                        "in": "path",
                        "description": "version",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Fee version is Approved"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees/{feeCode}/versions/{version}/reject": {
            "patch": {
                "tags": [
                    "fee-version-controller"
                ],
                "summary": "Reject a fee version",
                "operationId": "rejectUsingPATCH",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "feeCode",
                        "in": "path",
                        "description": "feeCode",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "version",
                        "in": "path",
                        "description": "version",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Fee version is Rejected"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/fees/{feeCode}/versions/{version}/submit-for-review": {
            "patch": {
                "tags": [
                    "fee-version-controller"
                ],
                "summary": "Submit a fee version to approval",
                "operationId": "submitForReviewUsingPATCH",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "feeCode",
                        "in": "path",
                        "description": "feeCode",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "version",
                        "in": "path",
                        "description": "version",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Fee version is submitted to approval"
                    },
                    "401": {
                        "description": "Unauthorized, invalid user IDAM token"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/jurisdictions1": {
            "get": {
                "tags": [
                    "reference-data-controller"
                ],
                "summary": "Get jurisdiction1 types reference data",
                "operationId": "getAllJurisdictions1UsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Jurisdiction1Dto"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/jurisdictions2": {
            "get": {
                "tags": [
                    "reference-data-controller"
                ],
                "summary": "Get jurisdiction2 types reference data",
                "operationId": "getAllJurisdictions2UsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Jurisdiction2Dto"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/range-units": {
            "get": {
                "tags": [
                    "reference-data-controller"
                ],
                "summary": "Get range units reference data",
                "operationId": "getAllRangeUnitsUsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/RangeUnit"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/referenceData": {
            "get": {
                "tags": [
                    "reference-data-controller"
                ],
                "summary": "Get all reference data",
                "operationId": "getAllReferenceDataUsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "$ref": "#/definitions/AllReferenceDataDto"
                        }
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/service-types": {
            "get": {
                "tags": [
                    "reference-data-controller"
                ],
                "summary": "Get service types reference data",
                "operationId": "getAllServiceTypesUsingGET",
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "Authorization",
                        "in": "header",
                        "description": "User authorization header",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Found",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/ServiceTypeDto"
                            }
                        }
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        }
    },
    "definitions": {
        "AllReferenceDataDto": {
            "type": "object",
            "properties": {
                "applicantTypes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ApplicantTypeDto"
                    }
                },
                "channelTypes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ChannelTypeDto"
                    }
                },
                "directionTypes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/DirectionTypeDto"
                    }
                },
                "eventTypes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/EventTypeDto"
                    }
                },
                "jurisdictions1": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Jurisdiction1Dto"
                    }
                },
                "jurisdictions2": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Jurisdiction2Dto"
                    }
                },
                "rangeUnits": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RangeUnit"
                    }
                },
                "serviceTypes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ServiceTypeDto"
                    }
                }
            },
            "title": "AllReferenceDataDto"
        },
        "ApplicantType": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            },
            "title": "ApplicantType"
        },
        "ApplicantTypeDto": {
            "type": "object",
            "properties": {
                "creationTime": {
                    "type": "string",
                    "format": "date-time"
                },
                "lastUpdated": {
                    "type": "string",
                    "format": "date-time"
                },
                "name": {
                    "type": "string"
                }
            },
            "title": "ApplicantTypeDto"
        },
        "BandedFeeDto": {
            "type": "object",
            "properties": {
                "applicant_type": {
                    "type": "string"
                },
                "channel": {
                    "type": "string"
                },
                "event": {
                    "type": "string"
                },
                "jurisdiction1": {
                    "type": "string"
                },
                "jurisdiction2": {
                    "type": "string"
                },
                "service": {
                    "type": "string"
                },
                "unspecified_claim_amount": {
                    "type": "boolean"
                },
                "version": {
                    "$ref": "#/definitions/FeeVersionDto"
                }
            },
            "title": "BandedFeeDto"
        },
        "ChannelType": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            },
            "title": "ChannelType"
        },
        "ChannelTypeDto": {
            "type": "object",
            "properties": {
                "creationTime": {
                    "type": "string",
                    "format": "date-time"
                },
                "lastUpdated": {
                    "type": "string",
                    "format": "date-time"
                },
                "name": {
                    "type": "string"
                }
            },
            "title": "ChannelTypeDto"
        },
        "DirectionTypeDto": {
            "type": "object",
            "properties": {
                "creationTime": {
                    "type": "string",
                    "format": "date-time"
                },
                "lastUpdated": {
                    "type": "string",
                    "format": "date-time"
                },
                "name": {
                    "type": "string"
                }
            },
            "title": "DirectionTypeDto"
        },
        "EventType": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            },
            "title": "EventType"
        },
        "EventTypeDto": {
            "type": "object",
            "properties": {
                "creationTime": {
                    "type": "string",
                    "format": "date-time"
                },
                "lastUpdated": {
                    "type": "string",
                    "format": "date-time"
                },
                "name": {
                    "type": "string"
                }
            },
            "title": "EventTypeDto"
        },
        "Fee2Dto": {
            "type": "object",
            "properties": {
                "applicant_type": {
                    "$ref": "#/definitions/ApplicantType"
                },
                "channel_type": {
                    "$ref": "#/definitions/ChannelType"
                },
                "code": {
                    "type": "string"
                },
                "current_version": {
                    "$ref": "#/definitions/FeeVersionDto"
                },
                "event_type": {
                    "$ref": "#/definitions/EventType"
                },
                "fee_type": {
                    "type": "string"
                },
                "fee_versions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/FeeVersionDto"
                    }
                },
                "jurisdiction1": {
                    "$ref": "#/definitions/Jurisdiction1"
                },
                "jurisdiction2": {
                    "$ref": "#/definitions/Jurisdiction2"
                },
                "matching_version": {
                    "$ref": "#/definitions/FeeVersionDto"
                },
                "max_range": {
                    "type": "number"
                },
                "min_range": {
                    "type": "number"
                },
                "range_unit": {
                    "type": "string"
                },
                "service_type": {
                    "$ref": "#/definitions/ServiceType"
                },
                "unspecified_claim_amount": {
                    "type": "boolean"
                }
            },
            "title": "Fee2Dto"
        },
        "FeeLookupResponseDto": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "fee_amount": {
                    "type": "number"
                },
                "version": {
                    "type": "integer",
                    "format": "int32"
                }
            },
            "title": "FeeLookupResponseDto"
        },
        "FeeVersionDto": {
            "type": "object",
            "properties": {
                "version": {
                    "type": "integer",
                    "format": "int32"
                },
                "valid_from": {
                    "type": "string",
                    "format": "date-time"
                },
                "valid_to": {
                    "type": "string",
                    "format": "date-time"
                },
                "description": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "draft",
                        "approved",
                        "pending_approval"
                    ]
                },
                "flat_amount": {
                    "$ref": "#/definitions/FlatAmountDto"
                },
                "percentage_amount": {
                    "$ref": "#/definitions/PercentageAmountDto"
                },
                "volume_amount": {
                    "$ref": "#/definitions/VolumeAmountDto"
                },
                "author": {
                    "type": "string"
                },
                "approvedBy": {
                    "type": "string"
                },
                "memo_line": {
                    "type": "string"
                },
                "statutory_instrument": {
                    "type": "string"
                },
                "si_ref_id": {
                    "type": "string"
                },
                "natural_account_code": {
                    "type": "string"
                },
                "fee_order_name": {
                    "type": "string"
                },
                "direction": {
                    "type": "string"
                }
            },
            "title": "FeeVersionDto"
        },
        "FixedFeeDto": {
            "type": "object",
            "properties": {
                "applicant_type": {
                    "type": "string"
                },
                "channel": {
                    "type": "string"
                },
                "event": {
                    "type": "string"
                },
                "jurisdiction1": {
                    "type": "string"
                },
                "jurisdiction2": {
                    "type": "string"
                },
                "service": {
                    "type": "string"
                },
                "unspecified_claim_amount": {
                    "type": "boolean"
                },
                "version": {
                    "$ref": "#/definitions/FeeVersionDto"
                }
            },
            "title": "FixedFeeDto"
        },
        "FlatAmountDto": {
            "type": "object",
            "properties": {
                "amount": {
                    "type": "number"
                }
            },
            "title": "FlatAmountDto"
        },
        "Jurisdiction1": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            },
            "title": "Jurisdiction1"
        },
        "Jurisdiction1Dto": {
            "type": "object",
            "properties": {
                "creationTime": {
                    "type": "string",
                    "format": "date-time"
                },
                "lastUpdated": {
                    "type": "string",
                    "format": "date-time"
                },
                "name": {
                    "type": "string"
                }
            },
            "title": "Jurisdiction1Dto"
        },
        "Jurisdiction2": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            },
            "title": "Jurisdiction2"
        },
        "Jurisdiction2Dto": {
            "type": "object",
            "properties": {
                "creationTime": {
                    "type": "string",
                    "format": "date-time"
                },
                "lastUpdated": {
                    "type": "string",
                    "format": "date-time"
                },
                "name": {
                    "type": "string"
                }
            },
            "title": "Jurisdiction2Dto"
        },
        "PercentageAmountDto": {
            "type": "object",
            "properties": {
                "percentage": {
                    "type": "number"
                }
            },
            "title": "PercentageAmountDto"
        },
        "RangeUnit": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            },
            "title": "RangeUnit"
        },
        "RangedFeeDto": {
            "type": "object",
            "properties": {
                "applicant": {
                    "type": "string"
                },
                "applicant_type": {
                    "type": "string"
                },
                "channel": {
                    "type": "string"
                },
                "event": {
                    "type": "string"
                },
                "jurisdiction1": {
                    "type": "string"
                },
                "jurisdiction2": {
                    "type": "string"
                },
                "max_range": {
                    "type": "number"
                },
                "min_range": {
                    "type": "number"
                },
                "range_unit": {
                    "type": "string"
                },
                "service": {
                    "type": "string"
                },
                "unspecified_claim_amount": {
                    "type": "boolean"
                },
                "version": {
                    "$ref": "#/definitions/FeeVersionDto"
                }
            },
            "title": "RangedFeeDto"
        },
        "RateableFeeDto": {
            "type": "object",
            "properties": {
                "applicant_type": {
                    "type": "string"
                },
                "channel": {
                    "type": "string"
                },
                "event": {
                    "type": "string"
                },
                "jurisdiction1": {
                    "type": "string"
                },
                "jurisdiction2": {
                    "type": "string"
                },
                "service": {
                    "type": "string"
                },
                "unspecified_claim_amount": {
                    "type": "boolean"
                },
                "version": {
                    "$ref": "#/definitions/FeeVersionDto"
                }
            },
            "title": "RateableFeeDto"
        },
        "RelationalFeeDto": {
            "type": "object",
            "properties": {
                "applicant_type": {
                    "type": "string"
                },
                "channel": {
                    "type": "string"
                },
                "event": {
                    "type": "string"
                },
                "jurisdiction1": {
                    "type": "string"
                },
                "jurisdiction2": {
                    "type": "string"
                },
                "service": {
                    "type": "string"
                },
                "unspecified_claim_amount": {
                    "type": "boolean"
                },
                "version": {
                    "$ref": "#/definitions/FeeVersionDto"
                }
            },
            "title": "RelationalFeeDto"
        },
        "ServiceType": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            },
            "title": "ServiceType"
        },
        "ServiceTypeDto": {
            "type": "object",
            "properties": {
                "creationTime": {
                    "type": "string",
                    "format": "date-time"
                },
                "lastUpdated": {
                    "type": "string",
                    "format": "date-time"
                },
                "name": {
                    "type": "string"
                }
            },
            "title": "ServiceTypeDto"
        },
        "VolumeAmountDto": {
            "type": "object",
            "properties": {
                "amount": {
                    "type": "number"
                }
            },
            "title": "VolumeAmountDto"
        }
    }
}
