{
  "openapi": "3.0.3",
  "info": {
    "title": "Contabo API",
    "description": "# Introduction\n\nContabo API allows you to manage your resources using HTTP requests.\nThis documentation includes a set of HTTP endpoints that are designed to RESTful principles.\nEach endpoint includes descriptions, request syntax, and examples.\n\nContabo provides also a CLI tool which enables you to manage your resources easily from the command line. [CLI Download and  Installation instructions.](https://github.com/contabo/cntb)\n\n## Product documentation\n\nIf you are looking for description about the products themselves and their usage in general or for specific purposes, please check the [Contabo Product Documentation](https://docs.contabo.com/).\n\n## Getting Started\n\nIn order to use the Contabo API you will need the following credentials which are available from the [Customer Control Panel](https://my.contabo.com/api/details):\n1. ClientId\n2. ClientSecret\n3. API User (your email address to login to the [Customer Control Panel](https://my.contabo.com/api/details))\n4. API Password (this is a new password which you'll set or change in the [Customer Control Panel](https://my.contabo.com/api/details))\n\nYou can either use the API directly or by using the `cntb` CLI (Command Line Interface) tool.\n\n### Using the API directly\n\n#### Via `curl` for Linux/Unix like systems\n\nThis requires `curl` and `jq` in your shell (e.g. `bash`, `zsh`). Please replace the first four placeholders with actual values.\n\n```sh\nCLIENT_ID=<ClientId from Customer Control Panel>\nCLIENT_SECRET=<ClientSecret from Customer Control Panel>\nAPI_USER=<API User from Customer Control Panel>\nAPI_PASSWORD='<API Password from Customer Control Panel>'\nACCESS_TOKEN=$(curl -d \"client_id=$CLIENT_ID\" -d \"client_secret=$CLIENT_SECRET\" --data-urlencode \"username=$API_USER\" --data-urlencode \"password=$API_PASSWORD\" -d 'grant_type=password' 'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token' | jq -r '.access_token')\n# get list of your instances\ncurl -X GET -H \"Authorization: Bearer $ACCESS_TOKEN\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" \"https://api.contabo.com/v1/compute/instances\" | jq\n```\n\n#### Via `PowerShell` for Windows\n\nPlease open `PowerShell` and execute the following code after replacing the first four placeholders with actual values.\n\n```powershell\n$client_id='<ClientId from Customer Control Panel>'\n$client_secret='<ClientSecret from Customer Control Panel>'\n$api_user='<API User from Customer Control Panel>'\n$api_password='<API Password from Customer Control Panel>'\n$body = @{grant_type='password'\nclient_id=$client_id\nclient_secret=$client_secret\nusername=$api_user\npassword=$api_password}\n$response = Invoke-WebRequest -Uri 'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token' -Method 'POST' -Body $body\n$access_token = (ConvertFrom-Json $([String]::new($response.Content))).access_token\n# get list of your instances\n$headers = @{}\n$headers.Add(\"Authorization\",\"Bearer $access_token\")\n$headers.Add(\"x-request-id\",\"51A87ECD-754E-4104-9C54-D01AD0F83406\")\nInvoke-WebRequest -Uri 'https://api.contabo.com/v1/compute/instances' -Method 'GET' -Headers $headers\n```\n\n### Using the Contabo API via the `cntb` CLI tool\n\n1. Download `cntb` for your operating system (MacOS, Windows and Linux supported) [here](https://github.com/contabo/cntb)\n2. Unzip the downloaded file\n3. You might move the executable to any location on your disk. You may update your `PATH` environment variable for easier invocation.\n4. Configure it once to use your credentials\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n   ```sh\n   cntb config set-credentials --oauth2-clientid=<ClientId from Customer Control Panel> --oauth2-client-secret=<ClientSecret from Customer Control Panel> --oauth2-user=<API User from Customer Control Panel> --oauth2-password='<API Password from Customer Control Panel>'\n   ```\n\n5. Use the CLI\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n   ```sh\n   # get list of your instances\n   cntb get instances\n   # help\n   cntb help\n   ```\n\n## API Overview\n\n### [Compute Management](#tag/Instances)\n\nThe Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping) of VPS and VDS (please note that Storage VPS are not supported via API or CLI) as well as managing snapshots and custom images. It also offers you to take advantage of [cloud-init](https://cloud-init.io/) at least on our default / standard images (for custom images you'll need to provide cloud-init support packages). The API offers provisioning of cloud-init scripts via the `user_data` field.\n\nCustom images must be provided in `.qcow2` or `.iso` format. This gives you even more flexibility for setting up your environment.\n\n### [Object Storage](#tag/Object-Storages)\n\nThe Object Storage API allows you to order, upgrade, cancel and control the auto-scaling feature for [S3](https://en.wikipedia.org/wiki/Amazon_S3) compatible object storage. You may also get some usage statistics. You can only buy one object storage per location. In case you need more storage space in a location you can purchase more space or enable the auto-scaling feature to purchase automatically more storage space up to the specified monthly limit.\n\nPlease note that this is not the S3 compatible API. It is not documented here. The S3 compatible API needs to be used with the corresponding credentials, namely an `access_key` and `secret_key`. Those can be retrieved by invoking the User Management API. All purchased object storages in different locations share the same credentials. You are free to use S3 compatible tools like [`aws`](https://aws.amazon.com/cli/) cli or similar.\n\n### [Private Networking](#tag/Private-Networks)\n\nThe Private Networking API allows you to manage private networks / Virtual Private Clouds (VPC) for your Cloud VPS and VDS (please note that Storage VPS are not supported via API or CLI). Having a private network allows the associated instances to have a private and direct network connection. The traffic won't leave the data center and cannot be accessed by any other instance.\n\nWith this feature you can create multi layer systems, e.g. having a database server being only accessible from your application servers in one private network and keep the database replication in a second, separate network. This increases the speed as the traffic is NOT routed to the internet and also security as the traffic is within it's own secured VLAN.\n\nAdding a Cloud VPS or VDS to a private network requires a reinstallation to make sure that all relevant parts for private networking are in place. When adding the same instance to another private network it will require a restart in order to make additional virtual network interface cards (NICs) available.\n\nPlease note that for each instance being part of one or several private networks a payed add-on is required. You can automatically purchase it via the Compute Management API.\n\n### [Secrets Management](#tag/Secrets)\n\nYou can optionally save your passwords or public ssh keys using the Secrets Management API. You are not required to use it there will be no functional disadvantages.\n\nBy using that API you can easily reuse you public ssh keys when setting up different servers without the need to look them up every time. It can also be used to allow Contabo Supporters to access\nyour machine without sending the passwords via potentially unsecure emails.\n\n### [User Management](#tag/Users)\n\nIf you need to allow other persons or automation scripts to access specific API endpoints resp. resources the User Management API comes into play. With that API you are able to manage users having possibly restricted access. You are free to define those restrictions to fit your needs. So beside an arbitrary number of users you basically define any number of so called `roles`. Roles allows access and must be one of the following types:\n\n* `apiPermission`\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n   This allows you to specify a restriction to certain functions of an API by allowing control over POST (=Create), GET (=Read), PUT/PATCH (=Update) and DELETE (=Delete) methods for each API endpoint (URL) individually.\n* `resourcePermission`\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n   In order to restrict access to specific resources create a role with `resourcePermission` type by specifying any number of [tags](#tag-management). These tags need to be assigned to resources for them to take effect. E.g. a tag could be assigned to several compute resources. So that a user with that role (and of course access to the API endpoints via `apiPermission` role type) could only access those compute resources.\n\nThe `roles` are then assigned to a `user`. You can assign one or several roles regardless of the role's type. Of course you could also assign a user `admin` privileges without specifying any roles.\n\n### [Tag Management](#tag/Tags)\n\nThe Tag Management API allows you to manage your tags in order to organize your resources in a more convenient way. Simply assign a tag to resources like a compute resource to manage them.The assignments of tags to resources will also enable you to control access to these specific resources to users via the [User Management API](#user-management). For convenience reasons you might choose a color for tag. The Customer Control Panel will use that color to display the tags.\n\n## Requests\n\nThe Contabo API supports HTTP requests like mentioned below. Not every endpoint supports all methods. The allowed methods are listed within this documentation.\n\nMethod | Description\n---    | ---\nGET    | To retrieve information about a resource, use the GET method.<br>The data is returned as a JSON object. GET methods are read-only and do not affect any resources.\nPOST   | Issue a POST method to create a new object. Include all needed attributes in the request body encoded as JSON.\nPATCH  | Some resources support partial modification with PATCH,<br>which modifies specific attributes without updating the entire object representation.\nPUT    | Use the PUT method to update information about a resource.<br>PUT will set new values on the item without regard to their current values.\nDELETE | Use the DELETE method to destroy a resource in your account.<br>If it is not found, the operation will return a 4xx error and an appropriate message.\n\n## Responses\n\nUsually the Contabo API should respond to your requests. The data returned is in [JSON](https://www.json.org/) format allowing easy processing in any programming language or tools.\n\nAs common for HTTP requests you will get back a so called HTTP status code. This gives you overall\ninformation about success or error. The following table lists common HTTP status codes.\n\nPlease note that the description of the endpoints and methods are not listing all possibly status codes in detail as they are generic. Only special return codes with\ntheir resp. response data are explicitly listed.\n\nResponse Code | Description\n--- | ---\n200 | The response contains your requested information.\n201 | Your request was accepted. The resource was created.\n204 | Your request succeeded, there is no additional information returned.\n400 | Your request was malformed.\n401 | You did not supply valid authentication credentials.\n402 | Request refused as it requires additional payed service.\n403 | You are not allowed to perform the request.\n404 | No results were found for your request or resource does not exist.\n409 | Conflict with resources. For example violation of unique data constraints detected when trying to create or change resources.\n429 | Rate-limit reached. Please wait for some time before doing more requests.\n500 | We were unable to perform the request due to server-side problems. In such cases please retry or contact the support.\n\nNot every endpoint returns data. For example DELETE requests usually don't return any data. All others do return data. For easy handling the return values consists of metadata denoted with and underscore (\"_\") like `_links` or `_pagination`. The actual data is returned in a field called `data`. For convenience reasons this `data` field is always returned as an array even if it consists of only one single element.\n\nSome general details about Contabo API from [Contabo](https://contabo.com).\n",
    "termsOfService": "https://contabo.com/en/legal/terms-and-conditions/",
    "contact": {
      "email": "support@contabo.com",
      "url": "https://contabo.com"
    },
    "x-logo": {
      "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAmEAAAC8CAYAAAAwynmTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACAASURBVHic7d13nFxl1cDx37mzaSQEkp3ZBJQaAhJAFAQE6UUgBUjZ2QQQ5VUUQWzIixRlbQiiiBQRpLdk7yS0FECQIKKAYAEhICihvEKyM5tG+u7c8/4xCaTt7n3u3Gmb8/18okDu89yzye6d5z7lHDDGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4onlQ6gYprVY88Fu5PXTwG7gO6E6M4gQ4AtgT7AQCAPLAGWA8uAt4E3UHkD+BcSPEO6YV6FvgpjjDHG1KjNaxA2tXU4eW8coocBBwJbx9TzGyhPgzxM78QMxg5aFFO/xhhjjOmhev4gzF+wPZI/HZXxoHuV4Y6rQWYjQQu6agrp7VaU4Z7GGGOMqTE9cxCmKkxtOxINzgY5AUhUKJIFCLfgBdczfsgbFYrBGGOMMVWo5w3C/NaDQX4KHFzpUNYRgEwjyF/AxCH/qXQwxhhjjKm8njMIm5LdB48rgCMrHUoXVqNyA9KrmfRWCyodjDHGGGMqp/YHYf47/dC+5yNcCPSqdDghzUfkf2lM3lHpQIwxxhhTGbU9CGtpPRSRW4GdKx1KRA9Slz+DcUNbKx2IMcYYY8qrNgdhqkIm+3WQK6id2a/O/BcNmmga8qdKB2KMMcaY8qm9QdgD2S1ZpbeDjK10KDFqBz2PdMOvKh2IMcYYY8qjtgZh98wfQp03C9in0qGUhl7LnNQ3aJag0pEYY4wxprRqZxA2+b0dSdQ9Auxa6VBK7B4WJr/AV6S90oEYY4wxpnRqYxDmz9sJEk8B25bwLgq8C7wJMg94H3T1mt8bQKGe5PbADsRX7qgz95NKNnKEdJT4PsYYY4ypkOofhBWWIJ8Cdom55w7gaUQeAn0aTfyd9ODFoVpOW7gD+fw+KEcgenwJYgOVW0nXfxERjb1vY4wxxlRcdQ/C7mobSO/gCeCTMfb6N0RvI9H3HsYNbIulR3/eXkjidJRTgVQsfQIoP6MpdX5s/RljjDGmalTvIExVyOTuA06MqcNHEbmUxtQT8fS3Cf47/ZB+p6OcB7pjPJ3KaaSTd8bTlzHGGGOqRfUOwvzcd0F/GkNPr6J6Lk0Ns2LoK5wbtBeDsmeB/ADYqsjeVuLpQUxo+HscoRljjDGmOlTnIMzPHgY8BtQV0Us7yo9oSP60Yhvc/dxHgJtBjy2yp9fow6c4MfV+HGEZY4wxpvKqbxA2/d0tWNHrnxRVikjeBJ1AOvXXuMKKTFXws+cg8nOKyu6v15JuOCe2uIwxxhhTUV6lA9jIyl4/oLhakI/TsXq/qhiAAYgoTQ1XA8cAuSI6Ogu/7cC4wjLGGGNMZVXXTNiU7D54PEvkZUi9lwGLT2bk8FWxxhUXv20EBL8DPhKxh5chuQ9pWd39pcYYY4ypZtU1E+ZxBZEHYJIhlWqq2gEYQLp+DongUApJYaPYA2n7UpwhGWOMMaYyqmcmzG87Zs0sURRPMGDRcVU9AFvXlAV74uWfBAZFaP0e/dp3Ycy2y+MOyxhjjDHlUx0zYaoCwU8itv4PverG1swADGDi4JdATwaiFOrehpW9vxZ3SMYYY4wpr+oYhGUWHA3sF6HlSjxtZOygRXGHVHLphoeBH0dqq3ous17vE29AxhhjjCmn6hiEEZwdseH3azuJafKHwHMRGjawbOsJcUdjjDHGmPKp/J6wyW3bkQjmAgnHls+TSh5YsUSscZk6/+ME3vM45xCTP5NOfqYkMRljjDE9TbN6DF9cqGLTS4R+y1ZWen915QdhLdlmhEuc22lwME1D/lSCiMqvpfU6RM5ybhck9irsLzNOJr+3I15ifzz2Qb1hoDsDDRRKTG255qp2oA0kC/p/KHNA55BIPMv4wXMQ0YrF78JvHQregYh+EmUYMAxkCOhWQH8KLz9LgKXA+8C/UV7H43UkeJqXGl6iWaLsXSwNP7sAtwMtr7Fs6d6cvtPKUoXUqUzuf1G93KHFP0inPtntVX7228AvIsdVG64nnXJ/Jm4okzsK1cccW61gtTeUU+uXFH3/qDKtl6HSWMI75IFFoAtBFiIsJNB3EHmJPM8zKRX1BH91eCC7Jatlf2Bf0H1RdgI+Cgxl43FPO4Ucnv9G5d+IvkTg/ZnFg//KV6S91KEWUxYoHqLjI4wFH+gxAzCAvP6QOjkNGODULpEfD9ggrDs3aC8G544lYDTC8cD2AOgH/7MpvYChoEOBvQrtBIIAMrkF+LnHQe+DxEzSgxeX48sIxdcE5A5GZByqo4BhoBt8mRt9zYP4cGAzAllziXowItuGn/0jog+idfdW1dcazq4M6N8MfLfSgRgnrisjm6Y6KUKrfvTSscDtscQQhUqS4pKWh7Tms1cBWfPPCcDPvooyE2Fy1SQ+746/YHs0n0Y4nlUcAhp2dakXsA2wDaKHAOAFMCi3Aj87G/ReyD9IeptsKcKu7J4wv3UXkD3dG8ql8QdTQScPmY9yk3M7ZWwJouk5/NZdyGSvZFDu/1CmI3yFtQOw4gwGnQDcDfl5ZLJ3kmk9JIZ+o/NzH8HP/gBy7wBPoPp1YFjxHUs9cBIqt0B+Hn4uU0gnU0NUzmVKdp9Kh2GcFD8IKxxeGh+prRBl8NaTfAzhXOB5/OxfyLQ2FrIYVBlfE/itE/BzD0N+LsIVwJEUVSLwA/2AkSA3Qd27+DmfTPbwGPpdT2UHYeKNi9DqKdLJv8QeS6UFHb+iMEXsYm+mzS/D21KNmZLdBz83FeRfKN+isNRYKn1RTkXlSfzsM2Syo8v6sJoyfxiZ7J2gbwLfp/BGVyp9C4PP4Hf42efxWyfQrFVyuKdLdXjczA2h34xNxUnxg7Clg0YCW0drrEdxz/whRcfQM+yHik8m93TVvMzM1joyudMgNwckA3ospR3P1IE2oszGz/4NPzsqro4r+wDV4Cj3RnJj/IFUgUnbvAniuncB8t7R8QdTo/wF25PJ3onHc6DjKf/39wEo08nk/oif3bekd/IXDyaTvR7PewXlVMq/tWBfkAwjcs8xpe3TZb53FJ9g6+x5lQ7ChKVxLEcWM5tVRy9JxxBDT3IAHk+TyZ5b0ShaskeQzb2I6u3ArhWI4JPADPzcn+J4zlduEKYqIPs7tloJ3oMliacaKJPdG4kV9W5Wj0zrOZB/ec2ApNKzM58B/oLfeg3T390i9t5bspNg9SsoZxLPtHsx9sEL/kxL7hb8xYMrHEvXRL7H1NzHKh2GCaW4QdgD2S1BRxfVh3oTi2rfM/VG+Tl+9obC/tMyuufdJC3ZuxAeB3Yv6703SQ8CnqEl+/NinvOV25ifWbA7608VLwReQ5mLJ61o0AreAtA8KqvwguXgLaCx5jYGh9dX72UVHyZhVfqD9AYdjKdDUG8o6C7AjnzwkNJamIUoncnZbUnk7kHlsEqHsgEP5Gus6HUsfu7UWJbQ72obSG+9ec1+tGoiiJ4Oq48iM38SjUP+XOmAOtGXQG+iWQ+tqhOfZlOK+4BfLWNB+xUXgh6IP28n0kPnFtdPj/RlJBcAXy3L3TLZw1HuAj5SlvuFV4dwLit6jWbKgglRshVUbhAmHVuj3g+Bv9ARPM/JQ+ZXLJZqcWLqfaD75VZfe+O1foxA9kPkAG6d27ciR/Arzc8eBrQA1bx3Yzjok2SyX6Mx5X74Yi1/3l4QTKUy0+9hbY96f6AldzFNSZfUDOX0GUa0nQVcW+lATFeK3BMW7VTkRkGg3iSgZx0Ei4tyJpnWOTQ2XFPS+/itF6H8gLhOzJbGbnj5Z2jJnUlT8i6XhpUbhBXelqv1jbm6pWU18OKaXzdXOJrK8HOfA70J6F3pUELog/JbWrJ7kE5+2znHWCHX0b3AwNKEF6s6RC/Dz+4MybNIi+thkzLQnzJt4XTGD3qr0pGYzgTRP3DvnddAB/HslS2ckrRBWGdULmdq7lEmJF+Nve/ZWkc29xvgi7H3XRr9Eb2TTOuONDaELklY6b0zxrjLZM8FvZ3aGIB9SPgmU7O3MlvDv/z4rU2ozqI2BmDr+jLkpuK/U+SSUEkMIJ+/odJBmK4UMRPWUZcmtgkG2ZOp8z8eT189Uj8Cp4TE4cx6vQ/Z3APUzgDsQyo/ws9dFfaUfOWTtRrjItN6DsrPKx1GdBJ+UNKSOwn0Lmr35/Qk6JvhBh1bjszTbvRYMrnTaEzeUelInAmvoZKJv2PdAnA9ev8cyJvxh0IxCULjzfEVyCQKqw7VbAnweoR2DcB2Rd77BKa2fjK2Os43aC+W5qYAI2PpryL0G/i5DuA73V1ZVQ939elNX4aTYBcCtkIYAGyJsjUeK1FWIixCWYwwlw7elBOp3b1k/oKtCIJdSeiuwAAC2RpP+4MWZngCbyFesBxlOeK9SYe8xqT6dyobdAW15E5F9Vcx9/oe6D8RXifgXZAViLSj9Ee0HnQYyO7Axyi6zJdMI1l/Sqh6p4UlyCnE9zO6EPQ54G+ovIXH/xFIYR+h6BaoDIJgN0RGAAcBqZjuO4pBuZtR/XzVlXpS/SX3zH+k5vajNqZmADNi77dQx/dtpzai19OYujX2WKLy5+0EGvbEeECo1SCZhOqFVff9ux55mnTyuEhNJ7dtR13wPyhfB6KdcA7kDKD4MlOqgp+7FTip6L4+tBT4O+gLiLyJ8h6ihZdCpT8i9cBuqO4Jsi9xrbAI55LJvkdjqssSYxUbhKlPgr7sg8eRCJ9B2R3YCUgUSiisc/HaMips8P8J0BksBf4G/AXhGYQnZSQlKS9QlFvn9mXAgE8TcDjCocAIyA/B48OvSdaWl5F1/n1tWQmFhIKfXU7hFOmzeDyB6hOkG+aV+8spu8z8g1D9LcXXO1XgKZDJeMFjTGgI9/Z475J68qsPA52AciLgeiT5fhbWTyIdYgA2Zf4wVDOwzknZaHIodyE6DVJPh96fpSpk5u8JiQnAKRSfef9z+Lk3gOYi+4nbYOoS1wCWD6qnUG8SEvoZcQPhTvftQCb7GeCp6IFVscKL/Q+Ylr2RPD5wcIRexqJ6dtEDVb/tfxFOKaqPggWo3I1wPwvr/xh6Jn76u1uwPHEIXiKN6ngK9YSjU64g0/o2jQ2dzlyXtQyBzqYvyzgJoQnlcCJnM+5SHngG5UHgPhkTaYo2Hv6CrZCOcaicTOEbu2+J7vQKKtMQvYt06l8lukfl3DuvgY7ECxSKr0a1AriNIPgFE4f8p6h4HshuySrOAL5FoShsd6ZDcsKaAxVdu2Nef/rWPQ26VxER/gfhMjR5R6h7dqVZPUbkRgMXAgcU0VMAOop0w8NFxeNewDsEGUc6eV+8fVK6At6lEm0m7H9obKiimbDciyF/dv4NcjjoO4T5HFT9NU0NZxcbXmh+9iac9kPJI5FnwtY16/U+LN3qCRD31EdBYq8oKRo+kGn7LBrMorhTkP8GvYwBi+9i5PBVRfQDfusAhNNROY/ilmyXEAT7dPa5U5aN+TqLT+sMbmQZ84DJKCdRmgEYFP4CP4NwOcK/dAazdSYn6+ySDYA25rcdg5+dAvn3CjX3OJrSDcAAdkf0YuDVNXW+zsFvdSsGXq1UhY7ELRQzAFOmgAwnnTqr6AEYFFKJpFNXMmDRLqheBCzr4upZDFjUGHow1C/xyyIGYEtQzmNhcncaUzcVPQADaJaAdOpBGpMHgk4E3o3YkwdyJ5Oz2xYdU+z0Ou5bWKrnkSkXf95eoX92hPtJJ/8LPB/uemncLMpejRy+CrwJdP1M27REfu/I9713ST0a3E70Adgi0G+SSu5OuuHmogdgAOmGpYX0Gyt3W/OcXxGxp4F43hR83eQyZ0kHYTqTY3QmTxDwNHAGxU7tuRPgcJS7WcbbOoPz1ac0g5Nm9WjJjsHPPgvB74AmCgVAy20/VK4G+S+Z1su4d0l9BWKIz9TcF3HfLLxWK+jxNKUmrXngxmvk8FU0NVxKom4P4E8bXyCPsGzp+NAPhEzuKJQvRYzmT+Q79qYp9fOSbIIXUdINLbT32hOJUtkBgCQJLW1OoWi2oSPf5b4NUwMKOb1CCgozn6r3h2yQYnB28ygRV3hW/tq5nRaRwzC/6hqiv2g/DrIn6YZfhdpv6yq93QqaGi6lUK4oatLtT6G5Czf1GyUZhOl0jtIZPIPyO5RqyWSeAi5jC+bqdP5XZxW93+ZDLbmTGJGbg/Ag4FqKqVQGonI+HaveJJP7CXfM61/pgJz576VQoh5//hMJPlH08lcY4we9RSp5OLLeqc3HYMXY0El0/Xf6Rd7zpvprUsnDC/VHS+yUrRfSmDoZ4Vu4F5wHZBx+bmzscRVL9XRacpvHh2xPpCpI6EHYPF5ueAYASYQdhIFKvKcuq5mn7i9aotFe+DOtx6NRT7TqZcxJHlOSl+wNpVP/YsCiQ4mam1M4n2nzd97wP8c6CNOZDNXp3IHwKMXtHymlJMLlBLysszi+qJ6mzd8ZPzsD0fuA3eIJL3YDUL2Qvol/FarO1xCp+wnRTuvMgJXHMD71XtwhdeoI6aAxdR6q3wB+T7/2E0lvF376WvqdQ+FgiiO5gKaGs0vyBtiVxtRVa5Ynoyx5XtnZ1HwFCaI31uTLigG/9SDQHUNe/eAHZavS9XOA10K2O6kktWCr0UupF3BfknRfZfI1gfIz53agCGeSbrigrCXIRg5fRTr1JeCHEVr3Je/9csP/GMsgTBXRmZyN8irC5yjzhv+IhhEwS2fQog87ftD7msBvvYi89zLRl8rK7SOo3o6ffag69+VsYGrrcJTT3RvKVFLJsU4DoDg1NVzNnORnGbPt8tBt/MWDUb3A+V6i3yOdvMy5XVzSDVPR4GQKR/0d6I5o2xkliak4O9EnETrTtakinsMslWy0BPlAyJZbsqJuTOj71LLCwGaJUxuN8iKY/QLInu7t5GwaU5VLuJxOXUK0gdgJtMz/zLr/oehBmM5iIDNpQbmW8u/5ikOaDl7QmRwa6up75zVA20yQH1PazfalchwJXqCltboT4QXyPZxTqOh9LKw/ueyzQhtyfTOT1d/E9aCKyC0upTFKpmnINNBvO7cTvYhb51bfz49wDlPa3E+GmcqZrXWohE0zsoT+ix9f779IEH5Jks1oSdJ1u4FK+BdPKOyjRr7r1AZA9HLSyeud28UtnboEFfeTweKdv+6/FjUI05kcQMCLQGMx/VSBj6I8rg+yX5dXteSOpiPxIuixZYqrVJKIzMBv/alTCZ1ymZbdhsLBBhd/p1/HqdWXmb0bt87ti/IVx1Z/Q+vD5Dcqj3TDrxB8x1bbMGDLcuTncvtggARecBOzXo9vz6gprVz2GMInF35oo4Myhf1hYXMtHs/di2JOkVK1HF+S1C29yYi2E4FdHO/xKC+nNrnBvSKWv38W8A/HVqMLJ3kLIg/CdCZplCeBHaL2UVWEZjmB5zr9/UzuNEQfAoaUL6iSEpDvks3dV3X7HPKciVvW4kUk6sY6LQFWi/79J1IoHRLWSvA+F0v6iThp4suA2x481eIzbHdHuIPwe37W2oOlW1fPg950zWnDvG6cD65ZAoTpITvoTV37hPD3q1F3tQ3EOR9f8E+36/Uct+tZCN7pZd0D1p3Td1pJICcDLikxBBIfvERHGoTpDL6KMplaK6DcuUtkFJ0v7fit30D1NqqszFNMRrOi1+NVk8qiUPT0c46NvsP4QW+VJJ6SE7fDEiJXrtlMXF3Sgxej+k3HVges+0ZYIitQPQPnfWt8twyxmWIVCsSHLXGzitWJhzb5O0HoVBUgMdemrEa9g0Nwy9nVTkef8OkbprV9FFwzJ8j3y3IK0tXE5CvgfIr/g7xzzoMwncH3KOQQKUui15JTfiCjO9lgpyq0ZH8OchW1cdggqgPoWPkEfmsxGenj0bLgANxOCT5JY+qWUoVTUoU/73B7EQta0eCnpQqnaOlUBrqYTd4UTYwvTTDraGp4kkKJGhe9IXEzvhaTvduUmvYZA2wZ8urHObV+05vNt1z8e+D9kP0chp/7SMhra5VjdQCdzSlbLwx9eRA04TaGeJVU/W/cYiqjlfmfAa0OLZIMzh0LjgMpncG5RDsREEY7hYSX16Kcg3A88CmE3UiwE4X6dXvhcVShlACXAY8Ci4q45w9lTCf17FSFqW1XIZxbRP/dyQEPF/JLyVkg41A5Bg0OJvAORIPjUE5G5bvAjRQSxZVoGUr2BHmk4pnDE3nHwq16UXUX1u2KNxaXt03Ra0g3LC1dPEUq/D38wLHNuNIEs4HV3neBdxxb7YfkXGf3TDmJ00b5zme7Rg5fhbDpWbKNeYhOdLhvbfFbjwPX9E1yu9Pl6ligW/WKih+46sppQ5fBenkiQ5Cx4LC8pjP5HMoVbjfp1kLAR7mX3vxJjnUvlaA+CfqxP8Io4GTCzqIoP5YxXLLp31Mh0/ZL0K+7xtONAPgjwv3k5RGa6l91HkDMer0P7w86BE9HokyguJpWG/o47R3T8d/5bMVSPKgc43D170k31HJR3SMdrl1Fom/lTwR1Z07yIUbk3gA2Skq4aboXk7PbMikVtRxSOKfWL6Gl9UxEZjq1U36I3/oA6YZ/lygyE9XdiwZBe9jBQgD6YJdXKA8Qtpi7MhHoeVUW/OxuoHc5tnqDVDL8wZxCST2XPKJZtlx8t2NM5dfe6yZ6tf+AsJVyVA+HkDNhOpPjUG4mriU54Tkgjcc2MpozZQy/izIAA5A0eRnD0zKaixnFMAIOR7ifrveAXCpj+N4mf+fDAdg3osTTiSzCj0jU7Uw6dTiNqauYmHwl0gzOyOGraEo+RmPq28xJ7gjeZ6Hbr9fFwdA3U5FTk/7iwcAnwjfQ6p2eDkUPdrh2JuMGtpUulpg0S4Bym1ObhB5UmmA20NQwC8H1A2YLkBvX7FU01aR3+3gIXfnkadINXZ+A7FU3i/ArDZ9iSjZ6mZ5q5GdHAU+DOO4P1gudZqmEQ4DwdThFJsdSC7LUTtl6Icq9Di12xl+wfbeDMJ3O9ih34/KH1rlnUY6WUewvo8nISKcTBd0SQeUE/iCjGIuyx5rB2PqUy2Q0F3XaiZ+7MsYBWA7l26zM70Rj6vuxbx5vloB0/aOkU2OBEYVC1cSxNDeKXJvbslIcpP2ThF8iz7IwFTbJYvWZMn8YLrXSRDKlCyZmmtj4BFqX18tnur8oJok+38Rt7wbAEWRy1ZhcdvPmUupGu1iKXGvsoEWgT4TuUzg59LXVyn8vhd/ahJ99FJiB84lI7ifd0OLUQqXrVFAbybv1X1GB27OP/MFdznbo8/RiHlOIVjpmXTmEC3iOW6Q5thmbLskYXgXG6oMchseNwK4IP5PRdJ6ZPJO9EiWOPSABIteyuq7ZabNiMdKpfwGTmJq7ikB/g9OM0iaofpeW+U/SNOSRWOILd9PwMQuP1FxOsHWJN8Lh6gDt+H3JYonbxMEv4Wf/C4TbvCxEyJgd0biBbbS0noOI64P9Z/i5mVV5OmtzVKj6cXjo6zfOkt/Jdd4DqH423LVMgk72FJedHomfXeDYaADFTa78C3p/0bmVsIfDVMESkg1Ri2aXX3vdo/QO8oTf67tb17MO8/kxcGBRQQm/oxd7yChuKtcAbL3bn8AfWM4nEJpkFOd3eqGf/QXKt2K45Rugh9GY/EbZBmDrmpB8loXJ/YFLgGI2MnqId2eZTwG51N8sfWHu0nL5Wl8jvU22ZJGUhDztcPHwkoWxKU0NPl1t0t60rUCrf0/e5iLBRELPmutLoff0FfaFhR0i7MrU7KdCXltqvSjMYrn8KmYA9i5BMIr0Vq4DP1D2cLj4marekL+hwunbl0NfLwzv9JtYZ3IAyneKCCcALuI5jpdjnaf/YyVpVsioLjJ6t2R/DriXXtnYDEjsU/HN4l+RdtKpHyIcA8wvoqcU6G/jCqtbykdDX5t3TIVQbcRl4CGOSRCrgbrEvF3ZM9TnORv3k9VjyGR77qm42uKwFOmFH3AXZjrDP1uCzSBn2Eb0JUgcyMQh/4nYQfjnvMiLEe9RSS+EvlI7GYRpMx7K1UTPBbYaOEVGc2klZr+cZLJXxJSG4krmJE8kPXhxDH3FozH1BIm6A4BXiujleDK58qQRCLt8BcvxklEfAFXCYfOrBG+UMJDSUHGJ2WPF1sVueXAzKfUuqPtLpnI197ybLEFEJqyprcOB8DNQuoks+V0RcZklnViogbhZUITf0EcOIj3YrUTRWoV6sS41pmvvVLLi8uyr3/Q3z76cBewfMYTlwCgZzZSI7csnk72iyNm+tS4hnTq3qsoprDV+0FvQ+2Dgb5H7UP0ld8zrH19QnQqbdPEt0uJWXLbqaPh8bCoVnUmOxHOMWcXlwRyPQpLfxxxbpUj0uqoU4ZiQVFw2xL9NU/Lvjv27HPjZlhFthzv1X7seIZG/hBNTYZPabmzgQLcXmFp89oWvQwqw5UaDMJ3BIIQfRbx5B0KTjHZ+sJXfrNf7oA5vU51RvYh0qlQJbOOR3moBdX0+W8Sy1vb08To/URqfcPlVwH0fQvUJO+AEqN4ErZ3qcIxZB5Qmji6IKOS/DI7pcYRT1hznN5XgcipS5H7nVECFsmDh642qbi5LksfRkXibTPZO/HkuVU0+lG9324emoasYVA8Rl+fJgE3NhJ0DRMuaLpwho5gRqW25jRy+in7to4DZkfsQ/R5NDZfGF1QJjRvYRl6PA6Kd7hL5ehmWYcKeKKm9H8yNaPiZPI0l7Uh5aZ1jzA5/HnFKD52LcHGEltevKXJsysnP7ovLoRaXmpDrCpPSYi1hfNn3NFZOH5RTIfESfvY853ySeXV7Lng1J37+XQAAHeNJREFU+OwTdVkRq1tvEKaP0J/CIMydcp2MckzSWGljtl3OyvwY4EnntqLfo7Gh86Lf1WhS6l08GU+00kf9qesV7XsjvLBZ+ntAIXVx+Tso/yxR8dxiDhKVS8b4cvJqUJfTnADb0Tu4rCTxmM65zIKhbTQk/xjpPuKwmR8GsWzQcZHuU7u2AH5GNne/01aVRB+3LTuBbuEYVzVwefYtXX8mrJ2vAlFmO15iBedFaFd5pw1dRr/244EnQrdRvl9zA7C1JiSfRWTT1QK69w38BaXcuxN2GrdvCWMol/BloUQbShhHaWjeLeljfvXyEkXSvWYJIPElcE4efSYtrS4F2E0xmtVDCH86VZgROb3BnMHP4rK3Z/NZktzQKPomHg9fc7jDbStJLT77EJdDRh8OwlQRnCunA4V9YCdL2uFDpdqM2XY56BggTGqJS2hKRd0zVx1erv854b7WDW2F5E+PO5x1hE2nsW0JYygPkfC1EkVC1mGsKrs4XKtstfS9kkUSRrp+DqKuL1aCyG/x3wm7l9EUY/fcYYQ/QQ14jtnL11E4ZNV1rcn1jeGBrMs+z55kf9o7JuNr99tJ0g1LKRzeC0e8nv7sa/twJmw6hwI7RrjhtTKKGsxjtIF0w1JW5o8D/tDFVZdU/Sb8MJolwPPOBNwzziunxR/QB94Jed12FaltGadAw36tjskNq4ZLMtpsVdSGW5C6HJccPwW7on2bSxCN2ZDnlJNrOX1XP1rU/cJm2S/YglVyUlH3K84fSQTDnH95sjuB7I9wBoJPtK0qAMchbWE/G8O/cKnW3rNP+ZjDxW98+EHm8bkIt8vSp1rKNsTgtKHLeCA7hlXyMGxQVFhoprEHDMDWmlD/Mi2tv0XkLMeWn2TKgj2ZOPil2GNS3ghZIr4Xba0jgFpM5LeGzHUo87k79y6pr4kC3muJUz3IuSWLw8VXpJ2p2S8R8DQu+w6Fb+NnfdKpv5YuuM2cr73R3ITwDfSRwgpHEfovfpylW79P6JPMOgm4s6h7RibLGT+kmHyCzwE3Mfm9HUnU/QQi1MVUPY8pubuYmOwuL+UcYFjIXj+NqjifcK0U/51+oPuGvl7kPx6A+vQDHL7B13bA1XIM1ZOcNA4npt5ntRy/3kZd5Qc0pspf0LrUAvkJLnuT1pJ8lAF7iH7FIdNw4uCSxFAu0uGSt82jY+URJYslbv6C7Qn/kIVictjFbULqeZQrHVvVATdzgxZTBsZ0KXccLsWl3TbWb9rI4asQHnJocQz+e6mi71tJk7Z5k3TqFJCzcC971wtPf9HtVaouL/BDmNa6l2McFdTvQCD8SVnVlwvLkVtwKG5ZbAGWsYqeWUvt1PolUHc88CzKD2hKNVc6pJKYlHoX5Q7ndsL4EkQD+fbwSRU1OLokMZRLasgrOA2Axf0lqVI07/b9obgl0yw1WdmMS56ogr0ZlP3fEkRjwPFUJB1or3hSJQVONUbr0F7pWO5baenk9ahGqSRzPFNyu3d5hef48x54pfm8KQUNHGOVp9fuCXN/yxbulHHUzvKIq/TgxSxbeniPHYCtlfCuwWFdbI1hTFu4Q+yxTNrmTSBkOQw5vqbzNBVObf3FocWY8CeQKkwclzLE+1OJIokmvd0KVM8A15Jr8r1uP4CMO791AMIJDi3+EKmw9KZIYhYu+6SkB52SbGq4GvRe53aiX+jy9zX/BG4/WyfXRGmoG7QXIg6DcG2jMfla4QsTjnS+oVZq7buMTt9pZaVDKLkJ9S/jUrB2rXx7aZbHRMJWW+hL73xjSWIoFxWXpY4taO84o2SxxMVvOxCXun7w1poM5dWlqeFJ4AbHVn3wuKkmPjBqiXonUchLFZJT7ceupQcvBn3CocVBTH5vx9juX3FyIeCWSFm62dqU3iaL237eXdgjN9IphkrYuu1knFJ8yWOIaJ0+ylasYh/H281lFK7JDU21UqYgrrVC5UgoSXLemcD/hIzh26jeUjObNjckHbMg4ZLw85tMf/e6ojccl1RwgWODWSUJIw59OJ9VjAa2C99ID2KP7NnANaUKa7PjPLukF+BnvxVjBPUO1wp1vSYBP43x/pWTTv0Lv/X3IJ91aLVztweJRGah+onQPapcAFVcjadZPSR3vlMbKSx1e6xmb8KXiylQZonUYDkBs2kJjfLN/enY4wBY+v4sYEnIq0eQaavksfDipIf+k8JJobC2ZXmvKPs0ysPPHgaMdmzVUopQYnFi6n1Uz3Rup3Jpz5oNqaDCRvdjHFttC+wc4y+3/dJu+9dqgDzi3KR99Se7/P08d7l1qAeRyY1zjqNcds99EXDZirCKVd4sAI/AKZ9PgXSZS8vUmgkNr4O86dhqp5LUSzt9p5UgDvsQ9Iqartum3Op0vfBdpmR3LVE00RVOBl4NIZOMFPyHxqR7ybByamqYhXvagQEkEq5LmWZTpFcjUGOnTnUvpizYs9JRxEa0u5QTmzK0y98tpLFwS+mi+suq3AfsLx6M4FpDelrhACB4SKRBWLR6XKZ6iXPtvDqWDCpNNmNPr3O4ehjvb+26BFY9euXvwC1B4hZ4elvVpUMYlP0h8HG3RnprTSwl1/X5FtDq1kg+i6p7riWzvlotB5QIajPuTdHEIuc2EoR5Mb7Rsdft6aO/dI6llFQFVt+Ma7lHCT74jPNQ50FYTkY51NQytSFwyNG1VpQBfBgTUs8D4U/MCRfRMt8lOWj1GDe0FeF2t0ZyIIOyrrmsSifTejyIa3qG96nr+5uSxBO3cQPbUI1SvH7v2GPZnBTyzdXmz7XqpMIHdE+Qd9uuBIDXu9tLli29A5f6nACq/0NLtnoOKE3NfQNw3RLzVxqH/Hntv3g41eIC4HXH601N0Agn1HSn+OP4oG+XOn51iDcZP+f6vVwdvOAynBMjytfIZCu/P2xKdh9UWig8S8JTrq+pCgBNDT445YwyxdJgEm7L29VkJ6a2HljpIGIhnsvBhAINUR+ysPXkV+7xcC1+63HO7eKWyY1D+blzO1m/ypCHhC3J8IH/ON/UVL+E/l+EVq4JfsNLNzwMTsve2wEPVTyX1pTc7mSyX3JqM37IG2iEk6bKFfit33BuF5dMdjQevyd0WZcPLKFXvvvM2tUmz9mA+9KMiabWc26p1Hb8H3Aow7OWhDxctbLjGuC/jr33BrkXv831wEZ8MtmJqN6N66FG9BkaU+sdhPNwf4DaQ6gnEnFfYvYo7SbJQM7FKUeN7kV7x2PcO6+hZDF1ZWrbHng6G+VGMjm3mpy98hfh/rMlIFeRyV6BrxGWDIrgZ7+Mch/gPuhVmhk31HGPVRWYlHoX9DuVDmOzMLVtD2p+OVfSzNbwNUirleKeoysg3Ev9aUOXgUTZ09sPghlkcqdFaFscP/ttlLuBvo4tA2TjKgTugzBlqeONTS3IJ9xzTwXOA3g3E5PPIeq6b2hfOhJPMTXnUMk+BpnW4wmCp4AhgKB6LS3Z8OkNxg1tRfT7ke6tfAdyjzI5u22k9i781gH4uVspJDKN8AGjL9GQrN0cWo2pW4CwCYVNVEGNz4IVNJDN1nZ5tZbsEYDrTJjST18NfXVj/V247AH+UG9UbyeTvb5QOLvE7mobiJ+dAvwC1+0XAMKN6+4FW8vDpdhkoSOXk1ymVixbvMq5jbhksY5oVeJCYK5jq+EE+hwtuc+XIqT1+NqbTPaHqExn/VkhQfg1mexXQvf1cuo64PGIkRxBgpfI5M4q2ayYnz0B5GXopixJ51bjyelrSjbVJhGF/JeBZZUOpcdSFegRg7Dazhnma2+En0Vo+Tonpt4PfbWIEgSfh4gTPMqZ0PcfJV2ezOTG0TuYAzRF7OEd6uo2OePn4fowUUo/4jTl13+w+4BKyvBBdGr9EvBOwXnjOgMQvQ0/9zB+tjSnOFtaD4XsX1G+x6b3BgjK9aFP8zRLQML7PBC17t0gVK+D3Iu0ZCfFMhhTFfzckfjZJ4EHgO2L6O2CNSdfa1t66FzQiyodRo+VWfBpCklSw1pGwG4kgmEl/6Xq9iEsMrYsszSloLnrcCtBtqZdhOSuE4f8B6GYKge7QvA7/OxMprTFl0i88Ox7CtVpuB9iXKsDDSYxdtAmt5vUURh9ht/bIwyIGIipavkof6/lWZpO1z+Nnz2fwjSwIz0WeJGW3N2I/DyWOoUtrYci3oVr+u6OIPwGvzUg3XBzt1ePr/8/Wlo/h8iDOG/6/MAIhHsgdwWZ3O3kdRpNyb875eTyW3dBvHFkcl/ALRN0Zx6gMVldOX6KMSd1DSOyTSA94wRcNVGd5HYmUh9hYsNrpQpnPbP1bbK5BcDgkC22RPqMBjIljCpet87tS/8tr4884y0RTxE3pm7Cz34a+GKk9gUj8YKR+NnnQG4lofczPvWeUw+T39uRRN044H9A9ygilrUupGlIp8utawdhLtyPq5rqF7QPwnNe5i7f/sB06kr87Aii/YD2RvR00C8U3mqkBfGmkx78dugepszfm0RiJKqnAR/DrWqXB3IjLa1KU8Mt3V7d1DCLltZvIxGOb6/vI6heiMeFZHLv4WefRfgHyFyQeSjv4wXt5GVrJKhHGYbIHhRyM+2AxpZH9XlW5k+picSsYTVLgN/2JQj+huuWDtO52VpHNpd2aiPeAyWKZmNHSActrTMQCb8hvLAkWf2DMFUplIHTHxUx+HiNxvrZ0YNIngW54cCh0fsAYD/Q/chzHX72BeAvIP8AfRuYhyfLCFTx2BJlKKrDEO/jqB4ExLmf+GYak12msajD9USWMryYiEyVSiSGRfjQXVyKUDq1MPlVBuVSwAkRexDgEEQPgfy1+Nm3EZ5B9Q3Ee4dAF+JpB4HXBwnqQT4C7AV8Ahha5KDEQ+S3a2bEbuv26qaGq8lktytsuo/FNsBJKCcVBpBrvpYAEKVw0DKmO63vDdAxhVNQPUy6fg6Z1h+j8qNKh9Jj5BYcSeFwS1gdJHrPLFU4m+R5D6x5GQtJRnLfwq07W46Khw4l09oYoeEAYAAqe5PJHQ3sUFQYwpVFvWylZTX+4rGw+vcUnrvFkjX9fGK9F+dgneff2svie+lcawap5Jnd/XnUAW8A+4fuVthVFbEC3j1OhH1T4rphvjhfkXZmvZ5m6db3A3Ek69seZfsPfgAFUPlwUBI/D+R8bp07pZCosBuNqfPIZIlxIFZur5HwjmJ8fc+tsLEgdTmDchOo+XQKVcK9TNFTZU/6u6LjEfomVkDo/dF9aG8fD3S/HSG6vVHxS9h/CPoSyVTxX2N6qwXcu+RoOlb9ntr9uZrBsqWNpFPd7mX2ANe19P48yLBocZmqpepecFY7yl89YeTwVZA8EWFy2e9dvL9Tlz8s1ABsrcbUeSg/wHH9swq8CHoY4+ujJAGuHV+RdgpL5LV74rNa3Dq3L+g4t0Za/ioGhVndR90a9ZTErZ1qJ0icEdvJ53ED26jrcxTwVCz9lVcLC5Pjwj7nPaKUIarjcOc2ptod5nh9AO3/Lkkk3UnLaiYkTwG9jJoZnOh99OGwSElKm1LNKKcA4QdvlXU/fTiYdEPPnQFbVzr1V5TqqeVZq/r3H43LITEAggdLEkt3VF33oR1eljx+lSJcwMT6Z2Ltc9zANgYsOhrhrlj7LR0Ffsic5MlrXs5C8RDCJ1X78FauH9immk1tHY778dt3SG+3ohThhCKipBsuQGQs1V3FoQP0YhpT451y52yoKTUZj0OAf8UXWuw6UL5PY3JcUV9rLZKVzbivKpj1uc4WvVBIF1IBkp+OUzUPEniRc0xVN+UqGlOlKUM2cvgqJiRPAzmH6n4JXQScRDp1Cc0SdHv1Ojy24B+A6wNzpM6yE0E9RiBjIrSKkuE4fo3JByCxN/BwpUPZhFcI5CDSDT+J5WTghNTz9GvfB7ie6psBfBmPA2lK/ahHnYIMK73dClTPYJ2tvsbBfQu3BnEtj1O+U5EbSm+TxfUZKDWcuLUzopeTTn67tPcQJZ28liCxH/CPkt4rmpnk2YN0KtKsrCdH0AFslEq/G4PRWDZGm+pwcoQ2f4g9iqjSg98mnToekc/jXgy2FJaBXsyypfswMflcrD2P2XY56dRZSHAwUA2JT5eAXMCARfv2iESsxWhqeJJCOSfjanX7OFxr8QUVHIQBqHM+rP3WrDr0BEtR+QKNDd8t20vXxMEvkUruh+jXgYVluWfX3kHlc6RTowt1ZaMpJIYSnnBuGfC5qDetFTqd4TrbuUhnbZmS2x332mBQTYOwtRqTd7AyvxvK94medb4YqxB+Q8L7GOmGnzhtwHfVOOTPzEkesGbg6b6loHgrEL2Ouvxw0snLCgcmDH04Hwiff84UiPPG9bdpSv69JLGEVRe4DwJVorzwVhl5BPIfpyl5e9lvfYR00NhwDXTshvIz3FfxYqBtqHwXVu5GU7Lo/WqFQVie3zu3FE7SWT33lKTOYgTwFEvJqE/vSsdTMp5+M0Kr/5JOVefepNOGLqMp9SPQHdaUwSjH4YH5oJeRZ2caU18t24nAZgloTN7BnOQeIOOAJyn9MuV7hdOaHTvQ2PC1SAcNerITU+8jGr5wu4Fp2W2AI9wa6YMVX/YeP+QN4EWnNrVcSxL5M+IdSzp5XMX24q2V3iZLU+p86L0jot8DebMMd30V4Uz6dWxPU/LyuPZE1wHICTynM3gdnBKxJtbkL/pqHIFUE53OcAIeRWgARrMFU3Q26TVLtz2H3zoUcEg6uJZMjT2WuKUblgJXoforMtnPIHIKymjgozHdYREwq/BnUT+TtFSusH1hI+h9wH1MW7gDHe2nIDIO+CRrX7SK04roQ5C4Bx38e5rEZUPy5qex4SH87J3Q81cLYpHXNIhbiS4tY5b8rt0PfNzh+t2Ykt2Hiam/lSqgmM1HdRoit5BO/rXSwWwkvdUC4Mc066Xs3nYkohOB44G4TqK+hTIVEZ908i8x9bmeug/+SWlBuNiptfIFncEVMpo34g6sUnQ6w9csz677lziWZdymzZwmzT1o4616FyIaZbn1nthjKZXC2/JTa359lanzP06QOBQN9kO8T4LuQvdJFzsoZH5/GfWexcv/kQUNz7kcQy6b8YPeAi4FLuXeJfV0rDwClU8juhfIHnR/CnYZ8Aoq/4TgH0gwm8YhL1V81qHW1PX5Fh2rPotb9vfNlPNS5EIW1VfHdghP7yeQ7zu1STAJqMZBWJ7Cc+6fIM/gyZME9c/XxEtX4UX0MeAxVIVp2U+gHAzsi3r7gA4Dtuiml4XAa6jMgeAphCdJN5R8JeWDtOA6nY8hvBKhjwdlNCfGGFPF6Ex2QHkC2LGTS27jeb7YIwZiU9v2IAj+DvRybPlvGpO79qgP5WnZbcjrEJSB4H249JwI2gi8VqjPVnSmK043aC8G5lJIkMLzPnwJC4JFeDJ/zQxi9crkToQg/PaAvL7GxCEvlDCizk2ZvzcJ2TX09ZpYRLreMQlojKa/uwUr60Y5tenIP8ekbd6MfM9m9RiRHYe4lKiQLI2pJyLfM06qgt86Dk/Czzir10Y6+XiX10zNfgrVnYoNr+s4eB/1OhCWkJB3yQ2eX5UvlnHxFw8myG+Ll+9DoVRTLxK6iEAX0d67jVO2rshm//W+8XU6TyN82rkX5QQZw/TYoqoAfYgdyfMHYPuuL+Q6RnNOTZdtUhUyuSeIUiRV+X5hz5UxxhhjirH+6F24ImI/N+kDsa3Blp3ez3ZrDid0PQADEM5mFr8sfVQllMl9h2hV6peTb78+7nCMMcaYzdH6g7BR3AfMce5FaKCOe9THbXNlFdBZfJQ6ZgM7h2/EN3Q6tTkbNCW3H/DjSG2VGzl521y8ARljjDGbp/UGYWuW2KKVH1AOYwuuiSOoctEHGELA7yBCqg3hYp3BRfFHVULT2j6Kp9MgUsqN1QSe1cczxhhjYrLxZsKh3AmRNugDfFVncGFREZWJzmQoHn8Adi+imx/rdE6KK6aSunvRIPL5h4DtIrUX/S2T6t+JNyhjjDFm87XRIEw+RTvw9SL6/LHO5Lwi2pecPsSOKH9A2K3Irh5gBbNiCaqU/MWD6bV6FsieEXvIoX3cjmEbY4wxpkubPFYro3kMiJqQU1B+ptP5lTbHkigyVvoge5Dnj0D4o+ObNguPJklT3akLJme3hdWzQdxPva4lXLAmKZ4xxhhjYtL5IEk5l2LqMglf51Pcqw8zOHIfMdMZTMTjzxSfNf1BljNWRlLd9fJaWg8lwXO4ZXTe0F94OXlLXCEZY4wxpqDLBHk6k5NR7i7yHm+jnCJjeKrIfiLTR+hPO1cCXy66M2E6y5jQ6QyY33YM5BOkGx4u+l5R+ZpAshegcgnrVkVw9z4Bn2Ji6rW4QjPGGGNMQbdZinUmt6CcXuR9FOUuAs6TE5lfZF9uN57OGIRrgB2K74yHSHQxA9aSOxrRB4F+ILdR13F+2QscT2n7NF5wHbBP0X2pfC6OKvHGGGOM2Vj3g7DCLNJzFHeKcK1FCL9AuU5GU9ISATqdo/D4HsphMXU5E4/xnQ7AMtnDUWayfn2qJaheTl+5hhNT0Zd2w/Czu6F6ISKnEkvRZrmNdLLYwbcxxhhjOhGqXpfOYhgBfyK+YrTvAzeR5zY5kRdj6hP1GUB/xqKcDRwQV790OwBrPQSVh4D+nbRfBPobEvpbxg+Jr9h5s3rsnj0Y8b4GOp5YBl8A+jT9Oo5mzLbL4+nPGGOMMRsKXTRVZ7AvMBvYMuYYXkKZhjKbLXlWjmClS2N9iB0JOBzlWOAEuq+U7moWHuM6X4Kc/xnEe4hwfy4KPIVyHyoPMzHpno/t1rl92WLAgXh6LCqTCFNqyc2r1PU5mHED22Lu1xhjjDHrcKhcDzqTY1BmEC3jehgrEf6J8m/gdZT38FiJsgzFQ9gKYSsCdkDYFeFjaMTko+F0PQAr7L96BBgYsf9W4K+gL6DyFsI7qL6PyDI8qSPPlnjBIALZAWE4hSXh/YC+Ee/XnXdJ1B3E+EFvlah/Y4wxxqzhNAgD0OmMRMgQ/4xTtZmKx6mdD8By++Hpo8BW5Q2rZN4hkGMjzc4ZY4wxxpnzHiIZwyyUI4CeXMj51zxPU6cDML/1E3j6MD1nAPYKJA62AZgxxhhTPs4zYWvpLEYQ8BDx70mqJAWaZTQ/7PSKKfP3xpPfg9SXL6yS+hP0PsEy4htjjDHlFfk0nYxkDqvZB5gZYzyVtBgl3eUADMDzftRzBmB6LQMWHWUDMGOMMab8Is+EraWKMIOvI/yM0m3YLy3hOfI0yQnM7fba2VpHa+5ihIuBROmDK4kloF8m3dBS6UCMMcaYzVXRg7C1dCafQvkNsG9cfZbBcoSfsgWXyRF0OLX0c0eC3ggMK01opaK/I5//CpO2ebPSkRhjjDGbs9gGYQDajMe+nIrwCyAZZ9+xU2agfD3U7FdnfO2Ntn0L0WZKlzYiLv9F5EIak3dUOhBjjDHGxDwIW0tnkSLgQuAMOs8iXynPIjTLKOIrsD1l/jASXjPKJKpviXIRcDX92i+3DPjGGGNM9SjJIGwtnU4S+BrCOcDgUt4rhD+hXC5jmF6yO0zJ7orHxcBEoFfJ7hPOfJCrWC2/5tT6JRWOxRhjjDEbKOkgbC31GcAWjAdOBY4kthqH3XoXmIxyp4zhhTLdE/zWoeB9AfRLlHfPWADMBr0LVrWQ3m5FGe9tjDHGGAdlGYStS6fzEaAJ4RjgYGBAzLd4BXgCuJflzJY0+Zj7D09VmNp6IMgJqIwBRpTgLquAZ4EHyDOFSal3S3APY4wxxsSs7IOwdels6ljG/giHEjACYTdgV2DrEM07gLdQXkN4FeE5YLaMYl5Jgy7GtIU70NFxELA/ogeAfAwY5NBDB/Am8BrCX1F5AlY8bTNexhhjTO2p6CCsM/oIDaxmK4SBeGxFwACEFQQsJWAZvVnC+7wraVZXOtai+Qu2ImjfEc/7KKJbgGyFSl/Q1cBSRJYBS8nrOyxOzuUr0l7pkI0xxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxpjN1v8DwDJihlcRukwAAAAASUVORK5CYII=",
      "altText": "Contabo Logo"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.contabo.com"
    }
  ],
  "paths": {
    "/v1/tags": {
      "get": {
        "description": "List and filter all tags in your account",
        "operationId": "retrieveTagList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "Filter as substring match for tag names. Tags may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per tag.",
            "schema": {
              "example": "web",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of tags.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTagResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List tags",
        "tags": [
          "Tags"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/tags\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get tags"
          }
        ]
      },
      "post": {
        "description": "Create a new tag in your account with attribute name and optional attribute color.",
        "operationId": "createTag",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTagRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard tag attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateTagResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new tag",
        "tags": [
          "Tags"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST \"https://api.contabo.com/v1/tags\" -H  \"accept: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\"  -H  \"x-trace-id: 123213\" -H \"Content-Type: application/json\" -d '{\"name\":\"Web-Server\",\"color\":\"#0A78C3\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb create tag --name \"Web-Server\" --color \"#0A78C3\""
          }
        ]
      }
    },
    "/v1/tags/{tagId}": {
      "get": {
        "description": "Get attributes values to a specific tag on your account.",
        "operationId": "retrieveTag",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagId",
            "required": true,
            "in": "path",
            "description": "The identifier of the tag",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard tag attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindTagResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get specific tag by id",
        "tags": [
          "Tags"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/tags/12345\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get tag 12345"
          }
        ]
      },
      "patch": {
        "description": "Update attributes to your tag. Attributes are optional. If not set, the attributes will retain their original values.",
        "operationId": "updateTag",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagId",
            "required": true,
            "in": "path",
            "description": "The identifier of the tag",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard tag attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateTagResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update specific tag by id",
        "tags": [
          "Tags"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH -H \"accept: application/json\" -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" -d '{\"name\": \"Updated-Web-Server\"}' \"https://api.contabo.com/v1/tags/12345\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb update tag 12345 --name \"Updated-Web-Server\""
          }
        ]
      },
      "delete": {
        "description": "Your tag can be deleted if it is not assigned to any resource on your account. Check tag assigments before deleting tag.",
        "operationId": "deleteTag",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagId",
            "required": true,
            "in": "path",
            "description": "The identifier of the tag",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete existing tag by id",
        "tags": [
          "Tags"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X DELETE -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" -d '{}' \"https://api.contabo.com/v1/tags/12345\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb delete tag 12345"
          }
        ]
      }
    },
    "/v1/tags/{tagId}/assignments": {
      "get": {
        "description": "List and filter all existing assignments for a tag in your account",
        "operationId": "retrieveAssignmentList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagId",
            "required": true,
            "in": "path",
            "description": "The identifier of the tag.",
            "schema": {
              "format": "int64",
              "example": "12345",
              "type": "integer"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "resourceType",
            "required": false,
            "in": "query",
            "description": "Filter as substring match for assignment resource type. Resource type is one of `instance|image|object-storage`.",
            "schema": {
              "example": "instance",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of tag assignments.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListAssignmentResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List tag assignments",
        "tags": [
          "Tag Assignments"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/tags/12345/assignments\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get tagAssignments 12345"
          }
        ]
      }
    },
    "/v1/tags/{tagId}/assignments/{resourceType}/{resourceId}": {
      "get": {
        "description": "Get attributes for a specific tag assignment in your account. For this the resource type and resource id is required.",
        "operationId": "retrieveAssignment",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagId",
            "required": true,
            "in": "path",
            "description": "The identifier of the tag.",
            "schema": {
              "format": "int64",
              "example": "12345",
              "type": "integer"
            }
          },
          {
            "name": "resourceType",
            "required": true,
            "in": "path",
            "description": "The identifier of the resource type. Resource type is one of `instance|image|object-storage`.",
            "schema": {
              "example": "instance",
              "type": "string"
            }
          },
          {
            "name": "resourceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the resource id",
            "schema": {
              "example": "d65ecf3b-30db-4dc2-9e88-dfc21a14a6bc",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard tag assignment attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindAssignmentResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get specific assignment for the tag",
        "tags": [
          "Tag Assignments"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/tags/12345/assignments/instance/d65ecf3b-30db-4dc2-9e88-dfc21a14a6bc\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get tagAssignment 12345 instance d65ecf3b-30db-4dc2-9e88-dfc21a14a6bc"
          }
        ]
      },
      "post": {
        "description": "Create a new tag assignment. This marks the specified resource with the specified tag for organizing purposes or to restrict access to that resource.",
        "operationId": "createAssignment",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagId",
            "required": true,
            "in": "path",
            "description": "The identifier of the tag.",
            "schema": {
              "format": "int64",
              "example": "12345",
              "type": "integer"
            }
          },
          {
            "name": "resourceType",
            "required": true,
            "in": "path",
            "description": "The identifier of the resource type. Resource type is one of `instance|image|object-storage`.",
            "schema": {
              "example": "instance",
              "type": "string"
            }
          },
          {
            "name": "resourceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the resource id",
            "schema": {
              "example": "d65ecf3b-30db-4dc2-9e88-dfc21a14a6bc",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard tag assignment attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateAssignmentResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new assignment for the tag",
        "tags": [
          "Tag Assignments"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST \"https://api.contabo.com/v1/tags/12345/assignments/instance/d65ecf3b-30db-4dc2-9e88-dfc21a14a6bc\" -H  \"accept: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb create tagAssignment 12345 instance d65ecf3b-30db-4dc2-9e88-dfc21a14a6bc"
          }
        ]
      },
      "delete": {
        "description": "Tag assignment will be removed from the specified resource. If this tag is being used for access restrictions the affected users will no longer be able to access that resource.",
        "operationId": "deleteAssignment",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagId",
            "required": true,
            "in": "path",
            "description": "The identifier of the tag.",
            "schema": {
              "format": "int64",
              "example": "12345",
              "type": "integer"
            }
          },
          {
            "name": "resourceType",
            "required": true,
            "in": "path",
            "description": "The identifier of the resource type. Resource type is one of `instance|image|object-storage`.",
            "schema": {
              "example": "instance",
              "type": "string"
            }
          },
          {
            "name": "resourceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the resource id",
            "schema": {
              "example": "d65ecf3b-30db-4dc2-9e88-dfc21a14a6bc",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete existing tag assignment",
        "tags": [
          "Tag Assignments"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X DELETE -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" -d '{}' \"https://api.contabo.com/v1/tags/12345/assignments/instance/d65ecf3b-30db-4dc2-9e88-dfc21a14a6bc\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb delete tagAssignment 12345 instance d65ecf3b-30db-4dc2-9e88-dfc21a14a6bc"
          }
        ]
      }
    },
    "/v1/tags/audits": {
      "get": {
        "description": "List and filters the history about your assignments.",
        "operationId": "retrieveTagAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "tagId",
            "required": false,
            "in": "query",
            "description": "The identifier of the tag.",
            "schema": {
              "format": "int64",
              "example": "12345",
              "type": "integer"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "UserId of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of tags audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTagAuditsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your assignments (audit)",
        "tags": [
          "Tags Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/tags/audits\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history tags"
          }
        ]
      }
    },
    "/v1/tags/assignments/audits": {
      "get": {
        "description": "List and filters the history about your assignments.",
        "operationId": "retrieveAssignmentsAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "tagId",
            "required": false,
            "in": "query",
            "description": "The identifier of the tag.",
            "schema": {
              "format": "int64",
              "example": "12345",
              "type": "integer"
            }
          },
          {
            "name": "resourceId",
            "required": false,
            "in": "query",
            "description": "The identifier of the resource.",
            "schema": {
              "example": "a1b2c3",
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "UserId of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of assignments audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListAssignmentAuditsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your assignments (audit)",
        "tags": [
          "Tag Assignments Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" \"https://api.contabo.com/v1/tags/assignments/audits\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history tagAssignment"
          }
        ]
      }
    },
    "/v1/dns/ptrs/{ipAddress}": {
      "get": {
        "description": "Get all attributes for a specific PTR Record",
        "operationId": "retrievePtrRecord",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ipAddress",
            "required": true,
            "in": "path",
            "description": "Ip Address",
            "schema": {
              "example": "11.10.2.3",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard PTR Record attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPtrRecordResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Retrieve a PTR Record by ip address",
        "tags": [
          "DNS"
        ]
      },
      "put": {
        "description": "Edit attributes for a specific PTR Record",
        "operationId": "updatePtrRecord",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ipAddress",
            "required": true,
            "in": "path",
            "description": "Ip Address",
            "schema": {
              "example": "11.10.2.3",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePtrRecordRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Edit a PTR Record by ip address",
        "tags": [
          "DNS"
        ]
      },
      "delete": {
        "description": "Delete a PTR Record using ip address. Only IPv6 can be deleted",
        "operationId": "deletePtrRecord",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ipAddress",
            "required": true,
            "in": "path",
            "description": "Ip Address",
            "schema": {
              "example": "11.10.2.3",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete a PTR Record using ip address",
        "tags": [
          "DNS"
        ]
      }
    },
    "/v1/dns/ptrs": {
      "post": {
        "description": "Create a new PTR Record using ip address. Only IPv6 can be created",
        "operationId": "createPtrRecord",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePtrRecordRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard PTR Record attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiPtrRecordResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new PTR Record using ip address",
        "tags": [
          "DNS"
        ]
      },
      "get": {
        "description": "Get a list of all PTR records, either customer or a list of IPs is required",
        "operationId": "retrievePtrRecordsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "customerId",
            "required": false,
            "in": "query",
            "description": "Customer ID",
            "schema": {
              "example": "54321",
              "type": "string"
            }
          },
          {
            "name": "tenantId",
            "required": false,
            "in": "query",
            "description": "Tenant ID",
            "schema": {
              "example": "DE",
              "type": "string",
              "enum": [
                "DE",
                "INT"
              ]
            }
          },
          {
            "name": "ips",
            "required": false,
            "in": "query",
            "description": "List of IPs, separated by commas",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Search PTR records by ip or data",
            "schema": {
              "example": "vmd1111.contabo.net",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object which will contain a paginated list of ptr records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPtrRecordsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List PTR records",
        "tags": [
          "DNS"
        ]
      }
    },
    "/v1/dns/zones": {
      "get": {
        "description": "Get a list of all zones",
        "operationId": "retrieveDnsZonesList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "customerId",
            "required": false,
            "in": "query",
            "description": "Customer ID",
            "schema": {
              "example": "54321",
              "type": "string"
            }
          },
          {
            "name": "tenantId",
            "required": false,
            "in": "query",
            "description": "Tenant ID",
            "schema": {
              "example": "DE",
              "type": "string",
              "enum": [
                "DE",
                "INT"
              ]
            }
          },
          {
            "name": "zoneName",
            "required": false,
            "in": "query",
            "description": "Seach by zone name",
            "schema": {
              "example": "example.com",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a json object which will contain a paginated list of dns zones.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListDnsZonesResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List DNS zones",
        "tags": [
          "DNS"
        ]
      },
      "post": {
        "description": "Creates a new DNS zone for a customer",
        "operationId": "createDnsZone",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDnsZoneRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard DNS Zone attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiDnsZoneResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create DNS zone",
        "tags": [
          "DNS"
        ]
      }
    },
    "/v1/dns/zones/{zoneName}": {
      "get": {
        "description": "Get all attributes for a specific DNS Zone",
        "operationId": "retrieveDnsZone",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zoneName",
            "required": true,
            "in": "path",
            "description": "Zone name",
            "schema": {
              "example": "example.com",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard DNS Zone attributes"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Retrieve a DNS Zone by zone name",
        "tags": [
          "DNS"
        ]
      },
      "delete": {
        "description": "Delete a DNS Zone using zone name.",
        "operationId": "deleteDnsZone",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zoneName",
            "required": true,
            "in": "path",
            "description": "Zone name",
            "schema": {
              "example": "example.com",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete a DNS zone.",
        "tags": [
          "DNS"
        ]
      }
    },
    "/v1/dns/zones/{zoneName}/records": {
      "get": {
        "description": "Get all the records of a DNS Zone",
        "operationId": "retrieveDnsZoneRecordsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zoneName",
            "required": true,
            "in": "path",
            "description": "Zone name",
            "schema": {
              "example": "example.com",
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Search DNS records by name, type or data",
            "schema": {
              "example": "example.com",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object which will contain a paginated list of dns zone records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListDnsZoneRecordsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List a DNS Zone's records",
        "tags": [
          "DNS"
        ]
      },
      "post": {
        "description": "Create resource record in a zone",
        "operationId": "createDnsZoneRecord",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zoneName",
            "required": true,
            "in": "path",
            "description": "Zone name",
            "schema": {
              "example": "example.com",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDnsZoneRecordRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard record attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiDnsZoneRecordResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create DNS zone record",
        "tags": [
          "DNS"
        ]
      }
    },
    "/v1/dns/zones/{zoneName}/records/{recordId}": {
      "patch": {
        "description": "Create resource record in a zone",
        "operationId": "updateDnsZoneRecord",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recordId",
            "required": true,
            "in": "path",
            "description": "The identifier of the DNS record",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "zoneName",
            "required": true,
            "in": "path",
            "description": "Zone name",
            "schema": {
              "example": "example.com",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDnsZoneRecordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard record attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiDnsZoneRecordResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update DNS zone record",
        "tags": [
          "DNS"
        ]
      },
      "delete": {
        "description": "Delete a DNZ Zone's record",
        "operationId": "deleteDnsZoneRecord",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recordId",
            "required": true,
            "in": "path",
            "description": "The identifier of the DNS record",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "zoneName",
            "required": true,
            "in": "path",
            "description": "Zone name",
            "schema": {
              "example": "example.com",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete a DNS zone record",
        "tags": [
          "DNS"
        ]
      }
    },
    "/v1/dns/zones/{zoneName}/records/bulk": {
      "delete": {
        "description": "Delete multiple zone records from a DNS Zone",
        "operationId": "bulkDeleteDnsZoneRecords",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zoneName",
            "required": true,
            "in": "path",
            "description": "Zone name",
            "schema": {
              "example": "example.com",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkDeleteDnsZoneRecordsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Detailed result for bulk deletion",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiBulkDeleteDnsZoneRecordsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Bulk delete DNS zone records",
        "tags": [
          "DNS"
        ]
      }
    },
    "/v1/dns/zones/audits": {
      "get": {
        "description": "List and filters the history about your DNS Zones .",
        "operationId": "retrieveImageAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "Dns Zone name.",
            "schema": {
              "example": "example.com",
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "UserId of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of DNS Zones  audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ZoneAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your DNS Zones (audit)",
        "tags": [
          "DNS Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/dns/zones/audits\""
          }
        ]
      }
    },
    "/v1/dns/records/audits": {
      "get": {
        "description": "List and filter the history of changes made to your DNS Records.",
        "operationId": "retrieveRecordAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "recordId",
            "required": false,
            "in": "query",
            "description": "The identifier of the Zone record",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "UserId of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of DNS Records audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your DNS Records (audit)",
        "tags": [
          "DNS Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/dns/records/audits\""
          }
        ]
      }
    },
    "/v1/vips": {
      "get": {
        "description": "List and filter all vips in your account",
        "operationId": "retrieveVipList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "resourceId",
            "required": false,
            "in": "query",
            "description": "The resourceId using the VIP.",
            "schema": {
              "example": "10001",
              "type": "string"
            }
          },
          {
            "name": "resourceType",
            "required": false,
            "in": "query",
            "description": "The resourceType using the VIP.",
            "schema": {
              "example": "instances",
              "type": "string",
              "enum": [
                "instances",
                "bare-metal",
                "null"
              ]
            }
          },
          {
            "name": "resourceName",
            "required": false,
            "in": "query",
            "description": "The name of the resource.",
            "schema": {
              "example": "vmi100101",
              "type": "string"
            }
          },
          {
            "name": "resourceDisplayName",
            "required": false,
            "in": "query",
            "description": "The display name of the resource.",
            "schema": {
              "example": "my instance",
              "type": "string"
            }
          },
          {
            "name": "ipVersion",
            "required": false,
            "in": "query",
            "description": "The VIP version.",
            "schema": {
              "example": "v4",
              "type": "string",
              "enum": [
                "v4"
              ]
            }
          },
          {
            "name": "ips",
            "required": false,
            "in": "query",
            "description": "Comma separated IPs",
            "schema": {
              "example": "10.214.121.145, 10.214.121.1, 10.214.121.11",
              "type": "string"
            }
          },
          {
            "name": "ip",
            "required": false,
            "in": "query",
            "description": "The ip of the VIP",
            "schema": {
              "example": "10.214.121.145",
              "type": "string"
            }
          },
          {
            "name": "type",
            "required": false,
            "in": "query",
            "description": "The VIP type.",
            "schema": {
              "example": "additional",
              "type": "string",
              "enum": [
                "additional",
                "floating"
              ]
            }
          },
          {
            "name": "dataCenter",
            "required": false,
            "in": "query",
            "description": "The dataCenter of the VIP.",
            "schema": {
              "example": "European Union (Germany) 3",
              "type": "string"
            }
          },
          {
            "name": "region",
            "required": false,
            "in": "query",
            "description": "The region of the VIP.",
            "schema": {
              "example": "EU",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of Vips.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListVipResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List VIPs",
        "tags": [
          "VIP"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" \"https://api.contabo.com/v1/vips\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get vips"
          }
        ]
      }
    },
    "/v1/vips/{ip}": {
      "get": {
        "description": "Get attributes values to a specific VIP on your account.",
        "operationId": "retrieveVip",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ip",
            "required": true,
            "in": "path",
            "description": "The ip of the VIP",
            "schema": {
              "example": "10.214.121.145",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard VIP attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindVipResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get specific VIP by ip",
        "tags": [
          "VIP"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: foo\" \"https://api.contabo.com/v1/vips/12345\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get vip 12345"
          }
        ]
      }
    },
    "/v1/vips/{ip}/{resourceType}/{resourceId}": {
      "post": {
        "description": "Assign a VIP to a VPS/VDS/Bare Metal using the machine id.",
        "operationId": "assignIp",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the resource",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "ip",
            "required": true,
            "in": "path",
            "description": "The ip you want to add the instance to",
            "schema": {
              "example": "127.0.0.1",
              "type": "string"
            }
          },
          {
            "name": "resourceType",
            "required": true,
            "in": "path",
            "description": "The resourceType using the VIP.",
            "schema": {
              "example": "instances",
              "type": "string",
              "enum": [
                "instances",
                "bare-metal"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard VIP attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssignVipResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Assign a VIP to an VPS/VDS/Bare Metal",
        "tags": [
          "VIP"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: foo\" \"https://api.contabo.com/v1/vips/127.0.0.1/instances/1001001\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb assign vip 127.0.0.1 1001001"
          }
        ]
      },
      "delete": {
        "description": "Unassign a VIP from an VPS/VDS/Bare Metal using the machine id.",
        "operationId": "unassignIp",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resourceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the resource",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "ip",
            "required": true,
            "in": "path",
            "description": "The ip you want to add the instance to",
            "schema": {
              "example": "127.0.0.1",
              "type": "string"
            }
          },
          {
            "name": "resourceType",
            "required": true,
            "in": "path",
            "description": "The resourceType using the VIP.",
            "schema": {
              "example": "instances",
              "type": "string",
              "enum": [
                "instances",
                "bare-metal"
              ]
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Unassign a VIP to a VPS/VDS/Bare Metal",
        "tags": [
          "VIP"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X DELETE -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: foo\" -d '{}' \"https://api.contabo.com/v1/vips/127.0.0.1/instances/1001001\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb unassign vip 127.0.0.1 1001001"
          }
        ]
      }
    },
    "/v1/vips/audits": {
      "get": {
        "description": "List and filters the history about your VIPs.",
        "operationId": "retrieveVipAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "vipId",
            "required": false,
            "in": "query",
            "description": "The identifier of the VIP.",
            "schema": {
              "example": "1b943b25a-c8b5-4570-9135-4bbaa7615b812345",
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "User name which did the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-12-31",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of VIPs audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListVipAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your VIPs (audit)",
        "tags": [
          "Vip Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/vips/audits\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history vips"
          }
        ]
      }
    },
    "/v1/secrets": {
      "get": {
        "description": "List and filter all secrets in your account.",
        "operationId": "retrieveSecretList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "Filter secrets by name",
            "schema": {
              "example": "mysecret",
              "type": "string"
            }
          },
          {
            "name": "type",
            "required": false,
            "in": "query",
            "description": "Filter secrets by type",
            "schema": {
              "type": "string",
              "enum": [
                "password",
                "ssh"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a list of secrets.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSecretResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List secrets",
        "tags": [
          "Secrets"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" \"https://api.contabo.com/v1/secrets\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get secrets"
          }
        ]
      },
      "post": {
        "description": "Create a new secret in your account with attributes name, type and value. Attribute type can be password or ssh.",
        "operationId": "createSecret",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSecretRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard secret attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSecretResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new secret",
        "tags": [
          "Secrets"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" \"https://api.contabo.com/v1/secrets\" -d '{ \"name\": \"First Secret\", \"value\": \"aep1ouHei2hiexeChie#\", \"type\":\"password\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb create secret --name 'First Secret' --value 'aep1ouHei2hiexeChie#' --type 'password'"
          }
        ]
      }
    },
    "/v1/secrets/{secretId}": {
      "get": {
        "description": "Get attributes values for a specific secret on your account.",
        "operationId": "retrieveSecret",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "secretId",
            "required": true,
            "in": "path",
            "description": "The id of the secret",
            "schema": {
              "format": "int64",
              "example": 123,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard secret attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindSecretResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get specific secret by id",
        "tags": [
          "Secrets"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" \"https://api.contabo.com/v1/secrets/123\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get secret 123"
          }
        ]
      },
      "patch": {
        "description": "Update attributes to your secret. Attributes are optional. If not set, the attributes will retain their original values. Only name and value can be updated.",
        "operationId": "updateSecret",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "secretId",
            "required": true,
            "in": "path",
            "description": "The id of the secret",
            "schema": {
              "format": "int64",
              "example": 123,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSecretRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard secret attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateSecretResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update specific secret by id",
        "tags": [
          "Secrets"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" \"https://api.contabo.com/v1/secrets/123\" -d '{\"name\": \"First Secret Updated\", \"value\": \"eiqueequ|ie2ahCohD1c\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb update secret 123 --name 'First Secret Updated' --value 'eiqueequ|ie2ahCohD1c'"
          }
        ]
      },
      "delete": {
        "description": "You can remove a specific secret from your account.",
        "operationId": "deleteSecret",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "secretId",
            "required": true,
            "in": "path",
            "description": "The id of the secret",
            "schema": {
              "format": "int64",
              "example": 123,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete existing secret by id",
        "tags": [
          "Secrets"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X DELETE -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" -d '{}' \"https://api.contabo.com/v1/secrets/123\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb delete secret 123"
          }
        ]
      }
    },
    "/v1/secrets/audits": {
      "get": {
        "description": "List and filters the history about your secrets.",
        "operationId": "retrieveSecretAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "secretId",
            "required": false,
            "in": "query",
            "description": "The id of the secret.",
            "schema": {
              "format": "int64",
              "example": 123,
              "type": "integer"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "changedBy of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of secrets audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSecretAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your secrets (audit)",
        "tags": [
          "Secrets Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/secrets/audits\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history secrets"
          }
        ]
      }
    },
    "/v1/private-networks": {
      "get": {
        "description": "List and filter all Private Networks in your account",
        "operationId": "retrievePrivateNetworkList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "The name of the Private Network",
            "schema": {
              "example": "myPrivateNetwork",
              "type": "string"
            }
          },
          {
            "name": "instanceIds",
            "required": false,
            "in": "query",
            "description": "Comma separated instances identifiers",
            "schema": {
              "example": "100, 101, 102",
              "type": "string"
            }
          },
          {
            "name": "region",
            "required": false,
            "in": "query",
            "description": "The slug of the region where your Private Network is located",
            "schema": {
              "example": "EU",
              "type": "string"
            }
          },
          {
            "name": "dataCenter",
            "required": false,
            "in": "query",
            "description": "The data center where your Private Network is located",
            "schema": {
              "example": "European Union 1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of Private Networks.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPrivateNetworkResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List Private Networks",
        "tags": [
          "Private Networks"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/private-networks\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get privateNetworks"
          }
        ]
      },
      "post": {
        "description": "Create a new Private Network in your account.",
        "operationId": "createPrivateNetwork",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePrivateNetworkRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard Private Network attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePrivateNetworkResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new Private Network",
        "tags": [
          "Private Networks"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST \"https://api.contabo.com/v1/private-networks\" -H  \"accept: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\"  -H  \"x-trace-id: foo\"  -H  \"x-trace-id: 123213\" -H \"Content-Type: application/json\" -d -d '{\"name\":\"myPrivateNetwork\",\"description\":\"myPrivateNetwork\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb create privateNetwork --name myPrivateNetwork --region EU --description \"myPrivateNetwork\""
          }
        ]
      }
    },
    "/v1/private-networks/{privateNetworkId}": {
      "patch": {
        "description": "Update a Private Network by id in your account.",
        "operationId": "patchPrivateNetwork",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "privateNetworkId",
            "required": true,
            "in": "path",
            "description": "The identifier of the Private Network",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchPrivateNetworkRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard Private Network attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatchPrivateNetworkResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update a Private Network by id",
        "tags": [
          "Private Networks"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH \"https://api.contabo.com/v1/private-networks/12345\" -H  \"accept: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\"  -H  \"x-trace-id: foo\"  -H  \"x-trace-id: 123213\" -H \"Content-Type: application/json\" -d '{\"name\":\"myPrivateNetwork\",\"description\":\"myPrivateNetwork\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb update privateNetwork 12345 --name myPrivateNetwork --description \"myPrivateNetwork\""
          }
        ]
      },
      "get": {
        "description": "Get attributes values to a specific Private Network on your account.",
        "operationId": "retrievePrivateNetwork",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "privateNetworkId",
            "required": true,
            "in": "path",
            "description": "The identifier of the Private Network",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard Private Network attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindPrivateNetworkResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get specific Private Network by id",
        "tags": [
          "Private Networks"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: foo\" \"https://api.contabo.com/v1/private-networks/12345\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get privateNetwork 12345"
          }
        ]
      },
      "delete": {
        "description": "Delete existing Virtual Private Cloud by id and automatically unassign all instances from it",
        "operationId": "deletePrivateNetwork",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "privateNetworkId",
            "required": true,
            "in": "path",
            "description": "The identifier of the Private Network",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete existing Private Network by id",
        "tags": [
          "Private Networks"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X DELETE -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: foo\" -d '{}' \"https://api.contabo.com/v1/private-networks/12345\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb delete privateNetwork 12345"
          }
        ]
      }
    },
    "/v1/private-networks/{privateNetworkId}/instances/{instanceId}": {
      "post": {
        "description": "Add a specific instance to a Private Network",
        "operationId": "assignInstancePrivateNetwork",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "privateNetworkId",
            "required": true,
            "in": "path",
            "description": "The identifier of the Private Network",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 100,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "The instance will be added to the Private Network",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssignInstancePrivateNetworkResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Add instance to a Private Network",
        "tags": [
          "Private Networks"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: foo\" \"https://api.contabo.com/v1/private-networks/12345/instances/100\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb assign privateNetwork 12345 100"
          }
        ]
      },
      "delete": {
        "description": "Remove a specific instance from a Private Network",
        "operationId": "unassignInstancePrivateNetwork",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "privateNetworkId",
            "required": true,
            "in": "path",
            "description": "The identifier of the Private Network",
            "schema": {
              "format": "int64",
              "example": 100,
              "type": "integer"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 100,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "The instance will be removed from the Private Network",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnassignInstancePrivateNetworkResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Remove instance from a Private Network",
        "tags": [
          "Private Networks"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X DELETE -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: foo\" -d '{}' \"https://api.contabo.com/v1/private-networks/12345/instances/100\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb unassign privateNetwork 12345 100"
          }
        ]
      }
    },
    "/v1/private-networks/audits": {
      "get": {
        "description": "List and filters the history about your Private Networks.",
        "operationId": "retrievePrivateNetworkAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "privateNetworkId",
            "required": false,
            "in": "query",
            "description": "The identifier of the Private Network",
            "schema": {
              "format": "int64",
              "example": "12345",
              "type": "integer"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "User name which did the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2023-05-31",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of Private Networks audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPrivateNetworkAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your Private Networks (audit)",
        "tags": [
          "Private Networks Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/private-networks/audits\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history privateNetworks"
          }
        ]
      }
    },
    "/v1/users": {
      "get": {
        "description": "List and filter all your users.",
        "operationId": "retrieveUserList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "email",
            "required": false,
            "in": "query",
            "description": "Filter as substring match for user emails.",
            "schema": {
              "example": "john.doe@example.com",
              "type": "string"
            }
          },
          {
            "name": "enabled",
            "required": false,
            "in": "query",
            "description": "Filter if user is enabled or not.",
            "schema": {
              "example": "true",
              "type": "boolean"
            }
          },
          {
            "name": "owner",
            "required": false,
            "in": "query",
            "description": "Filter if user is owner or not.",
            "schema": {
              "example": "true",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of users.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListUserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List users",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/users' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get users"
          }
        ]
      },
      "post": {
        "description": "Create a new user with required attributes name, email, enabled, totp (=Two-factor authentication 2FA), admin (=access to all endpoints and resources), accessAllResources and roles. You can't specify any password / secrets for the user. For security reasons the user will have to specify secrets on his own.",
        "operationId": "createUser",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard user attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateUserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new user",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST 'https://api.contabo.com/v1/users' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213' -d '{ \"firstName\": \"John\", \"lastName\": \"Doe\", \"email\": \"john.doe@example.com\", \"enabled\": true, \"totp\": false, \"locale\": \"en\", \"roles\": [2]}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb create user --firstName John --lastName Doe --email john.doe@example.com --enabled --locale en --roles 2"
          }
        ]
      }
    },
    "/v1/users/{userId}": {
      "get": {
        "description": "Get attributes for a specific user.",
        "operationId": "retrieveUser",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "The identifier of the user.",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard user attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindUserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get specific user by id",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/users/6cdf5968-f9fe-4192-97c2-f349e813c5e8' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get user 6cdf5968-f9fe-4192-97c2-f349e813c5e8"
          }
        ]
      },
      "patch": {
        "description": "Update attributes of a user. You may only specify the attributes you want to change. If an attribute is not set, it will retain its original value.",
        "operationId": "updateUser",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "The identifier of the user.",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard user attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateUserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update specific user by id",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH 'https://api.contabo.com/v1/users/6cdf5968-f9fe-4192-97c2-f349e813c5e8' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213' -d '{\"enabled\":true,\"roles\":[1,2,3]}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb update user 6cdf5968-f9fe-4192-97c2-f349e813c5e8 --enabled --roles 1"
          }
        ]
      },
      "delete": {
        "description": "By deleting a user he will not be able to access any endpoints or resources any longer. In order to temporarily disable a user please update its `enabled` attribute.",
        "operationId": "deleteUser",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "The identifier of the user.",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete existing user by id",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X DELETE 'https://api.contabo.com/v1/users/6cdf5968-f9fe-4192-97c2-f349e813c5e8' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213' -d '{}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb delete user 6cdf5968-f9fe-4192-97c2-f349e813c5e8"
          }
        ]
      }
    },
    "/v1/users/{userId}/reset-password": {
      "post": {
        "description": "Send reset password email for a specific user",
        "operationId": "resetPassword",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "The identifier of the user.",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          },
          {
            "name": "redirectUrl",
            "required": false,
            "in": "query",
            "description": "The redirect url used for resetting password",
            "schema": {
              "example": "https://test.contabo.de",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Send reset password email",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST 'https://api.contabo.com/v1/users/6cdf5968-f9fe-4192-97c2-f349e813c5e8/reset-password' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb resetPassword user 6cdf5968-f9fe-4192-97c2-f349e813c5e8"
          }
        ]
      }
    },
    "/v1/users/{userId}/resend-email-verification": {
      "post": {
        "description": "Resend email verification for a specific user",
        "operationId": "resendEmailVerification",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "The identifier of the user.",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          },
          {
            "name": "redirectUrl",
            "required": false,
            "in": "query",
            "description": "The redirect url used for email verification",
            "schema": {
              "example": "https://test.contabo.de",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Resend email verification",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST 'https://api.contabo.com/v1/users/6cdf5968-f9fe-4192-97c2-f349e813c5e8/resend-email-verification' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb resendEmailVerification user 6cdf5968-f9fe-4192-97c2-f349e813c5e8"
          }
        ]
      }
    },
    "/v1/users/client": {
      "get": {
        "description": "Get idm client.",
        "operationId": "retrieveUserClient",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard client attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindClientResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get client",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/users/client' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          }
        ]
      }
    },
    "/v1/users/client/secret": {
      "put": {
        "description": "Generate and get new client secret.",
        "operationId": "generateClientSecret",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains new client secret.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateClientSecretResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Generate new client secret",
        "tags": [
          "Users"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PUT 'https://api.contabo.com/v1/users/client/secret' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb generateSecret user"
          }
        ]
      }
    },
    "/v1/users/is-password-set": {
      "get": {
        "description": "Get info about idm user if the password is set.",
        "operationId": "retrieveUserIsPasswordSet",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": false,
            "in": "query",
            "description": "The user ID for checking if password is set for him",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard user attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindUserIsPasswordSetResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get user is password set status",
        "tags": [
          "Users"
        ]
      }
    },
    "/v1/roles": {
      "get": {
        "description": "List and filter all your roles. A role allows you to specify permission to api endpoints and resources like compute.",
        "operationId": "retrieveRoleList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "The name of the role",
            "schema": {
              "example": "Web",
              "type": "string"
            }
          },
          {
            "name": "apiName",
            "required": false,
            "in": "query",
            "description": "The name of api",
            "schema": {
              "example": "/v1/compute/instances",
              "type": "string"
            }
          },
          {
            "name": "tagName",
            "required": false,
            "in": "query",
            "description": "The name of the tag",
            "schema": {
              "example": "Web",
              "type": "string"
            }
          },
          {
            "name": "type",
            "required": false,
            "in": "query",
            "description": "The type of the tag. Can be either `default` or `custom`",
            "schema": {
              "example": "custom",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of roles.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListRoleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List roles",
        "tags": [
          "Roles"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/roles' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get roles"
          }
        ]
      },
      "post": {
        "description": "Create a new role. In order to get a list availbale api enpoints (apiName) and their actions please refer to the GET api-permissions endpoint. For specifying `resources` please enter tag ids. For those to take effect please assign them to a resource in the tag management api.",
        "operationId": "createRole",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard role attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateRoleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new role",
        "tags": [
          "Roles"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST 'https://api.contabo.com/v1/roles' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213' -d '{\"name\":\"infrastructure\",\"permissions\":{ \"apiName\": \"/v1/compute/instances\", \"actions\": [ \"CREATE\", \"READ\" ], \"resources\": [1111,2222] } }'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb create role --name \"infrastructure\" --permissions '[{\"apiName\" : \"/v1/compute/instances\", \"actions\": [\"CREATE\", \"READ\"], \"resources\": [1111, 2222]}]'"
          }
        ]
      }
    },
    "/v1/roles/{roleId}": {
      "get": {
        "description": "Get attributes of specific role.",
        "operationId": "retrieveRole",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "roleId",
            "required": true,
            "in": "path",
            "description": "The identifier of the role",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard role attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindRoleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get specific role by id",
        "tags": [
          "Roles"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/roles/12345' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get role 12345"
          }
        ]
      },
      "put": {
        "description": "Update attributes to your role. Attributes are optional. If not set, the attributes will retain their original values.",
        "operationId": "updateRole",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "roleId",
            "required": true,
            "in": "path",
            "description": "The identifier of the role",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard role attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateRoleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update specific role by id",
        "tags": [
          "Roles"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH 'https://api.contabo.com/v1/roles/12345' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213' -d '{\"name\":\"infrastructure\",\"permissions\":[ {\"apiName\": \"/v1/compute/instances\", \"actions\": [\"READ\"] }], \"accessAllResources\": true }'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb update role 12345 --name newName --permissions '[{\"apiName\" : \"/v1/compute/instances\", \"actions\": [\"CREATE\", \"READ\"]}]' --accessAllResources"
          }
        ]
      },
      "delete": {
        "description": "You can't delete a role if it is still assigned to a user. In such cases please remove the role from the users.",
        "operationId": "deleteRole",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "roleId",
            "required": true,
            "in": "path",
            "description": "The identifier of the role",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete existing role by id",
        "tags": [
          "Roles"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X DELETE 'https://api.contabo.com/v1/roles/12345' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213' -d '{}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb delete role 12345"
          }
        ]
      }
    },
    "/v1/roles/api-permissions": {
      "get": {
        "description": "List all available API permissions. This list serves as a reference for specifying roles. As endpoints differ in their possibilities not all actions are available for each endpoint.",
        "operationId": "retrieveApiPermissionsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "apiName",
            "required": false,
            "in": "query",
            "description": "The name of api",
            "schema": {
              "example": "/v1/compute/instances",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of API permissions.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListApiPermissionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List of API permissions",
        "tags": [
          "Roles"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/api-permissions' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get permissions"
          }
        ]
      }
    },
    "/v1/users/{userId}/object-storages/credentials": {
      "get": {
        "description": "Get list of S3 compatible object storage credentials for accessing it via S3 compatible tools like `aws` cli.",
        "operationId": "listObjectStorageCredentials",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "The identifier of the user.",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "objectStorageId",
            "required": false,
            "in": "query",
            "description": "The identifier of the S3 object storage",
            "schema": {
              "example": "d8417276-d2d9-43a9-a0a8-9a6fa6060246",
              "type": "string"
            }
          },
          {
            "name": "regionName",
            "required": false,
            "in": "query",
            "description": "Filter for Object Storage by regions. Available regions: Asia (Singapore), European Union, United States (Central)",
            "schema": {
              "example": "Asia (Singapore)",
              "type": "string"
            }
          },
          {
            "name": "displayName",
            "required": false,
            "in": "query",
            "description": "Filter for Object Storage by his displayName.",
            "schema": {
              "example": "Object Storage EU 420",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be an array of JSON objects that contains S3 credentials.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCredentialResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get list of S3 compatible object storage credentials for user.",
        "tags": [
          "Users Object Storage Credentials"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/users/6cdf5968-f9fe-4192-97c2-f349e813c5e8/object-storages/credentials' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get user-credentials 6cdf5968-f9fe-4192-97c2-f349e813c5e8"
          }
        ]
      }
    },
    "/v1/users/{userId}/object-storages/{objectStorageId}/credentials/{credentialId}": {
      "get": {
        "description": "Get S3 compatible object storage credentials for accessing it via S3 compatible tools like `aws` cli.",
        "operationId": "getObjectStorageCredentials",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "The identifier of the user.",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          },
          {
            "name": "objectStorageId",
            "required": true,
            "in": "path",
            "description": "The identifier of the S3 object storage",
            "schema": {
              "example": "d8417276-d2d9-43a9-a0a8-9a6fa6060246",
              "type": "string"
            }
          },
          {
            "name": "credentialId",
            "required": true,
            "in": "path",
            "description": "The ID of the object storage credential",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains S3 credentials.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindCredentialResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get S3 compatible object storage credentials.",
        "tags": [
          "Users Object Storage Credentials"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/users/6cdf5968-f9fe-4192-97c2-f349e813c5e8/object-storages/6641ae21-e45d-4e03-8e70-661067152d1d/credentials/12345' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get user-credentials 6cdf5968-f9fe-4192-97c2-f349e813c5e8 6641ae21-e45d-4e03-8e70-661067152d1d 12345"
          }
        ]
      },
      "patch": {
        "description": "Regenerates secret key of specified user for the a specific S3 compatible object storages.",
        "operationId": "regenerateObjectStorageCredentials",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "description": "The identifier of the user.",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          },
          {
            "name": "objectStorageId",
            "required": true,
            "in": "path",
            "description": "The identifier of the S3 object storage",
            "schema": {
              "example": "d8417276-d2d9-43a9-a0a8-9a6fa6060246",
              "type": "string"
            }
          },
          {
            "name": "credentialId",
            "required": true,
            "in": "path",
            "description": "The ID of the object storage credential",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains object storage S3 credentials.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindCredentialResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Regenerates secret key of specified user for the S3 compatible object storages.",
        "tags": [
          "Users Object Storage Credentials"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH 'https://api.contabo.com/v1/users/6cdf5968-f9fe-4192-97c2-f349e813c5e8/object-storages/6641ae21-e45d-4e03-8e70-661067152d1d/credentials/12345' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb regenerate user-credentials 6cdf5968-f9fe-4192-97c2-f349e813c5e8 6641ae21-e45d-4e03-8e70-661067152d1d 12345"
          }
        ]
      }
    },
    "/v1/users/audits": {
      "get": {
        "description": "List and filter the history about your users.",
        "operationId": "retrieveUserAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "userId",
            "required": false,
            "in": "query",
            "description": "The identifier of the user.",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "changedBy of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of users audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListUserAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your users (audit)",
        "tags": [
          "Users Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/users/audits' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history users"
          }
        ]
      }
    },
    "/v1/roles/audits": {
      "get": {
        "description": "List and filter the history about your roles.",
        "operationId": "retrieveRoleAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "roleId",
            "required": false,
            "in": "query",
            "description": "The identifier of the role.",
            "schema": {
              "format": "int64",
              "example": "12345",
              "type": "integer"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "changedBy of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of roles audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListRoleAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your roles (audit)",
        "tags": [
          "Roles Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/roles/audits' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history roles"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/actions/start": {
      "post": {
        "description": "Starting a compute instance / resource is like powering on a real server. If the compute instance / resource is already started nothing will happen. You may check the current status anytime when getting information about a compute instance / resource.",
        "operationId": "start",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the compute instance / resource to be started in rescue mode.",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Information of started instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstanceStartActionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Start a compute instance / resource identified by its id",
        "tags": [
          "Instance Actions"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/compute/instances/1234/actions/start\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb start instance 1234"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/actions/restart": {
      "post": {
        "description": "To restart a compute instance that has been identified by its id, you should perform a restart action on it.",
        "operationId": "restart",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the compute instance / resource to be started in rescue mode.",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Information of restarted instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstanceRestartActionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Restart a compute instance / resource identified by its id.",
        "tags": [
          "Instance Actions"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H \"x-trace-id: 123213\" \"https://api.contabo.com/v1/compute/instances/1234/actions/restart\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb restart instance 1234"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/actions/stop": {
      "post": {
        "description": "Stopping a compute instance / resource is like powering off a real server. So please be aware that data may be lost. Alternatively you may log in and shut your compute instance / resource gracefully via the operating system. If the compute instance / resource is already stopped nothing will happen. You may check the current status anytime when getting information about a compute instance / resource.",
        "operationId": "stop",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the compute instance / resource to be started in rescue mode.",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Information of stoped instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstanceStopActionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Stop compute instance / resource by its id",
        "tags": [
          "Instance Actions"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H \"x-trace-id: 123213\" \"https://api.contabo.com/v1/compute/instances/1234/actions/stop\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb stop instance 1234"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/actions/shutdown": {
      "post": {
        "description": "Shutdown an compute instance / resource. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.",
        "operationId": "shutdown",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the compute instance / resource to be started in rescue mode.",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Information of a shutdown instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstanceShutdownActionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Shutdown compute instance / resource by its id",
        "tags": [
          "Instance Actions"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H \"x-trace-id: 123213\" \"https://api.contabo.com/v1/compute/instances/1234/actions/shutdown\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb shutdown instance 1234"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/actions/rescue": {
      "post": {
        "description": "You can reboot your instance in rescue mode to resolve system issues. Rescue system is Linux based and its booted instead of your regular operating system. The disk containing your operating sytstem, software and your data is already mounted for you to access and repair/modify files. After a reboot your compute instance will boot your operating system. Please note that this is for advanced users.",
        "operationId": "rescue",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the compute instance / resource to be started in rescue mode.",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstancesActionsRescueRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Information of rescued instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstanceRescueActionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Rescue a compute instance / resource identified by its id",
        "tags": [
          "Instance Actions"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST \"https://api.contabo.com/v1/compute/instances/1234/actions/rescue\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H \"x-trace-id: 123213\" -d '{\"sshKeys\": [1,2], \"rootPassword\": 12, \"userData\": \"#cloud-config\n user: root\n ssh_pwauth: true\n disable_root: false\n ssh_authorized_keys:\n - <sshkey>\n chpasswd:\n list:\n - root:<password> \n expire: False\n\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb rescue instance 1234 --sshKeys \"1,2\" --rootPassword 12 --userData '#cloud-config\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    user: root\n    ssh_pwauth: true\n    disable_root: false\n    ssh_authorized_keys:\n    - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL6Bja3wXjkpxkGrNkBqcb/WeRlWO33XWnKHS/Uf9lmH testKey'"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/actions/resetPassword": {
      "post": {
        "description": "Reset password for a compute instance / resource referenced by an id. This will reset the current password to the password that you provided in the body of this request.",
        "operationId": "resetPasswordAction",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the compute instance / resource to be started in rescue mode.",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstancesResetPasswordActionsRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Information of an instance password reset",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstanceResetPasswordActionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Reset password for a compute instance / resource referenced by an id",
        "tags": [
          "Instance Actions"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H \"x-trace-id: 123213\" \"https://api.contabo.com/v1/compute/instances/1234/actions/resetPassword\" -d '{\"sshKeys\": [1,2], \"rootPassword\": 12, \"userData\": \"'#cloud-config\\nuser: root\\nssh_pwauth: true\\ndisable_root: false\\nssh_authorized_keys:\\n  - <sshkey>\\nchpasswd:\\n  list:\\n    - root:<password> \\n expire: False\\n'\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb resetPassword instance 1234 --sshKeys \"1,2\" --rootPassword 12 --userData \"#cloud-config\n user: root\n ssh_pwauth: true\n disable_root: false\n ssh_authorized_keys:\n - <sshkey>\n chpasswd:\n list:\n - root:<password> \n expire: False\n\""
          }
        ]
      }
    },
    "/v1/compute/instances": {
      "get": {
        "description": "List and filter all instances in your account",
        "operationId": "retrieveInstancesList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "The name of the instance",
            "schema": {
              "example": "vmd12345",
              "type": "string"
            }
          },
          {
            "name": "displayName",
            "required": false,
            "in": "query",
            "description": "The display name of the instance",
            "schema": {
              "example": "myTestInstance",
              "type": "string"
            }
          },
          {
            "name": "dataCenter",
            "required": false,
            "in": "query",
            "description": "The data center of the instance",
            "schema": {
              "example": "European Union 1",
              "type": "string"
            }
          },
          {
            "name": "region",
            "required": false,
            "in": "query",
            "description": "The Region of the instance",
            "schema": {
              "example": "EU",
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": false,
            "in": "query",
            "description": "The identifier of the instance (deprecated)",
            "deprecated": true,
            "schema": {
              "format": "int64",
              "example": 100,
              "type": "integer"
            }
          },
          {
            "name": "instanceIds",
            "required": false,
            "in": "query",
            "description": "Comma separated instances identifiers",
            "schema": {
              "example": "100, 101, 102",
              "type": "string"
            }
          },
          {
            "name": "status",
            "required": false,
            "in": "query",
            "description": "The status of the instance",
            "schema": {
              "example": "provisioning,installing",
              "type": "string",
              "enum": [
                "provisioning",
                "uninstalled",
                "running",
                "stopped",
                "error",
                "installing",
                "unknown",
                "manual_provisioning",
                "product_not_available",
                "verification_required",
                "rescue",
                "pending_payment",
                "other",
                "reset_password"
              ]
            }
          },
          {
            "name": "productIds",
            "required": false,
            "in": "query",
            "description": "Identifiers of the instance products",
            "schema": {
              "example": "V68,V77",
              "type": "string"
            }
          },
          {
            "name": "addOnIds",
            "required": false,
            "in": "query",
            "description": "Identifiers of Addons the instances have",
            "schema": {
              "example": "1044,827",
              "type": "string"
            }
          },
          {
            "name": "productTypes",
            "required": false,
            "in": "query",
            "description": "Comma separated instance's category depending on Product Id",
            "schema": {
              "example": "ssd, hdd, nvme",
              "type": "string"
            }
          },
          {
            "name": "ipConfig",
            "required": false,
            "in": "query",
            "description": "Filter instances that have an ip config",
            "schema": {
              "example": true,
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Full text search when listing the instances. Can be searched by `name`, `displayName`, `ipAddress`",
            "schema": {
              "example": "vmd12345",
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "required": false,
            "in": "query",
            "description": "Filter by customer ID",
            "schema": {
              "example": "22223",
              "type": "string"
            }
          },
          {
            "name": "tenantId",
            "required": false,
            "in": "query",
            "description": "Filter by tenant ID",
            "schema": {
              "example": "DE",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of instances.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListInstancesResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List instances",
        "tags": [
          "Instances"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/compute/instances' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get instances"
          }
        ]
      },
      "post": {
        "description": "Create a new instance for your account with the provided parameters.         <table>           <tr><th>ProductId</th><th>Product</th><th>Disk Size</th></tr>           <tr><td>V91</td><td>VPS 10 NVMe</td><td>75 GB NVMe</td></tr>           <tr><td>V92</td><td>VPS 10 SSD</td><td>150 GB SSD</td></tr>          <tr><td>V93</td><td>VPS 10 Storage</td><td>300 GB SSD</td></tr>          <tr><td>V94</td><td>VPS 20 NVMe</td><td>100 GB NVMe</td></tr>           <tr><td>V95</td><td>VPS 20 SSD</td><td>200 GB SSD</td></tr>          <tr><td>V96</td><td>VPS 20 Storage</td><td>400 GB SSD</td></tr>           <tr><td>V97</td><td>VPS 30 NVMe</td><td>200 GB NVMe</td></tr>           <tr><td>V98</td><td>VPS 30 SSD</td><td>400 GB SSD</td></tr>          <tr><td>V99</td><td>VPS 30 Storage</td><td>1000 GB NVMe</td></tr>           <tr><td>V100</td><td>VPS 40 NVMe</td><td>250 GB NVMe</td></tr>           <tr><td>V101</td><td>VPS 40 SSD</td><td>500 GB SSD</td></tr>           <tr><td>V102</td><td>VPS 40 Storage</td><td>1200 GB NVMe</td></tr>           <tr><td>V103</td><td>VPS 50 NVMe</td><td>300 GB NVMe</td></tr>           <tr><td>V104</td><td>VPS 50 SSD</td><td>600 GB SSD</td></tr>           <tr><td>V105</td><td>VPS 50 Storage</td><td>1400 GB SSD</td></tr>           <tr><td>V106</td><td>VPS 60 NVMe</td><td>350 GB NVMe</td></tr>           <tr><td>V107</td><td>VPS 60 SSD</td><td>700 GB SSD</td></tr>           <tr><td>V8</td><td>VDS S</td><td>180 GB NVMe</td></tr>           <tr><td>V9</td><td>VDS M</td><td>240 GB NVMe</td></tr>           <tr><td>V10</td><td>VDS L</td><td>360 GB NVMe</td></tr>           <tr><td>V11</td><td>VDS XL</td><td>480 GB NVMe</td></tr>           <tr><td>V16</td><td>VDS XXL</td><td>720 GB NVMe</td></tr>           </table>",
        "operationId": "createInstance",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInstanceRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard instance attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateInstanceResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new instance",
        "tags": [
          "Instances"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST 'https://api.contabo.com/v1/compute/instances' -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H 'x-trace-id: 123213' -d '{\"region\": \"EU\", \"productId\": \"V1\", \"imageId\": \"9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d\", \"period\": 1, \"license\": \"PleskHost\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "create instance --period 1 --imageId \"9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d\" --license 'PleskHost' --productId \"V1\" -r \"EU\""
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}": {
      "get": {
        "description": "Get attributes values to a specific instance on your account.",
        "operationId": "retrieveInstance",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard instance attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindInstanceResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get specific instance by id",
        "tags": [
          "Instances"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/compute/instances/12345' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get instance 12345"
          }
        ]
      },
      "patch": {
        "description": "Update specific instance by instanceId.",
        "operationId": "patchInstance",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchInstanceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains instanceId and createdDate.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatchInstanceResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update specific instance",
        "tags": [
          "Instances"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH 'https://api.contabo.com/v1/compute/instances/12345' -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" -d '{\"displayName\": \"VPS\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb update instance 12345 --displayName \"VPS\""
          }
        ]
      },
      "put": {
        "description": "You can reinstall a specific instance with a new image and optionally add ssh keys, a root password or cloud-init.",
        "operationId": "reinstallInstance",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReinstallInstanceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains instanceId and createdDate.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReinstallInstanceResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Reinstall specific instance",
        "tags": [
          "Instances"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PUT 'https://api.contabo.com/v1/compute/instances/12345' -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" -d '{\"imageId\": \"a2c26e8f-84a5-4f3e-9c0e-b06511928cc0\", \"sshKeys\": [1,2], \"rootPassword\": 12}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb reinstall instance 12345 --imageId \"a2c26e8f-84a5-4f3e-9c0e-b06511928cc0\" --sshKeys \"1,2\" --rootPassword 12"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/cancel": {
      "post": {
        "description": "Your are free to cancel a previously created instance at any time.",
        "operationId": "cancelInstance",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelInstanceRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard custom image attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelInstanceResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Cancel specific instance by id",
        "tags": [
          "Instances"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST 'https://api.contabo.com/v1/compute/instances/12345/cancel' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb cancel instance 12345"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/upgrade": {
      "post": {
        "description": "In order to enhance your instance with additional features you can purchase add-ons.   Currently only firewalling and private network addon is allowed.",
        "operationId": "upgradeInstance",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpgradeInstanceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard instance attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatchInstanceResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Upgrading instance capabilities",
        "tags": [
          "Instances"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST 'https://api.contabo.com/v1/compute/instances/12345/upgrade' -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" -d '{ \"privateNetworking\": {} }'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb upgrade instance 12345 --privateNetworking=true"
          }
        ]
      }
    },
    "/v1/compute/instances/actions/audits": {
      "get": {
        "description": "List and filters the history about your actions your triggered via the API.",
        "operationId": "retrieveInstancesActionsAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "instanceId",
            "required": false,
            "in": "query",
            "description": "The identifier of the instancesActions.",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "changedBy of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of action audits triggered via the API.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListInstancesActionsAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your actions (audit) triggered via the API",
        "tags": [
          "Instance Actions Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/compute/instances/actions/audits\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history instancesActions"
          }
        ]
      }
    },
    "/v1/compute/instances/audits": {
      "get": {
        "description": "List and filters the history about your instances.",
        "operationId": "retrieveInstancesAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "instanceId",
            "required": false,
            "in": "query",
            "description": "The identifier of the instances.",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "changedBy of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of instances audits triggered via the API.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListInstancesAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your instances (audit)",
        "tags": [
          "Instances Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/compute/instances/audits\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history instances"
          }
        ]
      }
    },
    "/v1/compute/images": {
      "get": {
        "description": "List and filter all available standard images provided by [Contabo](https://contabo.com) and your uploaded custom images.",
        "operationId": "retrieveImageList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "The name of the image",
            "schema": {
              "example": "Ubuntu",
              "type": "string"
            }
          },
          {
            "name": "standardImage",
            "required": false,
            "in": "query",
            "description": "Flag indicating that image is either a standard (true) or a custom image (false)",
            "schema": {
              "example": true,
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "full text search on image name or image os type",
            "schema": {
              "example": "windows or Debian",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of images.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListImageResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List available standard and custom images",
        "tags": [
          "Images"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/compute/images' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get images"
          }
        ]
      },
      "post": {
        "description": "In order to provide a custom image please specify an URL from where the image can be directly downloaded. A custom image must be in either `.iso` or `.qcow2` format. Other formats will be rejected. Please note that downloading can take a while depending on network speed resp. bandwidth and size of image. You can check the status by retrieving information about the image via a GET request. Download will be rejected if you have exceeded your limits.",
        "operationId": "createCustomImage",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomImageRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard custom image attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCustomImageResponse"
                }
              }
            }
          },
          "415": {
            "description": "The response will be an error in case the provided image URL is not in .qcow2 or .iso format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCustomImageFailResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Provide a custom image",
        "tags": [
          "Images"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST 'https://api.contabo.com/v1/compute/images' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213' -d '{\"name\": \"Ubuntu Custom Image\", \"description\": \"Ubuntu Server 20.04.2 LTS\", \"url\": \"https://example.com/image.qcow2\", \"osType\": \"Linux\", \"version\": \"20.04.2\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb create image --name 'Ubuntu Custom Image' --description 'Ubuntu Server 20.04.2 LTS' --url https://example.com/image.qcow2 --osType Linux --version 20.04.2"
          }
        ]
      }
    },
    "/v1/compute/images/{imageId}": {
      "get": {
        "description": "Get details about a specific image. This could be either a standard or custom image. In case of an custom image you can also check the download status",
        "operationId": "retrieveImage",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "imageId",
            "required": true,
            "in": "path",
            "description": "The identifier of the image",
            "schema": {
              "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard custom image attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindImageResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get details about a specific image by its id",
        "tags": [
          "Images"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/compute/images/9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get image 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
          }
        ]
      },
      "patch": {
        "description": "Update name of the custom image",
        "operationId": "updateImage",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "imageId",
            "required": true,
            "in": "path",
            "description": "The identifier of the image",
            "schema": {
              "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomImageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard custom image attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCustomImageResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update custom image name by its id",
        "tags": [
          "Images"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH 'https://api.contabo.com/v1/compute/images/9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213' -d '{\"name\": \"Ubuntu Custom Image\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb update image 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d --name 'Ubuntu Custom Image'"
          }
        ]
      },
      "delete": {
        "description": "Your are free to delete a previously uploaded custom images at any time",
        "operationId": "deleteImage",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "imageId",
            "required": true,
            "in": "path",
            "description": "The identifier of the image",
            "schema": {
              "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete an uploaded custom image by its id",
        "tags": [
          "Images"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X DELETE 'https://api.contabo.com/v1/compute/images/9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -d '{}' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb delete image 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
          }
        ]
      }
    },
    "/v1/compute/images/stats": {
      "get": {
        "description": "List statistics regarding the customer's custom images such as the number of custom images uploaded, used disk space, free available disk space and total available disk space",
        "operationId": "retrieveCustomImagesStats",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains the custom images count, the total available disk space, the used disk space and the free disk space.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomImagesStatsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List statistics regarding the customer's custom images",
        "tags": [
          "Images"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/compute/images/stats' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get images stats"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/snapshots": {
      "get": {
        "description": "List and filter all your snapshots for a specific instance",
        "operationId": "retrieveSnapshotList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "Filter as substring match for snapshots names.",
            "schema": {
              "example": "Snapshot.Server",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of snapshots attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSnapshotResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List snapshots",
        "tags": [
          "Snapshots"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/compute/instances/12345/snapshots' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get snapshots 12345"
          }
        ]
      },
      "post": {
        "description": "Create a new snapshot for instance, with name and description attributes",
        "operationId": "createSnapshot",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSnapshotRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard snapshot attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSnapshotResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new instance snapshot",
        "tags": [
          "Snapshots"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST 'https://api.contabo.com/v1/compute/instances/12345/snapshots' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213' -d '{\"name\":\"Snapshot-Server\",\"description\":\"Snapshot-Description\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb create snapshot 12345 --name 'Snapshot-Server' --description 'Snapshot-Description'"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/snapshots/{snapshotId}": {
      "get": {
        "description": "Get all attributes for a specific snapshot",
        "operationId": "retrieveSnapshot",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "snapshotId",
            "required": true,
            "in": "path",
            "description": "The identifier of the snapshot",
            "schema": {
              "example": "snap1628603855",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard snapshot attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindSnapshotResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Retrieve a specific snapshot by id",
        "tags": [
          "Snapshots"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/compute/instances/12345/snapshots/snap1628603855' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get snapshot 12345 snap1628603855"
          }
        ]
      },
      "patch": {
        "description": "Update attributes of a snapshot. You may only specify the attributes you want to change. If an attribute is not set, it will retain its original value.",
        "operationId": "updateSnapshot",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "snapshotId",
            "required": true,
            "in": "path",
            "description": "The identifier of the snapshot",
            "schema": {
              "example": "snap1628603855",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSnapshotRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard snapshot attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateSnapshotResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update specific snapshot by id",
        "tags": [
          "Snapshots"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH 'https://api.contabo.com/v1/compute/instances/12345/snapshots/snap1628603855' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213' -d '{\"name\":\"Snapshot\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb update snapshot 12345 snap1628603855 --name 'Snapshot'"
          }
        ]
      },
      "delete": {
        "description": "Delete existing instance snapshot by id",
        "operationId": "deleteSnapshot",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "snapshotId",
            "required": true,
            "in": "path",
            "description": "The identifier of the snapshot",
            "schema": {
              "example": "snap1628603855",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete existing snapshot by id",
        "tags": [
          "Snapshots"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X DELETE 'https://api.contabo.com/v1/compute/instances/12345/snapshots/snap1628603855' -H 'Content-Type: application/json' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -d '{}' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb delete snapshot 12345 snap1628603855"
          }
        ]
      }
    },
    "/v1/compute/instances/{instanceId}/snapshots/{snapshotId}/rollback": {
      "post": {
        "description": "Rollback the instance to a specific snapshot. In case the snapshot is not the latest one, it will automatically delete all the newer snapshots of the instance",
        "operationId": "rollbackSnapshot",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceId",
            "required": true,
            "in": "path",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "snapshotId",
            "required": true,
            "in": "path",
            "description": "The identifier of the snapshot",
            "schema": {
              "example": "snap1628603855",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RollbackSnapshotRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard snapshot attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RollbackSnapshotResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Revert the instance to a particular snapshot based on its identifier",
        "tags": [
          "Snapshots"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST 'https://api.contabo.com/v1/compute/instances/12345/snapshots/snap1628603855/rollback' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb rollback snapshot 12345 snap1628603855"
          }
        ]
      }
    },
    "/v1/compute/images/audits": {
      "get": {
        "description": "List and filters the history about your custom images.",
        "operationId": "retrieveImageAuditsList1",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "imageId",
            "required": false,
            "in": "query",
            "description": "The identifier of the image.",
            "schema": {
              "example": "e443eab5-647a-4bc3-b4f9-16f5a281224d",
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "UserId of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of custom images audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your custom images (audit)",
        "tags": [
          "Images Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/compute/images/audits\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history images"
          }
        ]
      }
    },
    "/v1/compute/snapshots/audits": {
      "get": {
        "description": "List and filters the history about your snapshots your triggered via the API.",
        "operationId": "retrieveSnapshotsAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "instanceId",
            "required": false,
            "in": "query",
            "description": "The identifier of the instance",
            "schema": {
              "format": "int64",
              "example": 12345,
              "type": "integer"
            }
          },
          {
            "name": "snapshotId",
            "required": false,
            "in": "query",
            "description": "The identifier of the snapshot",
            "schema": {
              "example": "snap1628603855",
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "changedBy of the user which led to the change",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of snapshots audits triggered via the API.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSnapshotsAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your snapshots (audit) triggered via the API",
        "tags": [
          "Snapshots Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/compute/snapshots/audits\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history snapshots"
          }
        ]
      }
    },
    "/v1/domains/handles": {
      "get": {
        "description": "List and filter all your handles",
        "operationId": "listHandles",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "Filter as substring match for handle name.",
            "schema": {
              "example": "MyHandle",
              "type": "string"
            }
          },
          {
            "name": "showDefaults",
            "required": false,
            "in": "query",
            "description": "Filter handles to show or not the public handles",
            "schema": {
              "example": "true",
              "type": "boolean"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "full text search on handles on handleid, organization name, handlename ",
            "schema": {
              "example": "hello",
              "type": "string"
            }
          },
          {
            "name": "countries",
            "required": false,
            "in": "query",
            "description": "list of country codes to filter handles that are available in these countries (comma separated)",
            "schema": {
              "example": "DE,US",
              "type": "string"
            }
          },
          {
            "name": "handleType",
            "required": false,
            "in": "query",
            "description": "Filter handles by type, e.g. person, organization.",
            "schema": {
              "example": "person",
              "type": "string"
            }
          },
          {
            "name": "firstName",
            "required": false,
            "in": "query",
            "description": "Filter handles by first name.",
            "schema": {
              "example": "FirstName",
              "type": "string"
            }
          },
          {
            "name": "lastName",
            "required": false,
            "in": "query",
            "description": "Filter handles by last name.",
            "schema": {
              "example": "LastName",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard handles attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HandleListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List all handles",
        "tags": [
          "Handles"
        ]
      },
      "post": {
        "description": "Create specific handle",
        "operationId": "createHandle",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HandleCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard handle attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HandleCreateResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create specific handle",
        "tags": [
          "Handles"
        ]
      }
    },
    "/v1/domains/handles/{handleId}": {
      "get": {
        "description": "Get specific handle",
        "operationId": "retrieveHandle",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "handleId",
            "required": true,
            "in": "path",
            "description": "The identifier of the handle",
            "schema": {
              "example": "CA123O1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard handle attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HandleFindResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get specific handle",
        "tags": [
          "Handles"
        ]
      },
      "delete": {
        "description": "Remove specific handle",
        "operationId": "removeHandle",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "handleId",
            "required": true,
            "in": "path",
            "description": "The identifier of the handle",
            "schema": {
              "example": "CA123O1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Remove specific handle",
        "tags": [
          "Handles"
        ]
      },
      "put": {
        "description": "Update specific handle",
        "operationId": "updateHandle",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "handleId",
            "required": true,
            "in": "path",
            "description": "The identifier of the handle",
            "schema": {
              "example": "CA123O1",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HandlePatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HandlePatchResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update specific handle",
        "tags": [
          "Handles"
        ]
      }
    },
    "/v1/domains/handles/{handleId}/default": {
      "patch": {
        "description": "Set default handle",
        "operationId": "setDefaultHandle",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "handleId",
            "required": true,
            "in": "path",
            "description": "The identifier of the handle",
            "schema": {
              "example": "CA123O1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object which will contain a details of a handle.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetDefaultHandleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Set default handle",
        "tags": [
          "Handles"
        ]
      }
    },
    "/v1/registries-domains/{domain}/check-availability": {
      "post": {
        "description": "Check if a specific domain is available or not",
        "operationId": "validateDomainAvailability",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "required": true,
            "in": "path",
            "description": "Domain Name",
            "schema": {
              "example": "testDomain.de",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The response signifies that the domain is available"
          },
          "404": {
            "description": "The response signifies that the domain is not available"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Check domain availablility",
        "tags": [
          "Domains"
        ]
      }
    },
    "/v1/domains": {
      "get": {
        "description": "List and filter all your domains",
        "operationId": "listDomains",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sld",
            "required": false,
            "in": "query",
            "description": "Filter as substring match for domain sld.",
            "schema": {
              "example": "testDomain",
              "type": "string"
            }
          },
          {
            "name": "tld",
            "required": false,
            "in": "query",
            "description": "Filter as substring match for domain tld.",
            "schema": {
              "example": "de",
              "type": "string"
            }
          },
          {
            "name": "status",
            "required": false,
            "in": "query",
            "description": "Filter domains by status",
            "schema": {
              "example": "ready",
              "type": "string",
              "enum": [
                "ready",
                "processing",
                "transferring in",
                "transferring out",
                "manual_task",
                "transferred"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard domains attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainsListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List all domains",
        "tags": [
          "Domains"
        ]
      },
      "post": {
        "description": "Create or transfer a domain",
        "operationId": "orderDomain",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DomainCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard domain attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainCreateResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create or transfer a domain",
        "tags": [
          "Domains"
        ]
      }
    },
    "/v1/domains/{domain}": {
      "get": {
        "description": "List specific domain",
        "operationId": "retrieveDomain",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "required": true,
            "in": "path",
            "description": "Domain Name",
            "schema": {
              "example": "testDomain.de",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard domains attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainFindResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List specific domain",
        "tags": [
          "Domains"
        ]
      },
      "patch": {
        "description": "Update nameservers and handles for a specific domain",
        "operationId": "updateDomain",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "required": true,
            "in": "path",
            "description": "Domain Name",
            "schema": {
              "example": "testDomain.de",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DomainPatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard domains attributes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainPatchResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update a specific domain",
        "tags": [
          "Domains"
        ]
      }
    },
    "/v1/domains/{domain}/cancel": {
      "post": {
        "description": "Cancel a specific domain",
        "operationId": "cancelDomain",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "required": true,
            "in": "path",
            "description": "Domain Name",
            "schema": {
              "example": "testDomain.de",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelDomainRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Response body has no content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainCancelResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Cancel a specific domain",
        "tags": [
          "Domains"
        ]
      }
    },
    "/v1/domains/{domain}/generate-auth-code": {
      "post": {
        "description": "Get auth code for a domain by id",
        "operationId": "getAuthCode",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "required": true,
            "in": "path",
            "description": "Domain Name",
            "schema": {
              "example": "testDomain.de",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains auth code of domain requested",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainAuthCodeRegenerateResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get auth code for a domain",
        "tags": [
          "Domains"
        ]
      }
    },
    "/v1/domains/{domain}/revoke-cancellation": {
      "post": {
        "description": "Revoke cancellation for a specific domain",
        "operationId": "revokeCancelDomain",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "required": true,
            "in": "path",
            "description": "Domain Name",
            "schema": {
              "example": "testDomain.de",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Revoke cancellation for a specific domain",
        "tags": [
          "Domains"
        ]
      }
    },
    "/v1/domains/{domain}/transfer-out": {
      "post": {
        "description": "Confirm transfer out for a domain",
        "operationId": "confirmDomainTransferOut",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "required": true,
            "in": "path",
            "description": "Domain Name",
            "schema": {
              "example": "testDomain.de",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Confirm transfer out for a domain",
        "tags": [
          "Domains",
          "Domains"
        ]
      },
      "delete": {
        "description": "Revoke transfer out for a domain",
        "operationId": "revokeDomainTransferOut",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "required": true,
            "in": "path",
            "description": "Domain Name",
            "schema": {
              "example": "testDomain.de",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Response body has no content"
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Revoke transfer out for a domain",
        "tags": [
          "Domains",
          "Domains"
        ]
      }
    },
    "/v1/domains/handles/audits": {
      "get": {
        "description": "List and filters the history about your handles.",
        "operationId": "retrieveHandlesAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "handleId",
            "required": false,
            "in": "query",
            "description": "The identifier of the handle.",
            "schema": {
              "example": "CA123O1",
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "UserId of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of handles audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HandleAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your handles (audit)",
        "tags": [
          "Handles Audits"
        ]
      }
    },
    "/v1/domains/audits": {
      "get": {
        "description": "List and filters the history about your Domains.",
        "operationId": "retrieveDomainsAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "domain",
            "required": false,
            "in": "query",
            "description": "The domain name.",
            "schema": {
              "example": "testDom.com",
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "UserId of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-06-02",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of Domains audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your Domains (audit)",
        "tags": [
          "Domains Audits"
        ]
      }
    },
    "/v1/object-storages": {
      "get": {
        "description": "List and filter all object storages in your account",
        "operationId": "retrieveObjectStorageList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "dataCenterName",
            "required": false,
            "in": "query",
            "description": "Filter for Object Storage locations.",
            "schema": {
              "minLength": 1,
              "example": "European Union 2",
              "type": "string"
            }
          },
          {
            "name": "s3TenantId",
            "required": false,
            "in": "query",
            "description": "Filter for Object Storage S3 tenantId.",
            "schema": {
              "example": "2cd2e5e1444a41b0bed16c6410ecaa84",
              "type": "string"
            }
          },
          {
            "name": "region",
            "required": false,
            "in": "query",
            "description": "Filter for Object Storage by regions. Available regions: EU, US-central, SIN",
            "schema": {
              "example": "EU",
              "type": "string"
            }
          },
          {
            "name": "displayName",
            "required": false,
            "in": "query",
            "description": "Filter for Object Storage by display name.",
            "schema": {
              "example": "MyObjectStorage",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of object storages.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListObjectStorageResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List all your object storages",
        "tags": [
          "Object Storages"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/object-storages\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get objectStorages"
          }
        ]
      },
      "post": {
        "description": "Create / purchase a new object storage in your account. Please note that you can only buy one object storage per location. You can actually increase the object storage space via `POST` to `/v1/object-storages/{objectStorageId}/resize`",
        "operationId": "createObjectStorage",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateObjectStorageRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The response will be a JSON object and contains standard object storage attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateObjectStorageResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new object storage",
        "tags": [
          "Object Storages"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST \"https://api.contabo.com/v1/object-storages\" -H  \"accept: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" -H \"Content-Type: application/json\" -d '{ \"displayName\": \"Object storage EU 1\", \"region\": \"EU\", \"autoScaling\": { \"state\": \"enabled\", \"sizeLimitTB\": 1 }, \"totalPurchasedSpaceTB\": 1 }'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb create objectStorage --displayName \"Object storage EU 1\" --region \"EU\" --totalPurchasedSpaceTB 1 --scalingState=enabled --scalingLimitTB 1"
          }
        ]
      }
    },
    "/v1/data-centers": {
      "get": {
        "description": "List all data centers and their corresponding regions.",
        "operationId": "retrieveDataCenterList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "slug",
            "required": false,
            "in": "query",
            "description": "Filter as match for data centers.",
            "schema": {
              "minLength": 1,
              "example": "EU1",
              "type": "string"
            }
          },
          {
            "name": "name",
            "required": false,
            "in": "query",
            "description": "Filter for Object Storages regions.",
            "schema": {
              "minLength": 1,
              "example": "European Union 1",
              "type": "string"
            }
          },
          {
            "name": "regionName",
            "required": false,
            "in": "query",
            "description": "Filter for Object Storage region names.",
            "schema": {
              "minLength": 1,
              "example": "European Union",
              "type": "string"
            }
          },
          {
            "name": "regionSlug",
            "required": false,
            "in": "query",
            "description": "Filter for Object Storage region slugs.",
            "schema": {
              "minLength": 1,
              "example": "EU",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of data centers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListDataCenterResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List data centers",
        "tags": [
          "Object Storages"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/data-centers\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get datacenters"
          }
        ]
      }
    },
    "/v1/object-storages/{objectStorageId}": {
      "get": {
        "description": "Get data for a specific object storage on your account.",
        "operationId": "retrieveObjectStorage",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectStorageId",
            "required": true,
            "in": "path",
            "description": "The identifier of the object storage.",
            "schema": {
              "example": "4a6f95be-2ac0-4e3c-8eed-0dc67afed640",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard object storage attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindObjectStorageResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get specific object storage by its id",
        "tags": [
          "Object Storages"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/object-storages/ea639fc6-9aae-4d71-af8b-046dda87a9cc\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb get objectStorage ea639fc6-9aae-4d71-af8b-046dda87a9cc"
          }
        ]
      },
      "patch": {
        "description": "Modifies the display name of object storage. Display name must be unique.",
        "operationId": "updateObjectStorage",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectStorageId",
            "required": true,
            "in": "path",
            "description": "The identifier of the object storage.",
            "schema": {
              "example": "4a6f95be-2ac0-4e3c-8eed-0dc67afed640",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchObjectStorageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains the object storage with updated display name.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelObjectStorageResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Modifies the display name of object storage",
        "tags": [
          "Object Storages"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH \"https://api.contabo.com/v1/object-storages/ea639fc6-9aae-4d71-af8b-046dda87a9cc\" -H  \"accept: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H \"x-trace-id: 123213\" -H \"Content-Type: application/json\" -d '{ \"displayName\": \"Object storage EU 2\"}'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb update objectStorage --displayName \"Object storage EU 1\""
          }
        ]
      }
    },
    "/v1/object-storages/{objectStorageId}/resize": {
      "post": {
        "description": "Upgrade object storage size. You can also adjust the autoscaling settings for your object storage. Autoscaling allows you to automatically purchase storage capacity on a monthly basis up to the specified limit.",
        "operationId": "upgradeObjectStorage",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectStorageId",
            "required": true,
            "in": "path",
            "description": "The identifier of the object storage.",
            "schema": {
              "example": "4a6f95be-2ac0-4e3c-8eed-0dc67afed640",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpgradeObjectStorageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains standard object storage attributes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpgradeObjectStorageResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Upgrade object storage size resp. update autoscaling settings.",
        "tags": [
          "Object Storages"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X POST -H \"accept: application/json\" -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: 123213\" -d '{ \"autoScaling\": { \"state\": \"enabled\", \"sizeLimitTB\": 6 }, \"totalPurchasedSpaceTB\": 8 }' \"https://api.contabo.com/v1/object-storages/ea639fc6-9aae-4d71-af8b-046dda87a9cc/resize\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb resize objectStorage ea639fc6-9aae-4d71-af8b-046dda87a9cc --totalPurchasedSpaceTB 8 --scalingLimitTB 6 --scalingState=\"enabled\""
          }
        ]
      }
    },
    "/v1/object-storages/{objectStorageId}/stats": {
      "get": {
        "description": "List usage statistics about the specified object storage such as the number of objects uploaded / created, used object storage space. Please note that the usage statistics are updated regularly and are not live usage statistics.",
        "operationId": "retrieveObjectStoragesStats",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectStorageId",
            "required": true,
            "in": "path",
            "description": "The identifier of the object storage.",
            "schema": {
              "example": "4a6f95be-2ac0-4e3c-8eed-0dc67afed640",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains the object storages count the current object storages and give the current quota maximum.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectStoragesStatsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List usage statistics about the specified object storage",
        "tags": [
          "Object Storages"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET 'https://api.contabo.com/v1/object-storages/ea639fc6-9aae-4d71-af8b-046dda87a9cc/stats' -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H 'x-request-id: 04e0f898-37b4-48bc-a794-1a57abe6aa31' -H 'x-trace-id: 123213'"
          },
          {
            "lang": "cntb CLI",
            "source": "cntb stats objectStorage 1f771979-1c0f-44ab-ab5b-2c3752731b45"
          }
        ]
      }
    },
    "/v1/object-storages/{objectStorageId}/cancel": {
      "patch": {
        "description": "Cancels the specified object storage at the next possible date. Please be aware of your contract periods.",
        "operationId": "CancelObjectStorage",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectStorageId",
            "required": true,
            "in": "path",
            "description": "The identifier of the object storage.",
            "schema": {
              "example": "4a6f95be-2ac0-4e3c-8eed-0dc67afed640",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelObjectStorageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains the objectstorageId and cancel date.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelObjectStorageResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Cancels the specified object storage at the next possible date",
        "tags": [
          "Object Storages"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X PATCH -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/object-storages/ea639fc6-9aae-4d71-af8b-046dda87a9cc/cancel\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb cancel objectStorage 1f771979-1c0f-44ab-ab5b-2c3752731b45"
          }
        ]
      }
    },
    "/v1/object-storages/audits": {
      "get": {
        "description": "List and filters the history about your object storages.",
        "operationId": "retrieveObjectStorageAuditsList",
        "parameters": [
          {
            "name": "x-request-id",
            "in": "header",
            "description": "[Uuid4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) to identify individual requests for support cases. You can use [uuidgenerator](https://www.uuidgenerator.net/version4) to generate them manually.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "04e0f898-37b4-48bc-a794-1a57abe6aa31",
              "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-5][0-9A-Fa-f]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "x-trace-id",
            "in": "header",
            "description": "Identifier to trace group of requests.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Number of page to be fetched.",
            "schema": {
              "format": "int64",
              "example": 1,
              "type": "integer"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "Number of elements per page.",
            "schema": {
              "format": "int64",
              "example": 10,
              "type": "integer"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "description": "Specify fields and ordering (ASC for ascending, DESC for descending) in following format `field:ASC|DESC`.",
            "schema": {
              "example": "name:asc",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "objectStorageId",
            "required": false,
            "in": "query",
            "description": "The identifier of the object storage.",
            "schema": {
              "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
              "type": "string"
            }
          },
          {
            "name": "requestId",
            "required": false,
            "in": "query",
            "description": "The requestId of the API call which led to the change.",
            "schema": {
              "example": "D5FD9FAF-58C0-4406-8F46-F449B8E4FEC3",
              "type": "string"
            }
          },
          {
            "name": "changedBy",
            "required": false,
            "in": "query",
            "description": "changedBy of the user which led to the change.",
            "schema": {
              "example": "23cbb6d6-cb11-4330-bdff-7bb791df2e23",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "description": "Start of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "description": "End of search time range.",
            "schema": {
              "format": "date",
              "example": "2021-01-01",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response will be a JSON object and contains a paginated list of object storage audits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListObjectStorageAuditResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List history about your object storages (audit)",
        "tags": [
          "Object Storages Audits"
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "source": "curl -X GET -H \"Content-Type: application/json\" -H \"Authorization: Bearer ${ACCESS_TOKEN}\" -H \"x-request-id: 51A87ECD-754E-4104-9C54-D01AD0F83406\" -H  \"x-trace-id: 123213\" \"https://api.contabo.com/v1/object-storages/audits\""
          },
          {
            "lang": "cntb CLI",
            "source": "cntb history objectStorages"
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearer": {
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "type": "http",
        "description": "The Contabo API requires a so called `access_token` which has to be provided in the HTTP request `Authorization` header. The special type is called `Bearer`.\n\nThus the header would look like `Authorization: Bearer <access_token>`\n\nIn order to get an `access_token` you need to invoke Contabo's OAuth2 provider with the credentials you get from the [Customer Control Panel](https://my.contabo.com).\nYou will get a response containing an `access_token`.\n\nHere is how to do it:\n\n```sh\nCLIENT_ID=<ClientId from Customer Control Panel>\nCLIENT_SECRET=<ClientSecret from Customer Control Panel>\nAPI_USER=<API User from Customer Control Panel>\nAPI_PASSWORD='<API Password from Customer Control Panel>'\ncurl -d \"client_id=$CLIENT_ID\" -d \"client_secret=$CLIENT_SECRET\" --data-urlencode \"username=$API_USER\" --data-urlencode \"password=$API_PASSWORD\" -d 'grant_type=password' 'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token'\n\n```\n\nThe response would be a complete token with an `access_token`. Please extract it and use it in your HTTP request `Authorization` header. The documentation will show you some examples by using\nthe command line. Please note that you can use the `cntb` CLI tool to facilitate invocation.\n"
      }
    },
    "schemas": {
      "PaginationMeta": {
        "type": "object",
        "properties": {
          "size": {
            "type": "number",
            "example": 10,
            "description": "Number of elements per page."
          },
          "totalElements": {
            "type": "number",
            "example": 100,
            "description": "Number of overall matched elements."
          },
          "totalPages": {
            "type": "number",
            "example": 10,
            "description": "Overall number of pages."
          },
          "page": {
            "type": "number",
            "example": 1,
            "description": "Current number of page."
          }
        },
        "required": [
          "size",
          "totalElements",
          "totalPages",
          "page"
        ]
      },
      "TagResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "tagId": {
            "type": "integer",
            "example": "12345",
            "description": "Tag's id",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Tag's name",
            "example": "Web-Server"
          },
          "color": {
            "type": "string",
            "minLength": 4,
            "maxLength": 7,
            "description": "Tag's color",
            "example": "#0A78C3"
          },
          "description": {
            "type": "string",
            "description": "The description of the Tag",
            "example": "Tag Description"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "tagId",
          "name",
          "color",
          "description"
        ]
      },
      "Links": {
        "type": "object",
        "properties": {
          "self": {
            "type": "string",
            "description": "Link to current resource."
          },
          "first": {
            "type": "string",
            "description": "Link to first page, if applicable."
          },
          "previous": {
            "type": "string",
            "description": "Link to previous page, if applicable."
          },
          "next": {
            "type": "string",
            "description": "Link to next page, if applicable."
          },
          "last": {
            "type": "string",
            "description": "Link to last page, if applicable."
          }
        },
        "required": [
          "self",
          "first",
          "last"
        ]
      },
      "ListTagResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/tags?page=1",
              "previous": "/v1/tags?page=19",
              "self": "/v1/tags/12345",
              "next": "/v1/tags?page=21",
              "last": "/v1/tags?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "CreateTagRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Web-Server",
            "description": "The name of the tag. Tags may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per tag."
          },
          "color": {
            "type": "string",
            "minLength": 4,
            "maxLength": 7,
            "default": "#0A78C3",
            "example": "#0A78C3",
            "description": "The color of the tag. Color can be specified using hexadecimal value. Default color is #0A78C3"
          },
          "description": {
            "type": "string",
            "example": "Tag to differenciate the bad vhosts",
            "description": "The description of the Tag name. "
          }
        },
        "required": [
          "name",
          "color"
        ]
      },
      "CreateTagResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "tagId": {
            "type": "integer",
            "description": "Tag's id",
            "example": 12345,
            "format": "int64"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "tagId"
        ]
      },
      "SelfLinks": {
        "type": "object",
        "properties": {
          "self": {
            "type": "string",
            "description": "Link to current resource."
          }
        },
        "required": [
          "self"
        ]
      },
      "CreateTagResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateTagResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/tags/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "FindTagResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/tags/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UpdateTagRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "The name of the tag. Tags may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per tag.",
            "example": "Updated-Web-Server"
          },
          "color": {
            "type": "string",
            "minLength": 4,
            "maxLength": 7,
            "description": "The color of the tag. Color can be specified using hexadecimal value. Default color is #0A78C3",
            "example": "#0A78C3"
          },
          "description": {
            "type": "string",
            "example": "Tag to differenciate the bad vhosts",
            "description": "The description of the Tag name. "
          }
        }
      },
      "UpdateTagResponse": {
        "type": "object",
        "properties": {
          "_links": {
            "description": "Links for easy navigation.",
            "example": {
              "self": "/v1/tags/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "_links"
        ]
      },
      "AssignmentResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "tagId": {
            "type": "integer",
            "format": "int64",
            "description": "The identifier of the tag.",
            "example": "12345"
          },
          "tagName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Tag's name",
            "example": "Web-Server"
          },
          "resourceType": {
            "type": "string",
            "minLength": 1,
            "description": "Resource type. Resource type is one of `instance|image|object-storage`.",
            "example": "instance"
          },
          "resourceId": {
            "type": "string",
            "minLength": 1,
            "description": "Resource id",
            "example": "d65ecf3b-30db-4dc2-9e88-dfc21a14a6bc"
          },
          "resourceName": {
            "type": "string",
            "minLength": 1,
            "description": "Resource name",
            "example": "Instance"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "tagId",
          "tagName",
          "resourceType",
          "resourceId",
          "resourceName"
        ]
      },
      "ListAssignmentResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssignmentResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/tags/12345/assignments?page=1",
              "previous": "/v1/tags/12345/assignments?page=19",
              "self": "/v1/tags/12345/assignments/instance/23456",
              "next": "/v1/tags/12345/assignments?page=21",
              "last": "/v1/tags/12345/assignments?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "TagAssignmentSelfLinks": {
        "type": "object",
        "properties": {
          "self": {
            "type": "string",
            "description": "Link to current resource."
          },
          "tag": {
            "type": "string",
            "description": "Link to related tag."
          },
          "_resource": {
            "type": "string",
            "description": "Link to assigned resource"
          }
        },
        "required": [
          "self",
          "tag",
          "_resource"
        ]
      },
      "FindAssignmentResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssignmentResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/tags/12345/assignments/instance/23456",
              "tag": "/v1/tags/12345",
              "instance": "/v1/compute/instances/23456"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/TagAssignmentSelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "CreateAssignmentResponse": {
        "type": "object",
        "properties": {
          "_links": {
            "description": "Links for easy navigation.",
            "example": {
              "self": "/v1/tags/12345/assignments/instance/6549",
              "tag": "/v1/tags/12345",
              "instance": "/v1/compute/instance/6549"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/TagAssignmentSelfLinks"
              }
            ]
          }
        },
        "required": [
          "_links"
        ]
      },
      "TagAuditResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "id": {
            "type": "number",
            "example": "12345",
            "description": "The identifier of the audit entry."
          },
          "tagId": {
            "type": "integer",
            "minimum": 0,
            "example": "12345",
            "description": "The identifier of the audit entry.",
            "format": "int64"
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "DELETED",
              "UPDATED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "format": "date-time",
            "type": "string",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "User ID",
            "example": "54321"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "id",
          "tagId",
          "action",
          "timestamp",
          "changedBy",
          "username",
          "requestId",
          "traceId"
        ]
      },
      "ListTagAuditsResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/tags/audits?page=1",
              "previous": "/v1/tags/audits?page=19",
              "self": "/v1/tags/audits?page=20",
              "next": "/v1/tags/audits?page=21",
              "last": "/v1/tags/audits?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "AssignmentAuditResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "id": {
            "type": "number",
            "example": "12345",
            "description": "The identifier of the audit entry."
          },
          "resourceId": {
            "type": "string",
            "example": "a1b2c3",
            "description": "Resource's id"
          },
          "resourceType": {
            "type": "string",
            "description": "Resource type. Resource type is one of `instance|image|object-storage`.",
            "example": "instance"
          },
          "tagId": {
            "type": "integer",
            "minimum": 0,
            "example": "12345",
            "description": "Tag's id",
            "format": "int64"
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "DELETED"
            ],
            "example": "CREATED | DELETED",
            "description": "Audit Action"
          },
          "timestamp": {
            "format": "date-time",
            "type": "string",
            "description": "Audit creation date"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "User ID",
            "example": "54321"
          },
          "username": {
            "type": "string",
            "description": "User Full Name",
            "example": "John Doe"
          },
          "requestId": {
            "type": "string",
            "description": "Request ID",
            "example": "04E0F898-37B4-48BC-A794-1A57ABE6AA31"
          },
          "traceId": {
            "type": "string",
            "description": "Trace ID",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F5"
          },
          "changes": {
            "type": "object",
            "description": "Changes made for a specific Tag"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "id",
          "resourceId",
          "resourceType",
          "tagId",
          "action",
          "timestamp",
          "changedBy",
          "username",
          "requestId",
          "traceId"
        ]
      },
      "ListAssignmentAuditsResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssignmentAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/tags/assignments/audits?page=1",
              "previous": "/v1/tags/assignments/audits?page=19",
              "self": "/v1/tags/assignments/audits?page=20",
              "next": "/v1/tags/assignments/audits?page=21",
              "last": "/v1/tags/assignments/audits?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "PtrRecordResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "ip": {
            "type": "string",
            "description": "IP Address",
            "example": "1.2.3.4"
          },
          "ttl": {
            "type": "integer",
            "format": "int64",
            "description": "Time to live for the PTR record in seconds",
            "example": 86400
          },
          "ptr": {
            "type": "string",
            "description": "PTR",
            "example": "vmd1027177.server.net"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "ip",
          "ttl",
          "ptr"
        ]
      },
      "ApiPtrRecordResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PtrRecordResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/dns/ptrs/1.2.3.4"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UpdatePtrRecordRequest": {
        "type": "object",
        "properties": {
          "ptr": {
            "type": "string",
            "description": "PTR Record name",
            "example": "vmd1027177.server.net"
          }
        },
        "required": [
          "ptr"
        ]
      },
      "CreatePtrRecordRequest": {
        "type": "object",
        "properties": {
          "ptr": {
            "type": "string",
            "description": "PTR Record name",
            "example": "vmd1027177.server.net"
          },
          "ip": {
            "type": "string",
            "description": "IP Address",
            "example": "1:2:3:4:5:6:7:8"
          },
          "ttl": {
            "type": "integer",
            "format": "int64",
            "description": "Time to live for the PTR record in seconds",
            "example": 86400
          }
        },
        "required": [
          "ptr",
          "ip",
          "ttl"
        ]
      },
      "ListPtrRecordsResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PtrRecordResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/dns/ptrs?page=1",
              "previous": "/v1/dns/ptrs?page=19",
              "self": "/v1/dns/ptrs?page=20",
              "next": "/v1/dns/ptrs?page=21",
              "last": "/v1/dns/ptrs?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "DnsZoneResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "zoneName": {
            "type": "string",
            "description": "Zone name",
            "example": "abcdefg"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "zoneName"
        ]
      },
      "ListDnsZonesResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DnsZoneResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/dns/zones?page=1",
              "previous": "/v1/dns/zones?page=19",
              "self": "/v1/dns/zones?page=20",
              "next": "/v1/dns/zones?page=21",
              "last": "/v1/dns/zones?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "DnsZoneRecordResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "recordId": {
            "type": "number",
            "description": "RecordId",
            "example": 1122
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name, if empty the zone name will be used",
            "example": "example.com"
          },
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Type",
            "example": "A"
          },
          "ttl": {
            "type": "number",
            "description": "TTL",
            "example": 86400
          },
          "prio": {
            "type": "number",
            "description": "Prio",
            "example": 0
          },
          "data": {
            "type": "string",
            "minLength": 1,
            "description": "Data",
            "example": "10.0.0.1"
          },
          "port": {
            "type": "number",
            "description": "Port",
            "example": "1234"
          },
          "weight": {
            "type": "number",
            "description": "Weight",
            "example": 1
          },
          "flag": {
            "type": "number",
            "description": "Flag",
            "example": 1
          },
          "tag": {
            "type": "string",
            "description": "Tag",
            "example": "issue"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "recordId",
          "name",
          "type",
          "ttl",
          "prio",
          "data",
          "port",
          "weight",
          "flag",
          "tag"
        ]
      },
      "ListDnsZoneRecordsResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DnsZoneRecordResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/dns/zones/example/records?page=1",
              "previous": "/v1/dns/zones/example/records?page=19",
              "self": "/v1/dns/zones/example/records?page=20",
              "next": "/v1/dns/zones/example/records?page=21",
              "last": "/v1/dns/zones/example/records?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "CreateDnsZoneRequest": {
        "type": "object",
        "properties": {
          "zoneName": {
            "type": "string",
            "description": "Zone name",
            "example": "example.com"
          }
        },
        "required": [
          "zoneName"
        ]
      },
      "ApiDnsZoneResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DnsZoneResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/dns/zones/example.com"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "CreateDnsZoneRecordRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name, if empty the zone name will be used",
            "example": "test"
          },
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Type",
            "example": "A"
          },
          "ttl": {
            "type": "number",
            "description": "TTL",
            "example": 86400
          },
          "prio": {
            "type": "number",
            "description": "Prio",
            "example": 0
          },
          "data": {
            "type": "string",
            "minLength": 1,
            "description": "Data",
            "example": "10.0.0.1"
          },
          "port": {
            "type": "number",
            "description": "Port",
            "example": ""
          },
          "weight": {
            "type": "number",
            "description": "Weight",
            "example": ""
          },
          "flag": {
            "type": "number",
            "description": "Flag",
            "example": ""
          },
          "tag": {
            "type": "string",
            "description": "Tag",
            "example": ""
          }
        },
        "required": [
          "type",
          "ttl",
          "prio",
          "data"
        ]
      },
      "ApiDnsZoneRecordResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DnsZoneRecordResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/dns/zones/:zoneName/records"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UpdateDnsZoneRecordRequest": {
        "type": "object",
        "properties": {
          "ttl": {
            "type": "number",
            "description": "TTL",
            "example": 86400
          },
          "prio": {
            "type": "number",
            "description": "Prio",
            "example": 0
          },
          "data": {
            "type": "string",
            "minLength": 1,
            "description": "Data",
            "example": "10.0.0.1"
          },
          "port": {
            "type": "number",
            "description": "Port",
            "example": ""
          },
          "weight": {
            "type": "number",
            "description": "Weight",
            "example": ""
          },
          "flag": {
            "type": "number",
            "description": "Flag",
            "example": ""
          },
          "tag": {
            "type": "string",
            "description": "Tag",
            "example": ""
          }
        },
        "required": [
          "ttl",
          "prio",
          "data"
        ]
      },
      "BulkDeleteDnsZoneRecordsRequest": {
        "type": "object",
        "properties": {
          "recordIds": {
            "type": "array",
            "description": "List of zone record ids to delete",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "example": [
              10111,
              10211,
              10311
            ]
          }
        },
        "required": [
          "recordIds"
        ]
      },
      "BulkDeleteResultResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "failedIds": {
            "type": "array",
            "description": "Failed zone record IDs",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "example": [
              103
            ]
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "failedIds"
        ]
      },
      "ApiBulkDeleteDnsZoneRecordsResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BulkDeleteResultResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/dns/zones/:zoneName/records/bulk"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "ZoneAuditResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The ID of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "Id of user who performed the change",
            "example": "c4c800ff-e524-47dd-9543-71dfc8b91113"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "name": {
            "type": "string",
            "example": "example.com",
            "description": "DNS Zone name"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "example.com"
              },
              "new": {
                "name": "example1.com"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "name"
        ]
      },
      "ZoneAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ZoneAuditResponseData"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/dns/zones/audits?page=2",
              "previous": "/v1/dns/zones/audits?page=2",
              "next": "/v1/dns/zones/audits?page=3",
              "last": "/v1/dns/zones/audits?page=10",
              "self": "/v1/dns/zones/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "RecordAuditResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The ID of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "Id of user who performed the change",
            "example": "c4c800ff-e524-47dd-9543-71dfc8b91113"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "recordId": {
            "type": "integer",
            "minimum": 0,
            "example": 12345,
            "format": "int64",
            "description": "The identifier of the Zone recordd"
          },
          "zoneName": {
            "type": "string",
            "example": "example.com",
            "description": "DNS Zone name"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "example.com"
              },
              "new": {
                "name": "example1.com"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "recordId",
          "zoneName"
        ]
      },
      "RecordAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordAuditResponseData"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/dns/records/audits?page=2",
              "previous": "/v1/dns/records/audits?page=2",
              "next": "/v1/dns/records/audits?page=3",
              "last": "/v1/dns/records/audits?page=10",
              "self": "/v1/dns/records/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "IpV4": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "IP address",
            "example": "195.123.123.1"
          },
          "gateway": {
            "type": "string",
            "description": "Gateway",
            "example": "255.255.255.1"
          },
          "netmaskCidr": {
            "type": "integer",
            "format": "int64",
            "description": "Netmask CIDR",
            "example": 24
          },
          "broadcast": {
            "type": "string",
            "description": "Broadcast address",
            "example": "195.123.123.255"
          },
          "net": {
            "type": "string",
            "description": "Net address",
            "example": "195.123.123.0/24"
          }
        },
        "required": [
          "ip",
          "gateway",
          "netmaskCidr",
          "broadcast",
          "net"
        ]
      },
      "ListVipResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Tenant Id.",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer's Id.",
            "example": "1234"
          },
          "vipId": {
            "type": "string",
            "description": "Vip uuid.",
            "example": "a846c6cc-731c-45dc-b653-bc8232e88d9c"
          },
          "dataCenter": {
            "type": "string",
            "description": "data center.",
            "example": "European Union (Germany) 3"
          },
          "region": {
            "type": "string",
            "description": "Region",
            "example": "European Union (Germany)"
          },
          "resourceId": {
            "type": "string",
            "description": "Resource Id.",
            "example": "101234"
          },
          "resourceType": {
            "type": "string",
            "description": "The resourceType using the VIP.",
            "enum": [
              "instances",
              "bare-metal",
              "null"
            ],
            "example": "instances"
          },
          "resourceName": {
            "type": "string",
            "description": "Resource name.",
            "example": "vmi100101"
          },
          "resourceDisplayName": {
            "type": "string",
            "description": "Resource display name.",
            "example": "My Instance 12"
          },
          "ipVersion": {
            "type": "string",
            "description": "Version of Ip.",
            "enum": [
              "v4"
            ]
          },
          "type": {
            "type": "string",
            "description": "The VIP type.",
            "enum": [
              "additional",
              "floating"
            ],
            "example": "additional"
          },
          "v4": {
            "$ref": "#/components/schemas/IpV4"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "vipId",
          "dataCenter",
          "region",
          "resourceId",
          "resourceName",
          "resourceDisplayName",
          "ipVersion"
        ]
      },
      "ListVipResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListVipResponseData"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/vips?page=1",
              "previous": "/v1/vips?page=19",
              "self": "/v1/vips?page=20",
              "next": "/v1/vips?page=21",
              "last": "/v1/vips?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "VipResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Tenant Id.",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer's Id.",
            "example": "1234"
          },
          "vipId": {
            "type": "string",
            "description": "Vip uuid.",
            "example": "a846c6cc-731c-45dc-b653-bc8232e88d9c"
          },
          "dataCenter": {
            "type": "string",
            "description": "data center.",
            "example": "European Union (Germany) 3"
          },
          "region": {
            "type": "string",
            "description": "Region",
            "example": "European Union (Germany)"
          },
          "resourceId": {
            "type": "string",
            "description": "Resource Id.",
            "example": "101234"
          },
          "resourceType": {
            "type": "string",
            "description": "The resourceType using the VIP.",
            "enum": [
              "instances",
              "bare-metal",
              "null"
            ],
            "example": "instances"
          },
          "resourceName": {
            "type": "string",
            "description": "Resource name.",
            "example": "vmi100101"
          },
          "resourceDisplayName": {
            "type": "string",
            "description": "Resource display name.",
            "example": "My Instance 12"
          },
          "ipVersion": {
            "type": "string",
            "description": "Version of Ip.",
            "enum": [
              "v4"
            ]
          },
          "type": {
            "type": "string",
            "description": "The VIP type.",
            "enum": [
              "additional",
              "floating"
            ],
            "example": "additional"
          },
          "v4": {
            "$ref": "#/components/schemas/IpV4"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "vipId",
          "dataCenter",
          "region",
          "resourceId",
          "resourceName",
          "resourceDisplayName",
          "ipVersion"
        ]
      },
      "FindVipResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VipResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/vips/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "AssignVipResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VipResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/vips/1.2.2.4/instances/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "VipAuditResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "The identifier of the audit entry.",
            "example": "12345"
          },
          "vipId": {
            "type": "string",
            "description": "The identifier of the VIP",
            "example": "b943b25a-c8b5-4570-9135-4bbaa7615b81"
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "DELETED",
              "UPDATED"
            ],
            "description": "Type of the action.",
            "example": "CREATED"
          },
          "timestamp": {
            "format": "date-time",
            "type": "string",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer number",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "User id",
            "example": "54321"
          },
          "username": {
            "type": "string",
            "description": "User name which did the change.",
            "example": "John Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "vipId",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId"
        ]
      },
      "ListVipAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VipAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/vips/audits?page=2",
              "previous": "/v1/vips/audits?page=2",
              "next": "/v1/vips/audits?page=3",
              "last": "/v1/vips/audits?page=10",
              "self": "/v1/vips/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "SecretResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your Customer number",
            "example": "54321"
          },
          "secretId": {
            "type": "number",
            "minimum": 0,
            "example": "12345",
            "description": "Secret's id"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Password Secret",
            "description": "The name assigned to the password/ssh"
          },
          "type": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "description": "The type of the secret. This will be available only when retrieving secrets",
            "example": "password",
            "enum": [
              "password",
              "ssh"
            ]
          },
          "value": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "description": "The value of the secret. This will be available only when retrieving a single secret",
            "example": "password"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "The creation date for the secret",
            "example": "2021-06-03T06:27:12.000Z"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The last update date for the secret",
            "example": "2021-06-03T06:27:12.000Z"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "secretId",
          "name",
          "type",
          "value",
          "createdAt",
          "updatedAt"
        ]
      },
      "ListSecretResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SecretResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/secrets",
              "first": "/v1/secrets?page=1",
              "previous": "/v1/secrets?page=19",
              "next": "/v1/secrets?page=21",
              "last": "/v1/secrets?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "CreateSecretRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "my-password",
            "description": "The name of the secret that will keep the password"
          },
          "value": {
            "type": "string",
            "minLength": 8,
            "example": "PwdA?2092w#",
            "description": "The secret value that needs to be saved. In case of a password it must match a pattern with at least one upper and lower case character and either one number with two special characters `!@#$^&*?_~` or at least three numbers with one special character `!@#$^&*?_~`. This is expressed in the following regular expression: `^((?=.*?[A-Z]{1,})(?=.*?[a-z]{1,}))(((?=(?:[^d]*d){1})(?=([^^&*?_~]*[!@#$^&*?_~]){2,}))|((?=(?:[^d]*d){3})(?=.*?[!@#$^&*?_~]+))).{8,}$`"
          },
          "type": {
            "type": "string",
            "description": "The type of the secret. Can be `password` or `ssh`",
            "example": "password",
            "enum": [
              "password",
              "ssh"
            ]
          }
        },
        "required": [
          "name",
          "value",
          "type"
        ]
      },
      "CreateSecretResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SecretResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/secrets/123"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "FindSecretResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SecretResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/secrets/123"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UpdateSecretRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the secret to be saved"
          },
          "value": {
            "type": "string",
            "minLength": 8,
            "description": "The value of the secret to be saved"
          }
        }
      },
      "UpdateSecretResponse": {
        "type": "object",
        "properties": {
          "_links": {
            "description": "Links for easy navigation.",
            "example": {
              "self": "/v1/secrets/123"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "_links"
        ]
      },
      "SecretAuditResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": "12345",
            "description": "The identifier of the audit entry."
          },
          "secretId": {
            "type": "number",
            "minimum": 0,
            "example": "12345",
            "description": "Secret's id"
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "format": "date-time",
            "type": "string",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer number",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "User ID",
            "example": "54321"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "secretId",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId"
        ]
      },
      "ListSecretAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SecretAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/secrets/audits?page=1",
              "previous": "/v1/secrets/audits?page=19",
              "self": "/v1/secrets/audits?page=20",
              "next": "/v1/secrets/audits?page=21",
              "last": "/v1/secrets/audits?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "IpV41": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "IP Address",
            "example": "192.168.0.1"
          },
          "netmaskCidr": {
            "type": "integer",
            "format": "int32",
            "description": "Netmask CIDR",
            "example": 19
          },
          "gateway": {
            "type": "string",
            "description": "Gateway",
            "example": "1.1.1.1"
          }
        },
        "required": [
          "ip",
          "netmaskCidr",
          "gateway"
        ]
      },
      "PrivateIpConfig": {
        "type": "object",
        "properties": {
          "v4": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IpV41"
            }
          }
        },
        "required": [
          "v4"
        ]
      },
      "IpV6": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "IP Address",
            "example": "1:2:3:4:5:6:7:8"
          },
          "netmaskCidr": {
            "type": "integer",
            "format": "int32",
            "description": "Netmask CIDR",
            "example": 64
          },
          "gateway": {
            "type": "string",
            "description": "Gateway",
            "example": "1:2:3:4:5:6:7:8"
          }
        },
        "required": [
          "ip",
          "netmaskCidr",
          "gateway"
        ]
      },
      "IpConfig": {
        "type": "object",
        "properties": {
          "v4": {
            "$ref": "#/components/schemas/IpV41"
          },
          "v6": {
            "$ref": "#/components/schemas/IpV6"
          }
        },
        "required": [
          "v4",
          "v6"
        ]
      },
      "Instances": {
        "type": "object",
        "properties": {
          "instanceId": {
            "type": "integer",
            "format": "int64",
            "description": "Instance id",
            "example": 100
          },
          "displayName": {
            "type": "string",
            "description": "Instance display name",
            "example": "Instance"
          },
          "name": {
            "type": "string",
            "description": "Instance name",
            "example": "vmd12345"
          },
          "productId": {
            "type": "string",
            "description": "Product id",
            "example": "V1"
          },
          "privateIpConfig": {
            "$ref": "#/components/schemas/PrivateIpConfig"
          },
          "ipConfig": {
            "$ref": "#/components/schemas/IpConfig"
          },
          "status": {
            "type": "string",
            "description": "State of the instance in the Private Network",
            "example": "ok",
            "enum": [
              "ok",
              "restart",
              "reinstall",
              "reinstallation failed",
              "installing"
            ]
          },
          "errorMessage": {
            "type": "string",
            "description": "Message in case of an error."
          }
        },
        "required": [
          "instanceId",
          "displayName",
          "name",
          "productId",
          "privateIpConfig",
          "ipConfig",
          "status"
        ]
      },
      "ListPrivateNetworkResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "privateNetworkId": {
            "type": "integer",
            "format": "int64",
            "description": "Private Network's id",
            "example": 12345
          },
          "dataCenter": {
            "type": "string",
            "description": "The data center where your Private Network is located",
            "example": "European Union 1"
          },
          "region": {
            "type": "string",
            "description": "The slug of the region where your Private Network is located",
            "example": "EU"
          },
          "regionName": {
            "type": "string",
            "description": "The region where your Private Network is located",
            "example": "European Union"
          },
          "name": {
            "type": "string",
            "description": "The name of the Private Network",
            "example": "myPrivateNetwork"
          },
          "description": {
            "type": "string",
            "description": "The description of the Private Network",
            "example": "myPrivateNetwork Description"
          },
          "cidr": {
            "type": "string",
            "description": "The cidr range of the Private Network",
            "example": "10.0.0.0/22"
          },
          "availableIps": {
            "type": "integer",
            "format": "int64",
            "description": "The total available IPs of the Private Network",
            "example": 1022
          },
          "createdDate": {
            "type": "string",
            "format": "date-time",
            "description": "The creation date of the Private Network",
            "example": "2021-06-03T06:27:12.000Z"
          },
          "instances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Instances"
            }
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "privateNetworkId",
          "dataCenter",
          "region",
          "regionName",
          "name",
          "description",
          "cidr",
          "availableIps",
          "createdDate",
          "instances"
        ]
      },
      "ListPrivateNetworkResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListPrivateNetworkResponseData"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/private-networks?page=1",
              "previous": "/v1/private-networks?page=19",
              "self": "/v1/private-networks?page=20",
              "next": "/v1/private-networks?page=21",
              "last": "/v1/private-networks?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "CreatePrivateNetworkRequest": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "minLength": 1,
            "description": "Region where the Private Network should be located. Default is `EU`",
            "example": "EU",
            "default": "EU"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "The name of the Private Network. It may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per Private Network name.",
            "example": "myPrivateNetwork"
          },
          "description": {
            "type": "string",
            "maxLength": 255,
            "example": "myPrivateNetwork Description",
            "description": "The description of the Private Network. There is a limit of 255 characters per Private Network description."
          }
        },
        "required": [
          "name"
        ]
      },
      "PrivateNetworkResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "privateNetworkId": {
            "type": "integer",
            "format": "int64",
            "description": "Private Network's id",
            "example": 12345
          },
          "dataCenter": {
            "type": "string",
            "description": "The data center where your Private Network is located",
            "example": "European Union 1"
          },
          "region": {
            "type": "string",
            "description": "The slug of the region where your Private Network is located",
            "example": "EU"
          },
          "regionName": {
            "type": "string",
            "description": "The region where your Private Network is located",
            "example": "European Union"
          },
          "name": {
            "type": "string",
            "description": "The name of the Private Network",
            "example": "myPrivateNetwork"
          },
          "description": {
            "type": "string",
            "description": "The description of the Private Network",
            "example": "myPrivateNetwork Description"
          },
          "cidr": {
            "type": "string",
            "description": "The cidr range of the Private Network",
            "example": "10.0.0.0/22"
          },
          "availableIps": {
            "type": "integer",
            "format": "int64",
            "description": "The total available IPs of the Private Network",
            "example": 1022
          },
          "createdDate": {
            "type": "string",
            "format": "date-time",
            "description": "The creation date of the Private Network",
            "example": "2021-06-03T06:27:12.000Z"
          },
          "instances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Instances"
            }
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "privateNetworkId",
          "dataCenter",
          "region",
          "regionName",
          "name",
          "description",
          "cidr",
          "availableIps",
          "createdDate",
          "instances"
        ]
      },
      "CreatePrivateNetworkResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrivateNetworkResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/private-networks/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "PatchPrivateNetworkRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "The name of the Private Network. It may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per Private Network.",
            "example": "myPrivateNetwork"
          },
          "description": {
            "type": "string",
            "maxLength": 255,
            "example": "myPrivateNetwork Description",
            "description": "The description of the Private Network. There is a limit of 255 characters per Private Network."
          }
        }
      },
      "PatchPrivateNetworkResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrivateNetworkResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/private-networks/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "FindPrivateNetworkResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrivateNetworkResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/private-networks/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "InstanceAssignmentSelfLinks": {
        "type": "object",
        "properties": {
          "self": {
            "type": "string",
            "description": "Link to current resource."
          },
          "virtualPrivateCloud": {
            "type": "string",
            "description": "Link to related Private Network."
          },
          "instance": {
            "type": "string",
            "description": "Link to assigned instance."
          }
        },
        "required": [
          "self",
          "virtualPrivateCloud",
          "instance"
        ]
      },
      "AssignInstancePrivateNetworkResponse": {
        "type": "object",
        "properties": {
          "_links": {
            "description": "Links for easy navigation.",
            "example": {
              "self": "/v1/private-networks/12345/instances/100",
              "virtualPrivateCloud": "/v1/private-networks/12345",
              "instance": "/v1/compute/instances/100"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/InstanceAssignmentSelfLinks"
              }
            ]
          }
        },
        "required": [
          "_links"
        ]
      },
      "UnassignInstancePrivateNetworkResponse": {
        "type": "object",
        "properties": {
          "_links": {
            "description": "Links for easy navigation.",
            "example": {
              "self": "/v1/private-networks/12345/instances/100",
              "virtualPrivateCloud": "/v1/private-networks/12345",
              "instance": "/v1/compute/instances/100"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/InstanceAssignmentSelfLinks"
              }
            ]
          }
        },
        "required": [
          "_links"
        ]
      },
      "PrivateNetworkAuditResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "The identifier of the audit entry.",
            "example": "12345"
          },
          "privateNetworkId": {
            "type": "number",
            "minimum": 0,
            "description": "The identifier of the Private Network",
            "example": "12345"
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "DELETED",
              "UPDATED"
            ],
            "description": "Type of the action.",
            "example": "CREATED"
          },
          "timestamp": {
            "format": "date-time",
            "type": "string",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer number",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "User id",
            "example": "54321"
          },
          "username": {
            "type": "string",
            "description": "User name which did the change.",
            "example": "John Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "privateNetworkId",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId"
        ]
      },
      "ListPrivateNetworkAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrivateNetworkAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/private-networks/audits?page=2",
              "previous": "/v1/private-networks/audits?page=2",
              "next": "/v1/private-networks/audits?page=3",
              "last": "/v1/private-networks/audits?page=10",
              "self": "/v1/private-networks/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "ResourcePermissionsResponse": {
        "type": "object",
        "properties": {
          "tagId": {
            "type": "integer",
            "format": "int64",
            "description": "Tag's id",
            "example": "12345"
          },
          "tagName": {
            "type": "string",
            "description": "Tag name. The resriction is based on the resources which have been assigned to that tag. If no resource has been assigned to the given tag, no access will be possible.",
            "example": "Web"
          }
        },
        "required": [
          "tagId",
          "tagName"
        ]
      },
      "PermissionResponse": {
        "type": "object",
        "properties": {
          "apiName": {
            "type": "string",
            "description": "API endpoint. In order to get a list availbale api enpoints please refer to the GET api-permissions endpoint.",
            "example": "/v1/compute/instances"
          },
          "actions": {
            "type": "array",
            "description": "Action allowed for the API endpoint. Basically `CREATE` corresponds to POST endpoints, `READ` to GET endpoints, `UPDATE` to PATCH / PUT endpoints and `DELETE` to DELETE endpoints.",
            "items": {
              "type": "string",
              "enum": [
                "CREATE",
                "READ",
                "UPDATE",
                "DELETE"
              ]
            },
            "example": [
              "CREATE",
              "READ"
            ]
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourcePermissionsResponse"
            }
          }
        },
        "required": [
          "apiName",
          "actions"
        ]
      },
      "RoleResponse": {
        "type": "object",
        "properties": {
          "roleId": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "Role's id"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "name": {
            "type": "string",
            "description": "Role's name",
            "example": "infrastructure"
          },
          "admin": {
            "type": "boolean",
            "description": "Admin",
            "example": "true"
          },
          "accessAllResources": {
            "type": "boolean",
            "description": "Access All Resources",
            "example": "true"
          },
          "type": {
            "type": "string",
            "description": "Role type can be either `default` or `custom`. The `default` roles cannot be modified or deleted.",
            "example": "custom"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionResponse"
            }
          }
        },
        "required": [
          "roleId",
          "tenantId",
          "customerId",
          "name",
          "admin",
          "accessAllResources",
          "type"
        ]
      },
      "UserResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "userId": {
            "type": "string",
            "description": "The identifier of the user.",
            "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8"
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "John",
            "description": "The first name of the user. Users may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per user."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Doe",
            "description": "The last name of the user. Users may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per user."
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "john.doe@example.com",
            "description": "The email of the user to which activation and forgot password links are being sent to. There is a limit of 255 characters per email."
          },
          "emailVerified": {
            "type": "boolean",
            "example": false,
            "description": "User email verification status."
          },
          "enabled": {
            "type": "boolean",
            "example": false,
            "description": "If uses is not enabled, he can't login and thus use services any longer."
          },
          "totp": {
            "type": "boolean",
            "example": false,
            "description": "Enable or disable two-factor authentication (2FA) via time based OTP."
          },
          "locale": {
            "type": "string",
            "example": "de",
            "description": "The locale of the user. This can be `de-DE`, `de`, `en-US`, `en`, `es-ES`, `es`, `pt-BR`, `pt`.",
            "enum": [
              "de-DE",
              "de",
              "en-US",
              "en",
              "es",
              "es-ES",
              "pt-BR",
              "pt"
            ]
          },
          "roles": {
            "description": "The roles as list of `roleId`s of the user.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleResponse"
            }
          },
          "owner": {
            "type": "boolean",
            "example": false,
            "description": "If user is owner he will have permissions to all API endpoints and resources. Enabling this will superseed all role definitions and `accessAllResources`."
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "userId",
          "firstName",
          "lastName",
          "email",
          "emailVerified",
          "enabled",
          "totp",
          "locale",
          "roles",
          "owner"
        ]
      },
      "ListUserResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/users?page=1",
              "next": "/v1/users?page=19",
              "self": "/v1/users/12345",
              "previous": "/v1/users?page=21",
              "last": "/v1/users?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "CreateUserRequest": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "John",
            "description": "The name of the user. Names may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per user."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Doe",
            "description": "The last name of the user. Users may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per user."
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "john.doe@example.com",
            "description": "The email of the user to which activation and forgot password links are being sent to. There is a limit of 255 characters per email."
          },
          "enabled": {
            "type": "boolean",
            "example": false,
            "description": "If user is not enabled, he can't login and thus use services any longer."
          },
          "totp": {
            "type": "boolean",
            "example": false,
            "description": "Enable or disable two-factor authentication (2FA) via time based OTP."
          },
          "locale": {
            "type": "string",
            "example": "de",
            "description": "The locale of the user. This can be `de-DE`, `de`, `en-US`, `en`, `es-ES`, `es`, `pt-BR`, `pt`.",
            "enum": [
              "de-DE",
              "de",
              "en-US",
              "en",
              "es",
              "es-ES",
              "pt-BR",
              "pt"
            ]
          },
          "roles": {
            "type": "array",
            "example": [
              1,
              2,
              3,
              4
            ],
            "description": "The roles as list of `roleId`s of the user.",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          }
        },
        "required": [
          "email",
          "enabled",
          "totp",
          "locale"
        ]
      },
      "CreateUserResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "userId": {
            "type": "string",
            "description": "User's id",
            "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "userId"
        ]
      },
      "CreateUserResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateUserResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/users/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "FindUserResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/users/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UpdateUserRequest": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "John",
            "description": "The name of the user. Names may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per user."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Doe",
            "description": "The last name of the user. Users may contain letters, numbers, colons, dashes, and underscores. There is a limit of 255 characters per user."
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "john.doe@example.com",
            "description": "The email of the user to which activation and forgot password links are being sent to. There is a limit of 255 characters per email."
          },
          "enabled": {
            "type": "boolean",
            "example": false,
            "description": "If user is not enabled, he can't login and thus use services any longer."
          },
          "totp": {
            "type": "boolean",
            "example": false,
            "description": "Enable or disable two-factor authentication (2FA) via time based OTP."
          },
          "locale": {
            "type": "string",
            "example": "de",
            "description": "The locale of the user. This can be `de-DE`, `de`, `en-US`, `en`, `es-ES`, `es`, `pt-BR`, `pt`.",
            "enum": [
              "de-DE",
              "de",
              "en-US",
              "en",
              "es",
              "es-ES",
              "pt-BR",
              "pt"
            ]
          },
          "roles": {
            "type": "array",
            "example": [
              1,
              2,
              3,
              4
            ],
            "description": "The roles as list of `roleId`s of the user.",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          }
        }
      },
      "UpdateUserResponse": {
        "type": "object",
        "properties": {
          "_links": {
            "description": "Links for easy navigation.",
            "example": {
              "self": "/v1/users/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "_links"
        ]
      },
      "ClientResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "id": {
            "type": "string",
            "description": "Client's id",
            "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8"
          },
          "clientId": {
            "type": "string",
            "example": "DE-54321",
            "description": "IDM client id"
          },
          "secret": {
            "type": "string",
            "example": "7271e905-239e-4d15-a8c5-527743a58390",
            "description": "IDM client secret"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "id",
          "clientId",
          "secret"
        ]
      },
      "FindClientResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/users/client"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "ClientSecretResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "secret": {
            "type": "string",
            "example": "7271e905-239e-4d15-a8c5-527743a58390",
            "description": "IDM client secret"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "secret"
        ]
      },
      "GenerateClientSecretResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientSecretResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/users/client/secret"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UserIsPasswordSetResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "isPasswordSet": {
            "type": "boolean",
            "description": "Indicates if the user has set a password for his account",
            "example": false
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "isPasswordSet"
        ]
      },
      "FindUserIsPasswordSetResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserIsPasswordSetResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/users/is-password-set"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "ListRoleResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/role/{roleType}/?page=1",
              "next": "/v1/role/{roleType}/?page=19",
              "self": "/v1/role/{roleType}/12345",
              "previous": "/v1/role/{roleType}/?page=21",
              "last": "/v1/role/{roleType}?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "PermissionRequest": {
        "type": "object",
        "properties": {
          "apiName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "infrastructure",
            "description": "The name of the role. There is a limit of 255 characters per role."
          },
          "actions": {
            "type": "array",
            "description": "Action allowed for the API endpoint. Basically `CREATE` corresponds to POST endpoints, `READ` to GET endpoints, `UPDATE` to PATCH / PUT endpoints and `DELETE` to DELETE endpoints.",
            "items": {
              "type": "string",
              "enum": [
                "CREATE",
                "READ",
                "UPDATE",
                "DELETE"
              ]
            },
            "example": [
              "CREATE",
              "READ"
            ]
          },
          "resources": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "example": [
              1,
              2,
              3
            ],
            "description": "The IDs of tags. Only if those tags are assgined to a resource the user with that role will be able to access the resource."
          }
        },
        "required": [
          "apiName",
          "actions"
        ]
      },
      "CreateRoleRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "infrastructure",
            "description": "The name of the role. There is a limit of 255 characters per role."
          },
          "admin": {
            "type": "boolean",
            "example": false,
            "description": "If user is admin he will have permissions to all API endpoints and resources. Enabling this will superseed all role definitions and `accessAllResources`."
          },
          "accessAllResources": {
            "type": "boolean",
            "example": false,
            "description": "Allow access to all resources. This will superseed all assigned resources in a role."
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionRequest"
            }
          }
        },
        "required": [
          "name",
          "admin",
          "accessAllResources"
        ]
      },
      "CreateRoleResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "roleId": {
            "type": "integer",
            "format": "int64",
            "description": "Role's id",
            "example": 12345
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "roleId"
        ]
      },
      "CreateRoleResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateRoleResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/roles/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "FindRoleResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/roles/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UpdateRoleRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "infrastructure",
            "description": "The name of the role. There is a limit of 255 characters per role."
          },
          "admin": {
            "type": "boolean",
            "example": false,
            "description": "If user is admin he will have permissions to all API endpoints and resources. Enabling this will superseed all role definitions and `accessAllResources`."
          },
          "accessAllResources": {
            "type": "boolean",
            "example": false,
            "description": "Allow access to all resources. This will superseed all assigned resources in a role."
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionRequest"
            }
          }
        },
        "required": [
          "name",
          "admin",
          "accessAllResources"
        ]
      },
      "UpdateRoleResponse": {
        "type": "object",
        "properties": {
          "_links": {
            "description": "Links for easy navigation.",
            "example": {
              "self": "/v1/roles/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "_links"
        ]
      },
      "ApiPermissionsResponse": {
        "type": "object",
        "properties": {
          "apiName": {
            "type": "string",
            "description": "API endpoint. In order to get a list availbale api enpoints please refer to the GET api-permissions endpoint.",
            "example": "/v1/compute/instances"
          },
          "actions": {
            "type": "array",
            "description": "Action allowed for the API endpoint. Basically `CREATE` corresponds to POST endpoints, `READ` to GET endpoints, `UPDATE` to PATCH / PUT endpoints and `DELETE` to DELETE endpoints.",
            "items": {
              "type": "string",
              "enum": [
                "CREATE",
                "READ",
                "UPDATE",
                "DELETE"
              ]
            },
            "example": [
              "CREATE",
              "READ"
            ]
          }
        },
        "required": [
          "apiName",
          "actions"
        ]
      },
      "ListApiPermissionResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiPermissionsResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/roles/api-permissions?page=1",
              "previous": "/v1/roles/api-permissions?page=2",
              "next": "/v1/roles/api-permissions?page=3",
              "last": "/v1/roles/api-permissions?page=10",
              "self": "/v1/roles/api-permissions"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "CredentialData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "accessKey": {
            "type": "string",
            "example": "AKIAIOSFODNN7EXAMPLE",
            "description": "Access key ID."
          },
          "secretKey": {
            "type": "string",
            "description": "Secret key ID.",
            "example": "wJalrXK7MDENGbPxRfiCYEXAMPLEKEY"
          },
          "objectStorageId": {
            "type": "string",
            "description": "Object Storage ID.",
            "example": "9a4c7e20-c326-4a8c-900c-687ad83ba170Y"
          },
          "displayName": {
            "type": "string",
            "description": "Object Storage Name.",
            "example": "Object Storage Test"
          },
          "region": {
            "type": "string",
            "description": "Object Storage Region.",
            "example": "European Union"
          },
          "credentialId": {
            "type": "number",
            "description": "Object Storage Credential ID",
            "example": 12345
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "accessKey",
          "secretKey",
          "objectStorageId",
          "displayName",
          "region",
          "credentialId"
        ]
      },
      "ListCredentialResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CredentialData"
            }
          },
          "_links": {
            "example": {
              "first": "v1/users/08a92037-01e8-4dff-8565-47cad7be701a/object-storages/credentials?page=1",
              "next": "v1/users/08a92037-01e8-4dff-8565-47cad7be701a/object-storages/credentials?page=19",
              "self": "v1/users/08a92037-01e8-4dff-8565-47cad7be701a/object-storages/credentials/12345",
              "previous": "v1/users/08a92037-01e8-4dff-8565-47cad7be701a/object-storages/credentials?page=21",
              "last": "v1/users/08a92037-01e8-4dff-8565-47cad7be701a/object-storages/credentials?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "FindCredentialResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CredentialData"
            }
          },
          "_links": {
            "example": {
              "self": "v1/users/08a92037-01e8-4dff-8565-47cad7be701a/object-storages/e3f0207c-f7fe-433a-92ab-39a9e976642d/credentials"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UserAuditResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The identifier of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer number",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "User ID",
            "example": "54321"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "userId": {
            "type": "string",
            "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
            "description": "The identifier of the user"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "userId"
        ]
      },
      "ListUserAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/users/audits?page=2",
              "previous": "/v1/users/audits?page=2",
              "next": "/v1/users/audits?page=3",
              "last": "/v1/users/audits?page=10",
              "self": "/v1/users/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "RoleAuditResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The identifier of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer number",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "User ID",
            "example": "54321"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "roleId": {
            "type": "number",
            "minimum": 0,
            "example": "12345",
            "description": "The identifier of the role"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "roleId"
        ]
      },
      "ListRoleAuditResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/roles/audits?page=2",
              "previous": "/v1/roles/audits?page=2",
              "next": "/v1/roles/audits?page=3",
              "last": "/v1/roles/audits?page=10",
              "self": "/v1/roles/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "InstanceStartActionResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "instanceId": {
            "type": "integer",
            "description": "Compute instance / resource id",
            "example": 12345,
            "format": "int64"
          },
          "action": {
            "type": "string",
            "description": "Action that was triggered",
            "example": "start"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "action"
        ]
      },
      "InstanceStartActionResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstanceStartActionResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345/actions/start"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "InstanceRestartActionResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "instanceId": {
            "type": "integer",
            "description": "Compute instance / resource id",
            "example": 12345,
            "format": "int64"
          },
          "action": {
            "type": "string",
            "description": "Action that was triggered",
            "example": "start"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "action"
        ]
      },
      "InstanceRestartActionResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstanceRestartActionResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345/actions/restart"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "InstanceStopActionResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "instanceId": {
            "type": "integer",
            "description": "Compute instance / resource id",
            "example": 12345,
            "format": "int64"
          },
          "action": {
            "type": "string",
            "description": "Action that was triggered",
            "example": "start"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "action"
        ]
      },
      "InstanceStopActionResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstanceStopActionResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345/actions/stop"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "InstanceShutdownActionResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "instanceId": {
            "type": "integer",
            "description": "Compute instance / resource id",
            "example": 12345,
            "format": "int64"
          },
          "action": {
            "type": "string",
            "description": "Action that was triggered",
            "example": "start"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "action"
        ]
      },
      "InstanceShutdownActionResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstanceShutdownActionResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345/actions/shutdown"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "InstancesActionsRescueRequest": {
        "type": "object",
        "properties": {
          "rootPassword": {
            "type": "integer",
            "format": "int64",
            "description": "`secretId` of the password to login into rescue system for the `root` user.",
            "example": 1
          },
          "sshKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Array of `secretId`s of public SSH keys for logging into rescue system as `root` user.",
            "example": "[123, 125]"
          },
          "userData": {
            "type": "string",
            "description": "[Cloud-Init](https://cloud-init.io/) Config in order to customize during start of compute instance.",
            "example": "#cloud-config\nuser: root\nssh_pwauth: true\ndisable_root: false\nssh_authorized_keys:\n  - <sshkey>\nchpasswd:\n  list:\n    - root:<password> \n expire: False\n"
          }
        }
      },
      "InstanceRescueActionResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "instanceId": {
            "type": "integer",
            "description": "Compute instance / resource id",
            "example": 12345,
            "format": "int64"
          },
          "action": {
            "type": "string",
            "description": "Action that was triggered",
            "example": "start"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "action"
        ]
      },
      "InstanceRescueActionResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstanceRescueActionResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345/actions/rescue"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "InstancesResetPasswordActionsRequest": {
        "type": "object",
        "properties": {
          "sshKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Array of `secretId`s of public SSH keys for logging into as `defaultUser` with administrator/root privileges. Applies to Linux/BSD systems. Please refer to Secrets Management API.",
            "example": "[123, 125]"
          },
          "rootPassword": {
            "type": "integer",
            "format": "int64",
            "description": "`secretId` of the password for the `defaultUser` with administrator/root privileges. For Linux/BSD please use SSH, for Windows RDP. Please refer to Secrets Management API.",
            "example": 1
          },
          "userData": {
            "type": "string",
            "description": "[Cloud-Init](https://cloud-init.io/) Config in order to customize during start of compute instance.",
            "example": "#cloud-config\nuser: root\nssh_pwauth: true\ndisable_root: false\nssh_authorized_keys:\n  - <sshkey>\nchpasswd:\n  list:\n    - root:<password> \n expire: False\n"
          }
        }
      },
      "InstanceResetPasswordActionResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "instanceId": {
            "type": "integer",
            "description": "Compute instance / resource id",
            "example": 12345,
            "format": "int64"
          },
          "action": {
            "type": "string",
            "description": "Action that was triggered",
            "example": "start"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "action"
        ]
      },
      "InstanceResetPasswordActionResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstanceResetPasswordActionResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345/actions/resetPassword"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "IpV42": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "IP Address",
            "example": "192.168.0.1"
          },
          "netmaskCidr": {
            "type": "integer",
            "format": "int32",
            "description": "Netmask CIDR",
            "example": 19
          },
          "gateway": {
            "type": "string",
            "description": "Gateway",
            "example": "1.1.1.1"
          }
        },
        "required": [
          "ip",
          "netmaskCidr",
          "gateway"
        ]
      },
      "AdditionalIp": {
        "type": "object",
        "properties": {
          "v4": {
            "$ref": "#/components/schemas/IpV42"
          }
        },
        "required": [
          "v4"
        ]
      },
      "IpConfig1": {
        "type": "object",
        "properties": {
          "v4": {
            "$ref": "#/components/schemas/IpV42"
          },
          "v6": {
            "$ref": "#/components/schemas/IpV6"
          }
        },
        "required": [
          "v4",
          "v6"
        ]
      },
      "instanceStatus": {
        "type": "string",
        "enum": [
          "provisioning",
          "uninstalled",
          "running",
          "stopped",
          "error",
          "installing",
          "unknown",
          "manual_provisioning",
          "product_not_available",
          "verification_required",
          "rescue",
          "pending_payment",
          "other",
          "reset_password"
        ],
        "description": "Instance's status"
      },
      "AddOnResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Id of the Addon. Please refer to list [here](https://contabo.com/en/product-list/?show_ids=true).",
            "example": 1431
          },
          "quantity": {
            "type": "integer",
            "format": "int64",
            "description": "The number of Addons you wish to aquire.",
            "example": 4
          }
        },
        "required": [
          "id",
          "quantity"
        ]
      },
      "ListInstancesResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE",
            "enum": [
              "DE",
              "INT"
            ]
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "additionalIps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalIp"
            }
          },
          "name": {
            "type": "string",
            "description": "Instance Name",
            "example": "vmd12345"
          },
          "displayName": {
            "type": "string",
            "description": "Instance display name",
            "example": "VPS"
          },
          "instanceId": {
            "type": "integer",
            "description": "Instance ID",
            "example": 100,
            "format": "int64"
          },
          "dataCenter": {
            "type": "string",
            "description": "The data center where your Private Network is located",
            "example": "European Union 1"
          },
          "region": {
            "type": "string",
            "description": "Instance region where the compute instance should be located.",
            "example": "EU"
          },
          "regionName": {
            "type": "string",
            "description": "The name of the region where the instance is located.",
            "example": "European Union"
          },
          "productId": {
            "type": "string",
            "description": "Product ID",
            "example": "V5"
          },
          "imageId": {
            "type": "string",
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "Image's id"
          },
          "ipConfig": {
            "$ref": "#/components/schemas/IpConfig1"
          },
          "macAddress": {
            "type": "string",
            "description": "MAC Address",
            "example": "F2:65:50:F3:63:A1"
          },
          "ramMb": {
            "type": "number",
            "description": "Image RAM size in MB",
            "example": "1024"
          },
          "cpuCores": {
            "type": "integer",
            "format": "int64",
            "description": "CPU core count",
            "example": 4
          },
          "osType": {
            "type": "string",
            "description": "Type of operating system (OS)",
            "example": "Linux"
          },
          "diskMb": {
            "type": "number",
            "description": "Image Disk size in MB",
            "example": 2048
          },
          "sshKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Array of `secretId`s of public SSH keys for logging into as `defaultUser` with administrator/root privileges. Applies to Linux/BSD systems. Please refer to Secrets Management API.",
            "example": [
              123,
              125
            ]
          },
          "createdDate": {
            "type": "string",
            "format": "date-time",
            "description": "The creation date for the instance",
            "example": "2021-06-03T06:27:12.000Z"
          },
          "cancelDate": {
            "type": "string",
            "format": "date",
            "pattern": "yyyy-mm-dd",
            "minLength": 0,
            "maxLength": 10,
            "description": "The date on which the instance will be cancelled",
            "example": "2021-06-03"
          },
          "status": {
            "description": "Instance's status",
            "example": "running",
            "allOf": [
              {
                "$ref": "#/components/schemas/instanceStatus"
              }
            ]
          },
          "vHostId": {
            "type": "integer",
            "format": "int64",
            "description": "ID of host system",
            "example": 73395
          },
          "vHostNumber": {
            "type": "integer",
            "format": "int64",
            "description": "Number of host system",
            "example": 1001
          },
          "vHostName": {
            "type": "string",
            "description": "Name of host system",
            "example": "m1000"
          },
          "addOns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddOnResponse"
            }
          },
          "errorMessage": {
            "type": "string",
            "description": "Message in case of an error."
          },
          "productType": {
            "type": "string",
            "description": "Instance's category depending on Product Id",
            "example": "ssd",
            "enum": [
              "hdd",
              "ssd",
              "vds",
              "nvme"
            ]
          },
          "productName": {
            "type": "string",
            "description": "Instance's Product Name",
            "example": "VPS M"
          },
          "defaultUser": {
            "type": "string",
            "enum": [
              "root",
              "admin",
              "administrator"
            ],
            "description": "Default user name created for login during (re-)installation with administrative privileges. Allowed values for Linux/BSD are `admin` (use sudo to apply administrative privileges like root) or `root`. Allowed values for Windows are `admin` (has administrative privileges like administrator) or `administrator`.",
            "example": "root"
          },
          "applicationId": {
            "type": "string",
            "description": "Application ID",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "additionalIps",
          "name",
          "displayName",
          "instanceId",
          "dataCenter",
          "region",
          "regionName",
          "productId",
          "imageId",
          "ipConfig",
          "macAddress",
          "ramMb",
          "cpuCores",
          "osType",
          "diskMb",
          "sshKeys",
          "createdDate",
          "cancelDate",
          "status",
          "vHostId",
          "vHostNumber",
          "vHostName",
          "addOns",
          "productType",
          "productName",
          "applicationId"
        ]
      },
      "ListInstancesResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListInstancesResponseData"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/compute/instances?page=1",
              "previous": "/v1/compute/instances?page=19",
              "self": "/v1/compute/instances?page=20",
              "next": "/v1/compute/instances?page=21",
              "last": "/v1/compute/instances?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "InstanceResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE",
            "enum": [
              "DE",
              "INT"
            ]
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "additionalIps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalIp"
            }
          },
          "name": {
            "type": "string",
            "description": "Instance Name",
            "example": "vmd12345"
          },
          "displayName": {
            "type": "string",
            "description": "Instance display name",
            "example": "VPS"
          },
          "instanceId": {
            "type": "integer",
            "description": "Instance ID",
            "example": 100,
            "format": "int64"
          },
          "dataCenter": {
            "type": "string",
            "description": "The data center where your Private Network is located",
            "example": "European Union 1"
          },
          "region": {
            "type": "string",
            "description": "Instance region where the compute instance should be located.",
            "example": "EU"
          },
          "regionName": {
            "type": "string",
            "description": "The name of the region where the instance is located.",
            "example": "European Union"
          },
          "productId": {
            "type": "string",
            "description": "Product ID",
            "example": "V5"
          },
          "imageId": {
            "type": "string",
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "Image's id"
          },
          "ipConfig": {
            "$ref": "#/components/schemas/IpConfig1"
          },
          "macAddress": {
            "type": "string",
            "description": "MAC Address",
            "example": "F2:65:50:F3:63:A1"
          },
          "ramMb": {
            "type": "number",
            "description": "Image RAM size in MB",
            "example": "1024"
          },
          "cpuCores": {
            "type": "integer",
            "format": "int64",
            "description": "CPU core count",
            "example": 4
          },
          "osType": {
            "type": "string",
            "description": "Type of operating system (OS)",
            "example": "Linux"
          },
          "diskMb": {
            "type": "number",
            "description": "Image Disk size in MB",
            "example": 2048
          },
          "sshKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Array of `secretId`s of public SSH keys for logging into as `defaultUser` with administrator/root privileges. Applies to Linux/BSD systems. Please refer to Secrets Management API.",
            "example": [
              123,
              125
            ]
          },
          "createdDate": {
            "type": "string",
            "format": "date-time",
            "description": "The creation date for the instance",
            "example": "2021-06-03T06:27:12.000Z"
          },
          "cancelDate": {
            "type": "string",
            "format": "date",
            "pattern": "yyyy-mm-dd",
            "minLength": 0,
            "maxLength": 10,
            "description": "The date on which the instance will be cancelled",
            "example": "2021-06-03"
          },
          "status": {
            "description": "Instance's status",
            "example": "running",
            "allOf": [
              {
                "$ref": "#/components/schemas/instanceStatus"
              }
            ]
          },
          "vHostId": {
            "type": "integer",
            "format": "int64",
            "description": "ID of host system",
            "example": 73395
          },
          "vHostNumber": {
            "type": "integer",
            "format": "int64",
            "description": "Number of host system",
            "example": 1001
          },
          "vHostName": {
            "type": "string",
            "description": "Name of host system",
            "example": "m1000"
          },
          "addOns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddOnResponse"
            }
          },
          "errorMessage": {
            "type": "string",
            "description": "Message in case of an error."
          },
          "productType": {
            "type": "string",
            "description": "Instance's category depending on Product Id",
            "example": "ssd",
            "enum": [
              "hdd",
              "ssd",
              "vds",
              "nvme"
            ]
          },
          "productName": {
            "type": "string",
            "description": "Instance's Product Name",
            "example": "VPS M"
          },
          "defaultUser": {
            "type": "string",
            "enum": [
              "root",
              "admin",
              "administrator"
            ],
            "description": "Default user name created for login during (re-)installation with administrative privileges. Allowed values for Linux/BSD are `admin` (use sudo to apply administrative privileges like root) or `root`. Allowed values for Windows are `admin` (has administrative privileges like administrator) or `administrator`.",
            "example": "root"
          },
          "applicationId": {
            "type": "string",
            "description": "Application ID",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "additionalIps",
          "name",
          "displayName",
          "instanceId",
          "dataCenter",
          "region",
          "regionName",
          "productId",
          "imageId",
          "ipConfig",
          "macAddress",
          "ramMb",
          "cpuCores",
          "osType",
          "diskMb",
          "sshKeys",
          "createdDate",
          "cancelDate",
          "status",
          "vHostId",
          "vHostNumber",
          "vHostName",
          "addOns",
          "productType",
          "productName",
          "applicationId"
        ]
      },
      "FindInstanceResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstanceResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/100"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "PatchInstanceRequest": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "maxLength": 255,
            "description": "The display name of the instance",
            "example": "VPS"
          }
        }
      },
      "PatchInstanceResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "instanceId": {
            "type": "integer",
            "description": "Instance's id",
            "example": 12345,
            "format": "int64"
          },
          "createdDate": {
            "format": "date-time",
            "type": "string",
            "description": "Creation date of the instance",
            "example": "2021-06-02T12:32:03.363Z"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "createdDate"
        ]
      },
      "PatchInstanceResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PatchInstanceResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "ReinstallInstanceRequest": {
        "type": "object",
        "properties": {
          "imageId": {
            "type": "string",
            "description": "ImageId to be used to setup the compute instance.",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "sshKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Array of `secretId`s of public SSH keys for logging into as `defaultUser` with administrator/root privileges. Applies to Linux/BSD systems. Please refer to Secrets Management API.",
            "example": "[123, 125]"
          },
          "rootPassword": {
            "type": "integer",
            "format": "int64",
            "description": "`secretId` of the password for the `defaultUser` with administrator/root privileges. For Linux/BSD please use SSH, for Windows RDP. Please refer to Secrets Management API.",
            "example": 1
          },
          "userData": {
            "type": "string",
            "description": "[Cloud-Init](https://cloud-init.io/) Config in order to customize during start of compute instance.",
            "example": "#cloud-config\nuser: admin\ntimezone: Europe/Berlin\nchpasswd:\n expire: False"
          },
          "defaultUser": {
            "type": "string",
            "enum": [
              "root",
              "admin",
              "administrator"
            ],
            "description": "Default user name created for login during (re-)installation with administrative privileges. Allowed values for Linux/BSD are `admin` (use sudo to apply administrative privileges like root) or `root`. Allowed values for Windows are `admin` (has administrative privileges like administrator) or `administrator`.",
            "example": "root"
          },
          "applicationId": {
            "type": "string",
            "description": "Application ID",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          }
        },
        "required": [
          "imageId"
        ]
      },
      "ReinstallInstanceResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "instanceId": {
            "type": "integer",
            "description": "Instance's id",
            "example": 12345,
            "format": "int64"
          },
          "createdDate": {
            "format": "date-time",
            "type": "string",
            "description": "Creation date for instance",
            "example": "2021-06-02T12:32:03.363Z"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "createdDate"
        ]
      },
      "ReinstallInstanceResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReinstallInstanceResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "ExtraStorageRequest": {
        "type": "object",
        "properties": {
          "ssd": {
            "description": "Specify the size in TB and the quantity",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "nvme": {
            "description": "Specify the size in TB and the quantity",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AddOnRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Id of the Addon. Please refer to list [here](https://contabo.com/en/product-list/?show_ids=true).",
            "example": 1019
          },
          "quantity": {
            "type": "integer",
            "format": "int64",
            "description": "The number of Addons you wish to aquire.",
            "example": 4
          }
        },
        "required": [
          "id",
          "quantity"
        ]
      },
      "CreateInstanceAddons": {
        "type": "object",
        "properties": {
          "privateNetworking": {
            "type": "object",
            "additionalProperties": true,
            "description": "Set this attribute if you want to upgrade your instance with the Private Networking addon.   Please provide an empty object for the time being as value. There will be more configuration possible   in the future.",
            "example": {}
          },
          "additionalIps": {
            "type": "object",
            "additionalProperties": true,
            "description": "Set this attribute if you want to upgrade your instance with the Additional IPs addon. Please provide an empty object for the time being as value. There will be more configuration possible in the future.",
            "example": {}
          },
          "backup": {
            "type": "object",
            "additionalProperties": true,
            "description": "Set this attribute if you want to upgrade your instance with the Automated backup addon.     Please provide an empty object for the time being as value. There will be more configuration possible     in the future.",
            "example": {}
          },
          "extraStorage": {
            "description": "Set this attribute if you want to upgrade your instance with the Extra Storage addon.",
            "example": {},
            "allOf": [
              {
                "$ref": "#/components/schemas/ExtraStorageRequest"
              }
            ]
          },
          "customImage": {
            "type": "object",
            "additionalProperties": true,
            "description": "Set this attribute if you want to upgrade your instance with the Custom Images addon.   Please provide an empty object for the time being as value. There will be more configuration possible   in the future.",
            "example": {}
          },
          "addonsIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddOnRequest"
            }
          }
        }
      },
      "CreateInstanceRequest": {
        "type": "object",
        "properties": {
          "imageId": {
            "type": "string",
            "description": "ImageId to be used to setup the compute instance. Default is Ubuntu 22.04",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752",
            "default": "afecbb85-e2fc-46f0-9684-b46b1faf00bb"
          },
          "productId": {
            "type": "string",
            "minLength": 1,
            "description": "Default is V92",
            "example": "V92",
            "default": "V92"
          },
          "region": {
            "type": "string",
            "enum": [
              "EU",
              "US-central",
              "US-east",
              "US-west",
              "SIN",
              "UK",
              "AUS",
              "JPN",
              "IND"
            ],
            "minLength": 1,
            "description": "Instance Region where the compute instance should be located. Default is EU",
            "example": "EU",
            "default": "EU"
          },
          "sshKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Array of `secretId`s of public SSH keys for logging into as `defaultUser` with administrator/root privileges. Applies to Linux/BSD systems. Please refer to Secrets Management API.",
            "example": "[123, 125]"
          },
          "rootPassword": {
            "type": "integer",
            "format": "int64",
            "description": "`secretId` of the password for the `defaultUser` with administrator/root privileges. For Linux/BSD please use SSH, for Windows RDP. Please refer to Secrets Management API.",
            "example": 1
          },
          "userData": {
            "type": "string",
            "description": "[Cloud-Init](https://cloud-init.io/) Config in order to customize during start of compute instance.",
            "example": "#cloud-config\nuser: admin\ntimezone: Europe/Berlin\nchpasswd:\n expire: False"
          },
          "license": {
            "type": "string",
            "description": "Additional licence in order to enhance your chosen product, mainly needed for software licenses on your product (not needed for windows).",
            "enum": [
              "cPanel5",
              "cPanel30",
              "cPanel50",
              "cPanel100",
              "cPanel150",
              "cPanel200",
              "cPanel250",
              "cPanel300",
              "cPanel350",
              "cPanel400",
              "cPanel450",
              "cPanel500",
              "cPanel550",
              "cPanel600",
              "cPanel650",
              "cPanel700",
              "cPanel750",
              "cPanel800",
              "cPanel850",
              "cPanel900",
              "cPanel950",
              "cPanel1000",
              "PleskAdmin",
              "PleskHost",
              "PleskPro"
            ],
            "example": "PleskHost"
          },
          "period": {
            "type": "integer",
            "format": "int64",
            "description": "Initial contract period in months. Available periods are: 1, 3, 6 and 12 months. Default to 1 month",
            "example": 6,
            "default": 1
          },
          "displayName": {
            "type": "string",
            "maxLength": 255,
            "description": "The display name of the instance",
            "example": "VPS"
          },
          "defaultUser": {
            "type": "string",
            "enum": [
              "root",
              "admin",
              "administrator"
            ],
            "description": "Default user name created for login during (re-)installation with administrative privileges. Allowed values for Linux/BSD are `admin` (use sudo to apply administrative privileges like root) or `root`. Allowed values for Windows are `admin` (has administrative privileges like administrator) or `administrator`.",
            "example": "root",
            "default": "admin"
          },
          "addOns": {
            "description": "Set attributes in the addons object for the corresponding ones that need to be added to the instance",
            "example": {
              "privateNetworking": {},
              "additionalIps": {},
              "extraStorage": {},
              "customImage": {}
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateInstanceAddons"
              }
            ]
          },
          "applicationId": {
            "type": "string",
            "description": "Application ID",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          }
        },
        "required": [
          "period"
        ]
      },
      "CreateInstanceResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "instanceId": {
            "type": "integer",
            "description": "Instance's id",
            "example": 12345,
            "format": "int64"
          },
          "createdDate": {
            "format": "date-time",
            "type": "string",
            "description": "Creation date for instance",
            "example": "2021-06-02T12:32:03.363Z"
          },
          "imageId": {
            "type": "string",
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "Image's id"
          },
          "productId": {
            "type": "string",
            "description": "Product ID",
            "example": "V92"
          },
          "region": {
            "type": "string",
            "description": "Instance Region where the compute instance should be located.",
            "example": "EU"
          },
          "addOns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddOnResponse"
            }
          },
          "osType": {
            "type": "string",
            "description": "Type of operating system (OS)",
            "example": "Linux"
          },
          "status": {
            "description": "Instance's status",
            "example": "running",
            "allOf": [
              {
                "$ref": "#/components/schemas/instanceStatus"
              }
            ]
          },
          "sshKeys": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Array of `secretId`s of public SSH keys for logging into as `defaultUser` with administrator/root privileges. Applies to Linux/BSD systems. Please refer to Secrets Management API.",
            "example": [
              123,
              125
            ]
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "createdDate",
          "imageId",
          "productId",
          "region",
          "addOns",
          "osType",
          "status",
          "sshKeys"
        ]
      },
      "CreateInstanceResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateInstanceResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "CancelInstanceRequest": {
        "type": "object",
        "properties": {
          "cancelDate": {
            "format": "date-time",
            "type": "string",
            "description": "Date of cancellation",
            "example": "15-8-2021"
          }
        }
      },
      "CancelInstanceResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "instanceId": {
            "type": "integer",
            "description": "Instance's id",
            "example": 12345,
            "format": "int64"
          },
          "cancelDate": {
            "type": "string",
            "format": "date",
            "description": "The date on which the instance will be cancelled",
            "example": "2021-06-03"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "cancelDate"
        ]
      },
      "CancelInstanceResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CancelInstanceResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "FirewallingUpgradeRequest": {
        "type": "object",
        "properties": {
          "assignFirewalls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of IDs of firewalls the upgraded instance should be assigned to immediately.   If the list is empty or this property is not provided the instance will be assigned to   your current default firewall."
          }
        }
      },
      "PrivateNetworkingUpgradeRequest": {
        "type": "object",
        "properties": {}
      },
      "Backup": {
        "type": "object",
        "properties": {}
      },
      "AddOnQuantityRequest": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "integer",
            "format": "int64",
            "description": "The number of Addons you wish to aquire.",
            "example": 4
          }
        },
        "required": [
          "quantity"
        ]
      },
      "UpgradeInstanceRequest": {
        "type": "object",
        "properties": {
          "privateNetworking": {
            "description": "Set this attribute if you want to upgrade your instance with the Private Networking addon. Please provide an empty object for the time being as value. There will be more configuration possible in the future.",
            "example": {},
            "allOf": [
              {
                "$ref": "#/components/schemas/PrivateNetworkingUpgradeRequest"
              }
            ]
          },
          "backup": {
            "description": "Set this attribute if you want to upgrade your instance with the Automated Backup addon.   Please provide an empty object for the time being as value. There will be more configuration possible   in the future.",
            "example": {},
            "allOf": [
              {
                "$ref": "#/components/schemas/Backup"
              }
            ]
          }
        }
      },
      "InstancesActionsAuditResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The ID of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "Id of user who performed the change",
            "example": "c4c800ff-e524-47dd-9543-71dfc8b91113"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "instanceId": {
            "type": "integer",
            "minimum": 0,
            "example": 12345,
            "format": "int64",
            "description": "The identifier of the instancesActions"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "instanceId"
        ]
      },
      "ListInstancesActionsAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstancesActionsAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/compute/instances/actions/audits?page=2",
              "previous": "/v1/compute/instances/actions/audits?page=2",
              "next": "/v1/compute/instances/actions/audits?page=3",
              "last": "/v1/compute/instances/actions/audits?page=10",
              "self": "/v1/compute/instances/actions/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "InstancesAuditResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The ID of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "Id of user who performed the change",
            "example": "c4c800ff-e524-47dd-9543-71dfc8b91113"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "instanceId": {
            "type": "integer",
            "minimum": 0,
            "example": 12345,
            "format": "int64",
            "description": "The identifier of the instance"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "instanceId"
        ]
      },
      "ListInstancesAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstancesAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/compute/instances/audits?page=2",
              "previous": "/v1/compute/instances/audits?page=2",
              "next": "/v1/compute/instances/audits?page=3",
              "last": "/v1/compute/instances/audits?page=10",
              "self": "/v1/compute/instances/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "AssignedTagResponse": {
        "type": "object",
        "properties": {
          "tagId": {
            "type": "number",
            "example": 12345,
            "description": "Tag's id"
          },
          "tagName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Tag's name",
            "example": "Web-Server"
          }
        },
        "required": [
          "tagId",
          "tagName"
        ]
      },
      "ListImageResponseData": {
        "type": "object",
        "properties": {
          "imageId": {
            "type": "string",
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "Image's id"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE",
            "enum": [
              "DE",
              "INT"
            ]
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "12345"
          },
          "name": {
            "type": "string",
            "description": "Image Name",
            "example": "Custom Image Ubuntu"
          },
          "description": {
            "type": "string",
            "description": "Image Description",
            "example": "Ubuntu Server 20.04.2 LTS"
          },
          "url": {
            "type": "string",
            "description": "URL from where the image has been downloaded / provided.",
            "example": "https://example.com/image.qcow2"
          },
          "sizeMb": {
            "type": "number",
            "description": "Image Size in MB",
            "example": 1024
          },
          "uploadedSizeMb": {
            "type": "number",
            "description": "Image Uploaded Size in MB",
            "example": 1024
          },
          "osType": {
            "type": "string",
            "description": "Type of operating system (OS)",
            "example": "Linux"
          },
          "version": {
            "type": "string",
            "description": "Version number to distinguish the contents of an image. Could be the version of the operating system for example.",
            "example": "20.04.2"
          },
          "format": {
            "type": "string",
            "description": "Image format",
            "example": "iso",
            "enum": [
              "iso",
              "qcow2"
            ]
          },
          "status": {
            "type": "string",
            "description": "Image status (e.g. if image is still downloading)",
            "example": "Pending"
          },
          "errorMessage": {
            "type": "string",
            "description": "Image download error message",
            "example": "Error downloading image from provided URL"
          },
          "standardImage": {
            "type": "boolean",
            "description": "Flag indicating that image is either a standard (true) or a custom image (false)",
            "example": true
          },
          "creationDate": {
            "type": "string",
            "format": "date-time",
            "description": "The creation date time for the image",
            "example": "2021-06-03T06:27:12.000Z"
          },
          "lastModifiedDate": {
            "type": "string",
            "format": "date-time",
            "description": "The last modified date time for the image",
            "example": "2021-06-04T06:27:12.000Z"
          },
          "tags": {
            "description": "The tags assigned to the image",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssignedTagResponse"
            }
          }
        },
        "required": [
          "imageId",
          "tenantId",
          "customerId",
          "name",
          "description",
          "url",
          "sizeMb",
          "uploadedSizeMb",
          "osType",
          "version",
          "format",
          "status",
          "errorMessage",
          "standardImage",
          "creationDate",
          "lastModifiedDate",
          "tags"
        ]
      },
      "ListImageResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListImageResponseData"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/compute/images?page=1",
              "previous": "/v1/compute/images?page=19",
              "self": "/v1/compute/images?page=20",
              "next": "/v1/compute/images?page=21",
              "last": "/v1/compute/images?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "CreateCustomImageRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Image Name",
            "example": "Ubuntu Custom Image"
          },
          "description": {
            "type": "string",
            "description": "Image Description",
            "example": "Ubuntu Server 20.04.2 LTS"
          },
          "url": {
            "type": "string",
            "description": "URL from where the image has been downloaded / provided.",
            "example": "https://example.com/image.qcow2"
          },
          "osType": {
            "type": "string",
            "description": "Provided type of operating system (OS). Please specify `Windows` for MS Windows and `Linux` for other OS. Specifying wrong OS type may lead to disfunctional cloud instance.",
            "enum": [
              "Windows",
              "Linux"
            ],
            "example": "Linux"
          },
          "version": {
            "type": "string",
            "description": "Version number to distinguish the contents of an image. Could be the version of the operating system for example.",
            "example": "20.04.2"
          }
        },
        "required": [
          "name",
          "url",
          "osType",
          "version"
        ]
      },
      "CreateCustomImageResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "imageId": {
            "type": "string",
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "Image's id"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "imageId"
        ]
      },
      "CreateCustomImageResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateCustomImageResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/images/9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "CreateCustomImageFailResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "example": "Unsupported Media Type",
            "description": "Unsupported Media Type: Please provide a direct link to an .iso or .qcow2 image."
          },
          "statusCode": {
            "type": "integer",
            "example": "415",
            "description": "statuscode:415"
          }
        },
        "required": [
          "message",
          "statusCode"
        ]
      },
      "ImageResponse": {
        "type": "object",
        "properties": {
          "imageId": {
            "type": "string",
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "Image's id"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE",
            "enum": [
              "DE",
              "INT"
            ]
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "12345"
          },
          "name": {
            "type": "string",
            "description": "Image Name",
            "example": "Custom Image Ubuntu"
          },
          "description": {
            "type": "string",
            "description": "Image Description",
            "example": "Ubuntu Server 20.04.2 LTS"
          },
          "url": {
            "type": "string",
            "description": "URL from where the image has been downloaded / provided.",
            "example": "https://example.com/image.qcow2"
          },
          "sizeMb": {
            "type": "number",
            "description": "Image Size in MB",
            "example": 1024
          },
          "uploadedSizeMb": {
            "type": "number",
            "description": "Image Uploaded Size in MB",
            "example": 1024
          },
          "osType": {
            "type": "string",
            "description": "Type of operating system (OS)",
            "example": "Linux"
          },
          "version": {
            "type": "string",
            "description": "Version number to distinguish the contents of an image. Could be the version of the operating system for example.",
            "example": "20.04.2"
          },
          "format": {
            "type": "string",
            "description": "Image format",
            "example": "iso",
            "enum": [
              "iso",
              "qcow2"
            ]
          },
          "status": {
            "type": "string",
            "description": "Image status (e.g. if image is still downloading)",
            "example": "Pending"
          },
          "errorMessage": {
            "type": "string",
            "description": "Image download error message",
            "example": "Error downloading image from provided URL"
          },
          "standardImage": {
            "type": "boolean",
            "description": "Flag indicating that image is either a standard (true) or a custom image (false)",
            "example": true
          },
          "creationDate": {
            "type": "string",
            "format": "date-time",
            "description": "The creation date time for the image",
            "example": "2021-06-03T06:27:12.000Z"
          },
          "lastModifiedDate": {
            "type": "string",
            "format": "date-time",
            "description": "The last modified date time for the image",
            "example": "2021-06-04T06:27:12.000Z"
          }
        },
        "required": [
          "imageId",
          "tenantId",
          "customerId",
          "name",
          "description",
          "url",
          "sizeMb",
          "uploadedSizeMb",
          "osType",
          "version",
          "format",
          "status",
          "errorMessage",
          "standardImage",
          "creationDate",
          "lastModifiedDate"
        ]
      },
      "FindImageResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/images/9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UpdateCustomImageRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Image Name",
            "example": "Ubuntu Custom Image"
          },
          "description": {
            "type": "string",
            "description": "Image Description",
            "example": "Ubuntu 20.04 image"
          }
        }
      },
      "UpdateCustomImageResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "imageId": {
            "type": "string",
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "Image's id"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "imageId"
        ]
      },
      "UpdateCustomImageResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateCustomImageResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/images/9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "CustomImagesStatsResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "currentImagesCount": {
            "type": "number",
            "description": "The number of existing custom images",
            "example": 4
          },
          "totalSizeMb": {
            "type": "number",
            "description": "Total available disk space in MB",
            "example": 102400
          },
          "usedSizeMb": {
            "type": "number",
            "description": "Used disk space in MB",
            "example": 55000
          },
          "freeSizeMb": {
            "type": "number",
            "description": "Free disk space in MB",
            "example": 47400
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "currentImagesCount",
          "totalSizeMb",
          "usedSizeMb",
          "freeSizeMb"
        ]
      },
      "CustomImagesStatsResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomImagesStatsResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/images/stats"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "SnapshotResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "snapshotId": {
            "type": "string",
            "description": "Snapshot's id",
            "example": "snap1628603855"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "The name of the snapshot.",
            "example": "Snapshot-Server"
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "The description of the snapshot.",
            "example": "Snapshot-Description"
          },
          "instanceId": {
            "type": "integer",
            "description": "The instance identifier associated with the snapshot",
            "example": 1234,
            "format": "int64"
          },
          "createdDate": {
            "format": "date-time",
            "type": "string",
            "description": "The date when the snapshot was created",
            "example": "2021-06-02T12:32:03.363Z"
          },
          "autoDeleteDate": {
            "format": "date-time",
            "type": "string",
            "description": "The date when the snapshot will be auto-deleted",
            "example": "2021-07-02T12:32:03.363Z"
          },
          "imageId": {
            "type": "string",
            "description": "Image Id the snapshot was taken on",
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
          },
          "imageName": {
            "type": "string",
            "description": "Image name the snapshot was taken on",
            "example": "ubuntu-18.04"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "snapshotId",
          "name",
          "description",
          "instanceId",
          "createdDate",
          "autoDeleteDate",
          "imageId",
          "imageName"
        ]
      },
      "ListSnapshotResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SnapshotResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/compute/instances/12345/snapshots?page=1",
              "next": "/v1/compute/instances/12345/snapshots?page=19",
              "self": "/v1/compute/instances/12345/snapshots/snap1628603855",
              "previous": "/v1/compute/instances/12345/snapshots?page=21",
              "last": "/v1/compute/instances/12345/snapshots?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "CreateSnapshotRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 30,
            "example": "Snapshot-Server",
            "description": "The name of the snapshot. It may contain letters, numbers, spaces, dashes. There is a limit of 30 characters per snapshot."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Snapshot-Description",
            "description": "The description of the snapshot. There is a limit of 255 characters per snapshot."
          }
        },
        "required": [
          "name"
        ]
      },
      "CreateSnapshotResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SnapshotResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345/snapshots/snap1628603855"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "FindSnapshotResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SnapshotResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345/snapshots/snap1628603855"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UpdateSnapshotRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 30,
            "example": "Snapshot-Server",
            "description": "The name of the snapshot. Tags may contain only letters, numbers, spaces, dashes. There is a limit of 30 characters per snapshot."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "Snapshot-Description",
            "description": "The description of the snapshot. There is a limit of 255 characters per snapshot."
          }
        }
      },
      "UpdateSnapshotResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SnapshotResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/12345/snapshots/snap1628603855"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "RollbackSnapshotRequest": {
        "type": "object",
        "properties": {}
      },
      "RollbackSnapshotResponse": {
        "type": "object",
        "properties": {
          "_links": {
            "description": "Links for easy navigation.",
            "example": {
              "self": "/v1/compute/instances/12345/snapshots/snap1628603855"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "_links"
        ]
      },
      "ApplicationMetaData": {
        "type": "object",
        "properties": {
          "urls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "logoUrl": {
            "type": "string"
          },
          "initialUsername": {
            "type": "string"
          },
          "documentationUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "requiresPasswordForInstall": {
            "type": "boolean"
          }
        },
        "required": [
          "urls",
          "logoUrl",
          "initialUsername",
          "documentationUrls",
          "requiresPasswordForInstall"
        ]
      },
      "ApplicationConfig": {
        "type": "object",
        "properties": {
          "imageId": {
            "type": "string",
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "Image ID"
          },
          "userDataId": {
            "type": "string",
            "example": "8b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "User Data ID"
          },
          "userData": {
            "type": "string",
            "description": "[Cloud-Init](https://cloud-init.io/) Config in order to customize during start of compute instance.",
            "example": "#cloud-config\nuser: admin\ntimezone: Europe/Berlin\nchpasswd:\n expire: False"
          },
          "metaData": {
            "description": "Metadata of the application configuration",
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicationMetaData"
              }
            ]
          }
        },
        "required": [
          "imageId",
          "userDataId",
          "userData",
          "metaData"
        ]
      },
      "MinimumRequirements": {
        "type": "object",
        "properties": {
          "cpuCores": {
            "type": "number",
            "example": 2,
            "description": "CPU Cores Requirement"
          },
          "ramMb": {
            "type": "number",
            "example": 100,
            "description": "Memory Requirement in MB"
          },
          "diskMb": {
            "type": "number",
            "example": 500,
            "description": "Storage Requirement in MB"
          },
          "validProductIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "V13",
              "V15"
            ],
            "description": "Valid Product IDs for this application"
          }
        }
      },
      "OptimalRequirements": {
        "type": "object",
        "properties": {
          "cpuCores": {
            "type": "number",
            "example": 2,
            "description": "CPU Cores Requirement"
          },
          "ramMb": {
            "type": "number",
            "example": 100,
            "description": "Memory Requirement in MB"
          },
          "diskMb": {
            "type": "number",
            "example": 500,
            "description": "Storage Requirement in MB"
          },
          "validProductIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "V13",
              "V15"
            ],
            "description": "Valid Product IDs for this application"
          }
        }
      },
      "ApplicationRequirements": {
        "type": "object",
        "properties": {
          "minimum": {
            "description": "Application minimum requirements",
            "allOf": [
              {
                "$ref": "#/components/schemas/MinimumRequirements"
              }
            ]
          },
          "optimal": {
            "description": "Application optimal requirements",
            "allOf": [
              {
                "$ref": "#/components/schemas/OptimalRequirements"
              }
            ]
          }
        }
      },
      "ApplicationResponse": {
        "type": "object",
        "properties": {
          "applicationId": {
            "type": "string",
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "Application ID"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Tenant ID",
            "example": "DE",
            "enum": [
              "DE",
              "INT"
            ]
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "12345"
          },
          "name": {
            "type": "string",
            "description": "Application Name",
            "example": "Webmin"
          },
          "description": {
            "type": "string",
            "description": "Application Description",
            "example": "Webmin cloud init"
          },
          "type": {
            "type": "string",
            "description": "Application type",
            "example": "standard",
            "enum": [
              "standard",
              "crypto"
            ]
          },
          "applicationConfig": {
            "description": "Application Config",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationConfig"
            }
          },
          "requirements": {
            "description": "Application Requirements",
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicationRequirements"
              }
            ]
          }
        },
        "required": [
          "applicationId",
          "tenantId",
          "customerId",
          "name",
          "description",
          "type",
          "applicationConfig",
          "requirements"
        ]
      },
      "ListApplicationsResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/compute/applications?page=1",
              "previous": "/v1/compute/applications?page=19",
              "self": "/v1/compute/applications?page=20",
              "next": "/v1/compute/applications?page=21",
              "last": "/v1/compute/applications?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "VncResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE",
            "enum": [
              "DE",
              "INT"
            ]
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "instanceId": {
            "type": "integer",
            "description": "Instance ID",
            "example": 100,
            "format": "int64"
          },
          "enabled": {
            "type": "boolean",
            "description": "VNC Status for the instance.",
            "example": true
          },
          "vncIp": {
            "type": "string",
            "description": "VNC IP for the instance.",
            "example": "154.12.54.123"
          },
          "vncPort": {
            "type": "number",
            "description": "VNC Port for the instance.",
            "example": 8001
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "instanceId",
          "enabled",
          "vncIp",
          "vncPort"
        ]
      },
      "FindVncResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VncResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/compute/instances/100/vnc"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "PatchVncRequest": {
        "type": "object",
        "properties": {
          "vncPassword": {
            "type": "string",
            "description": "Password for instance VNC",
            "example": "test123"
          }
        },
        "required": [
          "vncPassword"
        ]
      },
      "ImageAuditResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The ID of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "Id of user who performed the change",
            "example": "c4c800ff-e524-47dd-9543-71dfc8b91113"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "imageId": {
            "type": "string",
            "example": "e443eab5-647a-4bc3-b4f9-16f5a281224d",
            "description": "The identifier of the image"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "imageId"
        ]
      },
      "ImageAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageAuditResponseData"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/compute/images/audits?page=2",
              "previous": "/v1/compute/images/audits?page=2",
              "next": "/v1/compute/images/audits?page=3",
              "last": "/v1/compute/images/audits?page=10",
              "self": "/v1/compute/images/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "SnapshotsAuditResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The ID of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "Id of user who performed the change",
            "example": "c4c800ff-e524-47dd-9543-71dfc8b91113"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "instanceId": {
            "type": "integer",
            "minimum": 0,
            "example": 12345,
            "format": "int64",
            "description": "The identifier of the instance"
          },
          "snapshotId": {
            "type": "string",
            "description": "The identifier of the snapshot",
            "example": "snap1628603855"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "instanceId",
          "snapshotId"
        ]
      },
      "ListSnapshotsAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SnapshotsAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/compute/snapshots/audits?page=2",
              "previous": "/v1/compute/snapshots/audits?page=2",
              "next": "/v1/compute/snapshots/audits?page=3",
              "last": "/v1/compute/snapshots/audits?page=10",
              "self": "/v1/compute/snapshots/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "HandleBirthInfo": {
        "type": "object",
        "properties": {
          "date": {
            "format": "date-time",
            "type": "string",
            "description": "Date",
            "example": "2023-03-03T12:32:03.363Z"
          },
          "city": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "description": "City",
            "example": "Munich"
          },
          "zipCode": {
            "type": "string",
            "maxLength": 50,
            "minLength": 1,
            "description": "Zipcode",
            "example": "12345"
          },
          "country": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "description": "Country",
            "example": "DE"
          }
        }
      },
      "HandleAddress": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "description": "Street",
            "example": "My Street"
          },
          "streetNumber": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "description": "Street Number",
            "example": "12"
          },
          "city": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "description": "City",
            "example": "Munich"
          },
          "country": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "description": "Country",
            "example": "DE"
          },
          "zipCode": {
            "type": "string",
            "maxLength": 50,
            "minLength": 1,
            "description": "ZipCode",
            "example": "12345"
          },
          "siret": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "description": "Siret",
            "example": "12345"
          },
          "region": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "description": "Region",
            "example": "region"
          }
        },
        "required": [
          "street",
          "streetNumber",
          "city",
          "country",
          "zipCode"
        ]
      },
      "HandlePhone": {
        "type": "object",
        "properties": {
          "prefix": {
            "type": "string",
            "maxLength": 5,
            "minLength": 1,
            "description": "prefix",
            "example": "+40"
          },
          "number": {
            "type": "string",
            "maxLength": 50,
            "minLength": 1,
            "description": "number",
            "example": "123456789"
          }
        },
        "required": [
          "prefix",
          "number"
        ]
      },
      "HandleResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "handleId": {
            "type": "string",
            "description": "Handle ID",
            "example": "CA1234O1"
          },
          "handleType": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Handle Type",
            "example": "person"
          },
          "isDefault": {
            "type": "boolean",
            "description": "Flag if the handle is default or not",
            "example": true
          },
          "firstName": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "description": "Handle first name",
            "example": "John"
          },
          "lastName": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "example": "Doe",
            "description": "Handle last name"
          },
          "organization": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "example": "Test Organization",
            "description": "The organization of the handle"
          },
          "email": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "example": "john.doe@test.com",
            "description": "Handle email"
          },
          "gender": {
            "type": "string",
            "description": "Handle gender",
            "enum": [
              "male",
              "female",
              "na"
            ],
            "example": "male"
          },
          "birthInfo": {
            "description": "The birth info of the handle",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandleBirthInfo"
              }
            ]
          },
          "address": {
            "description": "Address details for handle",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandleAddress"
              }
            ]
          },
          "phone": {
            "description": "Handle phone",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandlePhone"
              }
            ]
          },
          "fax": {
            "description": "Handle fax",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandlePhone"
              }
            ]
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "handleId",
          "handleType",
          "isDefault",
          "firstName",
          "lastName",
          "email",
          "gender",
          "address",
          "phone"
        ]
      },
      "HandleListResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HandleResponse"
            }
          },
          "_links": {
            "example": {
              "first": "v1/domains/handles?page=1",
              "next": "v1/domains/handles?page=19",
              "self": "v1/domains/handles",
              "previous": "v1/domains/handles?page=18",
              "last": "v1/domains/handles?page=100"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "HandleFindResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HandleResponse"
            }
          },
          "_links": {
            "example": {
              "self": "v1/domains/handles/CA1234O1"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "HandleCreateRequest": {
        "type": "object",
        "properties": {
          "handleType": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "example": "organization",
            "description": "The type of the handle"
          },
          "firstName": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "description": "Handle first name",
            "example": "John"
          },
          "lastName": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "example": "Doe",
            "description": "Handle last name"
          },
          "organization": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "example": "Test Organization",
            "description": "The organization of the handle"
          },
          "email": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "example": "john.doe@test.com",
            "description": "Handle email"
          },
          "gender": {
            "type": "string",
            "description": "Handle gender",
            "enum": [
              "male",
              "female",
              "na"
            ],
            "example": "male"
          },
          "birthInfo": {
            "description": "The birth info of the handle",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandleBirthInfo"
              }
            ]
          },
          "address": {
            "description": "Address details for handle",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandleAddress"
              }
            ]
          },
          "phone": {
            "description": "Handle phone",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandlePhone"
              }
            ]
          },
          "fax": {
            "description": "Handle fax",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandlePhone"
              }
            ]
          }
        },
        "required": [
          "handleType",
          "firstName",
          "lastName",
          "email",
          "gender",
          "address",
          "phone"
        ]
      },
      "HandleCreateResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HandleResponse"
            }
          },
          "_links": {
            "example": {
              "self": "v1/domains/handles/CA1234O1"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "HandlePatchRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "example": "john.doe@test.com",
            "description": "Handle email"
          },
          "gender": {
            "type": "string",
            "description": "Handle gender",
            "enum": [
              "male",
              "female",
              "na"
            ],
            "example": "male"
          },
          "birthInfo": {
            "description": "The birth info of the handle",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandleBirthInfo"
              }
            ]
          },
          "address": {
            "description": "Address details for handle",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandleAddress"
              }
            ]
          },
          "phone": {
            "description": "Handle phone",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandlePhone"
              }
            ]
          },
          "fax": {
            "description": "Handle fax",
            "allOf": [
              {
                "$ref": "#/components/schemas/HandlePhone"
              }
            ]
          }
        },
        "required": [
          "email",
          "gender",
          "address",
          "phone"
        ]
      },
      "HandlePatchResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HandleResponse"
            }
          },
          "_links": {
            "example": {
              "self": "v1/domains/handles/CA1234O1"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "SetDefaultHandleResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HandleResponse"
            }
          },
          "_links": {
            "example": {
              "self": "v1/domains/handles/CA1234O1"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "DomainDetails": {
        "type": "object",
        "properties": {
          "sld": {
            "type": "string",
            "description": "Domain SLD",
            "example": "testDomain"
          },
          "tld": {
            "type": "string",
            "description": "Domain TLD",
            "example": "com"
          },
          "domainPuny": {
            "type": "string",
            "description": "Domain Puny",
            "example": "xn--testdomain-6r6y"
          }
        },
        "required": [
          "sld",
          "tld",
          "domainPuny"
        ]
      },
      "DomainHandles": {
        "type": "object",
        "properties": {
          "owner": {
            "type": "string",
            "description": "Domain's owner handle",
            "example": "CA1423255"
          },
          "admin": {
            "type": "string",
            "description": "Domain's admin handle",
            "example": "CA1423222"
          },
          "tech": {
            "type": "string",
            "description": "Domain's tech handle",
            "example": "CA1223122"
          },
          "zone": {
            "type": "string",
            "description": "Domain's zone handle",
            "example": "CA3655838"
          }
        },
        "required": [
          "owner",
          "admin",
          "tech",
          "zone"
        ]
      },
      "DomainResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "domain": {
            "type": "string",
            "description": "Domain name",
            "example": "testDomain.com"
          },
          "domainDetails": {
            "description": "Domain Details",
            "allOf": [
              {
                "$ref": "#/components/schemas/DomainDetails"
              }
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "ready",
              "processing",
              "transferring in",
              "transferring out",
              "manual_task",
              "transferred"
            ],
            "description": "Domain Status",
            "example": "ready"
          },
          "nameservers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Nameservers",
            "example": "[\"a1.test.com\", \"a2.test.com\", \"a3.test.com\"]"
          },
          "handles": {
            "description": "The handles of the domain",
            "allOf": [
              {
                "$ref": "#/components/schemas/DomainHandles"
              }
            ]
          },
          "registrationDate": {
            "type": "string",
            "format": "date-time",
            "description": "The registration date of domain",
            "example": "2021-06-03T06:27:12.000Z"
          },
          "renewalDate": {
            "type": "string",
            "format": "date-time",
            "description": "The renewal date of domain",
            "example": "2021-07-03T06:27:12.000Z"
          },
          "terminationDate": {
            "type": "string",
            "format": "date-time",
            "description": "The termination date of domain",
            "example": "2021-07-03T06:27:12.000Z"
          },
          "cancelDate": {
            "type": "string",
            "format": "date-time",
            "description": "The cancel date of domain",
            "example": "2021-07-03T06:27:12.000Z"
          },
          "dnssecKeys": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "DNSSEC keys",
            "example": "[\"test-secdns.org. 3600 IN DNSKEY 256 3 8 AwEAAb7eE4c6PFpHI0IyM1U23Dimgjt6YlafZlzOkKf42tIlArvGu1lf iSLnzyGvkJlwfzZ4tkpSgKkLiQ6vgKptM7Ij6iCA/fQYRwK0vizWmE5+ pZ0DfBBz+9MU3bGkVhVe4T8YggQvXmQ6gYrYfLHMDJaE2v7bn5VZFMCY ESxFbS/h\"]"
          },
          "transferOutConfirmation": {
            "type": "boolean",
            "example": "true",
            "description": "Transfer out confirmation"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "domain",
          "domainDetails",
          "status",
          "nameservers",
          "handles",
          "registrationDate",
          "renewalDate",
          "terminationDate",
          "cancelDate",
          "dnssecKeys",
          "transferOutConfirmation"
        ]
      },
      "DomainsListResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DomainResponse"
            }
          },
          "_links": {
            "example": {
              "first": "v1/domains?page=1",
              "next": "v1/domains?page=19",
              "self": "v1/domains",
              "previous": "v1/domains?page=18",
              "last": "v1/domains?page=100"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "DomainFindResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DomainResponse"
            }
          },
          "_links": {
            "example": {
              "self": "v1/domains/testDomain.com"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "CancelDomainRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "description": "Reason for cancelling an domain",
            "example": "Product not needed anymore",
            "enum": [
              "Technical issues / Outages / Performance",
              "Too expensive / price",
              "Product not needed anymore",
              "Bad customer support",
              "Switch to a different Contabo product",
              "Missing features",
              "Other"
            ]
          },
          "reasonText": {
            "type": "string",
            "description": "Reason Text when `Other` reason got selected while cancelling an domain",
            "example": "Not satisfied with the service."
          },
          "cancelDate": {
            "format": "date-time",
            "type": "string",
            "description": "Date of cancellation",
            "example": "15-8-2021"
          }
        }
      },
      "DomainCancel": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "domain": {
            "type": "string",
            "description": "Domain name",
            "example": "testDomain.com"
          },
          "sld": {
            "type": "string",
            "description": "Domain SLD",
            "example": "testDomain"
          },
          "tld": {
            "type": "string",
            "description": "Domain TLD",
            "example": "com"
          },
          "cancelDate": {
            "type": "string",
            "format": "date-time",
            "description": "The cancel date of domain",
            "example": "2021-07-03T06:27:12.000Z"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "domain",
          "sld",
          "tld",
          "cancelDate"
        ]
      },
      "DomainCancelResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DomainCancel"
            }
          },
          "_links": {
            "example": {
              "self": "v1/domains/testDomain.com"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "Nameserver": {
        "type": "object",
        "properties": {
          "hostname": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Nameservers",
            "example": "ns1.example.com"
          },
          "ipV4": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "IPv4 of nameserver",
            "example": "132.1.1.1"
          },
          "ipV6": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "IPv6 of nameserver",
            "example": "2001:db8:85a3::8a2e:370:7334"
          }
        },
        "required": [
          "hostname"
        ]
      },
      "DomainPatchRequest": {
        "type": "object",
        "properties": {
          "nameservers": {
            "description": "Nameservers",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Nameserver"
            }
          },
          "handles": {
            "description": "The handles of the domain",
            "allOf": [
              {
                "$ref": "#/components/schemas/DomainHandles"
              }
            ]
          }
        }
      },
      "DomainPatchResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DomainResponse"
            }
          },
          "_links": {
            "example": {
              "self": "v1/domains/testDomain.com"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "DomainCreateRequest": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name",
            "example": "testDomain.com"
          },
          "authCode": {
            "type": "string",
            "example": "1234",
            "description": "The domain auth code"
          },
          "handles": {
            "description": "The handles of the domain",
            "allOf": [
              {
                "$ref": "#/components/schemas/DomainHandles"
              }
            ]
          },
          "nameservers": {
            "description": "Nameservers",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Nameserver"
            }
          },
          "resourceType": {
            "type": "string",
            "enum": [
              "instance",
              "server",
              "package"
            ],
            "example": "instance",
            "description": "The identifier of the resource type"
          },
          "resourceId": {
            "type": "string",
            "example": "1234",
            "description": "The identifier of the resource id"
          }
        },
        "required": [
          "domain",
          "handles",
          "nameservers"
        ]
      },
      "DomainCreateResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DomainResponse"
            }
          },
          "_links": {
            "example": {
              "self": "v1/domains/testDomain.com"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "ChangedAuthCode": {
        "type": "object",
        "properties": {
          "changed": {
            "type": "boolean",
            "description": "Flag that indicates if the auth code got changed",
            "example": "true"
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "description": "The date when auth code got changed",
            "example": "2021-06-03T06:27:12.000Z"
          }
        }
      },
      "DomainAuthCodeResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "3f184ab8-a600-4e7c-8c9b-3413e21a3752"
          },
          "domain": {
            "type": "string",
            "description": "Domain name",
            "example": "testDomain.com"
          },
          "domainDetails": {
            "description": "Domain Details",
            "allOf": [
              {
                "$ref": "#/components/schemas/DomainDetails"
              }
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "ready",
              "processing",
              "transferring in",
              "transferring out",
              "manual_task",
              "transferred"
            ],
            "description": "Domain Status",
            "example": "ready"
          },
          "nameservers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Nameservers",
            "example": "[\"a1.test.com\", \"a2.test.com\", \"a3.test.com\"]"
          },
          "handles": {
            "description": "The handles of the domain",
            "allOf": [
              {
                "$ref": "#/components/schemas/DomainHandles"
              }
            ]
          },
          "registrationDate": {
            "type": "string",
            "format": "date-time",
            "description": "The registration date of domain",
            "example": "2021-06-03T06:27:12.000Z"
          },
          "renewalDate": {
            "type": "string",
            "format": "date-time",
            "description": "The renewal date of domain",
            "example": "2021-07-03T06:27:12.000Z"
          },
          "terminationDate": {
            "type": "string",
            "format": "date-time",
            "description": "The termination date of domain",
            "example": "2021-07-03T06:27:12.000Z"
          },
          "cancelDate": {
            "type": "string",
            "format": "date-time",
            "description": "The cancel date of domain",
            "example": "2021-07-03T06:27:12.000Z"
          },
          "dnssecKeys": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "DNSSEC keys",
            "example": "[\"test-secdns.org. 3600 IN DNSKEY 256 3 8 AwEAAb7eE4c6PFpHI0IyM1U23Dimgjt6YlafZlzOkKf42tIlArvGu1lf iSLnzyGvkJlwfzZ4tkpSgKkLiQ6vgKptM7Ij6iCA/fQYRwK0vizWmE5+ pZ0DfBBz+9MU3bGkVhVe4T8YggQvXmQ6gYrYfLHMDJaE2v7bn5VZFMCY ESxFbS/h\"]"
          },
          "transferOutConfirmation": {
            "type": "boolean",
            "example": "true",
            "description": "Transfer out confirmation"
          },
          "authCode": {
            "type": "string",
            "description": "Your auth code of the domain",
            "example": "XXXX-AAAA-BBBB-CCCC"
          },
          "authCodeChanged": {
            "description": "Details if the auth code has been changed",
            "allOf": [
              {
                "$ref": "#/components/schemas/ChangedAuthCode"
              }
            ]
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "domain",
          "domainDetails",
          "status",
          "nameservers",
          "handles",
          "registrationDate",
          "renewalDate",
          "terminationDate",
          "cancelDate",
          "dnssecKeys",
          "transferOutConfirmation",
          "authCode",
          "authCodeChanged"
        ]
      },
      "DomainAuthCodeRegenerateResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DomainAuthCodeResponse"
            }
          },
          "_links": {
            "example": {
              "self": "v1/domains/testDomain.com/generate-auth-code"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "HandleAuditResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The ID of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "Id of user who performed the change",
            "example": "c4c800ff-e524-47dd-9543-71dfc8b91113"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "handleId": {
            "type": "string",
            "example": "CA123O1",
            "description": "The identifier of the handle"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "firstName": "test"
              },
              "new": {
                "firstName": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "handleId"
        ]
      },
      "HandleAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HandleAuditResponseData"
            }
          },
          "_links": {
            "example": {
              "first": "v1/domains/handles/audits?page=2",
              "previous": "v1/domains/handles/audits?page=2",
              "next": "v1/domains/handles/audits?page=3",
              "last": "v1/domains/handles/audits?page=10",
              "self": "v1/domains/handles/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "DomainAuditResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The ID of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer ID",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "Id of user who performed the change",
            "example": "c4c800ff-e524-47dd-9543-71dfc8b91113"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "domain": {
            "type": "string",
            "example": "testDom.com",
            "description": "The identifier of the domain"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "sld": "com"
              },
              "new": {
                "sld": "de"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "domain"
        ]
      },
      "DomainAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DomainAuditResponseData"
            }
          },
          "_links": {
            "example": {
              "first": "v1/domains/audits?page=2",
              "previous": "v1/domains/audits?page=2",
              "next": "v1/domains/audits?page=3",
              "last": "v1/domains/audits?page=10",
              "self": "v1/domains/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "AutoScalingTypeResponse": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "State of the autoscaling for the current object storage.",
            "example": "enabled",
            "enum": [
              "enabled",
              "disabled",
              "error"
            ]
          },
          "sizeLimitTB": {
            "type": "number",
            "format": "double",
            "description": "Autoscaling size limit for the current object storage.",
            "example": 1
          },
          "errorMessage": {
            "type": "string",
            "description": "Error message"
          }
        },
        "required": [
          "state",
          "sizeLimitTB"
        ]
      },
      "ObjectStorageResponse": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "objectStorageId": {
            "type": "string",
            "minLength": 1,
            "description": "Your object storage id",
            "example": "b943b25a-c8b5-4570-9135-4bbaa7615b81"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date for object storage.",
            "example": "2021-06-02T12:32:03.363Z"
          },
          "cancelDate": {
            "type": "string",
            "format": "date",
            "description": "Cancellation date for object storage.",
            "example": "2021-06-02"
          },
          "autoScaling": {
            "description": "Autoscaling settings",
            "allOf": [
              {
                "$ref": "#/components/schemas/AutoScalingTypeResponse"
              }
            ]
          },
          "dataCenter": {
            "type": "string",
            "minLength": 1,
            "description": "Data center your object storage is located",
            "example": "EU"
          },
          "totalPurchasedSpaceTB": {
            "type": "number",
            "format": "double",
            "description": "Amount of purchased / requested object storage in TB.",
            "example": 6.25
          },
          "s3Url": {
            "type": "string",
            "description": "S3 URL to connect to your S3 compatible object storage",
            "example": "eu1-s3.contabo.com"
          },
          "s3TenantId": {
            "type": "string",
            "description": "Your S3 tenantId. Only required for public sharing.",
            "example": "2cd2e5e1444a41b0bed16c6410ecaa84"
          },
          "status": {
            "type": "string",
            "description": "The object storage status",
            "example": "READY",
            "enum": [
              "READY",
              "PROVISIONING",
              "UPGRADING",
              "CANCELLED",
              "ERROR",
              "DISABLED",
              "MANUAL_PROVISIONING",
              "PRODUCT_NOT_AVAILABLE",
              "LIMIT_EXCEEDED",
              "VERIFICATION_REQUIRED",
              "ORDER_PROCESSING",
              "PENDING_PAYMENT",
              "UNKNOWN"
            ]
          },
          "region": {
            "type": "string",
            "description": "The region where your object storage is located",
            "example": "European Union"
          },
          "displayName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Display name for object storage.",
            "example": "Object storage 1"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "objectStorageId",
          "createdDate",
          "cancelDate",
          "autoScaling",
          "dataCenter",
          "totalPurchasedSpaceTB",
          "s3Url",
          "s3TenantId",
          "status",
          "region",
          "displayName"
        ]
      },
      "ListObjectStorageResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ObjectStorageResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/object-storages?size=10",
              "previous": "/v1/object-storages?page=1&size=10",
              "next": "/v1/object-storages?page=3&size=10",
              "last": "/v1/object-storages?page=5&size=10",
              "self": "/v1/object-storages"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "DataCenterResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name of the data center",
            "example": "European Union 1"
          },
          "slug": {
            "type": "string",
            "minLength": 1,
            "description": "Slug of the data center",
            "example": "EU1"
          },
          "capabilities": {
            "type": "array",
            "example": [
              "VPS",
              "Object-Storage"
            ],
            "items": {
              "type": "string",
              "enum": [
                "VPS",
                "VDS",
                "Object-Storage",
                "Private-Networking"
              ]
            }
          },
          "s3Url": {
            "type": "string",
            "minLength": 1,
            "description": "S3 URL of the data center",
            "example": "eu1-s3.contabo.com"
          },
          "regionName": {
            "type": "string",
            "minLength": 1,
            "description": "Name of the region",
            "example": "European Union"
          },
          "regionSlug": {
            "type": "string",
            "minLength": 1,
            "description": "Slug of the region",
            "example": "EU"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          }
        },
        "required": [
          "name",
          "slug",
          "capabilities",
          "s3Url",
          "regionName",
          "regionSlug",
          "tenantId",
          "customerId"
        ]
      },
      "ListDataCenterResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DataCenterResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/data-centers?page=1",
              "previous": "/v1/data-centers?page=19",
              "self": "/v1/data-centers/12345",
              "next": "/v1/data-centers?page=21",
              "last": "/v1/data-centers?page=101"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      },
      "AutoScalingTypeRequest": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "State of the autoscaling for the current object storage.",
            "example": "enabled",
            "enum": [
              "enabled",
              "disabled"
            ]
          },
          "sizeLimitTB": {
            "type": "number",
            "format": "double",
            "description": "Autoscaling size limit for the current object storage.",
            "example": 1
          }
        },
        "required": [
          "state",
          "sizeLimitTB"
        ]
      },
      "CreateObjectStorageRequest": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "minLength": 1,
            "description": "Region where the object storage should be located. Default is EU. Available regions: EU, US-central, SIN",
            "example": "EU",
            "default": "EU"
          },
          "autoScaling": {
            "description": "Autoscaling settings",
            "allOf": [
              {
                "$ref": "#/components/schemas/AutoScalingTypeRequest"
              }
            ]
          },
          "totalPurchasedSpaceTB": {
            "type": "number",
            "format": "double",
            "description": "Amount of purchased / requested object storage in TB.",
            "example": 6,
            "default": "0.25"
          },
          "displayName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Display name helps to differentiate between object storages, especially if they are in the same region. If display name is not provided, it will be generated. Display name can be changed any time.",
            "example": "Object storage 1"
          }
        },
        "required": [
          "region",
          "totalPurchasedSpaceTB"
        ]
      },
      "CreateObjectStorageResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "objectStorageId": {
            "type": "string",
            "minLength": 1,
            "description": "Your object storage id",
            "example": "b943b25a-c8b5-4570-9135-4bbaa7615b81"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date for object storage.",
            "example": "2021-06-02T12:32:03.363Z"
          },
          "cancelDate": {
            "type": "string",
            "format": "date",
            "description": "Cancellation date for object storage.",
            "example": "2021-06-02"
          },
          "autoScaling": {
            "description": "Autoscaling settings",
            "allOf": [
              {
                "$ref": "#/components/schemas/AutoScalingTypeResponse"
              }
            ]
          },
          "dataCenter": {
            "type": "string",
            "minLength": 1,
            "description": "The data center of the storage",
            "example": "EU"
          },
          "totalPurchasedSpaceTB": {
            "type": "number",
            "format": "double",
            "description": "Amount of purchased / requested object storage in TB.",
            "example": 6.25
          },
          "usedSpaceTB": {
            "type": "number",
            "format": "double",
            "description": "Currently used space in TB.",
            "example": 4
          },
          "usedSpacePercentage": {
            "type": "number",
            "format": "double",
            "description": "Currently used space in percentage.",
            "example": "100",
            "minimum": 0,
            "maximum": 100
          },
          "s3Url": {
            "type": "string",
            "example": "eu1-s3.contabo.com",
            "description": "S3 URL to connect to your S3 compatible object storage"
          },
          "s3TenantId": {
            "type": "string",
            "description": "Your S3 tenantId. Only required for public sharing.",
            "example": "2cd2e5e1444a41b0bed16c6410ecaa84"
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "The object storage status",
            "enum": [
              "READY",
              "PROVISIONING",
              "UPGRADING",
              "CANCELLED",
              "ERROR",
              "DISABLED",
              "MANUAL_PROVISIONING",
              "PRODUCT_NOT_AVAILABLE",
              "LIMIT_EXCEEDED",
              "VERIFICATION_REQUIRED",
              "ORDER_PROCESSING",
              "PENDING_PAYMENT",
              "UNKNOWN"
            ],
            "example": "READY"
          },
          "region": {
            "type": "string",
            "description": "The region where your object storage is located",
            "example": "European Union"
          },
          "displayName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Display name for object storage.",
            "example": "Object storage 1"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "objectStorageId",
          "createdDate",
          "cancelDate",
          "autoScaling",
          "dataCenter",
          "totalPurchasedSpaceTB",
          "usedSpaceTB",
          "usedSpacePercentage",
          "s3Url",
          "s3TenantId",
          "status",
          "region",
          "displayName"
        ]
      },
      "CreateObjectStorageResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateObjectStorageResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/object-storages/8cd3f2ba-65a7-4279-bb54-0fea88dc8860"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "FindObjectStorageResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ObjectStorageResponse"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/object-storages/8cd3f2ba-65a7-4279-bb54-0fea88dc8860"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "UpgradeAutoScalingType": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "State of the autoscaling for the current object storage.",
            "example": "enabled",
            "enum": [
              "enabled",
              "disabled"
            ]
          },
          "sizeLimitTB": {
            "type": "number",
            "format": "double",
            "description": "Autoscaling size limit for the current object storage.",
            "example": 6
          }
        }
      },
      "UpgradeObjectStorageRequest": {
        "type": "object",
        "properties": {
          "autoScaling": {
            "description": "New monthly object storage size limit for autoscaling if enabled.",
            "allOf": [
              {
                "$ref": "#/components/schemas/UpgradeAutoScalingType"
              }
            ]
          },
          "totalPurchasedSpaceTB": {
            "type": "number",
            "format": "double",
            "description": "New total object storage limit. If this number is larger than before you will also be billed for the added storage space. No downgrade possible.",
            "example": 8
          }
        }
      },
      "UpgradeObjectStorageResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "objectStorageId": {
            "type": "string",
            "minLength": 1,
            "example": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
            "description": "Object storage id"
          },
          "createdDate": {
            "type": "string",
            "description": "Creation date for object storage.",
            "example": "2021-06-02T12:32:03.363Z"
          },
          "dataCenter": {
            "type": "string",
            "example": "EU",
            "description": "Data center of the object storage."
          },
          "autoScaling": {
            "description": "The autoscaling limit of the object storage.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AutoScalingTypeResponse"
              }
            ]
          },
          "s3Url": {
            "type": "string",
            "example": "eu1-s3.contabo.com",
            "description": "S3 URL to connect to your S3 compatible object storage"
          },
          "status": {
            "type": "string",
            "description": "The object storage status",
            "example": "READY",
            "enum": [
              "READY",
              "PROVISIONING",
              "UPGRADING",
              "CANCELLED",
              "ERROR",
              "DISABLED",
              "MANUAL_PROVISIONING",
              "PRODUCT_NOT_AVAILABLE",
              "LIMIT_EXCEEDED",
              "VERIFICATION_REQUIRED",
              "ORDER_PROCESSING",
              "PENDING_PAYMENT",
              "UNKNOWN"
            ]
          },
          "totalPurchasedSpaceTB": {
            "type": "number",
            "format": "double",
            "description": "Total purchased object storage space in TB.",
            "example": 6
          },
          "region": {
            "type": "string",
            "description": "The region where your object storage is located",
            "example": "European Union"
          },
          "displayName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Display name for object storage.",
            "example": "Object storage 1"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "objectStorageId",
          "createdDate",
          "dataCenter",
          "autoScaling",
          "s3Url",
          "status",
          "totalPurchasedSpaceTB",
          "region",
          "displayName"
        ]
      },
      "UpgradeObjectStorageResponse": {
        "type": "object",
        "properties": {
          "_links": {
            "example": {
              "self": "/v1/object-storages/9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpgradeObjectStorageResponseData"
            }
          }
        },
        "required": [
          "_links",
          "data"
        ]
      },
      "ObjectStoragesStatsResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "usedSpaceTB": {
            "type": "number",
            "format": "double",
            "description": "Currently used space in TB.",
            "example": 4
          },
          "usedSpacePercentage": {
            "type": "number",
            "format": "double",
            "description": "Currently used space in percentage.",
            "example": "100",
            "minimum": 0,
            "maximum": 100
          },
          "numberOfObjects": {
            "type": "integer",
            "format": "int64",
            "description": "Number of all objects (i.e. files and folders) in object storage.",
            "example": 2
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "usedSpaceTB",
          "usedSpacePercentage",
          "numberOfObjects"
        ]
      },
      "ObjectStoragesStatsResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ObjectStoragesStatsResponseData"
            }
          },
          "_links": {
            "example": {
              "self": "/v1/object-storages/stats/8cd3f2ba-65a7-4279-bb54-0fea88dc8860"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          }
        },
        "required": [
          "data",
          "_links"
        ]
      },
      "CancelObjectStorageRequest": {
        "type": "object",
        "properties": {
          "cancelDate": {
            "format": "date-time",
            "type": "string",
            "description": "Date of cancellation",
            "example": "2025-01-01"
          }
        }
      },
      "CancelObjectStorageResponseData": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Your customer number",
            "example": "54321"
          },
          "objectStorageId": {
            "type": "string",
            "description": "Object Storage id"
          },
          "cancelDate": {
            "type": "string",
            "format": "date",
            "description": "Cancellation date for object storage.",
            "example": "2021-06-02"
          },
          "displayName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Display name for object storage.",
            "example": "Object storage 1"
          }
        },
        "required": [
          "tenantId",
          "customerId",
          "objectStorageId",
          "cancelDate",
          "displayName"
        ]
      },
      "CancelObjectStorageResponse": {
        "type": "object",
        "properties": {
          "_links": {
            "example": {
              "self": "/v1/object-storages/9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/SelfLinks"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CancelObjectStorageResponseData"
            }
          }
        },
        "required": [
          "_links",
          "data"
        ]
      },
      "PatchObjectStorageRequest": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Display name helps to differentiate between object storages, especially if they are in the same region.",
            "example": "Object storage 1"
          }
        },
        "required": [
          "displayName"
        ]
      },
      "ObjectStorageAuditResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": "12345",
            "description": "The identifier of the audit entry."
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATED",
              "UPDATED",
              "DELETED"
            ],
            "example": "CREATED",
            "description": "Type of the action."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "When the change took place.",
            "example": "2021-03-30T11:35:06.177Z"
          },
          "tenantId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer tenant id",
            "example": "DE"
          },
          "customerId": {
            "type": "string",
            "minLength": 1,
            "description": "Customer number",
            "example": "54321"
          },
          "changedBy": {
            "type": "string",
            "minLength": 1,
            "description": "User ID",
            "example": "54321"
          },
          "username": {
            "type": "string",
            "description": "Name of the user which led to the change.",
            "example": "John.Doe"
          },
          "requestId": {
            "type": "string",
            "description": "The requestId of the API call which led to the change.",
            "example": "A2F56FAF-18N0-4893-11HG-R312M1E4FEC5"
          },
          "traceId": {
            "type": "string",
            "description": "The traceId of the API call which led to the change.",
            "example": "78E9A428-94E9-4A2A-92F5-26038C6884F"
          },
          "objectStorageId": {
            "type": "string",
            "example": "6cdf5968-f9fe-4192-97c2-f349e813c5e8",
            "description": "Object Storage Id"
          },
          "changes": {
            "type": "object",
            "description": "List of actual changes.",
            "example": {
              "prev": {
                "name": "test"
              },
              "new": {
                "name": "test1"
              }
            }
          }
        },
        "required": [
          "id",
          "action",
          "timestamp",
          "tenantId",
          "customerId",
          "changedBy",
          "username",
          "requestId",
          "traceId",
          "objectStorageId"
        ]
      },
      "ListObjectStorageAuditResponse": {
        "type": "object",
        "properties": {
          "_pagination": {
            "description": "Data about pagination like how many results, pages, page size.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginationMeta"
              }
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ObjectStorageAuditResponse"
            }
          },
          "_links": {
            "example": {
              "first": "/v1/object-storages/audits?page=2",
              "previous": "/v1/object-storages/audits?page=2",
              "next": "/v1/object-storages/audits?page=3",
              "last": "/v1/object-storages/audits?page=10",
              "self": "/v1/object-storages/audits"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/Links"
              }
            ]
          }
        },
        "required": [
          "_pagination",
          "data",
          "_links"
        ]
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "Compute instances",
      "tags": [
        "Instances",
        "Instances Audits",
        "Instance Actions",
        "Instance Actions Audits",
        "Snapshots",
        "Snapshots Audits",
        "Applications"
      ]
    },
    {
      "name": "Compute images",
      "tags": [
        "Images",
        "Images Audits"
      ]
    },
    {
      "name": "Object Storages",
      "tags": [
        "Object Storages",
        "Object Storages Audits"
      ]
    },
    {
      "name": "Private Networks",
      "tags": [
        "Private Networks",
        "Private Networks Audits"
      ]
    },
    {
      "name": "Tags",
      "tags": [
        "Tags",
        "Tag Assignments",
        "Tags Audits",
        "Tag Assignments Audits"
      ]
    },
    {
      "name": "Users",
      "tags": [
        "Users",
        "Users Object Storage Credentials",
        "Roles",
        "Users Audits",
        "Roles Audits"
      ]
    },
    {
      "name": "Secrets",
      "tags": [
        "Secrets",
        "Secrets Audits"
      ]
    },
    {
      "name": "Network Management",
      "tags": [
        "VIP"
      ]
    },
    {
      "name": "Domains",
      "tags": [
        "Domains",
        "Domains Audits",
        "Handles",
        "Handles Audits"
      ]
    },
    {
      "name": "DNS",
      "tags": [
        "DNS",
        "DNS Audits"
      ]
    }
  ],
  "tags": [
    {
      "name": "Instances",
      "description": "The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping)\nas well as managing snapshots and custom images. It also supports [cloud-init](https://cloud-init.io/) at least on our default images\n(for custom images you'll need to provide cloud-init support packages). The API offers providing [cloud-init](https://cloud-init.io/) scripts via the `user_data` field.\nCustom images must be provided in .qcow2 or .iso format."
    },
    {
      "name": "Instances Audits",
      "description": "The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping)\nas well as managing snapshots and custom images. It also supports [cloud-init](https://cloud-init.io/) at least on our default images\n(for custom images you'll need to provide cloud-init support packages). The API offers providing [cloud-init](https://cloud-init.io/) scripts via the `user_data` field.\nCustom images must be provided in .qcow2 or .iso format."
    },
    {
      "name": "Instance Actions",
      "description": "The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping)\nas well as managing snapshots and custom images. It also supports [cloud-init](https://cloud-init.io/) at least on our default images\n(for custom images you'll need to provide cloud-init support packages). The API offers providing [cloud-init](https://cloud-init.io/) scripts via the `user_data` field.\nCustom images must be provided in .qcow2 or .iso format."
    },
    {
      "name": "Instance Actions Audits",
      "description": "The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping)\nas well as managing snapshots and custom images. It also supports [cloud-init](https://cloud-init.io/) at least on our default images\n(for custom images you'll need to provide cloud-init support packages). The API offers providing [cloud-init](https://cloud-init.io/) scripts via the `user_data` field.\nCustom images must be provided in .qcow2 or .iso format."
    },
    {
      "name": "Images",
      "description": "The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping)\nas well as managing snapshots and custom images. It also supports [cloud-init](https://cloud-init.io/) at least on our default images\n(for custom images you'll need to provide cloud-init support packages). The API offers providing [cloud-init](https://cloud-init.io/) scripts via the `user_data` field.\nCustom images must be provided in .qcow2 or .iso format."
    },
    {
      "name": "Images Audits",
      "description": "The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping)\nas well as managing snapshots and custom images. It also supports [cloud-init](https://cloud-init.io/) at least on our default images\n(for custom images you'll need to provide cloud-init support packages). The API offers providing [cloud-init](https://cloud-init.io/) scripts via the `user_data` field.\nCustom images must be provided in .qcow2 or .iso format."
    },
    {
      "name": "VNC",
      "description": "The Compute Management API allows you to manage compute resources (e.g. creation, deletion, starting, stopping)\nas well as managing snapshots and custom images. It also supports [cloud-init](https://cloud-init.io/) at least on our default images\n(for custom images you'll need to provide cloud-init support packages). The API offers providing [cloud-init](https://cloud-init.io/) scripts via the `user_data` field.\nCustom images must be provided in .qcow2 or .iso format."
    },
    {
      "name": "Object Storages",
      "description": "Manage S3 compatible Object Storage. With the Object Storage API you can create Object Storage in different locations. Please note that you can only have one Object Storage per location. Furthermore you can increase the amount of storage space and control the autoscaling feature which allows to automatically perform a monthly upgrade of the disk space to the specified maximum. You might also inspect the usage. This API is not the S3 API itself. For accessing the S3 API directly or with S3 compatible tools like `aws` cli after and after having created / upgraded your Object Storage please use the S3 URL from this Storage API and refer to the User Mangement API to retrieve the S3 credentials."
    },
    {
      "name": "Object Storages Audits",
      "description": "Manage S3 compatible Object Storage. With the Object Storage API you can create Object Storage in different locations. Please note that you can only have one Object Storage per location. Furthermore you can increase the amount of storage space and control the autoscaling feature which allows to automatically perform a monthly upgrade of the disk space to the specified maximum. You might also inspect the usage. This API is not the S3 API itself. For accessing the S3 API directly or with S3 compatible tools like `aws` cli after and after having created / upgraded your Object Storage please use the S3 URL from this Storage API and refer to the User Mangement API to retrieve the S3 credentials."
    },
    {
      "name": "Private Networks",
      "description": "Private Networking API allows you to create and manage Private Networks / Virtual Private Vloud (VPC) for your instances (Cloud VPS/VDS). Private Network / VPC allows private and direct communication between instances using private IPs. Traffic doesn't leave a Data Center. This feature requires a payed add-on for each instance being part of a Private Network. Instance can be part of multiple Private Networks."
    },
    {
      "name": "Private Networks Audits",
      "description": "Private Networking API allows you to create and manage Private Networks / Virtual Private Vloud (VPC) for your instances (Cloud VPS/VDS). Private Network / VPC allows private and direct communication between instances using private IPs. Traffic doesn't leave a Data Center. This feature requires a payed add-on for each instance being part of a Private Network. Instance can be part of multiple Private Networks."
    },
    {
      "name": "Tags",
      "description": "Tags are Customer-defined labels which can be attached to any resource in your account. Tag API represent simple CRUD functions and allow you to manage your tags.\nUse tags to group your resources. For example you can define some user group with tag and give them permission to create compute instances."
    },
    {
      "name": "Tags Audits",
      "description": "Tags are Customer-defined labels which can be attached to any resource in your account. Tag API represent simple CRUD functions and allow you to manage your tags.\nUse tags to group your resources. For example you can define some user group with tag and give them permission to create compute instances."
    },
    {
      "name": "Tag Assignments",
      "description": "Tags are Customer-defined labels which can be attached to any resource in your account. Tag API represent simple CRUD functions and allow you to manage your tags.\nUse tags to group your resources. For example you can define some user group with tag and give them permission to create compute instances."
    },
    {
      "name": "Tag Assignments Audits",
      "description": "Tags are Customer-defined labels which can be attached to any resource in your account. Tag API represent simple CRUD functions and allow you to manage your tags.\nUse tags to group your resources. For example you can define some user group with tag and give them permission to create compute instances."
    },
    {
      "name": "Users",
      "description": "Give access to all api endpoints and resources or manage to which endpoints and resources individual users might have access to. Permissions are organized in roles. Users can have roles assigned. Roles can grant and restrict access to different API's or to specific resources. Permissions for resources are declared by using tags which have been assigned to resources."
    },
    {
      "name": "Users Object Storage Credentials",
      "description": "Give access to all api endpoints and resources or manage to which endpoints and resources individual users might have access to. Permissions are organized in roles. Users can have roles assigned. Roles can grant and restrict access to different API's or to specific resources. Permissions for resources are declared by using tags which have been assigned to resources."
    },
    {
      "name": "Users Audits",
      "description": "Give access to all api endpoints and resources or manage to which endpoints and resources individual users might have access to. Permissions are organized in roles. Users can have roles assigned. Roles can grant and restrict access to different API's or to specific resources. Permissions for resources are declared by using tags which have been assigned to resources."
    },
    {
      "name": "Roles",
      "description": "Give access to all api endpoints and resources or manage to which endpoints and resources individual users might have access to. Permissions are organized in roles. Users can have roles assigned. Roles can grant and restrict access to different API's or to specific resources. Permissions for resources are declared by using tags which have been assigned to resources."
    },
    {
      "name": "Roles Audits",
      "description": "Give access to all api endpoints and resources or manage to which endpoints and resources individual users might have access to. Permissions are organized in roles. Users can have roles assigned. Roles can grant and restrict access to different API's or to specific resources. Permissions for resources are declared by using tags which have been assigned to resources."
    },
    {
      "name": "Secrets",
      "description": "The Secret Management API allows you to store and manage your passwords and ssh-keys. Usage of the Secret Management API is purely optional. As a convenience feature e.g. it allows you to reuse SSH-keys easily."
    },
    {
      "name": "Secrets Audits",
      "description": "The Secret Management API allows you to store and manage your passwords and ssh-keys. Usage of the Secret Management API is purely optional. As a convenience feature e.g. it allows you to reuse SSH-keys easily."
    },
    {
      "name": "VIP",
      "description": "VIP (Virtual IPs) API manages virtual IP adresses including ´additional´ and ´floating´ IPv4 Adresses. Virtual IPs are payed add-ons (Additional IP) which can be freely assigned to Cloud VPS/VDS or Bare Metal. Please note, that assgnments of virtual IPs to servers is only for documentation purposes. Technical Assignemts must be configured on operation system level, see [docs](https://docs.contabo.com/docs/products/intro)."
    },
    {
      "name": "Domains",
      "description": "Domains API allows you to create and manage Domains."
    },
    {
      "name": "Handles",
      "description": "Domains API allows you to create and manage Domains."
    },
    {
      "name": "DNS",
      "description": "DNS API allows you to create and manage dns for your instances (Cloud VPS/VDS)."
    },
    {
      "name": "DNS Audits",
      "description": "DNS API allows you to create and manage dns for your instances (Cloud VPS/VDS)."
    }
  ]
}