{
  "openapi": "3.0.0",
  "info": {
    "title": "Futrou API v2",
    "version": "2.0.123",
    "description": "\n<img src=\"docs-icon.webp\" align=\"left\" height=\"95px\" style=\"padding-right: 10px;\"/>Futrou offers a public REST and MCP APIs for all its customers that allow you to build custom applications on top of it and automate your business processes. The latest version is v2.0.123.\n\n## REST API\n> [!tip]\n> https://api.futrou.com/v2\n\n<details>\n<summary>Authentication</summary>\n\nThe API supports these authentication methods:\n- **Bearer Token**: Include your long-lived API token in the Authorization header.<br/>(e.g. `Authorization: Bearer <token>`). You can obtain your API token from your Futrou account at [app.futrou.com](https://app.futrou.com). This method is recommended for automated actions.\n- **Session Cookie**: Use short-lived session-based authentication with HTTP-only cookie.<br/>(e.g. `Cookie: authorization=<token>`). This method is not suitable for automated actions because it might require additional 2FA verification and user interaction. Variants:\n    - **Credentials**: The cookie is set after calling the [login endpoint](/#v2/tag/auth/POST/v2/auth/login) with valid credentials.\n    - **OAuth2 SSO**: The cookie is set after finishing the OAuth2 flow and giving Futrou access to your personal/work account with one of the supported providers: GitHub, GitLab, Google, Microsoft.\n</details>\n\n<details>\n<summary>Pagination & Sorting</summary>\n\nThe listing API endpoints support pagination using the following query parameters:\n- `page`: The page number to return (default: 1)\n- `limit`: The maximum number of items per page (default: 100)\n- `sort`: The field to sort by (default: `createdAt`)\n- `direction`: The direction to sort by (default: `desc`)\n\nThe pagination metadata are returned in the response headers:\n- `X-Total-Pages`: The total number of pages (example: 10)\n- `X-Total-Items`: The total number of items (example: 100)\n- `X-Page-Items`: The number of items on the current page (example: 20)\n- `X-Page`: The current page number (example: 1)\n</details>\n\n<details>\n<summary>Limits & Errors</summary>\n\nThe API has a global rate limit of 100 requests/sec. Authenticated users can request limit increase.\nSpecific endpoints may have additional lower rate limits.\nIf you exceed the limit, you will receive a `429 Too Many Requests` response with the `Retry-After` header set to the number of seconds you need to wait.\n\nThe API returns standardized HTTP error status codes for all endpoints with the following error response structure:\n```json\n{\n  \"message\": \"Bad Request\",\n  \"requestId\": \"bde5abde-3192-4a01-bc05-135cdf850930\",\n  \"clientIp\": \"127.0.0.1\",\n  \"errors\": [\n    {\n      \"message\": \"Invalid 'createdAt' filter value 'op'. Value must be in ISO 8601 range format: 'from/to' (e.g. 2000-01-01T00:00:00.000Z/3000-01-01T23:59:59.999Z).\",\n      \"code\": \"INVALID_DATETIME_FILTER\",\n      \"field\": \"createdAt\",\n      \"stack\": []\n    },\n    {\n      \"message\": \"Invalid 'email' field. Value must be a valid email address.\",\n      \"code\": \"VALIDATION_ERROR\",\n      \"field\": \"email\",\n      \"stack\": []\n    }\n  ]\n}\n```\n</details>\n\n<details>\n<summary>Requests</summary>\n\nThe API uses HTTPS requests and JSON-formatted responses. Other formats, such as XML or GraphQL, are not supported. \nAll requests must be sent over HTTPS with min. supported TLS version 1.2 and include a JSON payload. The `Content-Type: application/json` header is required for all requests.\n\n</details>\n\n## MCP API\n\nIn addition to the REST API, Futrou also offers an MCP server for AI agents to interact with your workspace, manage projects and services, and much more. It's available at:\n\n> [!tip]\n> https://mcp.futrou.com\n\n<details>\n<summary>Usage</summary>\n\nConnect any MCP-compatible client by pointing it at `https://mcp.futrou.com`. Authentication is handled automatically via OAuth2 — on first connect your client will open a browser consent screen, after which tokens are managed for you. Alternatively, pass a long-lived API token directly as a bearer header (no browser flow required).\n\n> [!note]\n> Not sure how to set it up? Just ask your AI agent: *\"Add the Futrou MCP server at https://mcp.futrou.com\"* — it will configure everything for you.\n\n**Claude Code / Claude Desktop**\n\nAdd to your `claude_desktop_config.json` (or run the CLI command):\n```json\n{\n  \"mcpServers\": {\n    \"futrou\": {\n      \"url\": \"https://mcp.futrou.com\"\n    }\n  }\n}\n```\nOr via CLI:\n```bash\nclaude mcp add --transport http futrou https://mcp.futrou.com\nclaude mcp remove futrou\n```\n\n**Cursor**\n\nAdd to your `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global):\n```json\n{\n  \"mcpServers\": {\n    \"futrou\": {\n      \"url\": \"https://mcp.futrou.com\"\n    }\n  }\n}\n```\nOr via CLI:\n```bash\ncursor mcp add --transport http futrou https://mcp.futrou.com\ncursor mcp remove futrou\n```\n\n**OpenAI Codex**\n\nAdd to your `codex.json` configuration:\n```json\n{\n  \"mcpServers\": {\n    \"futrou\": {\n      \"url\": \"https://mcp.futrou.com\"\n    }\n  }\n}\n```\nTo remove, delete the `futrou` entry from `codex.json`.\n\n**Antigravity**\n\nAdd to your `.antigravity/mcp.json`:\n```json\n{\n  \"mcpServers\": {\n    \"futrou\": {\n      \"url\": \"https://mcp.futrou.com\"\n    }\n  }\n}\n```\nTo remove, delete the `futrou` entry from `.antigravity/mcp.json`.\n\n**API key auth (any client)**\n\nIf you prefer not to use the OAuth2 flow, pass your API token as a header:\n```json\n{\n  \"mcpServers\": {\n    \"futrou\": {\n      \"url\": \"https://mcp.futrou.com\",\n      \"headers\": { \"Authorization\": \"Bearer <YOUR_API_TOKEN>\" }\n    }\n  }\n}\n```\nYou can generate an API token at [app.futrou.com](https://app.futrou.com) under **Settings → API Tokens**.\n</details>\n\n<details>\n<summary>Authentication</summary>\n\nThe MCP server uses OAuth2 for authentication. Connect your AI agent using the MCP server URL and follow the OAuth2 authorization flow:\n1. Your MCP client will discover the authorization server via `/.well-known/oauth-protected-resource`.\n2. Complete the authorization code flow at `https://api.futrou.com/v2/auth/oauth2/authorize`.\n3. Exchange the code for a token at `https://api.futrou.com/v2/auth/oauth2/token`.\n4. The token is automatically included in subsequent MCP requests.\n\nMost MCP-compatible clients (Claude Desktop, Cursor, etc.) handle this flow automatically.\n</details>\n\n<details>\n<summary>Limits & Errors</summary>\n\nThe MCP server shares the same rate limits as the REST API (100 requests/sec). Each tool call counts as one API request.\nIf you exceed the limit, the MCP server will return an error and your agent should retry after the indicated delay.\n\nErrors are returned as MCP error responses with the same structure as the REST API:\n```json\n{\n  \"message\": \"Bad Request\",\n  \"requestId\": \"bde5abde-3192-4a01-bc05-135cdf850930\",\n  \"clientIp\": \"127.0.0.1\",\n  \"errors\": [\n    {\n      \"message\": \"Invalid field value.\",\n      \"code\": \"VALIDATION_ERROR\",\n      \"field\": \"target\",\n      \"stack\": []\n    }\n  ]\n}\n```\n</details>\n\nFor more information, visit [https://futrou.com](https://futrou.com) or contact us at info@futrou.com.\n      ",
    "contact": {
      "name": "info@futrou.com",
      "email": "info@futrou.com",
      "url": "https://futrou.com"
    },
    "license": {
      "name": "UNLICENSED"
    },
    "termsOfService": "https://futrou.com/terms"
  },
  "externalDocs": {
    "description": "Documentation",
    "url": "https://docs.futrou.com"
  },
  "components": {
    "responses": {
      "Forbidden": {
        "description": "Access token is missing or invalid"
      },
      "Accepted": {
        "description": "The request was accepted"
      },
      "Created": {
        "description": "The resource has been created"
      },
      "NotFound": {
        "description": "The resource was not found"
      },
      "NotAcceptable": {
        "description": "The request is not acceptable"
      },
      "NoContent": {
        "description": "No Content"
      },
      "HttpError400": {
        "description": "Bad Request - The request was invalid or cannot be served",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HttpError400"
            }
          }
        }
      },
      "HttpError401": {
        "description": "Unauthorized - Authentication required or invalid",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HttpError401"
            }
          }
        }
      },
      "HttpError403": {
        "description": "Forbidden - Access denied",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HttpError403"
            }
          }
        }
      },
      "HttpError404": {
        "description": "Not Found - The requested resource was not found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HttpError404"
            }
          }
        }
      },
      "HttpError429": {
        "description": "Too Many Requests - Rate limit exceeded",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HttpError429"
            }
          }
        }
      }
    },
    "parameters": {
      "PathProvider": {
        "in": "path",
        "name": "provider",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathAppId": {
        "in": "path",
        "name": "appId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "QueryId": {
        "description": "ID - Filter by ID",
        "in": "query",
        "name": "id",
        "required": false,
        "schema": {
          "example": "xxx-xxx-xxx",
          "type": "string"
        }
      },
      "QueryUserId": {
        "description": "User ID - Filter by ID",
        "in": "query",
        "name": "userId",
        "required": false,
        "schema": {
          "example": "xxx-xxx-xxx",
          "type": "string"
        }
      },
      "QueryWorkspaceId": {
        "description": "Workspace ID - Filter by ID",
        "in": "query",
        "name": "workspaceId",
        "required": false,
        "schema": {
          "example": "xxx-xxx-xxx",
          "type": "string"
        }
      },
      "QuerySearch": {
        "description": "Search - Filter by fulltext search",
        "in": "query",
        "name": "search",
        "required": false,
        "schema": {
          "example": "search term",
          "type": "string"
        }
      },
      "QueryCreatedAt": {
        "description": "Created At - Filter by datetime ISO 8601 range format (e.g. from/to)",
        "in": "query",
        "name": "createdAt",
        "required": false,
        "schema": {
          "example": "2000-01-01T00:00:00.000Z/3000-01-01T23:59:59.999Z",
          "type": "string"
        }
      },
      "QueryUpdatedAt": {
        "description": "Updated At - Filter by datetime ISO 8601 range format (e.g. from/to)",
        "in": "query",
        "name": "updatedAt",
        "required": false,
        "schema": {
          "example": "2000-01-01T00:00:00.000Z/3000-01-01T23:59:59.999Z",
          "type": "string"
        }
      },
      "QueryPage": {
        "description": "Page number (e.g. 1)",
        "in": "query",
        "name": "page",
        "required": false,
        "schema": {
          "example": 1,
          "type": "number"
        }
      },
      "QueryLimit": {
        "description": "Items per page (e.g. 50)",
        "in": "query",
        "name": "limit",
        "required": false,
        "schema": {
          "example": 50,
          "type": "number"
        }
      },
      "QuerySort": {
        "description": "Sort by field (e.g. createdAt)",
        "in": "query",
        "name": "sort",
        "required": false,
        "schema": {
          "example": "createdAt",
          "type": "string"
        }
      },
      "QueryDirection": {
        "description": "Sort direction (e.g. asc, desc)",
        "in": "query",
        "name": "direction",
        "required": false,
        "schema": {
          "example": "desc",
          "type": "string"
        }
      },
      "PathApiTokenId": {
        "in": "path",
        "name": "apiTokenId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathUserId": {
        "in": "path",
        "name": "userId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathWorkspaceId": {
        "in": "path",
        "name": "workspaceId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "QueryName": {
        "description": "Name - Filter by exact match",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "example": "value",
          "type": "string"
        }
      },
      "PathProjectId": {
        "in": "path",
        "name": "projectId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathWorkspaceUserId": {
        "in": "path",
        "name": "workspaceUserId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathDeploymentId": {
        "in": "path",
        "name": "deploymentId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "QueryProjectId": {
        "description": "Project ID - Filter by ID",
        "in": "query",
        "name": "projectId",
        "required": false,
        "schema": {
          "example": "xxx-xxx-xxx",
          "type": "string"
        }
      },
      "PathVariableId": {
        "in": "path",
        "name": "variableId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "QueryCurrency": {
        "description": "Currency",
        "in": "query",
        "name": "currency",
        "required": false,
        "schema": {
          "enum": [
            "",
            "eur",
            "czk"
          ],
          "example": "value",
          "type": "string"
        }
      },
      "QueryPrice": {
        "description": "Price",
        "in": "query",
        "name": "price",
        "required": false,
        "schema": {
          "example": 1,
          "type": "number"
        }
      },
      "QueryNumber": {
        "description": "Search - Filter by fulltext search",
        "in": "query",
        "name": "number",
        "required": false,
        "schema": {
          "example": "search term",
          "type": "string"
        }
      },
      "PathOrderId": {
        "in": "path",
        "name": "orderId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathVoucherId": {
        "in": "path",
        "name": "voucherId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathInvoiceId": {
        "in": "path",
        "name": "invoiceId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathProformaInvoiceId": {
        "in": "path",
        "name": "proformaInvoiceId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "QueryName2": {
        "description": "Name - Filter by fulltext search",
        "in": "query",
        "name": "name",
        "required": false,
        "schema": {
          "example": "search term",
          "type": "string"
        }
      },
      "PathDnsPlanId": {
        "in": "path",
        "name": "dnsPlanId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "QueryDomain": {
        "description": "Domain - Filter by fulltext search",
        "in": "query",
        "name": "domain",
        "required": false,
        "schema": {
          "example": "search term",
          "type": "string"
        }
      },
      "PathDnsId": {
        "in": "path",
        "name": "dnsId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "QueryOffset": {
        "description": "Offset (e.g. 0)",
        "in": "query",
        "name": "offset",
        "required": false,
        "schema": {
          "example": "0",
          "type": "number"
        }
      },
      "QueryLimit2": {
        "description": "Limit (e.g. 250)",
        "in": "query",
        "name": "limit",
        "required": false,
        "schema": {
          "example": "250",
          "type": "number"
        }
      },
      "QuerySearch2": {
        "description": "Search",
        "in": "query",
        "name": "search",
        "required": false,
        "schema": {
          "example": "",
          "type": "string"
        }
      },
      "QueryStartAt": {
        "description": "Start At",
        "in": "query",
        "name": "startAt",
        "required": false,
        "schema": {
          "example": "",
          "type": "string"
        }
      },
      "QueryEndAt": {
        "description": "End At",
        "in": "query",
        "name": "endAt",
        "required": false,
        "schema": {
          "example": "",
          "type": "string"
        }
      },
      "PathDnsRecordId": {
        "in": "path",
        "name": "dnsRecordId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathCronPlanId": {
        "in": "path",
        "name": "cronPlanId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathCronId": {
        "in": "path",
        "name": "cronId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathProxyPlanId": {
        "in": "path",
        "name": "proxyPlanId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathCertId": {
        "in": "path",
        "name": "certId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathProxyId": {
        "in": "path",
        "name": "proxyId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathMonitorId": {
        "in": "path",
        "name": "monitorId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathRegionId": {
        "in": "path",
        "name": "regionId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathServerId": {
        "in": "path",
        "name": "serverId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathVolumePlanId": {
        "in": "path",
        "name": "volumePlanId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathVolumeId": {
        "in": "path",
        "name": "volumeId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathServerletPlanId": {
        "in": "path",
        "name": "serverletPlanId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathServerletId": {
        "in": "path",
        "name": "serverletId",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PathInstanceId": {
        "in": "path",
        "name": "instanceId",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Token",
        "description": "API token authentication. Include the token in the Authorization header as 'Bearer <token>'"
      },
      "SessionAuth": {
        "type": "apiKey",
        "in": "cookie",
        "name": "authorization",
        "description": "Session-based authentication using HTTP-only cookie. The authorization cookie is automatically set after login."
      }
    },
    "schemas": {
      "Any": {
        "description": "Any JSON object not defined as schema"
      },
      "ApiToken": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "expiresAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "id": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "nullable": false,
            "example": "Amazing name"
          },
          "token": {
            "type": "string",
            "nullable": false,
            "example": "xxx-xxx-xxx"
          },
          "type": {
            "type": "string",
            "nullable": false,
            "example": "string"
          },
          "updatedAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          }
        },
        "description": "ApiToken (Interface)"
      },
      "User": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "fullname": {
            "type": "string",
            "example": "John Doe"
          },
          "email": {
            "type": "string",
            "example": "john.doe@example.com",
            "format": "email"
          },
          "isStaff": {
            "type": "boolean",
            "example": true
          },
          "staffRole": {
            "$ref": "#/components/schemas/StaffRole",
            "example": "viewer"
          },
          "activeStaffRole": {
            "$ref": "#/components/schemas/StaffRole",
            "example": "viewer"
          },
          "registrationIp": {
            "type": "string",
            "example": "127.0.0.1"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "isEmailConfirmed": {
            "type": "boolean",
            "example": true
          },
          "ssoGithubId": {
            "type": "string",
            "example": "xxx-xxx-xxx"
          },
          "ssoGoogleId": {
            "type": "string",
            "example": "xxx-xxx-xxx"
          },
          "ssoMicrosoftId": {
            "type": "string",
            "example": "xxx-xxx-xxx"
          },
          "ssoGitlabId": {
            "type": "string",
            "example": "xxx-xxx-xxx"
          },
          "ssoZohoId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "ssoAvatarUrl": {
            "type": "string",
            "example": "https://example.com"
          },
          "twoFaType": {
            "$ref": "#/components/schemas/TwoFaType",
            "example": "string"
          },
          "twoFaBackupCodes": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "Lorem ipsum dolor sit amet"
            }
          },
          "workspaces": {
            "$ref": "#/components/schemas/Any",
            "example": null
          },
          "workspaceUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkspaceUser",
              "example": null
            }
          },
          "activities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Activity",
              "example": null
            }
          },
          "apiTokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiToken",
              "example": null
            }
          },
          "oauthAccessTokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OauthAuthorizationCode",
              "example": null
            }
          }
        },
        "description": "User (Model)"
      },
      "Workspace": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "number": {
            "type": "number",
            "example": 123456
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "displayName": {
            "type": "string",
            "example": "Amazing name"
          },
          "contactId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "contact": {
            "$ref": "#/components/schemas/Contact",
            "example": null
          },
          "currency": {
            "$ref": "#/components/schemas/Currency",
            "example": "EUR"
          },
          "language": {
            "$ref": "#/components/schemas/Language",
            "example": null
          },
          "credit": {
            "type": "number",
            "example": 100
          },
          "autoJoinDomain": {
            "type": "string",
            "example": "example.com"
          },
          "autoJoinRole": {
            "$ref": "#/components/schemas/WorkspaceRole",
            "example": "viewer"
          },
          "workspaceUsersLimit": {
            "type": "number",
            "example": 591
          },
          "serverletsLimit": {
            "type": "number",
            "example": 507
          },
          "cronsLimit": {
            "type": "number",
            "example": 339
          },
          "volumesLimit": {
            "type": "number",
            "example": 357
          },
          "proxiesLimit": {
            "type": "number",
            "example": 556
          },
          "dnsLimit": {
            "type": "number",
            "example": 994
          },
          "serversLimit": {
            "type": "number",
            "example": 878
          },
          "apiTokensLimit": {
            "type": "number",
            "example": 543
          },
          "projectsLimit": {
            "type": "number",
            "example": 686
          },
          "featureFlags": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "Lorem ipsum dolor sit amet"
            }
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "users": {
            "$ref": "#/components/schemas/Any",
            "example": null
          },
          "workspaceUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkspaceUser",
              "example": null
            }
          },
          "activities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Activity",
              "example": null
            }
          },
          "transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Transaction",
              "example": null
            }
          },
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Order",
              "example": null
            }
          },
          "vouchers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Voucher",
              "example": null
            }
          },
          "projects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Project",
              "example": null
            }
          },
          "crons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Cron",
              "example": null
            }
          }
        },
        "description": "Workspace (Model)"
      },
      "Contact": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "isPersonal": {
            "type": "boolean",
            "example": true
          },
          "firstname": {
            "type": "string",
            "example": "John"
          },
          "lastname": {
            "type": "string",
            "example": "Doe"
          },
          "company": {
            "type": "string",
            "example": "Example Inc."
          },
          "email": {
            "type": "string",
            "example": "john.doe@example.com",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "example": "+1234567890"
          },
          "streetAddress": {
            "type": "string",
            "example": "1028 Farland Street"
          },
          "streetAddress2": {
            "type": "string",
            "example": "Apt 1"
          },
          "postalCode": {
            "type": "string",
            "example": 60617
          },
          "city": {
            "type": "string",
            "example": "Chicago"
          },
          "country": {
            "example": "United States of America",
            "type": "object",
            "description": "Invalid reference to Country - replaced with object"
          },
          "companyNumber": {
            "type": "string",
            "example": 123456
          },
          "vatNumber": {
            "type": "string",
            "example": 123456
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          }
        },
        "description": "Contact (Model)"
      },
      "Project": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "displayName": {
            "type": "string",
            "example": "Amazing name"
          },
          "gitRepositoryName": {
            "type": "string",
            "example": "Amazing name"
          },
          "gitRepositoryUrl": {
            "type": "string",
            "example": "https://example.com"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "crons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Cron",
              "example": null
            }
          },
          "deployments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Deployment",
              "example": null
            }
          }
        },
        "description": "Project (Model)"
      },
      "WorkspaceUser": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "userId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "role": {
            "$ref": "#/components/schemas/WorkspaceRole",
            "example": "viewer"
          },
          "projectIds": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "Lorem ipsum dolor sit amet"
            }
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "user": {
            "$ref": "#/components/schemas/User",
            "example": null
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          }
        },
        "description": "WorkspaceUser (Model)"
      },
      "Variable": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "projectId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "serverletId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "key": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "isSecret": {
            "type": "boolean",
            "example": true
          },
          "description": {
            "type": "string",
            "example": "A suitable description"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "project": {
            "$ref": "#/components/schemas/Project",
            "example": null
          },
          "serverlet": {
            "$ref": "#/components/schemas/Serverlet",
            "example": null
          }
        },
        "description": "Variable (Model)"
      },
      "Transaction": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "projectId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "value": {
            "type": "number",
            "example": 59
          },
          "unit": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "price": {
            "type": "number",
            "example": 10.5
          },
          "currency": {
            "$ref": "#/components/schemas/Currency",
            "example": "EUR"
          },
          "type": {
            "type": "string",
            "example": "string"
          },
          "description": {
            "type": "string",
            "example": "A suitable description"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "project": {
            "$ref": "#/components/schemas/Project",
            "example": null
          }
        },
        "description": "Transaction (Model)"
      },
      "Order": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "number": {
            "type": "string",
            "example": 123456
          },
          "price": {
            "type": "number",
            "example": 10.5
          },
          "currency": {
            "$ref": "#/components/schemas/Currency",
            "example": "EUR"
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/PaymentMethod",
            "example": null
          },
          "status": {
            "$ref": "#/components/schemas/OrderStatus",
            "example": null
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "paidAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "canceledAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "refundedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "creemCheckoutId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "creemTransactionId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "creemProductId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice",
              "example": null
            }
          },
          "proformaInvoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProformaInvoice",
              "example": null
            }
          }
        },
        "description": "Order (Model)"
      },
      "Voucher": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "code": {
            "type": "string",
            "example": "xxx-xxx-xxx"
          },
          "price": {
            "type": "number",
            "example": 10.5
          },
          "currency": {
            "$ref": "#/components/schemas/Currency",
            "example": "EUR"
          },
          "isUsed": {
            "type": "boolean",
            "example": true
          },
          "isExpired": {
            "type": "boolean",
            "example": true
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "usedByWorkspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "usedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "usedByWorkspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          }
        },
        "description": "Voucher (Model)"
      },
      "Invoice": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "number": {
            "type": "string",
            "example": 123456
          },
          "price": {
            "type": "number",
            "example": 10.5
          },
          "currency": {
            "$ref": "#/components/schemas/Currency",
            "example": "EUR"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "orderId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "status": {
            "$ref": "#/components/schemas/InvoiceStatus",
            "example": null
          },
          "pdfKey": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "language": {
            "$ref": "#/components/schemas/Language",
            "example": null
          },
          "paidAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "canceledAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "refundedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceItem",
              "example": null
            }
          },
          "supplierContactId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "customerContactId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "supplierContact": {
            "$ref": "#/components/schemas/Contact",
            "example": null
          },
          "customerContact": {
            "$ref": "#/components/schemas/Contact",
            "example": null
          },
          "exchangeRate": {
            "type": "number",
            "example": 380
          },
          "exchangeRateCurrency": {
            "$ref": "#/components/schemas/Currency",
            "example": "EUR"
          },
          "referenceNumber": {
            "type": "string",
            "example": 123456
          },
          "issuedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "dueAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "order": {
            "$ref": "#/components/schemas/Order",
            "example": null
          }
        },
        "description": "Invoice (Model)"
      },
      "ProformaInvoice": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "number": {
            "type": "string",
            "example": 123456
          },
          "price": {
            "type": "number",
            "example": 10.5
          },
          "currency": {
            "$ref": "#/components/schemas/Currency",
            "example": "EUR"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "orderId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "pdfKey": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "language": {
            "$ref": "#/components/schemas/Language",
            "example": null
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProformaInvoiceItem",
              "example": null
            }
          },
          "supplierContactId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "customerContactId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "supplierContact": {
            "$ref": "#/components/schemas/Contact",
            "example": null
          },
          "customerContact": {
            "$ref": "#/components/schemas/Contact",
            "example": null
          },
          "exchangeRate": {
            "type": "number",
            "example": 328
          },
          "exchangeRateCurrency": {
            "$ref": "#/components/schemas/Currency",
            "example": "EUR"
          },
          "referenceNumber": {
            "type": "string",
            "example": 123456
          },
          "issuedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "dueAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "order": {
            "$ref": "#/components/schemas/Order",
            "example": null
          }
        },
        "description": "ProformaInvoice (Model)"
      },
      "DnsPlan": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "displayName": {
            "type": "string",
            "example": "Amazing name"
          },
          "minutePrice": {
            "type": "object",
            "example": 10.5,
            "additionalProperties": {
              "type": "number"
            }
          },
          "monthlyPrice": {
            "type": "object",
            "example": 10.5,
            "additionalProperties": {
              "type": "number"
            }
          },
          "isPublic": {
            "type": "boolean",
            "example": true
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          }
        },
        "description": "DnsPlan (Model)"
      },
      "Dns": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "domain": {
            "type": "string",
            "nullable": false,
            "example": "example.com"
          },
          "enableDnssec": {
            "type": "boolean",
            "nullable": false,
            "example": true
          },
          "id": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "updatedAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          }
        },
        "description": "Dns (Interface)"
      },
      "DnsRecord": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "dnsId": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "id": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "nullable": false,
            "example": "Amazing name"
          },
          "priority": {
            "type": "number",
            "nullable": false,
            "example": 700
          },
          "ttl": {
            "type": "number",
            "nullable": false,
            "example": 15
          },
          "type": {
            "type": "string",
            "nullable": false,
            "example": "string"
          },
          "updatedAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "value": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          }
        },
        "description": "DnsRecord (Interface)"
      },
      "Activity": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "type": {
            "$ref": "#/components/schemas/ActivityType",
            "example": "string"
          },
          "userId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "userIdLabel": {
            "type": "string",
            "example": "Suitable label"
          },
          "workspaceIdLabel": {
            "type": "string",
            "example": "Suitable label"
          },
          "workspaceUserId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceUserIdLabel": {
            "type": "string",
            "example": "Suitable label"
          },
          "projectId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "projectIdLabel": {
            "type": "string",
            "example": "Suitable label"
          },
          "serverId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "serverIdLabel": {
            "type": "string",
            "example": "Suitable label"
          },
          "regionId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "regionIdLabel": {
            "type": "string",
            "example": "Suitable label"
          },
          "serverletId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "serverletIdLabel": {
            "type": "string",
            "example": "Suitable label"
          },
          "volumeId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "volumeIdLabel": {
            "type": "string",
            "example": "Suitable label"
          },
          "oldValues": {
            "type": "object",
            "example": {},
            "additionalProperties": {
              "type": "any"
            }
          },
          "newValues": {
            "type": "object",
            "example": {},
            "additionalProperties": {
              "type": "any"
            }
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "user": {
            "$ref": "#/components/schemas/User",
            "example": null
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "workspaceUser": {
            "$ref": "#/components/schemas/WorkspaceUser",
            "example": null
          }
        },
        "description": "Activity (Model)"
      },
      "CronPlan": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "displayName": {
            "type": "string",
            "example": "Amazing name"
          },
          "minutePrice": {
            "type": "object",
            "example": 10.5,
            "additionalProperties": {
              "type": "number"
            }
          },
          "monthlyPrice": {
            "type": "object",
            "example": 10.5,
            "additionalProperties": {
              "type": "number"
            }
          },
          "isPublic": {
            "type": "boolean",
            "example": true
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          }
        },
        "description": "CronPlan (Model)"
      },
      "Cron": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "projectId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "cronPlanId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "regionId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "schedule": {
            "type": "string",
            "example": "30 14 * * *"
          },
          "type": {
            "$ref": "#/components/schemas/CronType",
            "example": "string"
          },
          "code": {
            "type": "string",
            "example": "xxx-xxx-xxx"
          },
          "method": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "url": {
            "type": "string",
            "example": "https://example.com"
          },
          "headers": {
            "type": "object",
            "example": {},
            "additionalProperties": {
              "type": "string"
            }
          },
          "body": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "enabled": {
            "type": "boolean",
            "example": true
          },
          "startedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "project": {
            "$ref": "#/components/schemas/Project",
            "example": null
          },
          "cronPlan": {
            "$ref": "#/components/schemas/CronPlan",
            "example": null
          },
          "region": {
            "$ref": "#/components/schemas/Region",
            "example": null
          }
        },
        "description": "Cron (Model)"
      },
      "ProxyPlan": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "displayName": {
            "type": "string",
            "example": "Amazing name"
          },
          "minutePrice": {
            "type": "object",
            "example": 10.5,
            "additionalProperties": {
              "type": "number"
            }
          },
          "monthlyPrice": {
            "type": "object",
            "example": 10.5,
            "additionalProperties": {
              "type": "number"
            }
          },
          "isPublic": {
            "type": "boolean",
            "example": true
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          }
        },
        "description": "ProxyPlan (Model)"
      },
      "Cert": {
        "type": "object",
        "properties": {
          "acmeAuthzUrls": {
            "type": "array",
            "items": {
              "type": "string",
              "nullable": false,
              "example": "Lorem ipsum dolor sit amet"
            }
          },
          "acmeOrderUrl": {
            "type": "string",
            "nullable": false,
            "example": "https://example.com"
          },
          "altNames": {
            "type": "array",
            "items": {
              "type": "string",
              "nullable": false,
              "example": "Lorem ipsum dolor sit amet"
            }
          },
          "certChain": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "challengeRecord": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "challenges": {
            "type": "array",
            "items": {
              "type": "string",
              "nullable": false,
              "example": "Lorem ipsum dolor sit amet"
            }
          },
          "challengeToken": {
            "type": "string",
            "nullable": false,
            "example": "xxx-xxx-xxx"
          },
          "checkedAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "checks": {
            "type": "number",
            "nullable": false,
            "example": 398
          },
          "createdAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "domain": {
            "type": "string",
            "nullable": false,
            "example": "example.com"
          },
          "ecCurve": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "errorMessage": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "expiresAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "id": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "issuedAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "keySize": {
            "type": "number",
            "nullable": false,
            "example": 295
          },
          "privateKey": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "provider": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "publicKey": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "state": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "type": {
            "type": "string",
            "nullable": false,
            "example": "string"
          },
          "updatedAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "verificationMethod": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          }
        },
        "description": "Cert (Interface)"
      },
      "Proxy": {
        "type": "object",
        "properties": {
          "compress": {
            "type": "boolean",
            "nullable": false,
            "example": true
          },
          "createdAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "domain": {
            "type": "string",
            "nullable": false,
            "example": "example.com"
          },
          "enforceHttps": {
            "type": "boolean",
            "nullable": false,
            "example": true
          },
          "followRedirects": {
            "type": "boolean",
            "nullable": false,
            "example": true
          },
          "id": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "port": {
            "type": "number",
            "nullable": false,
            "example": 422
          },
          "preserveHeaders": {
            "type": "boolean",
            "nullable": false,
            "example": true
          },
          "preserveHost": {
            "type": "boolean",
            "nullable": false,
            "example": true
          },
          "preservePath": {
            "type": "boolean",
            "nullable": false,
            "example": true
          },
          "preserveQuery": {
            "type": "boolean",
            "nullable": false,
            "example": true
          },
          "status": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "strategy": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "target": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "type": {
            "type": "string",
            "nullable": false,
            "example": "string"
          },
          "updatedAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "verifyTls": {
            "type": "boolean",
            "nullable": false,
            "example": true
          }
        },
        "description": "Proxy (Interface)"
      },
      "Monitor": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "projectId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "regionId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "type": {
            "$ref": "#/components/schemas/MonitorType",
            "example": "string"
          },
          "target": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "interval": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "timeout": {
            "type": "number",
            "example": 714
          },
          "requestMethod": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "requestHeaders": {
            "type": "object",
            "example": {},
            "additionalProperties": {
              "type": "any"
            }
          },
          "enabled": {
            "type": "boolean",
            "example": true
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "project": {
            "$ref": "#/components/schemas/Project",
            "example": null
          },
          "region": {
            "$ref": "#/components/schemas/Region",
            "example": null
          }
        },
        "description": "Monitor (Model)"
      },
      "Region": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "displayName": {
            "type": "string",
            "example": "Amazing name"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "domain": {
            "type": "string",
            "example": "example.com"
          },
          "isPublic": {
            "type": "boolean",
            "example": true
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "servers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Server",
              "example": null
            }
          }
        },
        "description": "Region (Model)"
      },
      "Server": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "regionId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "displayName": {
            "type": "string",
            "example": "Amazing name"
          },
          "isPublic": {
            "type": "boolean",
            "example": true
          },
          "arch": {
            "$ref": "#/components/schemas/Arch",
            "example": null
          },
          "domain": {
            "type": "string",
            "example": "example.com"
          },
          "joinedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "apiHost": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "apiPort": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "apiCertHash": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "seenAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "region": {
            "$ref": "#/components/schemas/Region",
            "example": null
          },
          "apiTokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiToken",
              "example": null
            }
          }
        },
        "description": "Server (Model)"
      },
      "VolumePlan": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "displayName": {
            "type": "string",
            "example": "Amazing name"
          },
          "size": {
            "example": null,
            "type": "object",
            "description": "Invalid reference to number // in GB - replaced with object"
          },
          "minutePrice": {
            "type": "object",
            "example": 10.5,
            "additionalProperties": {
              "type": "number"
            }
          },
          "monthlyPrice": {
            "type": "object",
            "example": 10.5,
            "additionalProperties": {
              "type": "number"
            }
          },
          "isPublic": {
            "type": "boolean",
            "example": true
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          }
        },
        "description": "VolumePlan (Model)"
      },
      "Volume": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "id": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "nullable": false,
            "example": "Amazing name"
          },
          "sizeGb": {
            "type": "number",
            "nullable": false,
            "example": 865
          },
          "type": {
            "type": "string",
            "nullable": false,
            "example": "string"
          },
          "updatedAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          }
        },
        "description": "Volume (Interface)"
      },
      "ServerletPlan": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "displayName": {
            "type": "string",
            "example": "Amazing name"
          },
          "cpu": {
            "type": "number",
            "example": 1
          },
          "ram": {
            "example": 1024,
            "type": "object",
            "description": "Invalid reference to number // in MB - replaced with object"
          },
          "capacity": {
            "example": 10,
            "type": "object",
            "description": "Invalid reference to number // in GB - replaced with object"
          },
          "minutePrice": {
            "type": "object",
            "example": 10.5,
            "additionalProperties": {
              "type": "number"
            }
          },
          "monthlyPrice": {
            "type": "object",
            "example": 10.5,
            "additionalProperties": {
              "type": "number"
            }
          },
          "isPublic": {
            "type": "boolean",
            "example": true
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          }
        },
        "description": "ServerletPlan (Model)"
      },
      "Serverlet": {
        "type": "object",
        "properties": {
          "cpu": {
            "type": "number",
            "nullable": false,
            "example": 1
          },
          "createdAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "id": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "image": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "instances": {
            "type": "number",
            "nullable": false,
            "example": 55
          },
          "maxInstances": {
            "type": "number",
            "nullable": false,
            "example": 641
          },
          "minInstances": {
            "type": "number",
            "nullable": false,
            "example": 250
          },
          "name": {
            "type": "string",
            "nullable": false,
            "example": "Amazing name"
          },
          "networkId": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "ram": {
            "type": "number",
            "nullable": false,
            "example": 1024
          },
          "runtime": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "state": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "updatedAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          }
        },
        "description": "Serverlet (Interface)"
      },
      "ModelFilter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": false,
            "example": "Amazing name"
          },
          "column": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "scope": {
            "nullable": false,
            "type": "object",
            "description": "Invalid reference to (query - replaced with object"
          },
          "label": {
            "type": "string",
            "nullable": false,
            "example": "Suitable label"
          },
          "type": {
            "nullable": false,
            "$ref": "#/components/schemas/ModelFilterType"
          },
          "placeholder": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "options": {
            "type": "array",
            "items": {
              "nullable": false,
              "$ref": "#/components/schemas/ModelFilterOption"
            }
          },
          "default": {
            "nullable": false,
            "type": "object",
            "description": "Invalid reference to string | number | boolean - replaced with object"
          },
          "visible": {
            "type": "boolean",
            "nullable": false,
            "example": true
          },
          "sortable": {
            "type": "boolean",
            "nullable": false,
            "example": true
          },
          "required": {
            "type": "boolean",
            "nullable": false,
            "example": true
          }
        },
        "required": [
          "name"
        ],
        "description": "ModelFilter (Interface)"
      },
      "ServerletInstance": {
        "type": "object",
        "properties": {
          "cpu": {
            "type": "number",
            "nullable": false,
            "example": 1
          },
          "createdAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "id": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "image": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "metrics": {
            "nullable": false,
            "type": "object",
            "additionalProperties": {
              "type": "any"
            }
          },
          "number": {
            "type": "number",
            "nullable": false,
            "example": 123456
          },
          "ram": {
            "type": "number",
            "nullable": false,
            "example": 1024
          },
          "runtime": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "serverId": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "serverletId": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "state": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "updatedAt": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "version": {
            "type": "number",
            "nullable": false,
            "example": 553
          }
        },
        "description": "ServerletInstance (Interface)"
      },
      "Whois": {
        "type": "object",
        "required": [],
        "properties": {
          "domain": {
            "type": "string",
            "example": "example.com"
          },
          "domainId?": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "status?": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "createdAt?": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "updatedAt?": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "expiresAt?": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "domainAge?": {
            "type": "number",
            "example": 951
          },
          "whoisServer?": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "registrar?": {
            "$ref": "#/components/schemas/Registrar",
            "example": null
          },
          "registrant?": {
            "$ref": "#/components/schemas/ContactInfo",
            "example": null
          },
          "admin?": {
            "$ref": "#/components/schemas/ContactInfo",
            "example": null
          },
          "tech?": {
            "$ref": "#/components/schemas/ContactInfo",
            "example": null
          },
          "billing?": {
            "$ref": "#/components/schemas/ContactInfo",
            "example": null
          },
          "nameservers": {
            "type": "array",
            "items": {
              "example": null,
              "type": "object",
              "description": "Invalid reference to string - replaced with object"
            }
          },
          "dns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DnsRecord",
              "example": null
            }
          },
          "raw": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          }
        },
        "description": "Whois (Model)"
      },
      "HttpError400": {
        "type": "object",
        "required": [
          "status",
          "message",
          "errors"
        ],
        "properties": {
          "status": {
            "type": "integer",
            "example": 400,
            "description": "HTTP status code"
          },
          "message": {
            "type": "string",
            "example": "Bad Request",
            "description": "Error message"
          },
          "requestId": {
            "type": "string",
            "example": "bde5abde-3192-4a01-bc05-135cdf850930",
            "description": "Unique request identifier for tracking"
          },
          "clientIp": {
            "type": "string",
            "example": "127.0.0.1",
            "description": "Client IP address"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "message"
              ],
              "properties": {
                "message": {
                  "type": "string",
                  "example": "Invalid 'createdAt' filter value 'op'. Value must be in ISO 8601 range format: 'from/to' (e.g. 2000-01-01T00:00:00.000Z/3000-01-01T23:59:59.999Z).",
                  "description": "Error message describing the issue"
                },
                "code": {
                  "type": "string",
                  "example": "INVALID_DATETIME_FILTER",
                  "description": "Error code for programmatic handling"
                },
                "field": {
                  "type": "string",
                  "example": "createdAt",
                  "description": "Field name that caused the error (if applicable)"
                },
                "stack": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "example": [],
                  "description": "Stack trace (usually empty in production)"
                }
              }
            }
          }
        },
        "example": {
          "status": 400,
          "message": "Bad Request",
          "requestId": "bde5abde-3192-4a01-bc05-135cdf850930",
          "clientIp": "127.0.0.1",
          "errors": [
            {
              "message": "Invalid 'createdAt' filter value 'op'. Value must be in ISO 8601 range format: 'from/to' (e.g. 2000-01-01T00:00:00.000Z/3000-01-01T23:59:59.999Z).",
              "code": "INVALID_DATETIME_FILTER",
              "field": "createdAt",
              "stack": []
            }
          ]
        }
      },
      "HttpError401": {
        "type": "object",
        "required": [
          "status",
          "message",
          "errors"
        ],
        "properties": {
          "status": {
            "type": "integer",
            "example": 401
          },
          "message": {
            "type": "string",
            "example": "Unauthorized"
          },
          "requestId": {
            "type": "string",
            "example": "bde5abde-3192-4a01-bc05-135cdf850930"
          },
          "clientIp": {
            "type": "string",
            "example": "127.0.0.1"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "message"
              ],
              "properties": {
                "message": {
                  "type": "string",
                  "example": "Authentication required"
                },
                "code": {
                  "type": "string",
                  "example": "UNAUTHORIZED"
                },
                "field": {
                  "type": "string"
                },
                "stack": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "example": []
                }
              }
            }
          }
        }
      },
      "HttpError403": {
        "type": "object",
        "required": [
          "status",
          "message",
          "errors"
        ],
        "properties": {
          "status": {
            "type": "integer",
            "example": 403
          },
          "message": {
            "type": "string",
            "example": "Forbidden"
          },
          "requestId": {
            "type": "string",
            "example": "bde5abde-3192-4a01-bc05-135cdf850930"
          },
          "clientIp": {
            "type": "string",
            "example": "127.0.0.1"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "message"
              ],
              "properties": {
                "message": {
                  "type": "string",
                  "example": "Access denied"
                },
                "code": {
                  "type": "string",
                  "example": "FORBIDDEN"
                },
                "field": {
                  "type": "string"
                },
                "stack": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "example": []
                }
              }
            }
          }
        }
      },
      "HttpError404": {
        "type": "object",
        "required": [
          "status",
          "message",
          "errors"
        ],
        "properties": {
          "status": {
            "type": "integer",
            "example": 404
          },
          "message": {
            "type": "string",
            "example": "Not Found"
          },
          "requestId": {
            "type": "string",
            "example": "bde5abde-3192-4a01-bc05-135cdf850930"
          },
          "clientIp": {
            "type": "string",
            "example": "127.0.0.1"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "message"
              ],
              "properties": {
                "message": {
                  "type": "string",
                  "example": "Resource not found"
                },
                "code": {
                  "type": "string",
                  "example": "NOT_FOUND"
                },
                "field": {
                  "type": "string"
                },
                "stack": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "example": []
                }
              }
            }
          }
        }
      },
      "HttpError429": {
        "type": "object",
        "required": [
          "status",
          "message",
          "errors"
        ],
        "properties": {
          "status": {
            "type": "integer",
            "example": 429
          },
          "message": {
            "type": "string",
            "example": "Too Many Requests"
          },
          "requestId": {
            "type": "string",
            "example": "bde5abde-3192-4a01-bc05-135cdf850930"
          },
          "clientIp": {
            "type": "string",
            "example": "127.0.0.1"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "message"
              ],
              "properties": {
                "message": {
                  "type": "string",
                  "example": "Rate limit exceeded. Please try again later."
                },
                "code": {
                  "type": "string",
                  "example": "RATE_LIMIT_EXCEEDED"
                },
                "field": {
                  "type": "string"
                },
                "stack": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "example": []
                }
              }
            }
          }
        }
      },
      "StaffRole": {
        "type": "string",
        "enum": [
          "none",
          "owner",
          "administrator",
          "developer",
          "viewer"
        ],
        "example": "none",
        "description": "Staff Role enumeration"
      },
      "TwoFaType": {
        "type": "string",
        "enum": [
          "otp_app",
          "otp_email"
        ],
        "example": "otp_app",
        "description": "Two Fa Type enumeration"
      },
      "OauthAuthorizationCode": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "code": {
            "type": "string",
            "example": "xxx-xxx-xxx"
          },
          "appId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "userId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "redirectUri": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "permissions": {
            "type": "array",
            "items": {
              "example": null,
              "type": "object",
              "description": "Invalid reference to oauth2Types.OAuth2Permission - replaced with object"
            }
          },
          "codeChallenge": {
            "type": "string",
            "example": "Lorem ipsum dolor sit amet"
          },
          "codeChallengeMethod": {
            "example": null,
            "type": "object",
            "description": "Invalid reference to oauth2Types.CodeChallengeMethod - replaced with object"
          },
          "expiresAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "usedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "app": {
            "$ref": "#/components/schemas/App",
            "example": null
          },
          "user": {
            "$ref": "#/components/schemas/User",
            "example": null
          }
        },
        "description": "OauthAuthorizationCode (Model)"
      },
      "Currency": {
        "type": "string",
        "enum": [
          "eur",
          "czk"
        ],
        "example": "eur",
        "description": "Currency enumeration"
      },
      "Language": {
        "type": "string",
        "enum": [
          "en",
          "cs"
        ],
        "example": "en",
        "description": "Language enumeration"
      },
      "WorkspaceRole": {
        "type": "string",
        "enum": [
          "none",
          "viewer",
          "developer",
          "billing_manager",
          "administrator",
          "owner"
        ],
        "example": "none",
        "description": "Workspace roles that users can have (hierarchy from lowest to highest)"
      },
      "Deployment": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "projectId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "number": {
            "type": "number",
            "example": 123456
          },
          "status": {
            "$ref": "#/components/schemas/DeploymentStatus",
            "example": null
          },
          "active": {
            "type": "boolean",
            "example": true
          },
          "config": {
            "type": "object",
            "example": {},
            "additionalProperties": {
              "type": "any"
            }
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "project": {
            "$ref": "#/components/schemas/Project",
            "example": null
          }
        },
        "description": "Deployment (Model)"
      },
      "PaymentMethod": {
        "type": "string",
        "enum": [
          "bank_transfer",
          "creem",
          "barion"
        ],
        "example": "bank_transfer",
        "description": "Payment Method enumeration"
      },
      "OrderStatus": {
        "type": "string",
        "enum": [
          "pending",
          "paid",
          "canceled",
          "refunded"
        ],
        "example": "pending",
        "description": "Order Status enumeration"
      },
      "InvoiceStatus": {
        "type": "string",
        "enum": [
          "pending",
          "paid",
          "canceled",
          "refunded"
        ],
        "example": "pending",
        "description": "Invoice Status enumeration"
      },
      "InvoiceItem": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "nullable": false,
            "example": "A suitable description"
          },
          "quantity": {
            "type": "number",
            "nullable": false,
            "example": 432
          },
          "unitPrice": {
            "type": "number",
            "nullable": false,
            "example": 10.5
          },
          "unit": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          }
        },
        "required": [
          "description",
          "quantity",
          "unitPrice"
        ],
        "description": "InvoiceItem (Interface)"
      },
      "ProformaInvoiceItem": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "nullable": false,
            "example": "A suitable description"
          },
          "quantity": {
            "type": "number",
            "nullable": false,
            "example": 736
          },
          "unitPrice": {
            "type": "number",
            "nullable": false,
            "example": 10.5
          },
          "unit": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          }
        },
        "required": [
          "description",
          "quantity",
          "unitPrice"
        ],
        "description": "ProformaInvoiceItem (Interface)"
      },
      "ActivityType": {
        "type": "string",
        "enum": [
          "created",
          "updated",
          "deleted",
          "user_created",
          "user_updated",
          "user_deleted",
          "user_password_reset",
          "user_password_updated",
          "user_email_updated",
          "user_email_confirmed",
          "user_login_failed",
          "user_login_success",
          "user_sso_added",
          "workspace_created",
          "workspace_updated",
          "workspace_deleted",
          "workspace_user_created",
          "workspace_user_updated",
          "workspace_user_deleted",
          "order_created",
          "order_canceled",
          "voucher_created",
          "voucher_deleted",
          "voucher_used",
          "dns_created",
          "dns_updated",
          "dns_deleted",
          "dns_record_created",
          "dns_record_updated",
          "dns_record_deleted",
          "project_created",
          "project_updated",
          "project_deleted",
          "project_transferred",
          "proxy_created",
          "proxy_updated",
          "proxy_deleted",
          "region_created",
          "region_updated",
          "region_deleted",
          "server_created",
          "server_updated",
          "server_deleted",
          "server_joined",
          "server_join_token_reset",
          "server_left",
          "volume_created",
          "volume_updated",
          "volume_deleted",
          "serverlet_created",
          "serverlet_updated",
          "serverlet_deleted",
          "api_token_created",
          "api_token_updated",
          "api_token_deleted",
          "app_created",
          "app_updated",
          "app_deleted",
          "variable_created",
          "variable_updated",
          "variable_deleted",
          "cert_created",
          "cert_deleted",
          "cert_renewed",
          "monitor_created",
          "monitor_updated",
          "monitor_deleted"
        ],
        "example": "created",
        "description": "Activity Type enumeration"
      },
      "CronType": {
        "type": "string",
        "enum": [
          "simple",
          "code"
        ],
        "example": "simple",
        "description": "Cron Type enumeration"
      },
      "MonitorType": {
        "type": "string",
        "enum": [
          "http",
          "ping",
          "tcp",
          "udp"
        ],
        "example": "http",
        "description": "Monitor Type enumeration"
      },
      "Arch": {
        "type": "string",
        "enum": [
          "amd64",
          "arm64"
        ],
        "example": "amd64",
        "description": "Arch enumeration"
      },
      "ModelFilterType": {
        "type": "string",
        "enum": [
          "text",
          "textsearch",
          "number",
          "boolean",
          "datetime",
          "select",
          "multiselect",
          "toggle",
          "sort",
          "direction",
          "page",
          "limit",
          "id"
        ],
        "example": "text",
        "description": "Model Filter Type enumeration"
      },
      "ModelFilterOption": {
        "type": "object",
        "properties": {
          "value": {
            "nullable": false,
            "type": "object",
            "description": "Invalid reference to string | number | boolean - replaced with object"
          },
          "label": {
            "type": "string",
            "nullable": false,
            "example": "Suitable label"
          }
        },
        "required": [
          "value"
        ],
        "description": "ModelFilterOption (Interface)"
      },
      "Registrar": {
        "type": "object",
        "properties": {
          "ianaId": {
            "type": "string",
            "nullable": false,
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "nullable": false,
            "example": "Amazing name"
          },
          "url": {
            "type": "string",
            "nullable": false,
            "example": "https://example.com"
          }
        },
        "required": [
          "ianaId",
          "name",
          "url"
        ],
        "description": "Registrar (Interface)"
      },
      "ContactInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": false,
            "example": "Amazing name"
          },
          "organization": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "streetAddress": {
            "type": "string",
            "nullable": false,
            "example": "1028 Farland Street"
          },
          "city": {
            "type": "string",
            "nullable": false,
            "example": "Chicago"
          },
          "region": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "zipCode": {
            "type": "string",
            "nullable": false,
            "example": "xxx-xxx-xxx"
          },
          "country": {
            "type": "string",
            "nullable": false,
            "example": "United States of America"
          },
          "phone": {
            "type": "string",
            "nullable": false,
            "example": "+1234567890"
          },
          "fax": {
            "type": "string",
            "nullable": false,
            "example": "Lorem ipsum dolor sit amet"
          },
          "email": {
            "type": "string",
            "nullable": false,
            "example": "john.doe@example.com"
          }
        },
        "required": [
          "name",
          "organization",
          "streetAddress",
          "city",
          "region",
          "zipCode",
          "country",
          "phone",
          "fax",
          "email"
        ],
        "description": "ContactInfo (Interface)"
      },
      "App": {
        "type": "object",
        "required": [],
        "properties": {
          "id": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "workspaceId": {
            "type": "string",
            "example": "019b1334-dabcc"
          },
          "name": {
            "type": "string",
            "example": "Amazing name"
          },
          "displayName": {
            "type": "string",
            "example": "Amazing name"
          },
          "type": {
            "$ref": "#/components/schemas/OAuth2Type",
            "example": "string"
          },
          "redirectUris": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "Lorem ipsum dolor sit amet"
            }
          },
          "allowedPermissions": {
            "type": "array",
            "items": {
              "example": null,
              "type": "object",
              "description": "Invalid reference to OAuth2Permission - replaced with object"
            }
          },
          "createdAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "example": "2021-03-23T16:13:08.489+01:00",
            "format": "date-time"
          },
          "workspace": {
            "$ref": "#/components/schemas/Workspace",
            "example": null
          },
          "authorizationCodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OauthAuthorizationCode",
              "example": null
            }
          },
          "apiTokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiToken",
              "example": null
            }
          }
        },
        "description": "App (Model)"
      },
      "DeploymentStatus": {
        "type": "string",
        "enum": [
          "draft",
          "pending",
          "running",
          "succeed",
          "failed",
          "cancelled"
        ],
        "example": "draft",
        "description": "Deployment Status enumeration"
      },
      "OAuth2Type": {
        "type": "string",
        "enum": [
          "public",
          "confidential"
        ],
        "example": "public",
        "description": "Oauth2type enumeration"
      }
    }
  },
  "paths": {
    "/v2/auth/context": {
      "get": {
        "summary": "Get the current authenticated user",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2AuthControllerContext",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "apiToken": {
                      "$ref": "#/components/schemas/ApiToken"
                    },
                    "user": {
                      "$ref": "#/components/schemas/User"
                    }
                  }
                },
                "example": {
                  "apiToken": {
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "expiresAt": "Lorem ipsum dolor sit amet",
                    "id": "019b1334-dabcc",
                    "name": "Amazing name",
                    "token": "xxx-xxx-xxx",
                    "type": "string",
                    "updatedAt": "Lorem ipsum dolor sit amet"
                  },
                  "user": {
                    "id": "019b1334-dabcc",
                    "fullname": "John Doe",
                    "email": "john.doe@example.com",
                    "isStaff": true,
                    "staffRole": "none",
                    "activeStaffRole": "none",
                    "registrationIp": "127.0.0.1",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00",
                    "isEmailConfirmed": true,
                    "ssoGithubId": "xxx-xxx-xxx",
                    "ssoGoogleId": "xxx-xxx-xxx",
                    "ssoMicrosoftId": "xxx-xxx-xxx",
                    "ssoGitlabId": "xxx-xxx-xxx",
                    "ssoZohoId": "019b1334-dabcc",
                    "ssoAvatarUrl": "https://example.com",
                    "twoFaType": "otp_app",
                    "twoFaBackupCodes": [
                      "Lorem ipsum dolor sit amet"
                    ],
                    "apiTokens": [
                      {
                        "createdAt": "Lorem ipsum dolor sit amet",
                        "expiresAt": "Lorem ipsum dolor sit amet",
                        "id": "019b1334-dabcc",
                        "name": "Amazing name",
                        "token": "xxx-xxx-xxx",
                        "type": "string",
                        "updatedAt": "Lorem ipsum dolor sit amet"
                      }
                    ]
                  }
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/login": {
      "post": {
        "summary": "Login user",
        "description": "Authenticate user with email and password",
        "operationId": "v2AuthControllerLogin",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "apiToken": {
                      "$ref": "#/components/schemas/ApiToken"
                    },
                    "user": {
                      "$ref": "#/components/schemas/User"
                    }
                  }
                },
                "example": {
                  "apiToken": {
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "expiresAt": "Lorem ipsum dolor sit amet",
                    "id": "019b1334-dabcc",
                    "name": "Amazing name",
                    "token": "xxx-xxx-xxx",
                    "type": "string",
                    "updatedAt": "Lorem ipsum dolor sit amet"
                  },
                  "user": {
                    "id": "019b1334-dabcc",
                    "fullname": "John Doe",
                    "email": "john.doe@example.com",
                    "isStaff": true,
                    "staffRole": "none",
                    "activeStaffRole": "none",
                    "registrationIp": "127.0.0.1",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00",
                    "isEmailConfirmed": true,
                    "ssoGithubId": "xxx-xxx-xxx",
                    "ssoGoogleId": "xxx-xxx-xxx",
                    "ssoMicrosoftId": "xxx-xxx-xxx",
                    "ssoGitlabId": "xxx-xxx-xxx",
                    "ssoZohoId": "019b1334-dabcc",
                    "ssoAvatarUrl": "https://example.com",
                    "twoFaType": "otp_app",
                    "twoFaBackupCodes": [
                      "Lorem ipsum dolor sit amet"
                    ],
                    "apiTokens": [
                      {
                        "createdAt": "Lorem ipsum dolor sit amet",
                        "expiresAt": "Lorem ipsum dolor sit amet",
                        "id": "019b1334-dabcc",
                        "name": "Amazing name",
                        "token": "xxx-xxx-xxx",
                        "type": "string",
                        "updatedAt": "Lorem ipsum dolor sit amet"
                      }
                    ]
                  }
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "email": "string",
                "password": "string"
              }
            }
          }
        }
      }
    },
    "/v2/auth/signup": {
      "post": {
        "summary": "Signup new user",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2AuthControllerSignup",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "$ref": "#/components/schemas/User"
                    },
                    "message": {
                      "type": "string"
                    },
                    "confirmationToken": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "user": {
                    "id": "019b1334-dabcc",
                    "fullname": "John Doe",
                    "email": "john.doe@example.com",
                    "isStaff": true,
                    "staffRole": "none",
                    "activeStaffRole": "none",
                    "registrationIp": "127.0.0.1",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00",
                    "isEmailConfirmed": true,
                    "ssoGithubId": "xxx-xxx-xxx",
                    "ssoGoogleId": "xxx-xxx-xxx",
                    "ssoMicrosoftId": "xxx-xxx-xxx",
                    "ssoGitlabId": "xxx-xxx-xxx",
                    "ssoZohoId": "019b1334-dabcc",
                    "ssoAvatarUrl": "https://example.com",
                    "twoFaType": "otp_app",
                    "twoFaBackupCodes": [
                      "Lorem ipsum dolor sit amet"
                    ],
                    "apiTokens": [
                      {
                        "createdAt": "Lorem ipsum dolor sit amet",
                        "expiresAt": "Lorem ipsum dolor sit amet",
                        "id": "019b1334-dabcc",
                        "name": "Amazing name",
                        "token": "xxx-xxx-xxx",
                        "type": "string",
                        "updatedAt": "Lorem ipsum dolor sit amet"
                      }
                    ]
                  },
                  "message": "string",
                  "confirmationToken": "string"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string"
                  },
                  "fullname": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "email": "string",
                "password": "string",
                "fullname": "string"
              }
            }
          }
        }
      }
    },
    "/v2/auth/logout": {
      "post": {
        "summary": "Logout user",
        "description": "Logout the currently authenticated user",
        "operationId": "v2AuthControllerLogout",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/logout-others": {
      "delete": {
        "summary": "Sign out from other sessions",
        "description": "Delete all API tokens for the current user except the active token",
        "operationId": "v2AuthControllerLogoutOthers",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/reset-password": {
      "post": {
        "summary": "Request password reset",
        "description": "Request a password reset code via email",
        "operationId": "v2AuthControllerResetPassword",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "email": "string"
              }
            }
          }
        }
      }
    },
    "/v2/auth/resend-email-confirmation": {
      "post": {
        "summary": "",
        "description": "",
        "operationId": "controllersV2AuthControllerResendEmailConfirmation",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {}
          }
        }
      }
    },
    "/v2/auth/confirm-password-reset": {
      "post": {
        "summary": "Confirm password reset",
        "description": "Confirm password reset code",
        "operationId": "v2AuthControllerConfirmPasswordReset",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "user": {
                      "$ref": "#/components/schemas/User"
                    }
                  }
                },
                "example": {
                  "message": "string",
                  "user": {
                    "id": "019b1334-dabcc",
                    "fullname": "John Doe",
                    "email": "john.doe@example.com",
                    "isStaff": true,
                    "staffRole": "none",
                    "activeStaffRole": "none",
                    "registrationIp": "127.0.0.1",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00",
                    "isEmailConfirmed": true,
                    "ssoGithubId": "xxx-xxx-xxx",
                    "ssoGoogleId": "xxx-xxx-xxx",
                    "ssoMicrosoftId": "xxx-xxx-xxx",
                    "ssoGitlabId": "xxx-xxx-xxx",
                    "ssoZohoId": "019b1334-dabcc",
                    "ssoAvatarUrl": "https://example.com",
                    "twoFaType": "otp_app",
                    "twoFaBackupCodes": [
                      "Lorem ipsum dolor sit amet"
                    ],
                    "apiTokens": [
                      {
                        "createdAt": "Lorem ipsum dolor sit amet",
                        "expiresAt": "Lorem ipsum dolor sit amet",
                        "id": "019b1334-dabcc",
                        "name": "Amazing name",
                        "token": "xxx-xxx-xxx",
                        "type": "string",
                        "updatedAt": "Lorem ipsum dolor sit amet"
                      }
                    ]
                  }
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "token": "string",
                "password": "string"
              }
            }
          }
        }
      }
    },
    "/v2/auth/confirm-email": {
      "post": {
        "summary": "Confirm email confirmation code",
        "description": "Confirm email address using confirmation code",
        "operationId": "v2AuthControllerConfirmEmail",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "code": "string"
              }
            }
          }
        }
      }
    },
    "/v2/auth/confirm-2fa": {
      "post": {
        "summary": "Confirm 2FA",
        "description": "Confirm 2FA",
        "operationId": "v2AuthControllerConfirmTwoFa",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "code": "string"
              }
            }
          }
        }
      }
    },
    "/v2/auth/cli/{challenge_code}/{localhost_port}": {
      "get": {
        "summary": "Short CLI login link, redirects to the full OAuth2 authorize endpoint",
        "description": "",
        "operationId": "v2AuthControllerAuthorizeCli",
        "parameters": [
          {
            "in": "path",
            "name": "challenge_code",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "in": "path",
            "name": "localhost_port",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/oauth2/authorize": {
      "get": {
        "summary": "OAuth2 authorization endpoint",
        "description": "",
        "operationId": "v2Oauth2ControllerAuthorize",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/oauth2/authorize-info": {
      "get": {
        "summary": "OAuth2 authorization info (JSON) for the consent UI",
        "description": "",
        "operationId": "v2Oauth2ControllerAuthorizeInfo",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/oauth2/approve": {
      "post": {
        "summary": "Process authorization approval",
        "description": "",
        "operationId": "v2Oauth2ControllerApprove",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/oauth2/token": {
      "post": {
        "summary": "OAuth2 token endpoint",
        "description": "",
        "operationId": "v2Oauth2ControllerToken",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/oauth2/revoke": {
      "post": {
        "summary": "OAuth2 revoke endpoint",
        "description": "",
        "operationId": "v2Oauth2ControllerRevoke",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/oauth2/register": {
      "post": {
        "summary": "Dynamic client registration (RFC 7591)",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2Oauth2ControllerRegister",
        "parameters": [],
        "tags": [
          "Auth"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "client_id": {
                      "type": "string"
                    },
                    "client_secret": {
                      "type": "string"
                    },
                    "client_name": {
                      "type": "string"
                    },
                    "redirect_uris": {
                      "type": "object",
                      "properties": {
                        "0": {
                          "type": "string"
                        }
                      }
                    },
                    "grant_types": {
                      "type": "object",
                      "properties": {
                        "0": {
                          "type": "string"
                        }
                      }
                    },
                    "token_endpoint_auth_method": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "client_id": "string",
                  "client_secret": "string",
                  "client_name": "string",
                  "redirect_uris": [
                    "string"
                  ],
                  "grant_types": [
                    "authorization_code"
                  ],
                  "token_endpoint_auth_method": "none"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "client_name": {
                    "type": "string"
                  },
                  "redirect_uris": {
                    "type": "object",
                    "properties": {
                      "0": {
                        "type": "string"
                      }
                    }
                  },
                  "grant_types": {
                    "type": "object",
                    "properties": {
                      "0": {
                        "type": "string"
                      }
                    }
                  },
                  "token_endpoint_auth_method": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "client_name": "string",
                "redirect_uris": [
                  "string"
                ],
                "grant_types": [
                  "authorization_code"
                ],
                "token_endpoint_auth_method": "none"
              }
            }
          }
        }
      }
    },
    "/v2/auth/oauth2/{provider}": {
      "get": {
        "summary": "Redirect to OAuth2 provider",
        "description": "Redirect to OAuth2 provider for authentication",
        "operationId": "v2Oauth2ControllerRedirect",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProvider"
          }
        ],
        "tags": [
          "Auth"
        ],
        "responses": {
          "302": {
            "content": {
              "text/plain": {
                "example": "Redirect to SSO provider"
              }
            },
            "description": "Returns **302** (Found) as **text/plain**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "delete": {
        "summary": "Unlink SSO identity",
        "description": "Unlink SSO identity from the user account",
        "operationId": "v2Oauth2ControllerUnlink",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProvider"
          }
        ],
        "tags": [
          "Auth"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/oauth2/{provider}/callback": {
      "get": {
        "summary": "Callback from OAuth2 provider",
        "description": "Callback from OAuth2 provider for authentication",
        "operationId": "v2Oauth2ControllerCallback",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProvider"
          }
        ],
        "tags": [
          "Auth"
        ],
        "responses": {
          "302": {
            "content": {
              "text/plain": {
                "example": "Redirect back to app with success or error message"
              }
            },
            "description": "Returns **302** (Found) as **text/plain**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/auth/oauth2/{provider}/confirm": {
      "post": {
        "summary": "Confirm",
        "description": "Confirm",
        "operationId": "v2Oauth2ControllerConfirm",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProvider"
          }
        ],
        "tags": [
          "Auth"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "code": "string",
                "email": "string"
              }
            }
          }
        }
      }
    },
    "/v2/apps": {
      "get": {
        "summary": "List workspace's OAuth apps",
        "description": "",
        "operationId": "v2AppsControllerIndex",
        "parameters": [],
        "tags": [
          "Apps"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create new OAuth app in workspace",
        "description": "",
        "operationId": "v2AppsControllerStore",
        "parameters": [],
        "tags": [
          "Apps"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/apps/filters": {
      "get": {
        "summary": "Get oauth apps filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2AppsControllerFilters",
        "parameters": [],
        "tags": [
          "Apps"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/apps/{appId}": {
      "get": {
        "summary": "Get OAuth app details",
        "description": "",
        "operationId": "v2AppsControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathAppId"
          }
        ],
        "tags": [
          "Apps"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update workspace OAuth app",
        "description": "",
        "operationId": "v2AppsControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathAppId"
          }
        ],
        "tags": [
          "Apps"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "delete": {
        "summary": "Delete workspace OAuth app",
        "description": "",
        "operationId": "v2AppsControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathAppId"
          }
        ],
        "tags": [
          "Apps"
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/apps/{appId}/tokens": {
      "get": {
        "summary": "List active tokens for workspace app",
        "description": "",
        "operationId": "v2AppsControllerTokens",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathAppId"
          }
        ],
        "tags": [
          "Apps"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/apps/{appId}/tokens/{tokenId}": {
      "delete": {
        "summary": "Revoke specific token for workspace app",
        "description": "",
        "operationId": "v2AppsControllerRevokeToken",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathAppId"
          },
          {
            "in": "path",
            "name": "tokenId",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "Apps"
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/api-tokens": {
      "get": {
        "summary": "List API tokens",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ApiTokensControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryUserId"
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "in": "query",
            "name": "workspaceRole",
            "description": "Role",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "none",
                "viewer",
                "developer",
                "billing_manager",
                "administrator",
                "owner"
              ]
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "API Tokens"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiToken"
                  }
                },
                "example": [
                  {
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "expiresAt": "Lorem ipsum dolor sit amet",
                    "id": "019b1334-dabcc",
                    "name": "Amazing name",
                    "token": "xxx-xxx-xxx",
                    "type": "string",
                    "updatedAt": "Lorem ipsum dolor sit amet"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create API token",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2ApiTokensControllerStore",
        "parameters": [],
        "tags": [
          "API Tokens"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiToken"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "expiresAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "token": "xxx-xxx-xxx",
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "number"
                  },
                  "workspaceId": {
                    "type": "number"
                  },
                  "workspaceRole": {
                    "type": "string"
                  },
                  "expiresAt": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "userId": "number",
                "workspaceId": "number",
                "workspaceRole": "string",
                "expiresAt": "string",
                "name": "string"
              }
            }
          }
        }
      }
    },
    "/v2/api-tokens/filters": {
      "get": {
        "summary": "Get API token filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ApiTokensControllerFilters",
        "parameters": [],
        "tags": [
          "API Tokens"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/api-tokens/{apiTokenId}": {
      "get": {
        "summary": "Get API token",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ApiTokensControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathApiTokenId"
          }
        ],
        "tags": [
          "API Tokens"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiToken"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "expiresAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "token": "xxx-xxx-xxx",
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update API token",
        "description": "Update an API token",
        "operationId": "v2ApiTokensControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathApiTokenId"
          }
        ],
        "tags": [
          "API Tokens"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiToken"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "expiresAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "token": "xxx-xxx-xxx",
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "workspaceRole": {
                    "type": "string"
                  },
                  "expiresAt": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "workspaceRole": "string",
                "expiresAt": "string",
                "name": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete API token",
        "description": "Delete an API token",
        "operationId": "v2ApiTokensControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathApiTokenId"
          }
        ],
        "tags": [
          "API Tokens"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/users": {
      "get": {
        "summary": "List users",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2UsersControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "in": "query",
            "name": "fullname",
            "description": "Full Name - Filter by fulltext search",
            "schema": {
              "type": "string",
              "example": "search term"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "email",
            "description": "Email - Filter by fulltext search",
            "schema": {
              "type": "string",
              "example": "search term"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "isStaff",
            "description": "Is Staff",
            "schema": {
              "type": "string",
              "example": "value"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "fullname": "John Doe",
                    "email": "john.doe@example.com",
                    "isStaff": true,
                    "staffRole": "none",
                    "activeStaffRole": "none",
                    "registrationIp": "127.0.0.1",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00",
                    "isEmailConfirmed": true,
                    "ssoGithubId": "xxx-xxx-xxx",
                    "ssoGoogleId": "xxx-xxx-xxx",
                    "ssoMicrosoftId": "xxx-xxx-xxx",
                    "ssoGitlabId": "xxx-xxx-xxx",
                    "ssoZohoId": "019b1334-dabcc",
                    "ssoAvatarUrl": "https://example.com",
                    "twoFaType": "otp_app",
                    "twoFaBackupCodes": [
                      "Lorem ipsum dolor sit amet"
                    ],
                    "apiTokens": [
                      {
                        "createdAt": "Lorem ipsum dolor sit amet",
                        "expiresAt": "Lorem ipsum dolor sit amet",
                        "id": "019b1334-dabcc",
                        "name": "Amazing name",
                        "token": "xxx-xxx-xxx",
                        "type": "string",
                        "updatedAt": "Lorem ipsum dolor sit amet"
                      }
                    ]
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/users/filters": {
      "get": {
        "summary": "Get user filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2UsersControllerFilters",
        "parameters": [],
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/users/{userId}": {
      "get": {
        "summary": "Get user",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2UsersControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathUserId"
          }
        ],
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "fullname": "John Doe",
                  "email": "john.doe@example.com",
                  "isStaff": true,
                  "staffRole": "none",
                  "activeStaffRole": "none",
                  "registrationIp": "127.0.0.1",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "isEmailConfirmed": true,
                  "ssoGithubId": "xxx-xxx-xxx",
                  "ssoGoogleId": "xxx-xxx-xxx",
                  "ssoMicrosoftId": "xxx-xxx-xxx",
                  "ssoGitlabId": "xxx-xxx-xxx",
                  "ssoZohoId": "019b1334-dabcc",
                  "ssoAvatarUrl": "https://example.com",
                  "twoFaType": "otp_app",
                  "twoFaBackupCodes": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "apiTokens": [
                    {
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "expiresAt": "Lorem ipsum dolor sit amet",
                      "id": "019b1334-dabcc",
                      "name": "Amazing name",
                      "token": "xxx-xxx-xxx",
                      "type": "string",
                      "updatedAt": "Lorem ipsum dolor sit amet"
                    }
                  ]
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update user",
        "description": "Update user details",
        "operationId": "v2UsersControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathUserId"
          }
        ],
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "fullname": "John Doe",
                  "email": "john.doe@example.com",
                  "isStaff": true,
                  "staffRole": "none",
                  "activeStaffRole": "none",
                  "registrationIp": "127.0.0.1",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "isEmailConfirmed": true,
                  "ssoGithubId": "xxx-xxx-xxx",
                  "ssoGoogleId": "xxx-xxx-xxx",
                  "ssoMicrosoftId": "xxx-xxx-xxx",
                  "ssoGitlabId": "xxx-xxx-xxx",
                  "ssoZohoId": "019b1334-dabcc",
                  "ssoAvatarUrl": "https://example.com",
                  "twoFaType": "otp_app",
                  "twoFaBackupCodes": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "apiTokens": [
                    {
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "expiresAt": "Lorem ipsum dolor sit amet",
                      "id": "019b1334-dabcc",
                      "name": "Amazing name",
                      "token": "xxx-xxx-xxx",
                      "type": "string",
                      "updatedAt": "Lorem ipsum dolor sit amet"
                    }
                  ]
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "delete": {
        "summary": "Delete user",
        "description": "Delete a user",
        "operationId": "v2UsersControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathUserId"
          }
        ],
        "tags": [
          "Users"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/users/{userId}/update-password": {
      "post": {
        "summary": "Update user password",
        "description": "Update user password",
        "operationId": "v2UsersControllerUpdatePassword",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathUserId"
          }
        ],
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "fullname": "John Doe",
                  "email": "john.doe@example.com",
                  "isStaff": true,
                  "staffRole": "none",
                  "activeStaffRole": "none",
                  "registrationIp": "127.0.0.1",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "isEmailConfirmed": true,
                  "ssoGithubId": "xxx-xxx-xxx",
                  "ssoGoogleId": "xxx-xxx-xxx",
                  "ssoMicrosoftId": "xxx-xxx-xxx",
                  "ssoGitlabId": "xxx-xxx-xxx",
                  "ssoZohoId": "019b1334-dabcc",
                  "ssoAvatarUrl": "https://example.com",
                  "twoFaType": "otp_app",
                  "twoFaBackupCodes": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "apiTokens": [
                    {
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "expiresAt": "Lorem ipsum dolor sit amet",
                      "id": "019b1334-dabcc",
                      "name": "Amazing name",
                      "token": "xxx-xxx-xxx",
                      "type": "string",
                      "updatedAt": "Lorem ipsum dolor sit amet"
                    }
                  ]
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string"
                  },
                  "newPassword": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "password": "string",
                "newPassword": "string"
              }
            }
          }
        }
      }
    },
    "/v2/users/{userId}/update-email": {
      "post": {
        "summary": "Update user email",
        "description": "Update user email",
        "operationId": "v2UsersControllerUpdateEmail",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathUserId"
          }
        ],
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "fullname": "John Doe",
                  "email": "john.doe@example.com",
                  "isStaff": true,
                  "staffRole": "none",
                  "activeStaffRole": "none",
                  "registrationIp": "127.0.0.1",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "isEmailConfirmed": true,
                  "ssoGithubId": "xxx-xxx-xxx",
                  "ssoGoogleId": "xxx-xxx-xxx",
                  "ssoMicrosoftId": "xxx-xxx-xxx",
                  "ssoGitlabId": "xxx-xxx-xxx",
                  "ssoZohoId": "019b1334-dabcc",
                  "ssoAvatarUrl": "https://example.com",
                  "twoFaType": "otp_app",
                  "twoFaBackupCodes": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "apiTokens": [
                    {
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "expiresAt": "Lorem ipsum dolor sit amet",
                      "id": "019b1334-dabcc",
                      "name": "Amazing name",
                      "token": "xxx-xxx-xxx",
                      "type": "string",
                      "updatedAt": "Lorem ipsum dolor sit amet"
                    }
                  ]
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string"
                  },
                  "newEmail": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "password": "string",
                "newEmail": "string"
              }
            }
          }
        }
      }
    },
    "/v2/users/{userId}/update-2fa": {
      "post": {
        "summary": "Update user two-factor authentication code",
        "description": "Update user two-factor authentication code",
        "operationId": "v2UsersControllerUpdateTwoFa",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathUserId"
          }
        ],
        "tags": [
          "Users"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "code": "string"
              }
            }
          }
        }
      }
    },
    "/v2/users/{userId}/setup-2fa": {
      "post": {
        "summary": "Setup 2FA secrets for user",
        "description": "Setup 2FA secrets for user",
        "operationId": "v2UsersControllerSetupTwoFa",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathUserId"
          }
        ],
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "twoFaType": {
                      "type": "string"
                    },
                    "twoFaSecret": {
                      "type": "string"
                    },
                    "twoFaBackupCodes": {
                      "type": "string[]"
                    },
                    "twoFaQrCode": {
                      "type": "string"
                    },
                    "twoFaUrl": {
                      "type": "string"
                    },
                    "twoFaName": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "twoFaType": "string",
                  "twoFaSecret": "string",
                  "twoFaBackupCodes": "string[]",
                  "twoFaQrCode": "string",
                  "twoFaUrl": "string",
                  "twoFaName": "string"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string"
                  },
                  "twoFaType": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "password": "string",
                "twoFaType": "string"
              }
            }
          }
        }
      }
    },
    "/v2/workspaces": {
      "get": {
        "summary": "List workspaces",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "in": "query",
            "name": "isPersonal",
            "description": "Type",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "true",
                "false"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "currency",
            "description": "Currency",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "EUR",
                "CZK"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "country",
            "description": "Country",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "AD",
                "AU",
                "AT",
                "BD",
                "BE",
                "BG",
                "BR",
                "CA",
                "CL",
                "CN",
                "CO",
                "CR",
                "HR",
                "CY",
                "CZ",
                "DK",
                "EG",
                "EE",
                "FI",
                "FR",
                "DE",
                "GR",
                "GT",
                "HK",
                "HU",
                "IS",
                "IN",
                "ID",
                "IE",
                "IL",
                "IT",
                "JP",
                "KE",
                "LV",
                "LI",
                "LT",
                "LU",
                "MY",
                "MT",
                "MX",
                "MC",
                "MA",
                "NP",
                "NL",
                "NZ",
                "NG",
                "NO",
                "PK",
                "PH",
                "PL",
                "PT",
                "RO",
                "SM",
                "RS",
                "SG",
                "SK",
                "SI",
                "ZA",
                "KR",
                "ES",
                "LK",
                "SE",
                "CH",
                "TW",
                "TZ",
                "TH",
                "TR",
                "UA",
                "AE",
                "GB",
                "US",
                "UY",
                "VN",
                "ZM"
              ]
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Workspace"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "number": 123456,
                    "name": "Amazing name",
                    "displayName": "Amazing name",
                    "contactId": "019b1334-dabcc",
                    "currency": "eur",
                    "language": "en",
                    "credit": 100,
                    "autoJoinDomain": "example.com",
                    "autoJoinRole": "none",
                    "workspaceUsersLimit": 591,
                    "serverletsLimit": 507,
                    "cronsLimit": 339,
                    "volumesLimit": 357,
                    "proxiesLimit": 556,
                    "dnsLimit": 994,
                    "serversLimit": 878,
                    "apiTokensLimit": 543,
                    "projectsLimit": 686,
                    "featureFlags": [
                      "Lorem ipsum dolor sit amet"
                    ],
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create workspace",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2WorkspacesControllerStore",
        "parameters": [],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "contactId": "019b1334-dabcc",
                  "currency": "eur",
                  "language": "en",
                  "credit": 100,
                  "autoJoinDomain": "example.com",
                  "autoJoinRole": "none",
                  "workspaceUsersLimit": 591,
                  "serverletsLimit": 507,
                  "cronsLimit": 339,
                  "volumesLimit": 357,
                  "proxiesLimit": 556,
                  "dnsLimit": 994,
                  "serversLimit": 878,
                  "apiTokensLimit": 543,
                  "projectsLimit": 686,
                  "featureFlags": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/workspaces/filters": {
      "get": {
        "summary": "Get workspace filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerFilters",
        "parameters": [],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/workspaces/{workspaceId}": {
      "get": {
        "summary": "Get workspace",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "contactId": "019b1334-dabcc",
                  "currency": "eur",
                  "language": "en",
                  "credit": 100,
                  "autoJoinDomain": "example.com",
                  "autoJoinRole": "none",
                  "workspaceUsersLimit": 591,
                  "serverletsLimit": 507,
                  "cronsLimit": 339,
                  "volumesLimit": 357,
                  "proxiesLimit": 556,
                  "dnsLimit": 994,
                  "serversLimit": 878,
                  "apiTokensLimit": 543,
                  "projectsLimit": 686,
                  "featureFlags": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "counts": {
                    "projects": 0,
                    "workspaceUsers": 0,
                    "apiTokens": 0
                  }
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update workspace",
        "description": "",
        "operationId": "v2WorkspacesControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workspace"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "contactId": "019b1334-dabcc",
                  "currency": "eur",
                  "language": "en",
                  "credit": 100,
                  "autoJoinDomain": "example.com",
                  "autoJoinRole": "none",
                  "workspaceUsersLimit": 591,
                  "serverletsLimit": 507,
                  "cronsLimit": 339,
                  "volumesLimit": 357,
                  "proxiesLimit": 556,
                  "dnsLimit": 994,
                  "serversLimit": 878,
                  "apiTokensLimit": 543,
                  "projectsLimit": 686,
                  "featureFlags": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "delete": {
        "summary": "Delete workspace",
        "description": "",
        "operationId": "v2WorkspacesControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/workspaces/{workspaceId}/limits": {
      "get": {
        "summary": "Displayed workspace limits",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerLimits",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "usersUsed": {
                      "type": "integer"
                    },
                    "usersLimit": {
                      "type": "integer"
                    },
                    "serverletsUsed": {
                      "type": "integer"
                    },
                    "serverletsLimit": {
                      "type": "integer"
                    },
                    "cronsUsed": {
                      "type": "integer"
                    },
                    "cronsLimit": {
                      "type": "integer"
                    }
                  }
                },
                "example": {
                  "usersUsed": 10,
                  "usersLimit": 10,
                  "serverletsUsed": 0,
                  "serverletsLimit": 50,
                  "cronsUsed": 10,
                  "cronsLimit": 100
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/workspaces/{workspaceId}/contact": {
      "get": {
        "summary": "Get contact",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerShowContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Contact"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "isPersonal": true,
                  "firstname": "John",
                  "lastname": "Doe",
                  "company": "Example Inc.",
                  "email": "john.doe@example.com",
                  "phone": "+1234567890",
                  "streetAddress": "1028 Farland Street",
                  "streetAddress2": "Apt 1",
                  "postalCode": 60617,
                  "city": "Chicago",
                  "country": {},
                  "companyNumber": 123456,
                  "vatNumber": 123456,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update contact",
        "description": "Update an existing contact",
        "operationId": "v2WorkspacesControllerUpdateContact",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Contact"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "isPersonal": true,
                  "firstname": "John",
                  "lastname": "Doe",
                  "company": "Example Inc.",
                  "email": "john.doe@example.com",
                  "phone": "+1234567890",
                  "streetAddress": "1028 Farland Street",
                  "streetAddress2": "Apt 1",
                  "postalCode": 60617,
                  "city": "Chicago",
                  "country": {},
                  "companyNumber": 123456,
                  "vatNumber": 123456,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Contact"
              },
              "example": {
                "id": "019b1334-dabcc",
                "isPersonal": true,
                "firstname": "John",
                "lastname": "Doe",
                "company": "Example Inc.",
                "email": "john.doe@example.com",
                "phone": "+1234567890",
                "streetAddress": "1028 Farland Street",
                "streetAddress2": "Apt 1",
                "postalCode": 60617,
                "city": "Chicago",
                "country": {},
                "companyNumber": 123456,
                "vatNumber": 123456,
                "createdAt": "2021-03-23T16:13:08.489+01:00",
                "updatedAt": "2021-03-23T16:13:08.489+01:00"
              }
            }
          }
        }
      }
    },
    "/v2/workspaces/{workspaceId}/projects": {
      "get": {
        "summary": "List projects",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerIndexProjects",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "$ref": "#/components/parameters/QueryName"
          },
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Project"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "workspaceId": "019b1334-dabcc",
                    "name": "Amazing name",
                    "displayName": "Amazing name",
                    "gitRepositoryName": "Amazing name",
                    "gitRepositoryUrl": "https://example.com",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/workspaces/{workspaceId}/projects/{projectId}": {
      "get": {
        "summary": "Get project",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerShowProject",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/PathProjectId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "gitRepositoryName": "Amazing name",
                  "gitRepositoryUrl": "https://example.com",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/workspaces/{workspaceId}/projects/filters": {
      "get": {
        "summary": "Get workspace projects filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerProjectsFilters",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/workspaces/{workspaceId}/users": {
      "get": {
        "summary": "List users in workspace",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerIndexUsers",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "in": "query",
            "name": "role",
            "description": "Role",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "none",
                "viewer",
                "developer",
                "billing_manager",
                "administrator",
                "owner"
              ]
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryUserId"
          },
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkspaceUser"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "userId": "019b1334-dabcc",
                    "workspaceId": "019b1334-dabcc",
                    "role": "none",
                    "projectIds": [
                      "Lorem ipsum dolor sit amet"
                    ],
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Add user to workspace",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2WorkspacesControllerStoreUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceUser"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "userId": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "role": "none",
                  "projectIds": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/workspaces/{workspaceId}/users/filters": {
      "get": {
        "summary": "Get workspace user filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerUsersFilters",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/workspaces/{workspaceId}/users/{workspaceUserId}": {
      "get": {
        "summary": "Get user in workspace",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WorkspacesControllerShowUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/PathWorkspaceUserId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceUser"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "userId": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "role": "none",
                  "projectIds": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update user role in workspace",
        "description": "",
        "operationId": "v2WorkspacesControllerUpdateUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/PathWorkspaceUserId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceUser"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "userId": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "role": "none",
                  "projectIds": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "delete": {
        "summary": "Remove user from workspace",
        "description": "",
        "operationId": "v2WorkspacesControllerDestroyUser",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/PathWorkspaceUserId"
          }
        ],
        "tags": [
          "Workspaces"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/projects": {
      "get": {
        "summary": "List projects",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProjectsControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "$ref": "#/components/parameters/QueryName"
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Projects"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Project"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "workspaceId": "019b1334-dabcc",
                    "name": "Amazing name",
                    "displayName": "Amazing name",
                    "gitRepositoryName": "Amazing name",
                    "gitRepositoryUrl": "https://example.com",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create project",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2ProjectsControllerStore",
        "parameters": [],
        "tags": [
          "Projects"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "gitRepositoryName": "Amazing name",
                  "gitRepositoryUrl": "https://example.com",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/projects/filters": {
      "get": {
        "summary": "Get project filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProjectsControllerFilters",
        "parameters": [],
        "tags": [
          "Projects"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/projects/{projectId}": {
      "get": {
        "summary": "Get project",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProjectsControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProjectId"
          }
        ],
        "tags": [
          "Projects"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "gitRepositoryName": "Amazing name",
                  "gitRepositoryUrl": "https://example.com",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update project",
        "description": "",
        "operationId": "v2ProjectsControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProjectId"
          }
        ],
        "tags": [
          "Projects"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "gitRepositoryName": "Amazing name",
                  "gitRepositoryUrl": "https://example.com",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "delete": {
        "summary": "Delete project",
        "description": "",
        "operationId": "v2ProjectsControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProjectId"
          }
        ],
        "tags": [
          "Projects"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/projects/{projectId}/transfer": {
      "post": {
        "summary": "Transfer project to another workspace",
        "description": "",
        "operationId": "v2ProjectsControllerTransfer",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProjectId"
          }
        ],
        "tags": [
          "Projects"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "gitRepositoryName": "Amazing name",
                  "gitRepositoryUrl": "https://example.com",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/deployments": {
      "get": {
        "summary": "List deployments",
        "description": "",
        "operationId": "v2DeploymentsControllerIndex",
        "parameters": [],
        "tags": [
          "Deployments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create deployment",
        "description": "",
        "operationId": "v2DeploymentsControllerStore",
        "parameters": [],
        "tags": [
          "Deployments"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/deployments/filters": {
      "get": {
        "summary": "Get deployment filters",
        "description": "",
        "operationId": "v2DeploymentsControllerFilters",
        "parameters": [],
        "tags": [
          "Deployments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/deployments/schema": {
      "get": {
        "summary": "Get deployment schema",
        "description": "",
        "operationId": "v2DeploymentsControllerSchema",
        "parameters": [],
        "tags": [
          "Deployments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/deployments/{deploymentId}": {
      "get": {
        "summary": "Get deployment",
        "description": "",
        "operationId": "v2DeploymentsControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDeploymentId"
          }
        ],
        "tags": [
          "Deployments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update deployment",
        "description": "",
        "operationId": "v2DeploymentsControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDeploymentId"
          }
        ],
        "tags": [
          "Deployments"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "delete": {
        "summary": "Delete deployment",
        "description": "",
        "operationId": "v2DeploymentsControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDeploymentId"
          }
        ],
        "tags": [
          "Deployments"
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/variables": {
      "get": {
        "summary": "List variables",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VariablesControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "in": "query",
            "name": "isSecret",
            "description": "Is Secret",
            "schema": {
              "type": "string",
              "example": "value"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/QueryProjectId"
          },
          {
            "in": "query",
            "name": "serverletId",
            "description": "Serverlet ID - Filter by ID",
            "schema": {
              "type": "string",
              "example": "xxx-xxx-xxx"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Variables"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Variable"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "workspaceId": "019b1334-dabcc",
                    "projectId": "019b1334-dabcc",
                    "serverletId": "019b1334-dabcc",
                    "key": "Lorem ipsum dolor sit amet",
                    "isSecret": true,
                    "description": "A suitable description",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00",
                    "serverlet": {
                      "cpu": 1,
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "id": "019b1334-dabcc",
                      "image": "Lorem ipsum dolor sit amet",
                      "instances": 55,
                      "maxInstances": 641,
                      "minInstances": 250,
                      "name": "Amazing name",
                      "networkId": "019b1334-dabcc",
                      "ram": 1024,
                      "runtime": "Lorem ipsum dolor sit amet",
                      "state": "Lorem ipsum dolor sit amet",
                      "updatedAt": "Lorem ipsum dolor sit amet"
                    }
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create variable",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2VariablesControllerStore",
        "parameters": [],
        "tags": [
          "Variables"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Variable"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "serverletId": "019b1334-dabcc",
                  "key": "Lorem ipsum dolor sit amet",
                  "isSecret": true,
                  "description": "A suitable description",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "serverlet": {
                    "cpu": 1,
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "id": "019b1334-dabcc",
                    "image": "Lorem ipsum dolor sit amet",
                    "instances": 55,
                    "maxInstances": 641,
                    "minInstances": 250,
                    "name": "Amazing name",
                    "networkId": "019b1334-dabcc",
                    "ram": 1024,
                    "runtime": "Lorem ipsum dolor sit amet",
                    "state": "Lorem ipsum dolor sit amet",
                    "updatedAt": "Lorem ipsum dolor sit amet"
                  }
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  },
                  "isSecret": {
                    "type": "boolean"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "serverletId": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "key": "string",
                "value": "string",
                "isSecret": "boolean",
                "projectId": "string",
                "serverletId": "string"
              }
            }
          }
        }
      }
    },
    "/v2/variables/filters": {
      "get": {
        "summary": "Get variable filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VariablesControllerFilters",
        "parameters": [],
        "tags": [
          "Variables"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "key",
                    "label": "Key",
                    "type": "textsearch",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/variables/{variableId}": {
      "get": {
        "summary": "Get variable",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VariablesControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVariableId"
          }
        ],
        "tags": [
          "Variables"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Variable"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "serverletId": "019b1334-dabcc",
                  "key": "Lorem ipsum dolor sit amet",
                  "isSecret": true,
                  "description": "A suitable description",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "serverlet": {
                    "cpu": 1,
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "id": "019b1334-dabcc",
                    "image": "Lorem ipsum dolor sit amet",
                    "instances": 55,
                    "maxInstances": 641,
                    "minInstances": 250,
                    "name": "Amazing name",
                    "networkId": "019b1334-dabcc",
                    "ram": 1024,
                    "runtime": "Lorem ipsum dolor sit amet",
                    "state": "Lorem ipsum dolor sit amet",
                    "updatedAt": "Lorem ipsum dolor sit amet"
                  }
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update variable",
        "description": "Update a variable",
        "operationId": "v2VariablesControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVariableId"
          }
        ],
        "tags": [
          "Variables"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Variable"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "serverletId": "019b1334-dabcc",
                  "key": "Lorem ipsum dolor sit amet",
                  "isSecret": true,
                  "description": "A suitable description",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "serverlet": {
                    "cpu": 1,
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "id": "019b1334-dabcc",
                    "image": "Lorem ipsum dolor sit amet",
                    "instances": 55,
                    "maxInstances": 641,
                    "minInstances": 250,
                    "name": "Amazing name",
                    "networkId": "019b1334-dabcc",
                    "ram": 1024,
                    "runtime": "Lorem ipsum dolor sit amet",
                    "state": "Lorem ipsum dolor sit amet",
                    "updatedAt": "Lorem ipsum dolor sit amet"
                  }
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  },
                  "isSecret": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "key": "string",
                "value": "string",
                "isSecret": "boolean"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete variable",
        "description": "Delete a variable",
        "operationId": "v2VariablesControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVariableId"
          }
        ],
        "tags": [
          "Variables"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/transactions": {
      "get": {
        "summary": "List transactions",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2TransactionsControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "in": "query",
            "name": "datePeriod",
            "description": "Date Period",
            "schema": {
              "type": "string",
              "example": "value"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "priceType",
            "description": "Price Type",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "positive",
                "negative"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "type",
            "description": "Type",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "voucher",
                "order",
                "serverlet",
                "dns",
                "support",
                "other"
              ]
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCurrency"
          },
          {
            "$ref": "#/components/parameters/QueryPrice"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Transactions"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Transaction"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "workspaceId": "019b1334-dabcc",
                    "projectId": "019b1334-dabcc",
                    "value": 59,
                    "unit": "Lorem ipsum dolor sit amet",
                    "price": 10.5,
                    "currency": "eur",
                    "type": "string",
                    "description": "A suitable description",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/transactions/filters": {
      "get": {
        "summary": "Get transaction filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2TransactionsControllerFilters",
        "parameters": [],
        "tags": [
          "Transactions"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/transactions/{transactionId}": {
      "get": {
        "summary": "Get transaction",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2TransactionsControllerShow",
        "parameters": [
          {
            "in": "path",
            "name": "transactionId",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "Transactions"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Transaction"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "value": 59,
                  "unit": "Lorem ipsum dolor sit amet",
                  "price": 10.5,
                  "currency": "eur",
                  "type": "string",
                  "description": "A suitable description",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/orders": {
      "get": {
        "summary": "List orders",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2OrdersControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryNumber"
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "in": "query",
            "name": "status",
            "description": "order.status",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "pending",
                "paid",
                "canceled",
                "refunded"
              ]
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCurrency"
          },
          {
            "$ref": "#/components/parameters/QueryPrice"
          },
          {
            "in": "query",
            "name": "paidAt",
            "description": "Paid At - Filter by datetime ISO 8601 range format (e.g. from/to)",
            "schema": {
              "type": "string",
              "example": "2000-01-01T00:00:00.000Z/3000-01-01T23:59:59.999Z"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "canceledAt",
            "description": "Canceled At - Filter by datetime ISO 8601 range format (e.g. from/to)",
            "schema": {
              "type": "string",
              "example": "2000-01-01T00:00:00.000Z/3000-01-01T23:59:59.999Z"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "refundedAt",
            "description": "Refunded At - Filter by datetime ISO 8601 range format (e.g. from/to)",
            "schema": {
              "type": "string",
              "example": "2000-01-01T00:00:00.000Z/3000-01-01T23:59:59.999Z"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Order"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "number": 123456,
                    "price": 10.5,
                    "currency": "eur",
                    "paymentMethod": "bank_transfer",
                    "status": "pending",
                    "workspaceId": "019b1334-dabcc",
                    "paidAt": "2021-03-23T16:13:08.489+01:00",
                    "canceledAt": "2021-03-23T16:13:08.489+01:00",
                    "refundedAt": "2021-03-23T16:13:08.489+01:00",
                    "creemCheckoutId": "019b1334-dabcc",
                    "creemTransactionId": "019b1334-dabcc",
                    "creemProductId": "019b1334-dabcc",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create order",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2OrdersControllerStore",
        "parameters": [],
        "tags": [
          "Orders"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "price": 10.5,
                  "currency": "eur",
                  "paymentMethod": "bank_transfer",
                  "status": "pending",
                  "workspaceId": "019b1334-dabcc",
                  "paidAt": "2021-03-23T16:13:08.489+01:00",
                  "canceledAt": "2021-03-23T16:13:08.489+01:00",
                  "refundedAt": "2021-03-23T16:13:08.489+01:00",
                  "creemCheckoutId": "019b1334-dabcc",
                  "creemTransactionId": "019b1334-dabcc",
                  "creemProductId": "019b1334-dabcc",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "workspaceId": {
                    "type": "number"
                  },
                  "number": {
                    "type": "string"
                  },
                  "price": {
                    "type": "number"
                  },
                  "currency": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "workspaceId": "number",
                "number": "string",
                "price": "number",
                "currency": "string"
              }
            }
          }
        }
      }
    },
    "/v2/orders/filters": {
      "get": {
        "summary": "Get order filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2OrdersControllerFilters",
        "parameters": [],
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/orders/{orderId}": {
      "get": {
        "summary": "Get order",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2OrdersControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathOrderId"
          }
        ],
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "price": 10.5,
                  "currency": "eur",
                  "paymentMethod": "bank_transfer",
                  "status": "pending",
                  "workspaceId": "019b1334-dabcc",
                  "paidAt": "2021-03-23T16:13:08.489+01:00",
                  "canceledAt": "2021-03-23T16:13:08.489+01:00",
                  "refundedAt": "2021-03-23T16:13:08.489+01:00",
                  "creemCheckoutId": "019b1334-dabcc",
                  "creemTransactionId": "019b1334-dabcc",
                  "creemProductId": "019b1334-dabcc",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/orders/{orderId}/cancel": {
      "post": {
        "summary": "Cancel order",
        "description": "Cancel an order",
        "operationId": "v2OrdersControllerCancel",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathOrderId"
          }
        ],
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "price": 10.5,
                  "currency": "eur",
                  "paymentMethod": "bank_transfer",
                  "status": "pending",
                  "workspaceId": "019b1334-dabcc",
                  "paidAt": "2021-03-23T16:13:08.489+01:00",
                  "canceledAt": "2021-03-23T16:13:08.489+01:00",
                  "refundedAt": "2021-03-23T16:13:08.489+01:00",
                  "creemCheckoutId": "019b1334-dabcc",
                  "creemTransactionId": "019b1334-dabcc",
                  "creemProductId": "019b1334-dabcc",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/orders/{orderId}/refund": {
      "post": {
        "summary": "Refund order",
        "description": "Refund an order",
        "operationId": "v2OrdersControllerRefund",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathOrderId"
          }
        ],
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "price": 10.5,
                  "currency": "eur",
                  "paymentMethod": "bank_transfer",
                  "status": "pending",
                  "workspaceId": "019b1334-dabcc",
                  "paidAt": "2021-03-23T16:13:08.489+01:00",
                  "canceledAt": "2021-03-23T16:13:08.489+01:00",
                  "refundedAt": "2021-03-23T16:13:08.489+01:00",
                  "creemCheckoutId": "019b1334-dabcc",
                  "creemTransactionId": "019b1334-dabcc",
                  "creemProductId": "019b1334-dabcc",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/orders/{orderId}/qr": {
      "get": {
        "summary": "Get payment QR code",
        "description": "Returns **200** (OK) as **text/plain**",
        "operationId": "v2OrdersControllerQr",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathOrderId"
          }
        ],
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "example": "SVG image"
              }
            },
            "description": "Returns **200** (OK) as **text/plain**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/orders/{orderId}/checkout": {
      "post": {
        "summary": "Initiate Creem checkout",
        "description": "Create a Creem checkout session and return checkout URL",
        "operationId": "v2OrdersControllerCheckout",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathOrderId"
          }
        ],
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "checkoutUrl": {
                      "type": "string"
                    },
                    "checkoutId": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "checkoutUrl": "string",
                  "checkoutId": "string"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/orders/creem/callback": {
      "post": {
        "summary": "Handle Creem webhook callback",
        "description": "Webhook endpoint for Creem payment notifications",
        "operationId": "v2OrdersControllerCreemCallback",
        "parameters": [],
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  }
                },
                "example": {
                  "success": true
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/vouchers": {
      "get": {
        "summary": "List vouchers",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VouchersControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "$ref": "#/components/parameters/QueryCurrency"
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "in": "query",
            "name": "isUsed",
            "description": "Is Used - Filter by boolean value (e.g. true, false, 1, 0)",
            "schema": {
              "type": "boolean",
              "example": true
            },
            "required": false
          },
          {
            "in": "query",
            "name": "isExpired",
            "description": "Is Expired - Filter by boolean value (e.g. true, false, 1, 0)",
            "schema": {
              "type": "boolean",
              "example": true
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Vouchers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Voucher"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "code": "xxx-xxx-xxx",
                    "price": 10.5,
                    "currency": "eur",
                    "isUsed": true,
                    "isExpired": true,
                    "workspaceId": "019b1334-dabcc",
                    "usedByWorkspaceId": "019b1334-dabcc",
                    "usedAt": "2021-03-23T16:13:08.489+01:00",
                    "expiresAt": "2021-03-23T16:13:08.489+01:00",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create voucher",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2VouchersControllerStore",
        "parameters": [],
        "tags": [
          "Vouchers"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Voucher"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "code": "xxx-xxx-xxx",
                  "price": 10.5,
                  "currency": "eur",
                  "isUsed": true,
                  "isExpired": true,
                  "workspaceId": "019b1334-dabcc",
                  "usedByWorkspaceId": "019b1334-dabcc",
                  "usedAt": "2021-03-23T16:13:08.489+01:00",
                  "expiresAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "workspaceId": {
                    "type": "string"
                  },
                  "price": {
                    "type": "number"
                  },
                  "currency": {
                    "type": "string"
                  },
                  "expiresAt": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "workspaceId": "string",
                "price": "number",
                "currency": "string",
                "expiresAt": "string"
              }
            }
          }
        }
      }
    },
    "/v2/vouchers/filters": {
      "get": {
        "summary": "Get voucher filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VouchersControllerFilters",
        "parameters": [],
        "tags": [
          "Vouchers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/vouchers/check": {
      "post": {
        "summary": "Check voucher validity",
        "description": "Check if a voucher code is valid and can be used",
        "operationId": "v2VouchersControllerCheck",
        "parameters": [],
        "tags": [
          "Vouchers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Voucher"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "code": "xxx-xxx-xxx",
                  "price": 10.5,
                  "currency": "eur",
                  "isUsed": true,
                  "isExpired": true,
                  "workspaceId": "019b1334-dabcc",
                  "usedByWorkspaceId": "019b1334-dabcc",
                  "usedAt": "2021-03-23T16:13:08.489+01:00",
                  "expiresAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "code": "string"
              }
            }
          }
        }
      }
    },
    "/v2/vouchers/use": {
      "post": {
        "summary": "Use voucher",
        "description": "Mark a voucher as used",
        "operationId": "v2VouchersControllerUse",
        "parameters": [],
        "tags": [
          "Vouchers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Voucher"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "code": "xxx-xxx-xxx",
                  "price": 10.5,
                  "currency": "eur",
                  "isUsed": true,
                  "isExpired": true,
                  "workspaceId": "019b1334-dabcc",
                  "usedByWorkspaceId": "019b1334-dabcc",
                  "usedAt": "2021-03-23T16:13:08.489+01:00",
                  "expiresAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "workspaceId": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "code": "string",
                "workspaceId": "string"
              }
            }
          }
        }
      }
    },
    "/v2/vouchers/{voucherId}": {
      "get": {
        "summary": "Get voucher",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VouchersControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVoucherId"
          }
        ],
        "tags": [
          "Vouchers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Voucher"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "code": "xxx-xxx-xxx",
                  "price": 10.5,
                  "currency": "eur",
                  "isUsed": true,
                  "isExpired": true,
                  "workspaceId": "019b1334-dabcc",
                  "usedByWorkspaceId": "019b1334-dabcc",
                  "usedAt": "2021-03-23T16:13:08.489+01:00",
                  "expiresAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update voucher",
        "description": "Update mutable voucher metadata",
        "operationId": "v2VouchersControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVoucherId"
          }
        ],
        "tags": [
          "Vouchers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Voucher"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "code": "xxx-xxx-xxx",
                  "price": 10.5,
                  "currency": "eur",
                  "isUsed": true,
                  "isExpired": true,
                  "workspaceId": "019b1334-dabcc",
                  "usedByWorkspaceId": "019b1334-dabcc",
                  "usedAt": "2021-03-23T16:13:08.489+01:00",
                  "expiresAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expiresAt": {
                    "type": "string"
                  },
                  "isExpired": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "expiresAt": "string",
                "isExpired": "boolean"
              }
            }
          }
        }
      }
    },
    "/v2/invoices": {
      "get": {
        "summary": "List invoices",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2InvoicesControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryNumber"
          },
          {
            "in": "query",
            "name": "status",
            "description": "Status",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "pending",
                "paid",
                "canceled"
              ]
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Invoice"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "number": 123456,
                    "price": 10.5,
                    "currency": "eur",
                    "workspaceId": "019b1334-dabcc",
                    "orderId": "019b1334-dabcc",
                    "status": "pending",
                    "pdfKey": "Lorem ipsum dolor sit amet",
                    "language": "en",
                    "paidAt": "2021-03-23T16:13:08.489+01:00",
                    "canceledAt": "2021-03-23T16:13:08.489+01:00",
                    "refundedAt": "2021-03-23T16:13:08.489+01:00",
                    "items": [
                      {
                        "description": "A suitable description",
                        "quantity": 432,
                        "unitPrice": 10.5,
                        "unit": "Lorem ipsum dolor sit amet"
                      }
                    ],
                    "supplierContactId": "019b1334-dabcc",
                    "customerContactId": "019b1334-dabcc",
                    "exchangeRate": 380,
                    "exchangeRateCurrency": "eur",
                    "referenceNumber": 123456,
                    "issuedAt": "2021-03-23T16:13:08.489+01:00",
                    "dueAt": "2021-03-23T16:13:08.489+01:00",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create invoice",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2InvoicesControllerStore",
        "parameters": [],
        "tags": [
          "Invoices"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "price": 10.5,
                  "currency": "eur",
                  "workspaceId": "019b1334-dabcc",
                  "orderId": "019b1334-dabcc",
                  "status": "pending",
                  "pdfKey": "Lorem ipsum dolor sit amet",
                  "language": "en",
                  "paidAt": "2021-03-23T16:13:08.489+01:00",
                  "canceledAt": "2021-03-23T16:13:08.489+01:00",
                  "refundedAt": "2021-03-23T16:13:08.489+01:00",
                  "items": [
                    {
                      "description": "A suitable description",
                      "quantity": 432,
                      "unitPrice": 10.5,
                      "unit": "Lorem ipsum dolor sit amet"
                    }
                  ],
                  "supplierContactId": "019b1334-dabcc",
                  "customerContactId": "019b1334-dabcc",
                  "exchangeRate": 380,
                  "exchangeRateCurrency": "eur",
                  "referenceNumber": 123456,
                  "issuedAt": "2021-03-23T16:13:08.489+01:00",
                  "dueAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string"
                  },
                  "price": {
                    "type": "number"
                  }
                }
              },
              "example": {
                "number": "string",
                "price": "number"
              }
            }
          }
        }
      }
    },
    "/v2/invoices/filters": {
      "get": {
        "summary": "Get invoice filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2InvoicesControllerFilters",
        "parameters": [],
        "tags": [
          "Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/invoices/{invoiceId}": {
      "get": {
        "summary": "Get invoice",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2InvoicesControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathInvoiceId"
          }
        ],
        "tags": [
          "Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "price": 10.5,
                  "currency": "eur",
                  "workspaceId": "019b1334-dabcc",
                  "orderId": "019b1334-dabcc",
                  "status": "pending",
                  "pdfKey": "Lorem ipsum dolor sit amet",
                  "language": "en",
                  "paidAt": "2021-03-23T16:13:08.489+01:00",
                  "canceledAt": "2021-03-23T16:13:08.489+01:00",
                  "refundedAt": "2021-03-23T16:13:08.489+01:00",
                  "items": [
                    {
                      "description": "A suitable description",
                      "quantity": 432,
                      "unitPrice": 10.5,
                      "unit": "Lorem ipsum dolor sit amet"
                    }
                  ],
                  "supplierContactId": "019b1334-dabcc",
                  "customerContactId": "019b1334-dabcc",
                  "exchangeRate": 380,
                  "exchangeRateCurrency": "eur",
                  "referenceNumber": 123456,
                  "issuedAt": "2021-03-23T16:13:08.489+01:00",
                  "dueAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update invoice",
        "description": "Update an invoice",
        "operationId": "v2InvoicesControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathInvoiceId"
          }
        ],
        "tags": [
          "Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "price": 10.5,
                  "currency": "eur",
                  "workspaceId": "019b1334-dabcc",
                  "orderId": "019b1334-dabcc",
                  "status": "pending",
                  "pdfKey": "Lorem ipsum dolor sit amet",
                  "language": "en",
                  "paidAt": "2021-03-23T16:13:08.489+01:00",
                  "canceledAt": "2021-03-23T16:13:08.489+01:00",
                  "refundedAt": "2021-03-23T16:13:08.489+01:00",
                  "items": [
                    {
                      "description": "A suitable description",
                      "quantity": 432,
                      "unitPrice": 10.5,
                      "unit": "Lorem ipsum dolor sit amet"
                    }
                  ],
                  "supplierContactId": "019b1334-dabcc",
                  "customerContactId": "019b1334-dabcc",
                  "exchangeRate": 380,
                  "exchangeRateCurrency": "eur",
                  "referenceNumber": 123456,
                  "issuedAt": "2021-03-23T16:13:08.489+01:00",
                  "dueAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string"
                  },
                  "price": {
                    "type": "number"
                  },
                  "isPaid": {
                    "type": "boolean"
                  },
                  "isCanceled": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "number": "string",
                "price": "number",
                "isPaid": "boolean",
                "isCanceled": "boolean"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete invoice",
        "description": "Delete a specific invoice",
        "operationId": "v2InvoicesControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathInvoiceId"
          }
        ],
        "tags": [
          "Invoices"
        ],
        "responses": {
          "204": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to void - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **204** (No Content) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/invoices/{invoiceId}/regenerate": {
      "post": {
        "summary": "Regenerate invoice PDF",
        "description": "Delete existing invoice PDF to force regeneration on next download",
        "operationId": "v2InvoicesControllerRegenerate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathInvoiceId"
          }
        ],
        "tags": [
          "Invoices"
        ],
        "responses": {
          "204": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to void - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **204** (No Content) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/invoices/{invoiceId}/download": {
      "get": {
        "summary": "Download invoice PDF",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2InvoicesControllerDownload",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathInvoiceId"
          }
        ],
        "tags": [
          "Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to File - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/invoices/{invoiceId}/preview": {
      "get": {
        "summary": "Get invoice preview",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2InvoicesControllerPreview",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathInvoiceId"
          }
        ],
        "tags": [
          "Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to File - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/invoices/{invoiceId}/qr": {
      "get": {
        "summary": "Get invoice QR code",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2InvoicesControllerQr",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathInvoiceId"
          }
        ],
        "tags": [
          "Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to File - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proforma-invoices": {
      "get": {
        "summary": "List proforma invoices",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProformaInvoicesControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryNumber"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Proforma Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProformaInvoice"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "number": 123456,
                    "price": 10.5,
                    "currency": "eur",
                    "workspaceId": "019b1334-dabcc",
                    "orderId": "019b1334-dabcc",
                    "pdfKey": "Lorem ipsum dolor sit amet",
                    "language": "en",
                    "items": [
                      {
                        "description": "A suitable description",
                        "quantity": 736,
                        "unitPrice": 10.5,
                        "unit": "Lorem ipsum dolor sit amet"
                      }
                    ],
                    "supplierContactId": "019b1334-dabcc",
                    "customerContactId": "019b1334-dabcc",
                    "exchangeRate": 328,
                    "exchangeRateCurrency": "eur",
                    "referenceNumber": 123456,
                    "issuedAt": "2021-03-23T16:13:08.489+01:00",
                    "dueAt": "2021-03-23T16:13:08.489+01:00",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create proforma invoice",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2ProformaInvoicesControllerStore",
        "parameters": [],
        "tags": [
          "Proforma Invoices"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProformaInvoice"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "price": 10.5,
                  "currency": "eur",
                  "workspaceId": "019b1334-dabcc",
                  "orderId": "019b1334-dabcc",
                  "pdfKey": "Lorem ipsum dolor sit amet",
                  "language": "en",
                  "items": [
                    {
                      "description": "A suitable description",
                      "quantity": 736,
                      "unitPrice": 10.5,
                      "unit": "Lorem ipsum dolor sit amet"
                    }
                  ],
                  "supplierContactId": "019b1334-dabcc",
                  "customerContactId": "019b1334-dabcc",
                  "exchangeRate": 328,
                  "exchangeRateCurrency": "eur",
                  "referenceNumber": 123456,
                  "issuedAt": "2021-03-23T16:13:08.489+01:00",
                  "dueAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string"
                  },
                  "price": {
                    "type": "number"
                  }
                }
              },
              "example": {
                "number": "string",
                "price": "number"
              }
            }
          }
        }
      }
    },
    "/v2/proforma-invoices/filters": {
      "get": {
        "summary": "Get proforma invoice filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProformaInvoicesControllerFilters",
        "parameters": [],
        "tags": [
          "Proforma Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proforma-invoices/{proformaInvoiceId}": {
      "get": {
        "summary": "Get proforma invoice",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProformaInvoicesControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProformaInvoiceId"
          }
        ],
        "tags": [
          "Proforma Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProformaInvoice"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "price": 10.5,
                  "currency": "eur",
                  "workspaceId": "019b1334-dabcc",
                  "orderId": "019b1334-dabcc",
                  "pdfKey": "Lorem ipsum dolor sit amet",
                  "language": "en",
                  "items": [
                    {
                      "description": "A suitable description",
                      "quantity": 736,
                      "unitPrice": 10.5,
                      "unit": "Lorem ipsum dolor sit amet"
                    }
                  ],
                  "supplierContactId": "019b1334-dabcc",
                  "customerContactId": "019b1334-dabcc",
                  "exchangeRate": 328,
                  "exchangeRateCurrency": "eur",
                  "referenceNumber": 123456,
                  "issuedAt": "2021-03-23T16:13:08.489+01:00",
                  "dueAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update proforma invoice",
        "description": "Update a proforma invoice",
        "operationId": "v2ProformaInvoicesControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProformaInvoiceId"
          }
        ],
        "tags": [
          "Proforma Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProformaInvoice"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "number": 123456,
                  "price": 10.5,
                  "currency": "eur",
                  "workspaceId": "019b1334-dabcc",
                  "orderId": "019b1334-dabcc",
                  "pdfKey": "Lorem ipsum dolor sit amet",
                  "language": "en",
                  "items": [
                    {
                      "description": "A suitable description",
                      "quantity": 736,
                      "unitPrice": 10.5,
                      "unit": "Lorem ipsum dolor sit amet"
                    }
                  ],
                  "supplierContactId": "019b1334-dabcc",
                  "customerContactId": "019b1334-dabcc",
                  "exchangeRate": 328,
                  "exchangeRateCurrency": "eur",
                  "referenceNumber": 123456,
                  "issuedAt": "2021-03-23T16:13:08.489+01:00",
                  "dueAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string"
                  },
                  "price": {
                    "type": "number"
                  },
                  "isPaid": {
                    "type": "boolean"
                  },
                  "isCanceled": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "number": "string",
                "price": "number",
                "isPaid": "boolean",
                "isCanceled": "boolean"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete proforma invoice",
        "description": "Delete a specific proforma invoice",
        "operationId": "v2ProformaInvoicesControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProformaInvoiceId"
          }
        ],
        "tags": [
          "Proforma Invoices"
        ],
        "responses": {
          "204": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to void - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **204** (No Content) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proforma-invoices/{proformaInvoiceId}/regenerate": {
      "post": {
        "summary": "Regenerate proforma invoice PDF",
        "description": "Delete existing proforma invoice PDF to force regeneration on next download",
        "operationId": "v2ProformaInvoicesControllerRegenerate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProformaInvoiceId"
          }
        ],
        "tags": [
          "Proforma Invoices"
        ],
        "responses": {
          "204": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to void - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **204** (No Content) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proforma-invoices/{proformaInvoiceId}/download": {
      "get": {
        "summary": "Download proforma invoice PDF",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProformaInvoicesControllerDownload",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProformaInvoiceId"
          }
        ],
        "tags": [
          "Proforma Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to File - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proforma-invoices/{proformaInvoiceId}/preview": {
      "get": {
        "summary": "Get proforma invoice preview",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProformaInvoicesControllerPreview",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProformaInvoiceId"
          }
        ],
        "tags": [
          "Proforma Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to File - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proforma-invoices/{proformaInvoiceId}/qr": {
      "get": {
        "summary": "Get proforma invoice QR code",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProformaInvoicesControllerQr",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProformaInvoiceId"
          }
        ],
        "tags": [
          "Proforma Invoices"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to File - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/plans": {
      "get": {
        "summary": "List DNS plans",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsPlansControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryName2"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DnsPlan"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "name": "Amazing name",
                    "displayName": "Amazing name",
                    "minutePrice": 10.5,
                    "monthlyPrice": 10.5,
                    "isPublic": true,
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create DNS plan",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2DnsPlansControllerStore",
        "parameters": [],
        "tags": [
          "DNS"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "isPublic": "boolean"
              }
            }
          }
        }
      }
    },
    "/v2/dns/plans/filters": {
      "get": {
        "summary": "Get DNS plan filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsPlansControllerFilters",
        "parameters": [],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/plans/{dnsPlanId}": {
      "get": {
        "summary": "Get DNS plan",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsPlansControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsPlanId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update DNS plan",
        "description": "",
        "operationId": "v2DnsPlansControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsPlanId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "isPublic": "boolean"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete DNS plan",
        "description": "",
        "operationId": "v2DnsPlansControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsPlanId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns": {
      "get": {
        "summary": "List DNS zones",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryDomain"
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "in": "query",
            "name": "dnsPlanId",
            "description": "DNS Plan ID - Filter by ID",
            "schema": {
              "type": "string",
              "example": "xxx-xxx-xxx"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Dns"
                  }
                },
                "example": [
                  {
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "domain": "example.com",
                    "enableDnssec": true,
                    "id": "019b1334-dabcc",
                    "updatedAt": "Lorem ipsum dolor sit amet"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create DNS zone",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2DnsControllerStore",
        "parameters": [],
        "tags": [
          "DNS"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Dns"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "domain": "example.com",
                  "enableDnssec": true,
                  "id": "019b1334-dabcc",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string"
                  },
                  "workspaceId": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "dnsPlanId": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "domain": "string",
                "workspaceId": "string",
                "projectId": "string",
                "dnsPlanId": "string"
              }
            }
          }
        }
      }
    },
    "/v2/dns/filters": {
      "get": {
        "summary": "Get DNS filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsControllerFilters",
        "parameters": [],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/{dnsId}": {
      "get": {
        "summary": "Get DNS zone",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Dns"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "domain": "example.com",
                  "enableDnssec": true,
                  "id": "019b1334-dabcc",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update DNS zone",
        "description": "",
        "operationId": "v2DnsControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Dns"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "domain": "example.com",
                  "enableDnssec": true,
                  "id": "019b1334-dabcc",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string"
                  },
                  "dnsPlanId": {
                    "type": "number"
                  }
                }
              },
              "example": {
                "domain": "string",
                "dnsPlanId": "number"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete DNS zone",
        "description": "",
        "operationId": "v2DnsControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/{dnsId}/metrics": {
      "get": {
        "summary": "Get DNS metrics",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsControllerMetrics",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to any - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/{dnsId}/logs": {
      "get": {
        "summary": "Get DNS logs",
        "description": "Returns raw log stream for a specific DNS zone, with optional offset, limit, search, startAt, and endAt query parameters",
        "operationId": "v2DnsControllerLogs",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryOffset"
          },
          {
            "$ref": "#/components/parameters/QueryLimit2"
          },
          {
            "$ref": "#/components/parameters/QuerySearch2"
          },
          {
            "$ref": "#/components/parameters/QueryStartAt"
          },
          {
            "$ref": "#/components/parameters/QueryEndAt"
          },
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/{dnsId}/logs/tail": {
      "get": {
        "summary": "Get recent DNS logs",
        "description": "Returns recent log entries (last 100 by default) for a specific DNS zone, with optional search, startAt, and endAt query parameters",
        "operationId": "v2DnsControllerLogsTail",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryOffset"
          },
          {
            "$ref": "#/components/parameters/QueryLimit2"
          },
          {
            "$ref": "#/components/parameters/QuerySearch2"
          },
          {
            "$ref": "#/components/parameters/QueryStartAt"
          },
          {
            "$ref": "#/components/parameters/QueryEndAt"
          },
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/{dnsId}/purge": {
      "post": {
        "summary": "Purge DNS zone cache",
        "description": "Purges cached query results and zone lookups for this DNS zone",
        "operationId": "v2DnsControllerPurge",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/{dnsId}/export": {
      "get": {
        "summary": "Export DNS zone",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsControllerExportZone",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to string - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/{dnsId}/import": {
      "post": {
        "summary": "Import DNS zone",
        "description": "",
        "operationId": "v2DnsControllerImportZone",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to { message: string } - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/{dnsId}/records": {
      "get": {
        "summary": "List DNS records",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsRecordsControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/PathDnsId"
          },
          {
            "$ref": "#/components/parameters/QueryName2"
          },
          {
            "in": "query",
            "name": "type",
            "description": "Type",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "A",
                "AAAA",
                "ALIAS",
                "CNAME",
                "MX",
                "TXT",
                "NS",
                "SRV",
                "CAA",
                "PTR",
                "SOA",
                "SVCB",
                "HTTPS"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "value",
            "description": "Value - Filter by fulltext search",
            "schema": {
              "type": "string",
              "example": "search term"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DnsRecord"
                  }
                },
                "example": [
                  {
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "dnsId": "019b1334-dabcc",
                    "id": "019b1334-dabcc",
                    "name": "Amazing name",
                    "priority": 700,
                    "ttl": 15,
                    "type": "string",
                    "updatedAt": "Lorem ipsum dolor sit amet",
                    "value": "Lorem ipsum dolor sit amet"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create DNS record",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2DnsRecordsControllerStore",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRecord"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "dnsId": "019b1334-dabcc",
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "priority": 700,
                  "ttl": 15,
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "value": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "ttl": {
                    "type": "number"
                  },
                  "type": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  },
                  "priority": {
                    "type": "number"
                  }
                }
              },
              "example": {
                "name": "string",
                "ttl": "number",
                "type": "string",
                "value": "string",
                "priority": "number"
              }
            }
          }
        }
      }
    },
    "/v2/dns/{dnsId}/records/filters": {
      "get": {
        "summary": "Get DNS record filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsRecordsControllerFilters",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/dns/{dnsId}/records/{dnsRecordId}": {
      "get": {
        "summary": "Get DNS record",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2DnsRecordsControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          },
          {
            "$ref": "#/components/parameters/PathDnsRecordId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRecord"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "dnsId": "019b1334-dabcc",
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "priority": 700,
                  "ttl": 15,
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "value": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update DNS record",
        "description": "Update a DNS record",
        "operationId": "v2DnsRecordsControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          },
          {
            "$ref": "#/components/parameters/PathDnsRecordId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRecord"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "dnsId": "019b1334-dabcc",
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "priority": 700,
                  "ttl": 15,
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "value": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "ttl": {
                    "type": "number"
                  },
                  "type": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  },
                  "priority": {
                    "type": "number"
                  }
                }
              },
              "example": {
                "name": "string",
                "ttl": "number",
                "type": "string",
                "value": "string",
                "priority": "number"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete DNS record",
        "description": "Delete a DNS record",
        "operationId": "v2DnsRecordsControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathDnsId"
          },
          {
            "$ref": "#/components/parameters/PathDnsRecordId"
          }
        ],
        "tags": [
          "DNS"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "message": "string"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/activities": {
      "get": {
        "summary": "List activities",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ActivitiesControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "in": "query",
            "name": "type",
            "description": "Type",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "created",
                "updated",
                "deleted",
                "user_created",
                "user_updated",
                "user_deleted",
                "user_password_reset",
                "user_password_updated",
                "user_email_updated",
                "user_email_confirmed",
                "user_login_failed",
                "user_login_success",
                "user_sso_added",
                "workspace_created",
                "workspace_updated",
                "workspace_deleted",
                "workspace_user_created",
                "workspace_user_updated",
                "workspace_user_deleted",
                "order_created",
                "order_canceled",
                "voucher_created",
                "voucher_deleted",
                "voucher_used",
                "dns_created",
                "dns_updated",
                "dns_deleted",
                "dns_record_created",
                "dns_record_updated",
                "dns_record_deleted",
                "project_created",
                "project_updated",
                "project_deleted",
                "project_transferred",
                "proxy_created",
                "proxy_updated",
                "proxy_deleted",
                "region_created",
                "region_updated",
                "region_deleted",
                "server_created",
                "server_updated",
                "server_deleted",
                "server_joined",
                "server_join_token_reset",
                "server_left",
                "volume_created",
                "volume_updated",
                "volume_deleted",
                "serverlet_created",
                "serverlet_updated",
                "serverlet_deleted",
                "api_token_created",
                "api_token_updated",
                "api_token_deleted",
                "app_created",
                "app_updated",
                "app_deleted",
                "variable_created",
                "variable_updated",
                "variable_deleted",
                "cert_created",
                "cert_deleted",
                "cert_renewed",
                "monitor_created",
                "monitor_updated",
                "monitor_deleted"
              ]
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryUserId"
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/QueryProjectId"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "in": "query",
            "name": "expiresAt",
            "description": "Expires At - Filter by datetime ISO 8601 range format (e.g. from/to)",
            "schema": {
              "type": "string",
              "example": "2000-01-01T00:00:00.000Z/3000-01-01T23:59:59.999Z"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Activities"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Activity"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "type": "created",
                    "userId": "019b1334-dabcc",
                    "workspaceId": "019b1334-dabcc",
                    "userIdLabel": "Suitable label",
                    "workspaceIdLabel": "Suitable label",
                    "workspaceUserId": "019b1334-dabcc",
                    "workspaceUserIdLabel": "Suitable label",
                    "projectId": "019b1334-dabcc",
                    "projectIdLabel": "Suitable label",
                    "serverId": "019b1334-dabcc",
                    "serverIdLabel": "Suitable label",
                    "regionId": "019b1334-dabcc",
                    "regionIdLabel": "Suitable label",
                    "serverletId": "019b1334-dabcc",
                    "serverletIdLabel": "Suitable label",
                    "volumeId": "019b1334-dabcc",
                    "volumeIdLabel": "Suitable label",
                    "oldValues": {},
                    "newValues": {},
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00",
                    "expiresAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/activities/filters": {
      "get": {
        "summary": "Get activity filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ActivitiesControllerFilters",
        "parameters": [],
        "tags": [
          "Activities"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/crons/plans": {
      "get": {
        "summary": "List Cron plans",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2CronPlansControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryName2"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Crons"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CronPlan"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "name": "Amazing name",
                    "displayName": "Amazing name",
                    "minutePrice": 10.5,
                    "monthlyPrice": 10.5,
                    "isPublic": true,
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create Cron plan",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2CronPlansControllerStore",
        "parameters": [],
        "tags": [
          "Crons"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CronPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "isPublic": "boolean"
              }
            }
          }
        }
      }
    },
    "/v2/crons/plans/filters": {
      "get": {
        "summary": "Get Cron plan filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2CronPlansControllerFilters",
        "parameters": [],
        "tags": [
          "Crons"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/crons/plans/{cronPlanId}": {
      "get": {
        "summary": "Get Cron plan",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2CronPlansControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathCronPlanId"
          }
        ],
        "tags": [
          "Crons"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CronPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update Cron plan",
        "description": "",
        "operationId": "v2CronPlansControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathCronPlanId"
          }
        ],
        "tags": [
          "Crons"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CronPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "isPublic": "boolean"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete Cron plan",
        "description": "",
        "operationId": "v2CronPlansControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathCronPlanId"
          }
        ],
        "tags": [
          "Crons"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/crons": {
      "get": {
        "summary": "List crons",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2CronsControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryName2"
          },
          {
            "in": "query",
            "name": "type",
            "description": "Type",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "simple",
                "code"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "enabled",
            "description": "Enabled",
            "schema": {
              "type": "string",
              "example": "value"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Crons"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Cron"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "workspaceId": "019b1334-dabcc",
                    "projectId": "019b1334-dabcc",
                    "cronPlanId": "019b1334-dabcc",
                    "regionId": "019b1334-dabcc",
                    "name": "Amazing name",
                    "schedule": "30 14 * * *",
                    "type": "simple",
                    "code": "xxx-xxx-xxx",
                    "method": "Lorem ipsum dolor sit amet",
                    "url": "https://example.com",
                    "headers": {},
                    "body": "Lorem ipsum dolor sit amet",
                    "enabled": true,
                    "startedAt": "2021-03-23T16:13:08.489+01:00",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create cron",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2CronsControllerStore",
        "parameters": [],
        "tags": [
          "Crons"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cron"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "cronPlanId": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "schedule": "30 14 * * *",
                  "type": "simple",
                  "code": "xxx-xxx-xxx",
                  "method": "Lorem ipsum dolor sit amet",
                  "url": "https://example.com",
                  "headers": {},
                  "body": "Lorem ipsum dolor sit amet",
                  "enabled": true,
                  "startedAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "schedule": {
                    "type": "string"
                  },
                  "code": {
                    "type": "string"
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "My Cron Job",
                "schedule": "1 * * * *",
                "code": "console.log('Hello, world!')",
                "enabled": true
              }
            }
          }
        }
      }
    },
    "/v2/crons/filters": {
      "get": {
        "summary": "Get cron filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2CronsControllerFilters",
        "parameters": [],
        "tags": [
          "Crons"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "schedule",
                    "label": "Schedule",
                    "type": "text",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/crons/{cronId}": {
      "get": {
        "summary": "Get cron",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2CronsControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathCronId"
          }
        ],
        "tags": [
          "Crons"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cron"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "cronPlanId": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "schedule": "30 14 * * *",
                  "type": "simple",
                  "code": "xxx-xxx-xxx",
                  "method": "Lorem ipsum dolor sit amet",
                  "url": "https://example.com",
                  "headers": {},
                  "body": "Lorem ipsum dolor sit amet",
                  "enabled": true,
                  "startedAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update cron",
        "description": "",
        "operationId": "v2CronsControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathCronId"
          }
        ],
        "tags": [
          "Crons"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cron"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "cronPlanId": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "schedule": "30 14 * * *",
                  "type": "simple",
                  "code": "xxx-xxx-xxx",
                  "method": "Lorem ipsum dolor sit amet",
                  "url": "https://example.com",
                  "headers": {},
                  "body": "Lorem ipsum dolor sit amet",
                  "enabled": true,
                  "startedAt": "2021-03-23T16:13:08.489+01:00",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "schedule": {
                    "type": "string"
                  },
                  "code": {
                    "type": "string"
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "schedule": "string",
                "code": "string",
                "enabled": "boolean"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete cron",
        "description": "",
        "operationId": "v2CronsControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathCronId"
          }
        ],
        "tags": [
          "Crons"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/crons/test": {
      "post": {
        "summary": "Test execute cron with data (without saving)",
        "description": "Execute a cron job with provided data immediately and return the execution result without saving",
        "operationId": "v2CronsControllerTest",
        "parameters": [],
        "tags": [
          "Crons"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to CronExecution - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proxies/plans": {
      "get": {
        "summary": "List proxy plans",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProxyPlansControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryName2"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProxyPlan"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "name": "Amazing name",
                    "displayName": "Amazing name",
                    "minutePrice": 10.5,
                    "monthlyPrice": 10.5,
                    "isPublic": true,
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create proxy plan",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2ProxyPlansControllerStore",
        "parameters": [],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProxyPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "isPublic": "boolean"
              }
            }
          }
        }
      }
    },
    "/v2/proxies/plans/filters": {
      "get": {
        "summary": "Get proxy plan filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProxyPlansControllerFilters",
        "parameters": [],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proxies/plans/{proxyPlanId}": {
      "get": {
        "summary": "Get proxy plan",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProxyPlansControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProxyPlanId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProxyPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update proxy plan",
        "description": "",
        "operationId": "v2ProxyPlansControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProxyPlanId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProxyPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "isPublic": "boolean"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete proxy plan",
        "description": "",
        "operationId": "v2ProxyPlansControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProxyPlanId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/certs": {
      "get": {
        "summary": "List certificates",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2CertsControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Certs"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Cert"
                  }
                },
                "example": [
                  {
                    "acmeAuthzUrls": [
                      "Lorem ipsum dolor sit amet"
                    ],
                    "acmeOrderUrl": "https://example.com",
                    "altNames": [
                      "Lorem ipsum dolor sit amet"
                    ],
                    "certChain": "Lorem ipsum dolor sit amet",
                    "challengeRecord": "Lorem ipsum dolor sit amet",
                    "challenges": [
                      "Lorem ipsum dolor sit amet"
                    ],
                    "challengeToken": "xxx-xxx-xxx",
                    "checkedAt": "Lorem ipsum dolor sit amet",
                    "checks": 398,
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "domain": "example.com",
                    "ecCurve": "Lorem ipsum dolor sit amet",
                    "errorMessage": "Lorem ipsum dolor sit amet",
                    "expiresAt": "Lorem ipsum dolor sit amet",
                    "id": "019b1334-dabcc",
                    "issuedAt": "Lorem ipsum dolor sit amet",
                    "keySize": 295,
                    "privateKey": "Lorem ipsum dolor sit amet",
                    "provider": "Lorem ipsum dolor sit amet",
                    "publicKey": "Lorem ipsum dolor sit amet",
                    "state": "Lorem ipsum dolor sit amet",
                    "type": "string",
                    "updatedAt": "Lorem ipsum dolor sit amet",
                    "verificationMethod": "Lorem ipsum dolor sit amet"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Request a certificate",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2CertsControllerStore",
        "parameters": [],
        "tags": [
          "Certs"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cert"
                },
                "example": {
                  "acmeAuthzUrls": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "acmeOrderUrl": "https://example.com",
                  "altNames": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "certChain": "Lorem ipsum dolor sit amet",
                  "challengeRecord": "Lorem ipsum dolor sit amet",
                  "challenges": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "challengeToken": "xxx-xxx-xxx",
                  "checkedAt": "Lorem ipsum dolor sit amet",
                  "checks": 398,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "domain": "example.com",
                  "ecCurve": "Lorem ipsum dolor sit amet",
                  "errorMessage": "Lorem ipsum dolor sit amet",
                  "expiresAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "issuedAt": "Lorem ipsum dolor sit amet",
                  "keySize": 295,
                  "privateKey": "Lorem ipsum dolor sit amet",
                  "provider": "Lorem ipsum dolor sit amet",
                  "publicKey": "Lorem ipsum dolor sit amet",
                  "state": "Lorem ipsum dolor sit amet",
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "verificationMethod": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/certs/filters": {
      "get": {
        "summary": "Get cert filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2CertsControllerFilters",
        "parameters": [],
        "tags": [
          "Certs"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "undefined"
                  }
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/certs/{certId}": {
      "get": {
        "summary": "Get certificate with live data from Nasua",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2CertsControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathCertId"
          }
        ],
        "tags": [
          "Certs"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cert"
                },
                "example": {
                  "acmeAuthzUrls": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "acmeOrderUrl": "https://example.com",
                  "altNames": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "certChain": "Lorem ipsum dolor sit amet",
                  "challengeRecord": "Lorem ipsum dolor sit amet",
                  "challenges": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "challengeToken": "xxx-xxx-xxx",
                  "checkedAt": "Lorem ipsum dolor sit amet",
                  "checks": 398,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "domain": "example.com",
                  "ecCurve": "Lorem ipsum dolor sit amet",
                  "errorMessage": "Lorem ipsum dolor sit amet",
                  "expiresAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "issuedAt": "Lorem ipsum dolor sit amet",
                  "keySize": 295,
                  "privateKey": "Lorem ipsum dolor sit amet",
                  "provider": "Lorem ipsum dolor sit amet",
                  "publicKey": "Lorem ipsum dolor sit amet",
                  "state": "Lorem ipsum dolor sit amet",
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "verificationMethod": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "delete": {
        "summary": "Delete a certificate",
        "description": "",
        "operationId": "v2CertsControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathCertId"
          }
        ],
        "tags": [
          "Certs"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/certs/{certId}/renew": {
      "post": {
        "summary": "Force renewal of a certificate",
        "description": "",
        "operationId": "v2CertsControllerRenew",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathCertId"
          }
        ],
        "tags": [
          "Certs"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cert"
                },
                "example": {
                  "acmeAuthzUrls": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "acmeOrderUrl": "https://example.com",
                  "altNames": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "certChain": "Lorem ipsum dolor sit amet",
                  "challengeRecord": "Lorem ipsum dolor sit amet",
                  "challenges": [
                    "Lorem ipsum dolor sit amet"
                  ],
                  "challengeToken": "xxx-xxx-xxx",
                  "checkedAt": "Lorem ipsum dolor sit amet",
                  "checks": 398,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "domain": "example.com",
                  "ecCurve": "Lorem ipsum dolor sit amet",
                  "errorMessage": "Lorem ipsum dolor sit amet",
                  "expiresAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "issuedAt": "Lorem ipsum dolor sit amet",
                  "keySize": 295,
                  "privateKey": "Lorem ipsum dolor sit amet",
                  "provider": "Lorem ipsum dolor sit amet",
                  "publicKey": "Lorem ipsum dolor sit amet",
                  "state": "Lorem ipsum dolor sit amet",
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "verificationMethod": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proxies": {
      "get": {
        "summary": "List proxies",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProxiesControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "in": "query",
            "name": "type",
            "description": "Type",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "http",
                "tcp",
                "udp"
              ]
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "in": "query",
            "name": "proxyPlanId",
            "description": "Proxy Plan ID - Filter by ID",
            "schema": {
              "type": "string",
              "example": "xxx-xxx-xxx"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Proxy"
                  }
                },
                "example": [
                  {
                    "compress": true,
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "domain": "example.com",
                    "enforceHttps": true,
                    "followRedirects": true,
                    "id": "019b1334-dabcc",
                    "port": 422,
                    "preserveHeaders": true,
                    "preserveHost": true,
                    "preservePath": true,
                    "preserveQuery": true,
                    "status": "Lorem ipsum dolor sit amet",
                    "strategy": "Lorem ipsum dolor sit amet",
                    "target": "Lorem ipsum dolor sit amet",
                    "type": "string",
                    "updatedAt": "Lorem ipsum dolor sit amet",
                    "verifyTls": true
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create proxy",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2ProxiesControllerStore",
        "parameters": [],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Proxy"
                },
                "example": {
                  "compress": true,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "domain": "example.com",
                  "enforceHttps": true,
                  "followRedirects": true,
                  "id": "019b1334-dabcc",
                  "port": 422,
                  "preserveHeaders": true,
                  "preserveHost": true,
                  "preservePath": true,
                  "preserveQuery": true,
                  "status": "Lorem ipsum dolor sit amet",
                  "strategy": "Lorem ipsum dolor sit amet",
                  "target": "Lorem ipsum dolor sit amet",
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "verifyTls": true
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "workspaceId": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "routes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "string",
                "workspaceId": "string",
                "projectId": "string",
                "routes": "array"
              }
            }
          }
        }
      }
    },
    "/v2/proxies/filters": {
      "get": {
        "summary": "Get proxy filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProxiesControllerFilters",
        "parameters": [],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proxies/check": {
      "post": {
        "summary": "Check if proxy domain is available",
        "description": "",
        "operationId": "v2ProxiesControllerCheck",
        "parameters": [],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "domain": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "domain": "string"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "domain": "string"
              }
            }
          }
        }
      }
    },
    "/v2/proxies/{proxyId}": {
      "get": {
        "summary": "Get proxy",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProxiesControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProxyId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Proxy"
                },
                "example": {
                  "compress": true,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "domain": "example.com",
                  "enforceHttps": true,
                  "followRedirects": true,
                  "id": "019b1334-dabcc",
                  "port": 422,
                  "preserveHeaders": true,
                  "preserveHost": true,
                  "preservePath": true,
                  "preserveQuery": true,
                  "status": "Lorem ipsum dolor sit amet",
                  "strategy": "Lorem ipsum dolor sit amet",
                  "target": "Lorem ipsum dolor sit amet",
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "verifyTls": true
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update proxy",
        "description": "",
        "operationId": "v2ProxiesControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProxyId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Proxy"
                },
                "example": {
                  "compress": true,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "domain": "example.com",
                  "enforceHttps": true,
                  "followRedirects": true,
                  "id": "019b1334-dabcc",
                  "port": 422,
                  "preserveHeaders": true,
                  "preserveHost": true,
                  "preservePath": true,
                  "preserveQuery": true,
                  "status": "Lorem ipsum dolor sit amet",
                  "strategy": "Lorem ipsum dolor sit amet",
                  "target": "Lorem ipsum dolor sit amet",
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "verifyTls": true
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "routes": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "string",
                "routes": "array"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete proxy",
        "description": "",
        "operationId": "v2ProxiesControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProxyId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proxies/{proxyId}/metrics": {
      "get": {
        "summary": "Get proxy metrics",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ProxiesControllerMetrics",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProxyId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "any"
                  }
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proxies/{proxyId}/logs": {
      "get": {
        "summary": "Get proxy logs",
        "description": "Returns raw log stream for a specific proxy, with optional offset, limit, search, startAt, and endAt query parameters",
        "operationId": "v2ProxiesControllerLogs",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryOffset"
          },
          {
            "$ref": "#/components/parameters/QueryLimit2"
          },
          {
            "$ref": "#/components/parameters/QuerySearch2"
          },
          {
            "$ref": "#/components/parameters/QueryStartAt"
          },
          {
            "$ref": "#/components/parameters/QueryEndAt"
          },
          {
            "$ref": "#/components/parameters/PathProxyId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proxies/{proxyId}/logs/tail": {
      "get": {
        "summary": "Get recent proxy logs",
        "description": "Returns recent log entries (last 100 by default) for a specific proxy, with optional search, startAt, and endAt query parameters",
        "operationId": "v2ProxiesControllerLogsTail",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryOffset"
          },
          {
            "$ref": "#/components/parameters/QueryLimit2"
          },
          {
            "$ref": "#/components/parameters/QuerySearch2"
          },
          {
            "$ref": "#/components/parameters/QueryStartAt"
          },
          {
            "$ref": "#/components/parameters/QueryEndAt"
          },
          {
            "$ref": "#/components/parameters/PathProxyId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proxies/{proxyId}/purge": {
      "post": {
        "summary": "Purge proxy cache",
        "description": "Purges cached responses for this proxy",
        "operationId": "v2ProxiesControllerPurge",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProxyId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/proxies/{proxyId}/verify": {
      "post": {
        "summary": "Verify proxy domain ownership via DNS TXT record",
        "description": "",
        "operationId": "v2ProxiesControllerVerify",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathProxyId"
          }
        ],
        "tags": [
          "Proxies"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Proxy"
                },
                "example": {
                  "compress": true,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "domain": "example.com",
                  "enforceHttps": true,
                  "followRedirects": true,
                  "id": "019b1334-dabcc",
                  "port": 422,
                  "preserveHeaders": true,
                  "preserveHost": true,
                  "preservePath": true,
                  "preserveQuery": true,
                  "status": "Lorem ipsum dolor sit amet",
                  "strategy": "Lorem ipsum dolor sit amet",
                  "target": "Lorem ipsum dolor sit amet",
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "verifyTls": true
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/monitors": {
      "get": {
        "summary": "List monitors",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2MonitorsControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "in": "query",
            "name": "type",
            "description": "Type",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": [
                "",
                "http",
                "ping",
                "tcp",
                "udp"
              ]
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Monitor"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "workspaceId": "019b1334-dabcc",
                    "projectId": "019b1334-dabcc",
                    "regionId": "019b1334-dabcc",
                    "name": "Amazing name",
                    "type": "http",
                    "target": "Lorem ipsum dolor sit amet",
                    "interval": "Lorem ipsum dolor sit amet",
                    "timeout": 714,
                    "requestMethod": "Lorem ipsum dolor sit amet",
                    "requestHeaders": {},
                    "enabled": true,
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create monitor",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2MonitorsControllerStore",
        "parameters": [],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "type": "http",
                  "target": "Lorem ipsum dolor sit amet",
                  "interval": "Lorem ipsum dolor sit amet",
                  "timeout": 714,
                  "requestMethod": "Lorem ipsum dolor sit amet",
                  "requestHeaders": {},
                  "enabled": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "target": {
                    "type": "string"
                  },
                  "interval": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "string",
                "projectId": "string",
                "type": "string",
                "target": "string",
                "interval": "string"
              }
            }
          }
        }
      }
    },
    "/v2/monitors/filters": {
      "get": {
        "summary": "Get monitor filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2MonitorsControllerFilters",
        "parameters": [],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/monitors/{monitorId}": {
      "get": {
        "summary": "Get monitor",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2MonitorsControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathMonitorId"
          }
        ],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "type": "http",
                  "target": "Lorem ipsum dolor sit amet",
                  "interval": "Lorem ipsum dolor sit amet",
                  "timeout": 714,
                  "requestMethod": "Lorem ipsum dolor sit amet",
                  "requestHeaders": {},
                  "enabled": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update monitor",
        "description": "",
        "operationId": "v2MonitorsControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathMonitorId"
          }
        ],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "type": "http",
                  "target": "Lorem ipsum dolor sit amet",
                  "interval": "Lorem ipsum dolor sit amet",
                  "timeout": 714,
                  "requestMethod": "Lorem ipsum dolor sit amet",
                  "requestHeaders": {},
                  "enabled": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "target": {
                    "type": "string"
                  },
                  "interval": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "string",
                "target": "string",
                "interval": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete monitor",
        "description": "",
        "operationId": "v2MonitorsControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathMonitorId"
          }
        ],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/monitors/{monitorId}/checks": {
      "get": {
        "summary": "Get monitor check history",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2MonitorsControllerChecks",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathMonitorId"
          }
        ],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "any"
                    }
                  }
                },
                "example": [
                  {}
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/monitors/{monitorId}/logs": {
      "get": {
        "summary": "Get monitor logs",
        "description": "Returns raw log stream for a specific monitor, with optional offset, limit, search, startAt, and endAt query parameters",
        "operationId": "v2MonitorsControllerLogs",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryOffset"
          },
          {
            "$ref": "#/components/parameters/QueryLimit2"
          },
          {
            "$ref": "#/components/parameters/QuerySearch2"
          },
          {
            "$ref": "#/components/parameters/QueryStartAt"
          },
          {
            "$ref": "#/components/parameters/QueryEndAt"
          },
          {
            "$ref": "#/components/parameters/PathMonitorId"
          }
        ],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/monitors/{monitorId}/logs/tail": {
      "get": {
        "summary": "Get recent monitor logs",
        "description": "Returns recent log entries (last 100 by default) for a specific monitor, with optional search, startAt, and endAt query parameters",
        "operationId": "v2MonitorsControllerLogsTail",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryOffset"
          },
          {
            "$ref": "#/components/parameters/QueryLimit2"
          },
          {
            "$ref": "#/components/parameters/QuerySearch2"
          },
          {
            "$ref": "#/components/parameters/QueryStartAt"
          },
          {
            "$ref": "#/components/parameters/QueryEndAt"
          },
          {
            "$ref": "#/components/parameters/PathMonitorId"
          }
        ],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/monitors/{monitorId}/enable": {
      "post": {
        "summary": "Enable monitor",
        "description": "",
        "operationId": "v2MonitorsControllerEnable",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathMonitorId"
          }
        ],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "type": "http",
                  "target": "Lorem ipsum dolor sit amet",
                  "interval": "Lorem ipsum dolor sit amet",
                  "timeout": 714,
                  "requestMethod": "Lorem ipsum dolor sit amet",
                  "requestHeaders": {},
                  "enabled": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/monitors/{monitorId}/disable": {
      "post": {
        "summary": "Disable monitor",
        "description": "",
        "operationId": "v2MonitorsControllerDisable",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathMonitorId"
          }
        ],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "type": "http",
                  "target": "Lorem ipsum dolor sit amet",
                  "interval": "Lorem ipsum dolor sit amet",
                  "timeout": 714,
                  "requestMethod": "Lorem ipsum dolor sit amet",
                  "requestHeaders": {},
                  "enabled": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/monitors/{monitorId}/trigger": {
      "post": {
        "summary": "Trigger monitor check",
        "description": "",
        "operationId": "v2MonitorsControllerTrigger",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathMonitorId"
          }
        ],
        "tags": [
          "Monitors"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "projectId": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "type": "http",
                  "target": "Lorem ipsum dolor sit amet",
                  "interval": "Lorem ipsum dolor sit amet",
                  "timeout": 714,
                  "requestMethod": "Lorem ipsum dolor sit amet",
                  "requestHeaders": {},
                  "enabled": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/regions": {
      "get": {
        "summary": "List regions",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2RegionsControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Regions"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Region"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "workspaceId": "019b1334-dabcc",
                    "displayName": "Amazing name",
                    "name": "Amazing name",
                    "domain": "example.com",
                    "isPublic": true,
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create region",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2RegionsControllerStore",
        "parameters": [],
        "tags": [
          "Regions"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Region"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "displayName": "Amazing name",
                  "name": "Amazing name",
                  "domain": "example.com",
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "workspaceId": {
                    "type": "string"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "description": "string",
                "domain": "string",
                "workspaceId": "string",
                "isPublic": "boolean"
              }
            }
          }
        }
      }
    },
    "/v2/regions/filters": {
      "get": {
        "summary": "Get region filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2RegionsControllerFilters",
        "parameters": [],
        "tags": [
          "Regions"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/regions/{regionId}": {
      "get": {
        "summary": "Get region",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2RegionsControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathRegionId"
          }
        ],
        "tags": [
          "Regions"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Region"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "displayName": "Amazing name",
                  "name": "Amazing name",
                  "domain": "example.com",
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update region",
        "description": "",
        "operationId": "v2RegionsControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathRegionId"
          }
        ],
        "tags": [
          "Regions"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Region"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "displayName": "Amazing name",
                  "name": "Amazing name",
                  "domain": "example.com",
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "description": "string",
                "domain": "string",
                "isPublic": "boolean"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete region",
        "description": "",
        "operationId": "v2RegionsControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathRegionId"
          }
        ],
        "tags": [
          "Regions"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/servers": {
      "get": {
        "summary": "List servers",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServersControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QuerySearch"
          },
          {
            "in": "query",
            "name": "regionId",
            "description": "Region",
            "schema": {
              "type": "string",
              "example": "value",
              "enum": []
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Servers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Server"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "regionId": "019b1334-dabcc",
                    "workspaceId": "019b1334-dabcc",
                    "name": "Amazing name",
                    "displayName": "Amazing name",
                    "isPublic": true,
                    "arch": "amd64",
                    "domain": "example.com",
                    "joinedAt": "2021-03-23T16:13:08.489+01:00",
                    "apiHost": "Lorem ipsum dolor sit amet",
                    "apiPort": "Lorem ipsum dolor sit amet",
                    "apiCertHash": "Lorem ipsum dolor sit amet",
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00",
                    "seenAt": "2021-03-23T16:13:08.489+01:00",
                    "apiTokens": [
                      {
                        "createdAt": "Lorem ipsum dolor sit amet",
                        "expiresAt": "Lorem ipsum dolor sit amet",
                        "id": "019b1334-dabcc",
                        "name": "Amazing name",
                        "token": "xxx-xxx-xxx",
                        "type": "string",
                        "updatedAt": "Lorem ipsum dolor sit amet"
                      }
                    ]
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create server",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2ServersControllerStore",
        "parameters": [],
        "tags": [
          "Servers"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Server"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "isPublic": true,
                  "arch": "amd64",
                  "domain": "example.com",
                  "joinedAt": "2021-03-23T16:13:08.489+01:00",
                  "apiHost": "Lorem ipsum dolor sit amet",
                  "apiPort": "Lorem ipsum dolor sit amet",
                  "apiCertHash": "Lorem ipsum dolor sit amet",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "seenAt": "2021-03-23T16:13:08.489+01:00",
                  "apiTokens": [
                    {
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "expiresAt": "Lorem ipsum dolor sit amet",
                      "id": "019b1334-dabcc",
                      "name": "Amazing name",
                      "token": "xxx-xxx-xxx",
                      "type": "string",
                      "updatedAt": "Lorem ipsum dolor sit amet"
                    }
                  ]
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "regionId": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "string",
                "regionId": "string"
              }
            }
          }
        }
      }
    },
    "/v2/servers/filters": {
      "get": {
        "summary": "Get server filters",
        "description": "",
        "operationId": "v2ServersControllerFilters",
        "parameters": [],
        "tags": [
          "Servers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/servers/{serverId}/join": {
      "post": {
        "summary": "Join Futrou Cloud",
        "description": "",
        "operationId": "v2ServersControllerJoin",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerId"
          }
        ],
        "tags": [
          "Servers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Server"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "isPublic": true,
                  "arch": "amd64",
                  "domain": "example.com",
                  "joinedAt": "2021-03-23T16:13:08.489+01:00",
                  "apiHost": "Lorem ipsum dolor sit amet",
                  "apiPort": "Lorem ipsum dolor sit amet",
                  "apiCertHash": "Lorem ipsum dolor sit amet",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "seenAt": "2021-03-23T16:13:08.489+01:00",
                  "apiTokens": [
                    {
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "expiresAt": "Lorem ipsum dolor sit amet",
                      "id": "019b1334-dabcc",
                      "name": "Amazing name",
                      "token": "xxx-xxx-xxx",
                      "type": "string",
                      "updatedAt": "Lorem ipsum dolor sit amet"
                    }
                  ]
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "joinToken": {
                    "type": "string"
                  },
                  "apiHost": {
                    "type": "string"
                  },
                  "apiPort": {
                    "type": "string"
                  },
                  "apiToken": {
                    "type": "string"
                  },
                  "apiCertHash": {
                    "type": "string"
                  },
                  "clusterToken": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "joinToken": "string",
                "apiHost": "string",
                "apiPort": "string",
                "apiToken": "string",
                "apiCertHash": "string",
                "clusterToken": "string"
              }
            }
          }
        }
      }
    },
    "/v2/servers/{serverId}/reset-join": {
      "post": {
        "summary": "Reset join token",
        "description": "",
        "operationId": "v2ServersControllerResetJoin",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerId"
          }
        ],
        "tags": [
          "Servers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Server"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "isPublic": true,
                  "arch": "amd64",
                  "domain": "example.com",
                  "joinedAt": "2021-03-23T16:13:08.489+01:00",
                  "apiHost": "Lorem ipsum dolor sit amet",
                  "apiPort": "Lorem ipsum dolor sit amet",
                  "apiCertHash": "Lorem ipsum dolor sit amet",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "seenAt": "2021-03-23T16:13:08.489+01:00",
                  "apiTokens": [
                    {
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "expiresAt": "Lorem ipsum dolor sit amet",
                      "id": "019b1334-dabcc",
                      "name": "Amazing name",
                      "token": "xxx-xxx-xxx",
                      "type": "string",
                      "updatedAt": "Lorem ipsum dolor sit amet"
                    }
                  ]
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/servers/{serverId}/leave": {
      "post": {
        "summary": "Leave Futrou Cloud",
        "description": "",
        "operationId": "v2ServersControllerLeave",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerId"
          }
        ],
        "tags": [
          "Servers"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/servers/{serverId}": {
      "get": {
        "summary": "Get server",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServersControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerId"
          }
        ],
        "tags": [
          "Servers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Server"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "isPublic": true,
                  "arch": "amd64",
                  "domain": "example.com",
                  "joinedAt": "2021-03-23T16:13:08.489+01:00",
                  "apiHost": "Lorem ipsum dolor sit amet",
                  "apiPort": "Lorem ipsum dolor sit amet",
                  "apiCertHash": "Lorem ipsum dolor sit amet",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "seenAt": "2021-03-23T16:13:08.489+01:00",
                  "apiTokens": [
                    {
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "expiresAt": "Lorem ipsum dolor sit amet",
                      "id": "019b1334-dabcc",
                      "name": "Amazing name",
                      "token": "xxx-xxx-xxx",
                      "type": "string",
                      "updatedAt": "Lorem ipsum dolor sit amet"
                    }
                  ]
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update server",
        "description": "",
        "operationId": "v2ServersControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerId"
          }
        ],
        "tags": [
          "Servers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Server"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "regionId": "019b1334-dabcc",
                  "workspaceId": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "isPublic": true,
                  "arch": "amd64",
                  "domain": "example.com",
                  "joinedAt": "2021-03-23T16:13:08.489+01:00",
                  "apiHost": "Lorem ipsum dolor sit amet",
                  "apiPort": "Lorem ipsum dolor sit amet",
                  "apiCertHash": "Lorem ipsum dolor sit amet",
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00",
                  "seenAt": "2021-03-23T16:13:08.489+01:00",
                  "apiTokens": [
                    {
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "expiresAt": "Lorem ipsum dolor sit amet",
                      "id": "019b1334-dabcc",
                      "name": "Amazing name",
                      "token": "xxx-xxx-xxx",
                      "type": "string",
                      "updatedAt": "Lorem ipsum dolor sit amet"
                    }
                  ]
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "apiHost": {
                    "type": "string"
                  },
                  "apiPort": {
                    "type": "string"
                  },
                  "apiToken": {
                    "type": "string"
                  },
                  "apiCertHash": {
                    "type": "string"
                  },
                  "clusterToken": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "string",
                "apiHost": "string",
                "apiPort": "string",
                "apiToken": "string",
                "apiCertHash": "string",
                "clusterToken": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete server",
        "description": "",
        "operationId": "v2ServersControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerId"
          }
        ],
        "tags": [
          "Servers"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/servers/{serverId}/logs": {
      "get": {
        "summary": "Get server logs",
        "description": "Returns raw stdout, stderr, dns, proxy, or serverlet logs for this server, with optional id, instanceId, offset, limit, search, startAt, and endAt query parameters",
        "operationId": "v2ServersControllerLogs",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "description": "Type",
            "schema": {
              "example": "",
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "id",
            "description": "Id",
            "schema": {
              "example": "",
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "instanceId",
            "description": "Instance Id",
            "schema": {
              "example": "",
              "type": "string"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryOffset"
          },
          {
            "$ref": "#/components/parameters/QueryLimit2"
          },
          {
            "$ref": "#/components/parameters/QuerySearch2"
          },
          {
            "$ref": "#/components/parameters/QueryStartAt"
          },
          {
            "$ref": "#/components/parameters/QueryEndAt"
          },
          {
            "$ref": "#/components/parameters/PathServerId"
          }
        ],
        "tags": [
          "Servers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/servers/{serverId}/metrics": {
      "get": {
        "summary": "Get server metrics",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServersControllerMetrics",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerId"
          }
        ],
        "tags": [
          "Servers"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to Object - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/volumes/plans": {
      "get": {
        "summary": "List volume plans",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VolumePlansControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryName2"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VolumePlan"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "name": "Amazing name",
                    "displayName": "Amazing name",
                    "size": {},
                    "minutePrice": 10.5,
                    "monthlyPrice": 10.5,
                    "isPublic": true,
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create volume plan",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2VolumePlansControllerStore",
        "parameters": [],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumePlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "size": {},
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "size": {
                    "type": "number"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "size": "number",
                "isPublic": "boolean"
              }
            }
          }
        }
      }
    },
    "/v2/volumes/plans/filters": {
      "get": {
        "summary": "Get volume plan filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VolumePlansControllerFilters",
        "parameters": [],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/volumes/plans/{volumePlanId}": {
      "get": {
        "summary": "Get volume plan",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VolumePlansControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVolumePlanId"
          }
        ],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumePlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "size": {},
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update volume plan",
        "description": "",
        "operationId": "v2VolumePlansControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVolumePlanId"
          }
        ],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumePlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "size": {},
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "size": {
                    "type": "number"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "size": "number",
                "isPublic": "boolean"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete volume plan",
        "description": "",
        "operationId": "v2VolumePlansControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVolumePlanId"
          }
        ],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/volumes": {
      "get": {
        "summary": "List volumes",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VolumesControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryDomain"
          },
          {
            "$ref": "#/components/parameters/QueryWorkspaceId"
          },
          {
            "$ref": "#/components/parameters/QueryProjectId"
          },
          {
            "in": "query",
            "name": "volumePlanId",
            "description": "Volume Plan ID - Filter by ID",
            "schema": {
              "type": "string",
              "example": "xxx-xxx-xxx"
            },
            "required": false
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Volume"
                  }
                },
                "example": [
                  {
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "id": "019b1334-dabcc",
                    "name": "Amazing name",
                    "sizeGb": 865,
                    "type": "string",
                    "updatedAt": "Lorem ipsum dolor sit amet"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create volume",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2VolumesControllerStore",
        "parameters": [],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Volume"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "sizeGb": 865,
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "workspaceId": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "volumePlanId": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "string",
                "workspaceId": "string",
                "projectId": "string",
                "volumePlanId": "string"
              }
            }
          }
        }
      }
    },
    "/v2/volumes/filters": {
      "get": {
        "summary": "Get volume plan filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VolumesControllerFilters",
        "parameters": [],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/volumes/{volumeId}": {
      "get": {
        "summary": "Get volume",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2VolumesControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVolumeId"
          }
        ],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Volume"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "sizeGb": 865,
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update volume",
        "description": "Update a specific volume by ID",
        "operationId": "v2VolumesControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVolumeId"
          }
        ],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Volume"
                },
                "example": {
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "sizeGb": 865,
                  "type": "string",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "delete": {
        "summary": "Delete volume",
        "description": "Delete a specific volume by ID",
        "operationId": "v2VolumesControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathVolumeId"
          }
        ],
        "tags": [
          "Volumes"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/plans": {
      "get": {
        "summary": "List serverlet plans",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServerletPlansControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryName2"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ServerletPlan"
                  }
                },
                "example": [
                  {
                    "id": "019b1334-dabcc",
                    "name": "Amazing name",
                    "displayName": "Amazing name",
                    "cpu": 1,
                    "ram": {},
                    "capacity": {},
                    "minutePrice": 10.5,
                    "monthlyPrice": 10.5,
                    "isPublic": true,
                    "createdAt": "2021-03-23T16:13:08.489+01:00",
                    "updatedAt": "2021-03-23T16:13:08.489+01:00"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create serverlet plan",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2ServerletPlansControllerStore",
        "parameters": [],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerletPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "cpu": 1,
                  "ram": {},
                  "capacity": {},
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "cpu": {
                    "type": "number"
                  },
                  "ram": {
                    "type": "number"
                  },
                  "capacity": {
                    "type": "number"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "cpu": "number",
                "ram": "number",
                "capacity": "number",
                "isPublic": "boolean"
              }
            }
          }
        }
      }
    },
    "/v2/serverlets/plans/filters": {
      "get": {
        "summary": "Get serverlet plan filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServerletPlansControllerFilters",
        "parameters": [],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "name": "createdAt",
                    "label": "Created At",
                    "type": "dateTime",
                    "sortable": true,
                    "visible": true,
                    "required": false
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/plans/{serverletPlanId}": {
      "get": {
        "summary": "Get serverlet plan",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServerletPlansControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletPlanId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerletPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "cpu": 1,
                  "ram": {},
                  "capacity": {},
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update serverlet plan",
        "description": "",
        "operationId": "v2ServerletPlansControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletPlanId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerletPlan"
                },
                "example": {
                  "id": "019b1334-dabcc",
                  "name": "Amazing name",
                  "displayName": "Amazing name",
                  "cpu": 1,
                  "ram": {},
                  "capacity": {},
                  "minutePrice": 10.5,
                  "monthlyPrice": 10.5,
                  "isPublic": true,
                  "createdAt": "2021-03-23T16:13:08.489+01:00",
                  "updatedAt": "2021-03-23T16:13:08.489+01:00"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "cpu": {
                    "type": "number"
                  },
                  "ram": {
                    "type": "number"
                  },
                  "capacity": {
                    "type": "number"
                  },
                  "isPublic": {
                    "type": "boolean"
                  }
                }
              },
              "example": {
                "name": "string",
                "cpu": "number",
                "ram": "number",
                "capacity": "number",
                "isPublic": "boolean"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete serverlet plan",
        "description": "",
        "operationId": "v2ServerletPlansControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletPlanId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets": {
      "get": {
        "summary": "List serverlets",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServerletsControllerIndex",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryId"
          },
          {
            "$ref": "#/components/parameters/QueryName2"
          },
          {
            "$ref": "#/components/parameters/QueryCreatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryUpdatedAt"
          },
          {
            "$ref": "#/components/parameters/QueryPage"
          },
          {
            "$ref": "#/components/parameters/QueryLimit"
          },
          {
            "$ref": "#/components/parameters/QuerySort"
          },
          {
            "$ref": "#/components/parameters/QueryDirection"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Serverlet"
                  }
                },
                "example": [
                  {
                    "cpu": 1,
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "id": "019b1334-dabcc",
                    "image": "Lorem ipsum dolor sit amet",
                    "instances": 55,
                    "maxInstances": 641,
                    "minInstances": 250,
                    "name": "Amazing name",
                    "networkId": "019b1334-dabcc",
                    "ram": 1024,
                    "runtime": "Lorem ipsum dolor sit amet",
                    "state": "Lorem ipsum dolor sit amet",
                    "updatedAt": "Lorem ipsum dolor sit amet"
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "post": {
        "summary": "Create serverlet",
        "description": "Returns **201** (Created) as **application/json**",
        "operationId": "v2ServerletsControllerStore",
        "parameters": [],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Serverlet"
                },
                "example": {
                  "cpu": 1,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "image": "Lorem ipsum dolor sit amet",
                  "instances": 55,
                  "maxInstances": 641,
                  "minInstances": 250,
                  "name": "Amazing name",
                  "networkId": "019b1334-dabcc",
                  "ram": 1024,
                  "runtime": "Lorem ipsum dolor sit amet",
                  "state": "Lorem ipsum dolor sit amet",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **201** (Created) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "workspaceId": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "serverletPlanId": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "string",
                "image": "string",
                "workspaceId": "string",
                "projectId": "string",
                "serverletPlanId": "string"
              }
            }
          }
        }
      }
    },
    "/v2/serverlets/filters": {
      "get": {
        "summary": "Get serverlet filters",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServerletsControllerFilters",
        "parameters": [],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ModelFilter"
                  }
                },
                "example": [
                  {
                    "name": "Amazing name",
                    "column": "Lorem ipsum dolor sit amet",
                    "scope": {},
                    "label": "Suitable label",
                    "placeholder": "Lorem ipsum dolor sit amet",
                    "default": {},
                    "visible": true,
                    "sortable": true,
                    "required": true
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}": {
      "get": {
        "summary": "Get serverlet",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServerletsControllerShow",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Serverlet"
                },
                "example": {
                  "cpu": 1,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "image": "Lorem ipsum dolor sit amet",
                  "instances": 55,
                  "maxInstances": 641,
                  "minInstances": 250,
                  "name": "Amazing name",
                  "networkId": "019b1334-dabcc",
                  "ram": 1024,
                  "runtime": "Lorem ipsum dolor sit amet",
                  "state": "Lorem ipsum dolor sit amet",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      },
      "patch": {
        "summary": "Update serverlet",
        "description": "Update a specific serverlet by ID",
        "operationId": "v2ServerletsControllerUpdate",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Serverlet"
                },
                "example": {
                  "cpu": 1,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "image": "Lorem ipsum dolor sit amet",
                  "instances": 55,
                  "maxInstances": 641,
                  "minInstances": 250,
                  "name": "Amazing name",
                  "networkId": "019b1334-dabcc",
                  "ram": 1024,
                  "runtime": "Lorem ipsum dolor sit amet",
                  "state": "Lorem ipsum dolor sit amet",
                  "updatedAt": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "image": {
                    "type": "string"
                  },
                  "serverletPlanId": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "name": "string",
                "image": "string",
                "serverletPlanId": "string"
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete serverlet",
        "description": "Delete a specific serverlet by ID",
        "operationId": "v2ServerletsControllerDestroy",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/instances": {
      "get": {
        "summary": "List serverlet instances",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServerletsControllerIndexInstances",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ServerletInstance"
                  }
                },
                "example": [
                  {
                    "cpu": 1,
                    "createdAt": "Lorem ipsum dolor sit amet",
                    "id": "019b1334-dabcc",
                    "image": "Lorem ipsum dolor sit amet",
                    "metrics": {},
                    "number": 123456,
                    "ram": 1024,
                    "runtime": "Lorem ipsum dolor sit amet",
                    "serverId": "019b1334-dabcc",
                    "serverletId": "019b1334-dabcc",
                    "state": "Lorem ipsum dolor sit amet",
                    "updatedAt": "Lorem ipsum dolor sit amet",
                    "version": 553
                  }
                ]
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/instances/{instanceId}": {
      "get": {
        "summary": "Get serverlet instance",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServerletsControllerShowInstance",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          },
          {
            "$ref": "#/components/parameters/PathInstanceId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServerletInstance"
                },
                "example": {
                  "cpu": 1,
                  "createdAt": "Lorem ipsum dolor sit amet",
                  "id": "019b1334-dabcc",
                  "image": "Lorem ipsum dolor sit amet",
                  "metrics": {},
                  "number": 123456,
                  "ram": 1024,
                  "runtime": "Lorem ipsum dolor sit amet",
                  "serverId": "019b1334-dabcc",
                  "serverletId": "019b1334-dabcc",
                  "state": "Lorem ipsum dolor sit amet",
                  "updatedAt": "Lorem ipsum dolor sit amet",
                  "version": 553
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/instances/{instanceId}/start": {
      "post": {
        "summary": "Start a serverlet instance",
        "description": "Start a specific serverlet instance",
        "operationId": "v2ServerletsControllerStartInstance",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          },
          {
            "$ref": "#/components/parameters/PathInstanceId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/instances/{instanceId}/stop": {
      "post": {
        "summary": "Stop a serverlet instance",
        "description": "Stop a specific serverlet instance",
        "operationId": "v2ServerletsControllerStopInstance",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          },
          {
            "$ref": "#/components/parameters/PathInstanceId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/instances/{instanceId}/restart": {
      "post": {
        "summary": "Restart a serverlet instance",
        "description": "Restart a specific serverlet instance",
        "operationId": "v2ServerletsControllerRestartInstance",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          },
          {
            "$ref": "#/components/parameters/PathInstanceId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/instances/{instanceId}/metrics": {
      "get": {
        "summary": "Get serverlet instance metrics",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServerletsControllerMetricsInstance",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          },
          {
            "$ref": "#/components/parameters/PathInstanceId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to Object - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/instances/{instanceId}/logs": {
      "get": {
        "summary": "Get serverlet instance logs",
        "description": "Returns raw stdout/stderr logs for a specific serverlet instance, with optional offset, limit, search, startAt, and endAt query parameters",
        "operationId": "v2ServerletsControllerLogsInstance",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryOffset"
          },
          {
            "$ref": "#/components/parameters/QueryLimit2"
          },
          {
            "$ref": "#/components/parameters/QuerySearch2"
          },
          {
            "$ref": "#/components/parameters/QueryStartAt"
          },
          {
            "$ref": "#/components/parameters/QueryEndAt"
          },
          {
            "$ref": "#/components/parameters/PathServerletId"
          },
          {
            "$ref": "#/components/parameters/PathInstanceId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/start": {
      "post": {
        "summary": "Start serverlet",
        "description": "Starts all serverlet instances",
        "operationId": "v2ServerletsControllerStart",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/stop": {
      "post": {
        "summary": "Stop serverlet",
        "description": "Stops all serverlet instances",
        "operationId": "v2ServerletsControllerStop",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/restart": {
      "post": {
        "summary": "Restart serverlet",
        "description": "Restarts all serverlet instances",
        "operationId": "v2ServerletsControllerRestart",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/sync": {
      "post": {
        "summary": "Trigger serverlet sync",
        "description": "Triggers a sync of the serverlet configuration with Nasua API",
        "operationId": "v2ServerletsControllerSyncServerlet",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/metrics": {
      "get": {
        "summary": "Get serverlet metrics",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2ServerletsControllerMetrics",
        "parameters": [
          {
            "$ref": "#/components/parameters/PathServerletId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Invalid reference to Object - replaced with object"
                },
                "example": {}
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/serverlets/{serverletId}/logs": {
      "get": {
        "summary": "Get serverlet logs",
        "description": "Returns aggregated raw stdout/stderr logs for all instances of a serverlet, with optional offset, limit, search, startAt, and endAt query parameters",
        "operationId": "v2ServerletsControllerLogs",
        "parameters": [
          {
            "$ref": "#/components/parameters/QueryOffset"
          },
          {
            "$ref": "#/components/parameters/QueryLimit2"
          },
          {
            "$ref": "#/components/parameters/QuerySearch2"
          },
          {
            "$ref": "#/components/parameters/QueryStartAt"
          },
          {
            "$ref": "#/components/parameters/QueryEndAt"
          },
          {
            "$ref": "#/components/parameters/PathServerletId"
          }
        ],
        "tags": [
          "Serverlets"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    },
    "/v2/whois/{domain}": {
      "get": {
        "summary": "Get domain WHOIS info",
        "description": "Returns **200** (OK) as **application/json**",
        "operationId": "v2WhoisControllerShow",
        "parameters": [
          {
            "in": "path",
            "name": "domain",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "Whois"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Whois"
                },
                "example": {
                  "domain": "example.com",
                  "domainId?": "019b1334-dabcc",
                  "status?": "Lorem ipsum dolor sit amet",
                  "createdAt?": "Lorem ipsum dolor sit amet",
                  "updatedAt?": "Lorem ipsum dolor sit amet",
                  "expiresAt?": "Lorem ipsum dolor sit amet",
                  "domainAge?": 951,
                  "whoisServer?": "Lorem ipsum dolor sit amet",
                  "registrar?": {
                    "ianaId": "019b1334-dabcc",
                    "name": "Amazing name",
                    "url": "https://example.com"
                  },
                  "registrant?": {
                    "name": "Amazing name",
                    "organization": "Lorem ipsum dolor sit amet",
                    "streetAddress": "1028 Farland Street",
                    "city": "Chicago",
                    "region": "Lorem ipsum dolor sit amet",
                    "zipCode": "xxx-xxx-xxx",
                    "country": "United States of America",
                    "phone": "+1234567890",
                    "fax": "Lorem ipsum dolor sit amet",
                    "email": "john.doe@example.com"
                  },
                  "admin?": {
                    "name": "Amazing name",
                    "organization": "Lorem ipsum dolor sit amet",
                    "streetAddress": "1028 Farland Street",
                    "city": "Chicago",
                    "region": "Lorem ipsum dolor sit amet",
                    "zipCode": "xxx-xxx-xxx",
                    "country": "United States of America",
                    "phone": "+1234567890",
                    "fax": "Lorem ipsum dolor sit amet",
                    "email": "john.doe@example.com"
                  },
                  "tech?": {
                    "name": "Amazing name",
                    "organization": "Lorem ipsum dolor sit amet",
                    "streetAddress": "1028 Farland Street",
                    "city": "Chicago",
                    "region": "Lorem ipsum dolor sit amet",
                    "zipCode": "xxx-xxx-xxx",
                    "country": "United States of America",
                    "phone": "+1234567890",
                    "fax": "Lorem ipsum dolor sit amet",
                    "email": "john.doe@example.com"
                  },
                  "billing?": {
                    "name": "Amazing name",
                    "organization": "Lorem ipsum dolor sit amet",
                    "streetAddress": "1028 Farland Street",
                    "city": "Chicago",
                    "region": "Lorem ipsum dolor sit amet",
                    "zipCode": "xxx-xxx-xxx",
                    "country": "United States of America",
                    "phone": "+1234567890",
                    "fax": "Lorem ipsum dolor sit amet",
                    "email": "john.doe@example.com"
                  },
                  "nameservers": [
                    {}
                  ],
                  "dns": [
                    {
                      "createdAt": "Lorem ipsum dolor sit amet",
                      "dnsId": "019b1334-dabcc",
                      "id": "019b1334-dabcc",
                      "name": "Amazing name",
                      "priority": 700,
                      "ttl": 15,
                      "type": "string",
                      "updatedAt": "Lorem ipsum dolor sit amet",
                      "value": "Lorem ipsum dolor sit amet"
                    }
                  ],
                  "raw": "Lorem ipsum dolor sit amet"
                }
              }
            },
            "description": "Returns **200** (OK) as **application/json**"
          },
          "400": {
            "$ref": "#/components/responses/HttpError400"
          },
          "401": {
            "$ref": "#/components/responses/HttpError401"
          },
          "403": {
            "$ref": "#/components/responses/HttpError403"
          },
          "404": {
            "$ref": "#/components/responses/HttpError404"
          },
          "429": {
            "$ref": "#/components/responses/HttpError429"
          }
        },
        "security": []
      }
    }
  },
  "tags": [
    {
      "name": "Auth",
      "description": "Everything related to Auth"
    },
    {
      "name": "Apps",
      "description": "Everything related to Apps"
    },
    {
      "name": "API Tokens",
      "description": "Everything related to API Tokens"
    },
    {
      "name": "Users",
      "description": "Everything related to Users"
    },
    {
      "name": "Workspaces",
      "description": "Everything related to Workspaces"
    },
    {
      "name": "Projects",
      "description": "Everything related to Projects"
    },
    {
      "name": "Deployments",
      "description": "Everything related to Deployments"
    },
    {
      "name": "Variables",
      "description": "Everything related to Variables"
    },
    {
      "name": "Transactions",
      "description": "Everything related to Transactions"
    },
    {
      "name": "Orders",
      "description": "Everything related to Orders"
    },
    {
      "name": "Vouchers",
      "description": "Everything related to Vouchers"
    },
    {
      "name": "Invoices",
      "description": "Everything related to Invoices"
    },
    {
      "name": "Proforma Invoices",
      "description": "Everything related to Proforma Invoices"
    },
    {
      "name": "DNS",
      "description": "Everything related to DNS"
    },
    {
      "name": "Activities",
      "description": "Everything related to Activities"
    },
    {
      "name": "Crons",
      "description": "Everything related to Crons"
    },
    {
      "name": "Proxies",
      "description": "Everything related to Proxies"
    },
    {
      "name": "Certs",
      "description": "Everything related to Certs"
    },
    {
      "name": "Monitors",
      "description": "Everything related to Monitors"
    },
    {
      "name": "Regions",
      "description": "Everything related to Regions"
    },
    {
      "name": "Servers",
      "description": "Everything related to Servers"
    },
    {
      "name": "Volumes",
      "description": "Everything related to Volumes"
    },
    {
      "name": "Serverlets",
      "description": "Everything related to Serverlets"
    },
    {
      "name": "Whois",
      "description": "Everything related to Whois"
    }
  ],
  "x-tagGroups": [
    {
      "name": "IAM",
      "tags": [
        "Auth",
        "Users"
      ]
    },
    {
      "name": "Billing",
      "tags": [
        "Invoices",
        "Proforma Invoices",
        "Orders",
        "Vouchers",
        "Transactions"
      ]
    },
    {
      "name": "Workspace & Projects",
      "tags": [
        "Workspaces",
        "Projects",
        "Activities",
        "Regions",
        "Servers",
        "API Tokens",
        "Apps",
        "Deployments",
        "Variables"
      ]
    },
    {
      "name": "Services",
      "tags": [
        "Serverlets",
        "Volumes",
        "DNS",
        "Crons",
        "Proxies",
        "Whois",
        "Certs"
      ]
    },
    {
      "name": "Others",
      "tags": [
        "Monitors"
      ]
    }
  ],
  "servers": [
    {
      "url": "https://api.futrou.com",
      "description": "Production server"
    }
  ]
}