{
    "openapi": "3.1.0",
    "info": {
        "title": "Paymenter",
        "version": "1.0.0",
        "description": "API documentation for Paymenter<br>Requires Paymenter v1.2.0 or higher."
    },
    "servers": [
        {
            "url": "http://localhost/api"
        }
    ],
    "tags": [
        {
            "name": "Affiliates"
        },
        {
            "name": "Categories"
        },
        {
            "name": "Users"
        },
        {
            "name": "Products"
        },
        {
            "name": "Orders"
        },
        {
            "name": "Services"
        },
        {
            "name": "Credits"
        },
        {
            "name": "Invoices"
        },
        {
            "name": "InvoiceItems"
        },
        {
            "name": "Tickets"
        },
        {
            "name": "Ticket Messages"
        }
    ],
    "security": [
        {
            "http": []
        }
    ],
    "paths": {
        "/v1/admin/affiliates": {
            "get": {
                "operationId": "affiliates.index",
                "summary": "List Affiliates",
                "tags": [
                    "Affiliates"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `code`, `visitors`, `reward`, `discount`, `created_at`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `user`, `userCount`, `userExists`, `orders`, `ordersCount`, `ordersExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[affiliate_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[code]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[visitors]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[reward]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[discount]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the affiliates as a JSON response\n\n\n\nPaginated set of `AffiliateResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/AffiliateResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/UserResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/AffiliateOrderResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "post": {
                "operationId": "affiliates.store",
                "summary": "Create a new affiliate",
                "tags": [
                    "Affiliates"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateAffiliateRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the created affiliate as a JSON response\n\n\n\n`AffiliateResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AffiliateResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/affiliates/{affiliate}": {
            "get": {
                "operationId": "affiliates.show",
                "summary": "Show a specific affiliate",
                "tags": [
                    "Affiliates"
                ],
                "parameters": [
                    {
                        "name": "affiliate",
                        "in": "path",
                        "required": true,
                        "description": "The affiliate ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `user`, `userCount`, `userExists`, `orders`, `ordersCount`, `ordersExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the affiliate as a JSON response\n\n\n\n`AffiliateResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AffiliateResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "put": {
                "operationId": "affiliates.update",
                "summary": "Update a specific affiliate",
                "tags": [
                    "Affiliates"
                ],
                "parameters": [
                    {
                        "name": "affiliate",
                        "in": "path",
                        "required": true,
                        "description": "The affiliate ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateAffiliateRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the updated affiliate as a JSON response\n\n\n\n`AffiliateResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AffiliateResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "affiliates.destroy",
                "summary": "Delete a specific affiliate",
                "tags": [
                    "Affiliates"
                ],
                "parameters": [
                    {
                        "name": "affiliate",
                        "in": "path",
                        "required": true,
                        "description": "The affiliate ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/categories": {
            "get": {
                "operationId": "v1.admin.categories.index",
                "summary": "List Categories",
                "tags": [
                    "Categories"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `created_at`, `updated_at`, `name`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `products`, `productsCount`, `productsExists`, `parent`, `parentCount`, `parentExists`, `children`, `childrenCount`, `childrenExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[parent_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the categories as a JSON response\n\n\n\nPaginated set of `CategoryResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CategoryResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/ProductResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/CategoryResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/categories/{category}": {
            "get": {
                "operationId": "v1.admin.categories.show",
                "summary": "Show a specific category",
                "tags": [
                    "Categories"
                ],
                "parameters": [
                    {
                        "name": "category",
                        "in": "path",
                        "required": true,
                        "description": "The category ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `products`, `productsCount`, `productsExists`, `parent`, `parentCount`, `parentExists`, `children`, `childrenCount`, `childrenExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the category as a JSON response\n\n\n\n`CategoryResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/CategoryResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/users": {
            "get": {
                "operationId": "v1.admin.users.index",
                "summary": "List Users",
                "tags": [
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `first_name`, `last_name`, `email`, `created_at`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `properties`, `propertiesCount`, `propertiesExists`, `orders`, `ordersCount`, `ordersExists`, `services`, `servicesCount`, `servicesExists`, `invoices`, `invoicesCount`, `invoicesExists`, `tickets`, `ticketsCount`, `ticketsExists`, `credits`, `creditsCount`, `creditsExists`, `role`, `roleCount`, `roleExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[first_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[last_name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[email]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the users as a JSON response\n\n\n\nPaginated set of `UserResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/UserResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/PropertyResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/OrderResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/ServiceResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/InvoiceResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/TicketResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/CreditResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/RoleResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "post": {
                "operationId": "v1.admin.users.store",
                "summary": "Create a new user",
                "tags": [
                    "Users"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateUserRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the created user as a JSON response\n\n\n\n`UserResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/UserResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/users/{user}": {
            "get": {
                "operationId": "v1.admin.users.show",
                "summary": "Show a specific user",
                "tags": [
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "user",
                        "in": "path",
                        "required": true,
                        "description": "The user ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `properties`, `propertiesCount`, `propertiesExists`, `orders`, `ordersCount`, `ordersExists`, `services`, `servicesCount`, `servicesExists`, `invoices`, `invoicesCount`, `invoicesExists`, `tickets`, `ticketsCount`, `ticketsExists`, `credits`, `creditsCount`, `creditsExists`, `role`, `roleCount`, `roleExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the user as a JSON response\n\n\n\n`UserResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/UserResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "put": {
                "operationId": "v1.admin.users.update",
                "summary": "Update a specific user",
                "tags": [
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "user",
                        "in": "path",
                        "required": true,
                        "description": "The user ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateUserRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the updated user as a JSON response\n\n\n\n`UserResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/UserResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "v1.admin.users.destroy",
                "summary": "Delete a specific user",
                "tags": [
                    "Users"
                ],
                "parameters": [
                    {
                        "name": "user",
                        "in": "path",
                        "required": true,
                        "description": "The user ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/orders": {
            "get": {
                "operationId": "v1.admin.orders.index",
                "summary": "List Orders",
                "tags": [
                    "Orders"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `created_at`, `updated_at`, `currency_code`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `services`, `servicesCount`, `servicesExists`, `user`, `userCount`, `userExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[currency_code]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the orders as a JSON response\n\n\n\nPaginated set of `OrderResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/OrderResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/ServiceResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/UserResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "post": {
                "operationId": "v1.admin.orders.store",
                "summary": "Create a new order",
                "tags": [
                    "Orders"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateOrderRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the created order as a JSON response\n\n\n\n`OrderResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/OrderResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/orders/{order}": {
            "get": {
                "operationId": "v1.admin.orders.show",
                "summary": "Show a specific order",
                "tags": [
                    "Orders"
                ],
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "description": "The order ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `services`, `servicesCount`, `servicesExists`, `user`, `userCount`, `userExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the order as a JSON response\n\n\n\n`OrderResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/OrderResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "put": {
                "operationId": "v1.admin.orders.update",
                "summary": "Update a specific order",
                "tags": [
                    "Orders"
                ],
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "description": "The order ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateOrderRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the updated order as a JSON response\n\n\n\n`OrderResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/OrderResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "v1.admin.orders.destroy",
                "summary": "Delete a specific order",
                "tags": [
                    "Orders"
                ],
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "description": "The order ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/products": {
            "get": {
                "operationId": "v1.admin.products.index",
                "summary": "List Products",
                "tags": [
                    "Products"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `created_at`, `updated_at`, `name`, `sort`, `stock`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `category`, `categoryCount`, `categoryExists`, `plans.prices`, `plans.pricesCount`, `plans.pricesExists`, `services`, `servicesCount`, `servicesExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[name]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[category_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[server_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[hidden]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[allow_quantity]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the products as a JSON response\n\n\n\nPaginated set of `ProductResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ProductResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/CategoryResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/PlanResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/products/{product}": {
            "get": {
                "operationId": "v1.admin.products.show",
                "summary": "Show a specific product",
                "tags": [
                    "Products"
                ],
                "parameters": [
                    {
                        "name": "product",
                        "in": "path",
                        "required": true,
                        "description": "The product ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `category`, `categoryCount`, `categoryExists`, `plans.prices`, `plans.pricesCount`, `plans.pricesExists`, `services`, `servicesCount`, `servicesExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the product as a JSON response\n\n\n\n`ProductResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ProductResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/services": {
            "get": {
                "operationId": "v1.admin.services.index",
                "summary": "List Services",
                "tags": [
                    "Services"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `created_at`, `updated_at`, `expires_at`, `status`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `order`, `orderCount`, `orderExists`, `coupon`, `couponCount`, `couponExists`, `user`, `userCount`, `userExists`, `product`, `productCount`, `productExists`, `invoices`, `invoicesCount`, `invoicesExists`, `properties`, `propertiesCount`, `propertiesExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[quantity]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[price]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[expires_at]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[subscription_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the services as a JSON response\n\n\n\nPaginated set of `ServiceResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ServiceResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/CouponResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/UserResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/OrderResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/ProductResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/InvoiceResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/PropertyResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "post": {
                "operationId": "v1.admin.services.store",
                "summary": "Create a new service",
                "tags": [
                    "Services"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateServiceRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the created service as a JSON response\n\n\n\n`ServiceResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ServiceResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/services/{service}": {
            "get": {
                "operationId": "v1.admin.services.show",
                "summary": "Show a specific service",
                "tags": [
                    "Services"
                ],
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "description": "The service ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `order`, `orderCount`, `orderExists`, `coupon`, `couponCount`, `couponExists`, `user`, `userCount`, `userExists`, `product`, `productCount`, `productExists`, `invoices`, `invoicesCount`, `invoicesExists`, `properties`, `propertiesCount`, `propertiesExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the service as a JSON response\n\n\n\n`ServiceResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ServiceResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "put": {
                "operationId": "v1.admin.services.update",
                "summary": "Update a specific service",
                "tags": [
                    "Services"
                ],
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "description": "The service ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateServiceRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the updated service as a JSON response\n\n\n\n`ServiceResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ServiceResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "v1.admin.services.destroy",
                "summary": "Delete a specific service",
                "tags": [
                    "Services"
                ],
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "description": "The service ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/credits": {
            "get": {
                "operationId": "v1.admin.credits.index",
                "summary": "List Credits",
                "tags": [
                    "Credits"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `created_at`, `updated_at`, `currency_code`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `user`, `userCount`, `userExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[currency_code]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[user_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the credits as a JSON response\n\n\n\nPaginated set of `CreditResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CreditResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/UserResource"
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "post": {
                "operationId": "v1.admin.credits.store",
                "summary": "Create a new credit",
                "tags": [
                    "Credits"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateCreditRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the created credit as a JSON response\n\n\n\n`CreditResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/CreditResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/credits/{credit}": {
            "get": {
                "operationId": "v1.admin.credits.show",
                "summary": "Show a specific credit",
                "tags": [
                    "Credits"
                ],
                "parameters": [
                    {
                        "name": "credit",
                        "in": "path",
                        "required": true,
                        "description": "The credit ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `user`, `userCount`, `userExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the credit as a JSON response\n\n\n\n`CreditResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/CreditResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "put": {
                "operationId": "v1.admin.credits.update",
                "summary": "Update a specific credit",
                "tags": [
                    "Credits"
                ],
                "parameters": [
                    {
                        "name": "credit",
                        "in": "path",
                        "required": true,
                        "description": "The credit ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateCreditRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the updated credit as a JSON response\n\n\n\n`CreditResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/CreditResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "v1.admin.credits.destroy",
                "summary": "Delete a specific credit",
                "tags": [
                    "Credits"
                ],
                "parameters": [
                    {
                        "name": "credit",
                        "in": "path",
                        "required": true,
                        "description": "The credit ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/invoices": {
            "get": {
                "operationId": "v1.admin.invoices.index",
                "summary": "List Invoices",
                "tags": [
                    "Invoices"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `created_at`, `updated_at`, `currency_code`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `items`, `itemsCount`, `itemsExists`, `user`, `userCount`, `userExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[currency_code]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[user_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the invoices as a JSON response\n\n\n\nPaginated set of `InvoiceResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/InvoiceResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/UserResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/InvoiceItemResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "post": {
                "operationId": "v1.admin.invoices.store",
                "summary": "Create a new invoice",
                "tags": [
                    "Invoices"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateInvoiceRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the created invoice as a JSON response\n\n\n\n`InvoiceResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InvoiceResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/invoices/{invoice}": {
            "get": {
                "operationId": "v1.admin.invoices.show",
                "summary": "Show a specific invoice",
                "tags": [
                    "Invoices"
                ],
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "description": "The invoice ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `items`, `itemsCount`, `itemsExists`, `user`, `userCount`, `userExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the invoice as a JSON response\n\n\n\n`InvoiceResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InvoiceResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "put": {
                "operationId": "v1.admin.invoices.update",
                "summary": "Update a specific invoice",
                "tags": [
                    "Invoices"
                ],
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "description": "The invoice ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateInvoiceRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the updated invoice as a JSON response\n\n\n\n`InvoiceResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InvoiceResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "v1.admin.invoices.destroy",
                "summary": "Delete a specific invoice",
                "tags": [
                    "Invoices"
                ],
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "description": "The invoice ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/invoice-items": {
            "get": {
                "operationId": "v1.admin.invoice-items.index",
                "summary": "List invoice items",
                "tags": [
                    "InvoiceItems"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `created_at`, `updated_at`, `quantity`, `price`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `gateway`, `gatewayCount`, `gatewayExists`, `reference`, `referenceCount`, `referenceExists`, `invoice`, `invoiceCount`, `invoiceExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[quantity]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[price]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[reference_type]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[reference_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the invoices as a JSON response\n\n\n\nPaginated set of `InvoiceItemResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/InvoiceItemResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/ServiceResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/CouponResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/UserResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/OrderResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/ProductResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/InvoiceResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/PropertyResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/ServiceUpgradeResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/CreditResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/InvoiceItemResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "post": {
                "operationId": "v1.admin.invoice-items.store",
                "summary": "Create a new invoice item",
                "tags": [
                    "InvoiceItems"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateInvoiceItemRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the created invoice as a JSON response\n\n\n\n`InvoiceItemResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InvoiceItemResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/invoice-items/{invoiceItem}": {
            "get": {
                "operationId": "v1.admin.invoice-items.show",
                "summary": "Show a specific invoice item",
                "tags": [
                    "InvoiceItems"
                ],
                "parameters": [
                    {
                        "name": "invoiceItem",
                        "in": "path",
                        "required": true,
                        "description": "The invoice item ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `gateway`, `gatewayCount`, `gatewayExists`, `reference`, `referenceCount`, `referenceExists`, `invoice`, `invoiceCount`, `invoiceExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the invoice item as a JSON response\n\n\n\n`InvoiceItemResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InvoiceItemResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "put": {
                "operationId": "v1.admin.invoice-items.update",
                "summary": "Update a specific invoice item",
                "tags": [
                    "InvoiceItems"
                ],
                "parameters": [
                    {
                        "name": "invoiceItem",
                        "in": "path",
                        "required": true,
                        "description": "The invoice item ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateInvoiceItemRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the updated invoice item as a JSON response\n\n\n\n`InvoiceItemResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/InvoiceItemResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "v1.admin.invoice-items.destroy",
                "summary": "Delete a specific invoice item",
                "tags": [
                    "InvoiceItems"
                ],
                "parameters": [
                    {
                        "name": "invoiceItem",
                        "in": "path",
                        "required": true,
                        "description": "The invoice item ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/tickets": {
            "get": {
                "operationId": "v1.admin.tickets.index",
                "summary": "List Tickets",
                "tags": [
                    "Tickets"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `created_at`, `updated_at`, `currency_code`, `status`, `priority`, `department`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `messages`, `messagesCount`, `messagesExists`, `user`, `userCount`, `userExists`, `assigned_to`, `assigned_toCount`, `assigned_toExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[currency_code]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[user_id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[priority]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[department]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the tickets as a JSON response\n\n\n\nPaginated set of `TicketResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/TicketMessageResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/UserResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "post": {
                "operationId": "v1.admin.tickets.store",
                "summary": "Create a new ticket",
                "tags": [
                    "Tickets"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateTicketRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the created ticket as a JSON response\n\n\n\n`TicketResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/TicketResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/tickets/{ticket}": {
            "get": {
                "operationId": "v1.admin.tickets.show",
                "summary": "Show a specific ticket",
                "tags": [
                    "Tickets"
                ],
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "required": true,
                        "description": "The ticket ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `messages`, `messagesCount`, `messagesExists`, `user`, `userCount`, `userExists`, `assigned_to`, `assigned_toCount`, `assigned_toExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the ticket as a JSON response\n\n\n\n`TicketResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/TicketResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "put": {
                "operationId": "v1.admin.tickets.update",
                "summary": "Update a specific ticket",
                "tags": [
                    "Tickets"
                ],
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "required": true,
                        "description": "The ticket ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateTicketRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the updated ticket as a JSON response\n\n\n\n`TicketResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/TicketResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "v1.admin.tickets.destroy",
                "summary": "Delete a specific ticket",
                "tags": [
                    "Tickets"
                ],
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "required": true,
                        "description": "The ticket ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/ticket-messages": {
            "get": {
                "operationId": "v1.admin.ticket-messages.index",
                "summary": "List TicketMessages",
                "tags": [
                    "Ticket Messages"
                ],
                "parameters": [
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Available sorts are `id`, `created_at`, `updated_at`, `currency_code`. You can sort by multiple options by separating them with a comma. To sort in descending order, use `-` sign in front of the sort, for example: `-id`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `user`, `userCount`, `userExists`, `ticket`, `ticketCount`, `ticketExists`, `attachments`, `attachmentsCount`, `attachmentsExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "How many items to show per page.",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 20
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Which page to show.",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2
                    },
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[currency_code]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the ticketMessages as a JSON response\n\n\n\nPaginated set of `TicketMessageResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TicketMessageResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "first": {
                                                    "type": "string"
                                                },
                                                "last": {
                                                    "type": "string"
                                                },
                                                "prev": {
                                                    "type": "string"
                                                },
                                                "next": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "from": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "path": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Base path for paginator generated URLs."
                                                },
                                                "per_page": {
                                                    "type": "integer",
                                                    "description": "Number of items shown per page."
                                                },
                                                "to": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ],
                                                    "description": "Number of the last item in the slice."
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "from",
                                                "path",
                                                "per_page",
                                                "to"
                                            ]
                                        },
                                        "included": {
                                            "type": "array",
                                            "items": {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/UserResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/TicketResource"
                                                    },
                                                    {
                                                        "$ref": "#/components/schemas/TicketAttachmentResource"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "post": {
                "operationId": "v1.admin.ticket-messages.store",
                "summary": "Create a new ticketMessage",
                "tags": [
                    "Ticket Messages"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateTicketMessageRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Return the created ticketMessage as a JSON response\n\n\n\n`TicketMessageResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/TicketMessageResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        },
        "/v1/admin/ticket-messages/{ticketMessage}": {
            "get": {
                "operationId": "v1.admin.ticket-messages.show",
                "summary": "Show a specific ticketMessage",
                "tags": [
                    "Ticket Messages"
                ],
                "parameters": [
                    {
                        "name": "ticketMessage",
                        "in": "path",
                        "required": true,
                        "description": "The ticket message ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Available includes are `user`, `userCount`, `userExists`, `ticket`, `ticketCount`, `ticketExists`, `attachments`, `attachmentsCount`, `attachmentsExists`. You can include multiple options by separating them with a comma.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Return the ticketMessage as a JSON response\n\n\n\n`TicketMessageResource`",
                        "content": {
                            "application/vnd.api+json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/TicketMessageResource"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            },
            "delete": {
                "operationId": "v1.admin.ticket-messages.destroy",
                "summary": "Delete a specific ticketMessage",
                "tags": [
                    "Ticket Messages"
                ],
                "parameters": [
                    {
                        "name": "ticketMessage",
                        "in": "path",
                        "required": true,
                        "description": "The ticket message ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    },
                    "404": {
                        "$ref": "#/components/responses/ModelNotFoundException"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "403": {
                        "$ref": "#/components/responses/AuthorizationException"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "http": {
                "type": "http",
                "scheme": "bearer"
            }
        },
        "schemas": {
            "AffiliateOrderResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "order_id": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "id",
                            "order_id"
                        ]
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "AffiliateOrderResource"
            },
            "AffiliateOrderResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string"
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "AffiliateOrderResourceIdentifier"
            },
            "AffiliateResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "code": {
                                "type": "string"
                            },
                            "enabled": {
                                "type": "string"
                            },
                            "visitors": {
                                "type": "string"
                            },
                            "reward": {
                                "type": "string"
                            },
                            "discount": {
                                "type": "string"
                            },
                            "earnings": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": "string"
                            },
                            "created_at": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "id",
                            "code",
                            "enabled",
                            "visitors",
                            "reward",
                            "discount",
                            "earnings",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "user": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/UserResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "orders": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/AffiliateOrderResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "AffiliateResource"
            },
            "CategoryResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "categories"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "parent_id": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "permissions": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "parent_id",
                            "permissions",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "products": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/ProductResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "parent": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/CategoryResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "children": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/CategoryResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "CategoryResource"
            },
            "CategoryResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "categories"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "CategoryResourceIdentifier"
            },
            "CouponResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "coupons"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "code": {
                                "type": "string"
                            },
                            "type": {
                                "type": "string"
                            },
                            "recurring": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "value": {
                                "type": [
                                    "number",
                                    "null"
                                ]
                            },
                            "max_uses": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "max_uses_per_user": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "starts_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "expires_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "code",
                            "type",
                            "recurring",
                            "value",
                            "max_uses",
                            "max_uses_per_user",
                            "starts_at",
                            "expires_at",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "services": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/ServiceResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "CouponResource"
            },
            "CouponResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "coupons"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "CouponResourceIdentifier"
            },
            "CreateAffiliateRequest": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "integer"
                    },
                    "code": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "enabled": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "reward": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "minimum": 0,
                        "maximum": 100
                    }
                },
                "required": [
                    "user_id",
                    "code"
                ],
                "title": "CreateAffiliateRequest"
            },
            "CreateCreditRequest": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "integer"
                    },
                    "currency_code": {
                        "type": "string",
                        "example": "USD"
                    },
                    "amount": {
                        "type": "number",
                        "minimum": 0
                    }
                },
                "required": [
                    "user_id",
                    "currency_code",
                    "amount"
                ],
                "title": "CreateCreditRequest"
            },
            "CreateInvoiceItemRequest": {
                "type": "object",
                "properties": {
                    "invoice_id": {
                        "type": "integer"
                    },
                    "description": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "price": {
                        "type": "number",
                        "minimum": 0
                    },
                    "quantity": {
                        "type": "integer",
                        "minimum": 1
                    },
                    "reference_type": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "reference_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "invoice_id",
                    "description",
                    "price",
                    "quantity"
                ],
                "title": "CreateInvoiceItemRequest"
            },
            "CreateInvoiceRequest": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "integer"
                    },
                    "currency_code": {
                        "type": "string",
                        "example": "USD"
                    },
                    "due_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "pending",
                            "paid",
                            "cancelled"
                        ],
                        "default": "pending"
                    }
                },
                "required": [
                    "user_id",
                    "currency_code",
                    "status"
                ],
                "title": "CreateInvoiceRequest"
            },
            "CreateOrderRequest": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "integer"
                    },
                    "currency_code": {
                        "type": "string",
                        "example": "USD"
                    }
                },
                "required": [
                    "user_id",
                    "currency_code"
                ],
                "title": "CreateOrderRequest"
            },
            "CreateServiceRequest": {
                "type": "object",
                "properties": {
                    "product_id": {
                        "type": "integer"
                    },
                    "plan_id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "quantity": {
                        "type": "integer",
                        "default": 1,
                        "minimum": 1
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "pending",
                            "active",
                            "cancelled",
                            "suspended"
                        ],
                        "default": "pending"
                    },
                    "expires_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "currency_code": {
                        "type": "string",
                        "example": "USD"
                    },
                    "price": {
                        "type": "number",
                        "minimum": 0
                    },
                    "coupon_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "subscription_id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "order_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "product_id",
                    "plan_id",
                    "user_id",
                    "quantity",
                    "status",
                    "currency_code",
                    "price"
                ],
                "title": "CreateServiceRequest"
            },
            "CreateTicketMessageRequest": {
                "type": "object",
                "properties": {
                    "message": {
                        "type": "string",
                        "maxLength": 5000
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "ticket_id": {
                        "type": "integer"
                    }
                },
                "required": [
                    "message",
                    "user_id",
                    "ticket_id"
                ],
                "title": "CreateTicketMessageRequest"
            },
            "CreateTicketRequest": {
                "type": "object",
                "properties": {
                    "subject": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "department": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "Support",
                            "Sales"
                        ]
                    },
                    "priority": {
                        "type": "string",
                        "enum": [
                            "low",
                            "medium",
                            "high"
                        ]
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "open",
                            "closed",
                            "replied"
                        ]
                    }
                },
                "required": [
                    "subject",
                    "user_id",
                    "priority",
                    "status"
                ],
                "title": "CreateTicketRequest"
            },
            "CreateUserRequest": {
                "type": "object",
                "properties": {
                    "first_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "last_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "email": {
                        "type": "string",
                        "format": "email",
                        "maxLength": 255
                    },
                    "password": {
                        "type": "string",
                        "minLength": 8
                    },
                    "email_verified_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "role_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "required": [
                    "email",
                    "password"
                ],
                "title": "CreateUserRequest"
            },
            "CreditResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "credits"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "currency_code": {
                                "type": "string"
                            },
                            "amount": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "currency_code",
                            "amount",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "user": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/UserResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "CreditResource"
            },
            "CreditResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "credits"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "CreditResourceIdentifier"
            },
            "InvoiceItemResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "invoiceItems"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "description": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "quantity": {
                                "type": "integer"
                            },
                            "price": {
                                "type": "string"
                            },
                            "reference_type": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "reference_id": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "description",
                            "quantity",
                            "price",
                            "reference_type",
                            "reference_id",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "reference": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/ServiceResourceIdentifier"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/ServiceUpgradeResourceIdentifier"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/CreditResourceIdentifier"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "invoice": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "anyOf": [
                                                    {
                                                        "$ref": "#/components/schemas/InvoiceResourceIdentifier"
                                                    },
                                                    {
                                                        "type": "null"
                                                    }
                                                ]
                                            },
                                            {
                                                "type": "object"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "InvoiceItemResource"
            },
            "InvoiceItemResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "invoiceItems"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "InvoiceItemResourceIdentifier"
            },
            "InvoiceResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "invoices"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "status": {
                                "type": "string"
                            },
                            "currency_code": {
                                "type": "string"
                            },
                            "due_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "status",
                            "currency_code",
                            "due_at",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "user": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/UserResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "items": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/InvoiceItemResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "InvoiceResource"
            },
            "InvoiceResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "invoices"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "InvoiceResourceIdentifier"
            },
            "OrderResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "orders"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "currency_code": {
                                "type": "string"
                            },
                            "user_id": {
                                "type": "integer"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "currency_code",
                            "user_id",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "services": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/ServiceResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "user": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/UserResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "OrderResource"
            },
            "OrderResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "orders"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "OrderResourceIdentifier"
            },
            "PlanResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "plans"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "type": {
                                "type": "string"
                            },
                            "billing_period": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "billing_unit": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "sort": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "type",
                            "billing_period",
                            "billing_unit",
                            "sort"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "prices": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/PriceResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "PlanResource"
            },
            "PlanResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "plans"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "PlanResourceIdentifier"
            },
            "PriceResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "prices"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "PriceResourceIdentifier"
            },
            "ProductResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "products"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "image": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "slug": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "stock": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "per_user_limit": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "sort": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "allow_quantity": {
                                "type": "string"
                            },
                            "email_template": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "hidden": {
                                "type": "integer"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "description",
                            "image",
                            "slug",
                            "stock",
                            "per_user_limit",
                            "sort",
                            "allow_quantity",
                            "email_template",
                            "hidden",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "category": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/CategoryResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "plans": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/PlanResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "ProductResource"
            },
            "ProductResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "products"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "ProductResourceIdentifier"
            },
            "PropertyResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "properties"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "key": {
                                "type": "string"
                            },
                            "value": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "key",
                            "value",
                            "updated_at",
                            "created_at"
                        ]
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "PropertyResource"
            },
            "PropertyResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "properties"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "PropertyResourceIdentifier"
            },
            "RoleResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "roles"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "permissions": {
                                "type": [
                                    "array",
                                    "null"
                                ],
                                "items": {}
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "name",
                            "permissions",
                            "updated_at",
                            "created_at"
                        ]
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "RoleResource"
            },
            "RoleResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "roles"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "RoleResourceIdentifier"
            },
            "ServiceResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "services"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "quantity": {
                                "type": "integer"
                            },
                            "price": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "currency_code": {
                                "type": "string"
                            },
                            "expires_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "quantity",
                            "price",
                            "status",
                            "currency_code",
                            "expires_at",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "coupon": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/CouponResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "user": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/UserResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "order": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/OrderResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "product": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/ProductResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "invoices": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/InvoiceResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "properties": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/PropertyResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "ServiceResource"
            },
            "ServiceResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "services"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "ServiceResourceIdentifier"
            },
            "ServiceUpgradeResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "serviceUpgrades"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "status": {
                                "type": "string"
                            },
                            "service_id": {
                                "type": "integer"
                            },
                            "plan_id": {
                                "type": "integer"
                            },
                            "product_id": {
                                "type": "integer"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "status",
                            "service_id",
                            "plan_id",
                            "product_id",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "service": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/PropertyResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "invoice": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/InvoiceResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "ServiceUpgradeResource"
            },
            "ServiceUpgradeResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "serviceUpgrades"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "ServiceUpgradeResourceIdentifier"
            },
            "TicketAttachmentResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "uuid": {
                                "type": "string"
                            },
                            "filename": {
                                "type": "string"
                            },
                            "path": {
                                "type": "string"
                            },
                            "filesize": {
                                "type": "string"
                            },
                            "mime_type": {
                                "type": "string"
                            },
                            "created_at": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "id",
                            "uuid",
                            "filename",
                            "path",
                            "filesize",
                            "mime_type",
                            "created_at",
                            "updated_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "message": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/TicketMessageResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "TicketAttachmentResource"
            },
            "TicketAttachmentResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string"
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "TicketAttachmentResourceIdentifier"
            },
            "TicketMessageResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "ticketMessages"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "message": {
                                "type": "string"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "message",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "user": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/UserResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "ticket": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/TicketResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "attachments": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/TicketAttachmentResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "TicketMessageResource"
            },
            "TicketMessageResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "ticketMessages"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "TicketMessageResourceIdentifier"
            },
            "TicketResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "tickets"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "subject": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "priority": {
                                "type": "string"
                            },
                            "assigned_to": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "user_id": {
                                "type": "integer"
                            },
                            "department": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "subject",
                            "status",
                            "priority",
                            "assigned_to",
                            "user_id",
                            "department",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "messages": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/TicketMessageResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "user": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/UserResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "assigned_to": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/UserResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "TicketResource"
            },
            "TicketResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "tickets"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "TicketResourceIdentifier"
            },
            "UpdateAffiliateRequest": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "code": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "enabled": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "reward": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "minimum": 0,
                        "maximum": 100
                    }
                },
                "title": "UpdateAffiliateRequest"
            },
            "UpdateCreditRequest": {
                "type": "object",
                "properties": {
                    "currency_code": {
                        "type": "string",
                        "example": "USD"
                    },
                    "amount": {
                        "type": "number",
                        "minimum": 0
                    }
                },
                "title": "UpdateCreditRequest"
            },
            "UpdateInvoiceItemRequest": {
                "type": "object",
                "properties": {
                    "description": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "quantity": {
                        "type": "integer",
                        "minimum": 1
                    },
                    "price": {
                        "type": "number",
                        "minimum": 0
                    },
                    "reference_type": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "reference_id": {
                        "type": "integer"
                    }
                },
                "title": "UpdateInvoiceItemRequest"
            },
            "UpdateInvoiceRequest": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "integer"
                    },
                    "currency_code": {
                        "type": "string",
                        "example": "USD"
                    },
                    "due_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "pending",
                            "paid",
                            "cancelled"
                        ],
                        "default": "pending"
                    }
                },
                "title": "UpdateInvoiceRequest"
            },
            "UpdateOrderRequest": {
                "type": "object",
                "properties": {
                    "user_id": {
                        "type": "integer"
                    },
                    "currency_code": {
                        "type": "string",
                        "example": "USD"
                    }
                },
                "title": "UpdateOrderRequest"
            },
            "UpdateServiceRequest": {
                "type": "object",
                "properties": {
                    "product_id": {
                        "type": "integer"
                    },
                    "plan_id": {
                        "type": "integer"
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "quantity": {
                        "type": "integer",
                        "default": 1,
                        "minimum": 1
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "pending",
                            "active",
                            "cancelled",
                            "suspended"
                        ],
                        "default": "pending"
                    },
                    "expires_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "currency_code": {
                        "type": "string",
                        "example": "USD"
                    },
                    "price": {
                        "type": "number",
                        "minimum": 0
                    },
                    "coupon_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "subscription_id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "order_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "title": "UpdateServiceRequest"
            },
            "UpdateTicketRequest": {
                "type": "object",
                "properties": {
                    "subject": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "user_id": {
                        "type": "integer"
                    },
                    "department": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "enum": [
                            "Support",
                            "Sales"
                        ]
                    },
                    "priority": {
                        "type": "string",
                        "enum": [
                            "low",
                            "medium",
                            "high"
                        ]
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "open",
                            "closed",
                            "replied"
                        ]
                    }
                },
                "title": "UpdateTicketRequest"
            },
            "UpdateUserRequest": {
                "type": "object",
                "properties": {
                    "first_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "last_name": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "maxLength": 255
                    },
                    "email": {
                        "type": "string",
                        "format": "email",
                        "maxLength": 255
                    },
                    "password": {
                        "type": "string",
                        "minLength": 8
                    },
                    "email_verified_at": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    },
                    "role_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                },
                "title": "UpdateUserRequest"
            },
            "UserResource": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "users"
                        ]
                    },
                    "attributes": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "first_name": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "last_name": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "email": {
                                "type": "string"
                            },
                            "email_verified_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "updated_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            },
                            "created_at": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date-time"
                            }
                        },
                        "required": [
                            "id",
                            "first_name",
                            "last_name",
                            "email",
                            "email_verified_at",
                            "updated_at",
                            "created_at"
                        ]
                    },
                    "relationships": {
                        "type": "object",
                        "properties": {
                            "properties": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/PropertyResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "orders": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/OrderResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "services": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/ServiceResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "invoices": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/InvoiceResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "tickets": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/TicketResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "credits": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "type": "array",
                                        "items": {
                                            "$ref": "#/components/schemas/CreditResourceIdentifier"
                                        }
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            },
                            "role": {
                                "type": "object",
                                "properties": {
                                    "data": {
                                        "anyOf": [
                                            {
                                                "$ref": "#/components/schemas/RoleResourceIdentifier"
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                },
                                "required": [
                                    "data"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "id",
                    "type"
                ],
                "title": "UserResource"
            },
            "UserResourceIdentifier": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "users"
                        ]
                    },
                    "id": {
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "id"
                ],
                "title": "UserResourceIdentifier"
            }
        },
        "responses": {
            "ValidationException": {
                "description": "Validation error",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Errors overview."
                                },
                                "errors": {
                                    "type": "object",
                                    "description": "A detailed description of each field that failed validation.",
                                    "additionalProperties": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "required": [
                                "message",
                                "errors"
                            ]
                        }
                    }
                }
            },
            "AuthorizationException": {
                "description": "Authorization error",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            },
            "ModelNotFoundException": {
                "description": "Not found",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            }
        }
    }
}