{
    "basePath": "http://localhost/taxmapp-api/public",
    "swaggerVersion": "1.2",
    "apiVersion": "1.0.0",
    "resourcePath": "/subscription",
    "apis": [
        {
            "path": "/v2/subscription",
            "operations": [
                {
                    "method": "GET",
                    "summary": "Get all subscription",
                    "nickname": "subscription",
                    "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 subscription",
                    "nickname": "subscription",
                    "parameters": [
                        {
                            "paramType": "query",
                            "name": "customer_id",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Customer ID"
                        },
                        {
                            "paramType": "query",
                            "name": "source_id",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Source ID"
                        },
                        {
                            "paramType": "query",
                            "name": "plan_id",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Plan ID"
                        },
                        {
                            "paramType": "query",
                            "name": "amount",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Amount"
                        },
                        {
                            "paramType": "query",
                            "name": "currency",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Currency"
                        },
                        {
                            "paramType": "query",
                            "name": "interval_length",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Interval Length"
                        },
                        {
                            "paramType": "query",
                            "name": "interval_unit",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Interval Unit"
                        },
                        {
                            "paramType": "query",
                            "name": "next_interval_start",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Next interval start"
                        },
                        {
                            "paramType": "query",
                            "name": "taxreturn",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Tax return"
                        },
                        {
                            "paramType": "query",
                            "name": "bookkeeping",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Bookkeeping"
                        },
                        {
                            "paramType": "query",
                            "name": "payroll",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Payroll"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/subscription/cancel",
            "operations": [
                {
                    "method": "POST",
                    "summary": "Cancel a subscription",
                    "nickname": "subscription",
                    "parameters": [
                        {
                            "paramType": "body",
                            "name": "body",
                            "type": "planObject",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Json Object"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/subscription/upgrade",
            "operations": [
                {
                    "method": "POST",
                    "summary": "Upgrade a subscription",
                    "nickname": "subscription",
                    "parameters": [
                        {
                            "paramType": "body",
                            "name": "body",
                            "type": "planObject",
                            "required": true,
                            "allowMultiple": false,
                            "description": "Json Object"
                        }
                    ],
                    "responseMessages": [
                        {
                            "code": 400,
                            "message": "Invalid request params"
                        },
                        {
                            "code": 401,
                            "message": "Caller is not authenticated"
                        },
                        {
                            "code": 404,
                            "message": "Resource not found"
                        }
                    ]
                }
            ]
        },
        {
            "path": "/v2/subscription/{id}",
            "operations": [
                {
                    "method": "GET",
                    "summary": "Get one subscription",
                    "nickname": "subscription",
                    "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 subscription",
                    "nickname": "subscription",
                    "parameters": [
                        {
                            "paramType": "path",
                            "name": "id",
                            "type": "string",
                            "required": true,
                            "allowMultiple": false,
                            "description": "ID"
                        },
                        {
                            "paramType": "query",
                            "name": "customer_id",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Customer ID"
                        },
                        {
                            "paramType": "query",
                            "name": "source_id",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Source ID"
                        },
                        {
                            "paramType": "query",
                            "name": "plan_id",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Plan_id"
                        },
                        {
                            "paramType": "query",
                            "name": "amount",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Amount"
                        },
                        {
                            "paramType": "query",
                            "name": "currency",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Currency"
                        },
                        {
                            "paramType": "query",
                            "name": "interval_length",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Interval Length"
                        },
                        {
                            "paramType": "query",
                            "name": "interval_unit",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Interval Unit"
                        },
                        {
                            "paramType": "query",
                            "name": "next_interval_start",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Next interval start"
                        },
                        {
                            "paramType": "query",
                            "name": "taxreturn",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Tax return"
                        },
                        {
                            "paramType": "query",
                            "name": "bookkeeping",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Bookkeeping"
                        },
                        {
                            "paramType": "query",
                            "name": "payroll",
                            "type": "string",
                            "allowMultiple": false,
                            "description": "Payroll"
                        }
                    ],
                    "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 subscription",
                    "nickname": "subscription",
                    "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"
                        }
                    ]
                }
            ]
        }
    ],
    "models": {
        "planObject": {
            "id": "planObject",
            "properties": {
                "plan": {
                    "$ref": "club"
                }
            }
        }
    },
    "produces": [
        "application/json"
    ]
}