{
    "basePath": "http://localhost/taxmapp-api/public",
    "swaggerVersion": "1.2",
    "apiVersion": "1.0.0",
    "resourcePath": "/authenticates",
    "apis": [
        {
            "path": "/v2/change-password",
            "operations": [
                {
                    "method": "POST",
                    "summary": "Change password for user authenticated",
                    "nickname": "changePassword",
                    "parameters": [
                        {
                            "paramType": "query",
                            "name": "password",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Current Password"
                        },
                        {
                            "paramType": "query",
                            "name": "new_password",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "New Password"
                        },
                        {
                            "paramType": "query",
                            "name": "confirm_password",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Confirm Password"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/confirm-reset-password",
            "operations": [
                {
                    "method": "POST",
                    "summary": "Check token for reset password, was sent to user, whether is valid",
                    "nickname": "confirmResetPassword",
                    "parameters": [
                        {
                            "paramType": "query",
                            "name": "token",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 200,
                            "message": "Successful"
                        },
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/forgot-password",
            "operations": [
                {
                    "method": "POST",
                    "summary": "Forgot Password: send email with a link to reset password",
                    "nickname": "forgotPassword",
                    "parameters": [
                        {
                            "paramType": "query",
                            "name": "email",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 200,
                            "message": "Successful"
                        },
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/login",
            "operations": [
                {
                    "method": "POST",
                    "summary": "Login",
                    "nickname": "login",
                    "parameters": [
                        {
                            "paramType": "body",
                            "name": "body",
                            "type": "loginObject",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Json Object"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 200,
                            "message": "Successfully"
                        },
                        {
                            "code": 400,
                            "message": "Username/Password is Invalid | Have Error in System"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Account is not existing"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/logout",
            "operations": [
                {
                    "method": "POST",
                    "summary": "Logout",
                    "nickname": "logout",
                    "type": "List[AuthToken]"
                }
            ]
        },
        {
            "path": "/v2/me",
            "operations": [
                {
                    "method": "GET",
                    "summary": "Get Me",
                    "nickname": "getMe",
                    "responseMessages": [
                        {
                            "code": 200,
                            "message": "Successfully"
                        },
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/register",
            "operations": [
                {
                    "method": "POST",
                    "summary": "Register",
                    "nickname": "register",
                    "parameters": [
                        {
                            "paramType": "query",
                            "name": "name",
                            "type": "string",
                            "required": false,
                            "allowMultiple": false,
                            "description": "Full Name"
                        },
                        {
                            "paramType": "query",
                            "name": "email",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Email"
                        },
                        {
                            "paramType": "query",
                            "name": "password",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Password"
                        },
                        {
                            "paramType": "query",
                            "name": "confirm_password",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Confirm password"
                        },
                        {
                            "paramType": "query",
                            "name": "user_type_id",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "User type ID"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/reset-password",
            "operations": [
                {
                    "method": "POST",
                    "summary": "Reset Password",
                    "nickname": "resetPassword",
                    "parameters": [
                        {
                            "paramType": "query",
                            "name": "token",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Confirm token from Email"
                        },
                        {
                            "paramType": "query",
                            "name": "new_password",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "New Password"
                        },
                        {
                            "paramType": "query",
                            "name": "confirm_password",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Confirm Password"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        }
    ],
    "models": {
        "loginObject": {
            "id": "loginObject",
            "properties": {
                "email": {
                    "$ref": "test@test.com"
                },
                "password": {
                    "$ref": "test"
                },
                "is_remember": {
                    "type": "boolean"
                }
            }
        }
    },
    "produces": [
        "application/json"
    ]
}