{ "openapi": "3.0.0", "info": { "title": "Vultr API", "version": "2.0", "contact": { "email": "opensource@vultr.com", "name": "", "url": "https://www.vultr.com" }, "description": "# Introduction\n\nThe Vultr API v2 is a set of HTTP endpoints that adhere to RESTful design principles and CRUD actions with predictable URIs. It uses standard HTTP response codes, authentication, and verbs. The API has consistent and well-formed JSON requests and responses with cursor-based pagination to simplify list handling. Error messages are descriptive and easy to understand. All functions of the Vultr customer portal are accessible via the API, enabling you to script complex unattended scenarios with any tool fluent in HTTP.\n\n## Requests\n\nCommunicate with the API by making an HTTP request at the correct endpoint. The chosen method determines the action taken.\n\n| Method | Usage |\n| ------ | ------------- |\n| DELETE | Use the DELETE method to destroy a resource in your account. If it is not found, the operation will return a 4xx error and an appropriate message. |\n| GET | To retrieve information about a resource, use the GET method. The data is returned as a JSON object. GET methods are read-only and do not affect any resources. |\n| PATCH | Some resources support partial modification with PATCH, which modifies specific attributes without updating the entire object representation. |\n| POST | Issue a POST method to create a new object. Include all needed attributes in the request body encoded as JSON. |\n| PUT | Use the PUT method to update information about a resource. PUT will set new values on the item without regard to their current values. |\n\n**Rate Limit:** Vultr safeguards the API against bursts of incoming traffic based on the request's IP address to ensure stability for all users. If your application sends more than 30 requests per second, the API may return HTTP status code 429.\n\n## Response Codes\n\nWe use standard HTTP response codes to show the success or failure of requests. Response codes in the 2xx range indicate success, while codes in the 4xx range indicate an error, such as an authorization failure or a malformed request. All 4xx errors will return a JSON response object with an `error` attribute explaining the error. Codes in the 5xx range indicate a server-side problem preventing Vultr from fulfilling your request.\n\n| Response | Description |\n| ------ | ------------- |\n| 200 OK | The response contains your requested information. |\n| 201 Created | Your request was accepted. The resource was created. |\n| 202 Accepted | Your request was accepted. The resource was created or updated. |\n| 204 No Content | Your request succeeded, there is no additional information returned. |\n| 400 Bad Request | Your request was malformed. |\n| 401 Unauthorized | You did not supply valid authentication credentials. |\n| 403 Forbidden | You are not allowed to perform that action. |\n| 404 Not Found | No results were found for your request. |\n| 429 Too Many Requests | Your request exceeded the API rate limit. |\n| 500 Internal Server Error | We were unable to perform the request due to server-side problems. |\n\n## Meta and Pagination\n\nMany API calls will return a `meta` object with paging information.\n\n### Definitions\n\n| Term | Description |\n| ------ | ------------- |\n| **List** | The items returned from the database for your request (not necessarily shown in a single response depending on the **cursor** size). |\n| **Page** | A subset of the full **list** of items. Choose the size of a **page** with the `per_page` parameter. |\n| **Total** | The `total` attribute indicates the number of items in the full **list**.|\n| **Cursor** | Use the `cursor` query parameter to select a next or previous **page**. |\n| **Next** & **Prev** | Use the `next` and `prev` attributes of the `links` meta object as `cursor` values. |\n\n### How to use Paging\n\nIf your result **list** total exceeds the default **cursor** size (the default depends on the route, but is usually 100 records) or the value defined by the `per_page` query param (when present) the response will be returned to you paginated.\n\n### Paging Example\n\n> These examples have abbreviated attributes and sample values. Your actual `cursor` values will be encoded alphanumeric strings.\n\nTo return a **page** with the first two plans in the List:\n\n curl \"https://api.vultr.com/v2/plans?per_page=2\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"\n\nThe API returns an object similar to this:\n\n {\n \"plans\": [\n {\n \"id\": \"vc2-1c-2gb\",\n \"vcpu_count\": 1,\n \"ram\": 2048,\n \"locations\": []\n },\n {\n \"id\": \"vc2-24c-97gb\",\n \"vcpu_count\": 24,\n \"ram\": 98304,\n \"locations\": []\n }\n ],\n \"meta\": {\n \"total\": 19,\n \"links\": {\n \"next\": \"WxYzExampleNext\",\n \"prev\": \"WxYzExamplePrev\"\n }\n }\n }\n\nThe object contains two plans. The `total` attribute indicates that 19 plans are available in the List. To navigate forward in the **list**, use the `next` value (`WxYzExampleNext` in this example) as your `cursor` query parameter.\n\n curl \"https://api.vultr.com/v2/plans?per_page=2&cursor=WxYzExampleNext\" \\\n -X GET\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"\n\nLikewise, you can use the example `prev` value `WxYzExamplePrev` to navigate backward.\n\n## Parameters\n\nYou can pass information to the API with three different types of parameters.\n\n### Path parameters\n\nSome API calls require variable parameters as part of the endpoint path. For example, to retrieve information about a user, supply the `user-id` in the endpoint.\n\n curl \"https://api.vultr.com/v2/users/{user-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"\n\n### Query parameters\n\nSome API calls allow filtering with query parameters. For example, the `/v2/plans` endpoint supports a `type` query parameter. Setting `type=vhf` instructs the API only to return High Frequency Compute plans in the list. You'll find more specifics about valid filters in the endpoint documentation below.\n\n curl \"https://api.vultr.com/v2/plans?type=vhf\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"\n\nYou can also combine filtering with paging. Use the `per_page` parameter to retreive a subset of vhf plans.\n\n curl \"https://api.vultr.com/v2/plans?type=vhf&per_page=2\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"\n\n### Request Body\n\nPUT, POST, and PATCH methods may include an object in the request body with a content type of **application/json**. The documentation for each endpoint below has more information about the expected object.\n\n## API Example Conventions\n\nThe examples in this documentation use `curl`, a command-line HTTP client, to demonstrate useage. Linux and macOS computers usually have curl installed by default, and it's [available for download](https://curl.se/download.html) on all popular platforms including Windows.\n\nEach example is split across multiple lines with the `\\` character, which is compatible with a `bash` terminal. A typical example looks like this:\n\n curl \"https://api.vultr.com/v2/domains\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"domain\" : \"example.com\",\n \"ip\" : \"192.0.2.123\"\n }'\n\n* The `-X` parameter sets the request method. For consistency, we show the method on all examples, even though it's not explicitly required for GET methods.\n* The `-H` lines set required HTTP headers. These examples are formatted to expand the VULTR\\_API\\_KEY environment variable for your convenience.\n* Examples that require a JSON object in the request body pass the required data via the `--data` parameter.\n\nAll values in this guide are examples. Do not rely on the OS or Plan IDs listed in this guide; use the appropriate endpoint to retreive values before creating resources.\n\n# Authentication\n\n" }, "servers": [ { "url": "https://api.vultr.com/v2" } ], "paths": { "/private-networks/{network-id}": { "get": { "summary": "Get a private network", "tags": [ "private Networks" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/private-networks/{network-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "network": { "$ref": "#/components/schemas/network" } } }, "examples": { "response": { "value": { "network": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "region": "ewr", "description": "Example Network Description", "v4_subnet": "10.99.0.0", "v4_subnet_mask": 24 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "get-network", "security": [ { "APIKey": [] } ], "description": "Get information about a Private Network.

**Deprecated**: Use [Get VPC](#operation/get-vpc) instead. ", "deprecated": true }, "delete": { "summary": "Delete a private network", "tags": [ "private Networks" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/private-networks/{network-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "delete-network", "description": "Delete a Private Network.

**Deprecated**: Use [Delete VPC](#operation/delete-vpc) instead.", "security": [ { "APIKey": [] } ], "deprecated": true }, "parameters": [ { "schema": { "type": "string" }, "name": "network-id", "in": "path", "required": true, "description": "The [Network id](#operation/list-networks)." } ], "put": { "summary": "Update a Private Network", "operationId": "update-network", "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "description": "Update information for a Private Network.

**Deprecated**: Use [Update VPC](#operation/update-vpc) instead.", "tags": [ "private Networks" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/private-networks/{network-id}\" \\\n -X PUT \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"description\" : \"Example Private Network\"\n }'" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "description": { "type": "string", "description": "The Private Network description." } }, "required": [ "description" ] }, "examples": { "request": { "value": { "description": "Example Private Network" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ], "deprecated": true } }, "/private-networks": { "get": { "summary": "List Private Networks", "tags": [ "private Networks" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/private-networks\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "networks": { "type": "array", "items": { "$ref": "#/components/schemas/network" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "networks": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "region": "ewr", "date_created": "2020-10-10T01:56:20+00:00", "description": "Example Network Description", "v4_subnet": "10.99.0.0", "v4_subnet_mask": 24 } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "list-networks", "security": [ { "APIKey": [] } ], "description": "Get a list of all Private Networks in your account.

**Deprecated**: Use [List VPCs](#operation/list-vpcs) instead.", "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ], "deprecated": true }, "post": { "summary": "Create a Private Network", "tags": [ "private Networks" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/private-networks\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"region\" : \"ewr\",\n \"description\" : \"Example Private Network\",\n \"v4_subnet\" : \"10.99.0.0\",\n \"v4_subnet_mask\" : 24\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "network": { "$ref": "#/components/schemas/network" } } }, "examples": { "response": { "value": { "network": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "region": "ewr", "description": "Example Private Network", "v4_subnet": "10.99.0.0", "v4_subnet_mask": 24 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-network", "security": [ { "APIKey": [] } ], "description": "Create a new Private Network in a `region`.\n\n**Deprecated**: Use [Create VPC](#operation/create-vpc) instead.\n\n Private networks should use [RFC1918 private address space](https://tools.ietf.org/html/rfc1918):\n\n 10.0.0.0 - 10.255.255.255 (10/8 prefix)\n 172.16.0.0 - 172.31.255.255 (172.16/12 prefix)\n 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)\n", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "region": { "type": "string", "description": "Create the Private Network in this [Region id](#operation/list-regions)." }, "description": { "type": "string", "description": "A description of the private network." }, "v4_subnet": { "type": "string", "description": "The IPv4 network address. For example: 10.99.0.0" }, "v4_subnet_mask": { "type": "integer", "description": "The number of bits for the netmask in CIDR notation. Example: 24" } }, "required": [ "region" ] }, "examples": { "example": { "value": { "region": "ewr", "description": "Example Private Network", "v4_subnet": "10.99.0.0", "v4_subnet_mask": 24 } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "deprecated": true } }, "/vpcs/{vpc-id}": { "get": { "summary": "Get a VPC", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/vpcs/{vpc-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "vpc": { "$ref": "#/components/schemas/vpc" } } }, "examples": { "response": { "value": { "vpc": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "region": "ewr", "description": "Example VPC Description", "v4_subnet": "10.99.0.0", "v4_subnet_mask": 24 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "get-vpc", "security": [ { "APIKey": [] } ], "description": "Get information about a VPC.", "tags": [ "VPCs" ] }, "delete": { "summary": "Delete a VPC", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/vpcs/{vpc-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "delete-vpc", "description": "Delete a VPC.", "security": [ { "APIKey": [] } ], "tags": [ "VPCs" ] }, "parameters": [ { "schema": { "type": "string" }, "name": "vpc-id", "in": "path", "required": true, "description": "The [VPC ID](#operation/list-vpcs)." } ], "put": { "summary": "Update a VPC", "operationId": "update-vpc", "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "description": "Update information for a VPC.", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/vpcs/{vpc-id}\" \\\n -X PUT \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"description\" : \"Example VPC\"\n }'" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "description": { "type": "string", "description": "The VPC description." } }, "required": [ "description" ] }, "examples": { "request": { "value": { "description": "Example VPC" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ], "tags": [ "VPCs" ] } }, "/vpcs": { "get": { "summary": "List VPCs", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/vpcs\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "vpcs": { "type": "array", "items": { "$ref": "#/components/schemas/vpc" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "vpcs": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "region": "ewr", "date_created": "2020-10-10T01:56:20+00:00", "description": "Example VPC Description", "v4_subnet": "10.99.0.0", "v4_subnet_mask": 24 } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "list-vpcs", "security": [ { "APIKey": [] } ], "description": "Get a list of all VPCs in your account.", "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ], "tags": [ "VPCs" ] }, "post": { "summary": "Create a VPC", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/vpcs\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"region\" : \"ewr\",\n \"description\" : \"Example VPC\",\n \"v4_subnet\" : \"10.99.0.0\",\n \"v4_subnet_mask\" : 24\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "vpc": { "$ref": "#/components/schemas/vpc" } } }, "examples": { "response": { "value": { "network": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "region": "ewr", "description": "Example VPC", "v4_subnet": "10.99.0.0", "v4_subnet_mask": 24 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-vpc", "security": [ { "APIKey": [] } ], "description": "Create a new VPC in a `region`. VPCs should use [RFC1918 private address space](https://tools.ietf.org/html/rfc1918):\n\n 10.0.0.0 - 10.255.255.255 (10/8 prefix)\n 172.16.0.0 - 172.31.255.255 (172.16/12 prefix)\n 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)\n", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "region": { "type": "string", "description": "Create the VPC in this [Region id](#operation/list-regions)." }, "description": { "type": "string", "description": "A description of the VPC." }, "v4_subnet": { "type": "string", "description": "The IPv4 VPC address. For example: 10.99.0.0" }, "v4_subnet_mask": { "type": "integer", "description": "The number of bits for the netmask in CIDR notation. Example: 24" } }, "required": [ "region" ] }, "examples": { "example": { "value": { "region": "ewr", "description": "Example VPC", "v4_subnet": "10.99.0.0", "v4_subnet_mask": 24 } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "tags": [ "VPCs" ] }, "parameters": [] }, "/users/{user-id}": { "get": { "summary": "Get User", "tags": [ "users" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/users/{user-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/user" }, "examples": { "user": { "value": { "user": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "name": "Example User", "email": "user@example.com", "api_enabled": true, "acls": [ "manage_users", "subscriptions_view", "subscriptions", "provisioning", "billing", "support", "abuse", "dns", "upgrade", "objstore", "loadbalancer" ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-user", "description": "Get information about a User.", "security": [ { "APIKey": [] } ] }, "parameters": [ { "schema": { "type": "string" }, "name": "user-id", "in": "path", "required": true, "description": "The [User id](#operation/list-users)." } ], "delete": { "summary": "Delete User", "operationId": "delete-user", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/users/{user-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "description": "Delete a User.", "security": [ { "APIKey": [] } ], "tags": [ "users" ] }, "patch": { "summary": "Update User", "operationId": "update-user", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/users/{user-id}\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"email\" : \"user@example.com\",\n \"name\" : \"Example User\",\n \"password\" : \"example-password\",\n \"api_enabled\" : true,\n \"acls\" : [\n \"manage_users\",\n \"subscriptions_view\",\n \"subscriptions\",\n \"provisioning\",\n \"billing\",\n \"support\",\n \"abuse\",\n \"dns\",\n \"upgrade\",\n \"objstore\",\n \"loadbalancer\"\n ]\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "email": { "type": "string", "description": "The User's email address." }, "name": { "type": "string", "description": "The User's name." }, "password": { "type": "string", "description": "The User's password." }, "api_enabled": { "type": "boolean", "description": "API access is permitted for this User.\n\n* true (default)\n* false" }, "acls": { "type": "array", "description": "An array of permission granted. Valid values:\n\n* abuse\n* alerts\n* billing\n* dns\n* firewall\n* loadbalancer\n* manage\\_users\n* objstore\n* provisioning\n* subscriptions\n* subscriptions\\_view\n* support\n* upgrade", "items": { "type": "string" } } } }, "examples": { "request": { "value": { "email": "user@example.com", "name": "Example User", "password": "example-password", "api_enabled": true, "acls": [ "manage_users", "subscriptions_view", "subscriptions", "provisioning", "billing", "support", "abuse", "dns", "upgrade", "objstore", "loadbalancer" ] } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "description": "Update information for a User. All attributes are optional. If not set, the attributes will retain their original values.", "security": [ { "APIKey": [] } ], "tags": [ "users" ] } }, "/users": { "get": { "summary": "Get Users", "tags": [ "users" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/users\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "users": { "type": "array", "items": { "$ref": "#/components/schemas/user" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "users": { "value": { "users": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "name": "Example User", "email": "user@example.com", "api_enabled": true, "acls": [ "manage_users", "subscriptions_view", "subscriptions", "provisioning", "billing", "support", "abuse", "dns", "upgrade", "objstore", "loadbalancer" ] } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-users", "description": "Get a list of all Users in your account.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "number" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create User", "operationId": "create-user", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/users\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"email\" : \"user@example.com\",\n \"name\" : \"Example User\",\n \"password\" : \"example-password\",\n \"api_enabled\" : true,\n \"acls\" : [\n \"manage_users\",\n \"subscriptions_view\",\n \"subscriptions\",\n \"provisioning\",\n \"billing\",\n \"support\",\n \"abuse\",\n \"dns\",\n \"upgrade\",\n \"objstore\",\n \"loadbalancer\"\n ]\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/user" }, "examples": { "user": { "value": { "user": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "name": "Example User", "email": "user@example.com", "api_enabled": true, "acls": [ "manage_users", "subscriptions_view", "subscriptions", "provisioning", "billing", "support", "abuse", "dns", "upgrade", "objstore", "loadbalancer" ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "description": "Create a new User. The `email`, `name`, and `password` attributes are required.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "email": { "type": "string", "description": "The User's email address." }, "name": { "type": "string", "description": "The User's name." }, "password": { "type": "string", "description": "The User's password." }, "api_enabled": { "type": "boolean", "description": "API access is permitted for this User.\n\n* true (default)\n* false" }, "acls": { "type": "array", "description": "An array of permissions granted.\n\n* abuse\n* alerts\n* billing\n* dns\n* firewall\n* loadbalancer\n* manage\\_users\n* objstore\n* provisioning\n* subscriptions\n* subscriptions\\_view\n* support\n* upgrade", "items": { "type": "string" } } }, "required": [ "email", "name", "password" ] }, "examples": { "request example": { "value": { "name": "Example User", "email": "user@example.com", "password": "sh#sedHA_FTdz6w+", "api_enabled": true, "acls": [ "manage_users", "subscriptions_view", "subscriptions", "provisioning", "billing", "support", "abuse", "dns", "upgrade", "objstore", "loadbalancer" ] } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ], "tags": [ "users" ] } }, "/startup-scripts/{startup-id}": { "get": { "summary": "Get Startup Script", "tags": [ "startup" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/startup-scripts/{startup-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "headers": {}, "content": { "application/json": { "schema": { "type": "object", "properties": { "startup_script": { "$ref": "#/components/schemas/startup" } } }, "examples": { "response": { "value": { "startup_script": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "date_modified": "2020-10-10T01:59:20+00:00", "name": "Example Startup Script", "type": "pxe", "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-startup-script", "description": "Get information for a Startup Script.", "security": [ { "APIKey": [] } ] }, "delete": { "summary": "Delete Startup Script", "tags": [ "startup" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/startup-scripts/{startup-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-startup-script", "security": [ { "APIKey": [] } ], "description": "Delete a Startup Script." }, "patch": { "summary": "Update Startup Script", "tags": [ "startup" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/startup-scripts/{startup-id}\" \\\n -X PATCH \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"name\" : \"Example Startup Script\",\n \"script\" : \"QmFzZTY0IEV4YW1wbGUgRGF0YQ==\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "update-startup-script", "description": "Update a Startup Script. The attributes `name` and `script` are optional. If not set, the attributes will retain their original values. The `script` attribute is base-64 encoded. New deployments will use the updated script, but this action does not update previously deployed instances.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the Startup Script." }, "script": { "type": "string", "description": "The base-64 encoded Startup Script." }, "type": { "type": "string", "description": "The Startup Script type.\n\nboot (default)\npxe" } } }, "examples": { "request": { "value": { "name": "Example Startup Script", "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "parameters": [ { "schema": { "type": "string" }, "name": "startup-id", "in": "path", "required": true, "description": "The [Startup Script id](#operation/list-startup-scripts)." } ] }, "/startup-scripts": { "get": { "summary": "List Startup Scripts", "tags": [ "startup" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/startup-scripts\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "startup_scripts": { "type": "array", "items": { "$ref": "#/components/schemas/startup" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "startup_scripts": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "date_modified": "2020-10-10T01:59:20+00:00", "name": "Example Startup Script", "type": "pxe" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "401": { "description": "Unauthorized" } }, "operationId": "list-startup-scripts", "description": "Get a list of all Startup Scripts.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create Startup Script", "tags": [ "startup" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/startup-scripts\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"name\" : \"Example Startup Script\",\n \"type\" : \"pxe\",\n \"script\" : \"QmFzZTY0IEV4YW1wbGUgRGF0YQ==\"\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "startup_script": { "$ref": "#/components/schemas/startup" } } }, "examples": { "response": { "value": { "startup_script": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "date_modified": "2020-10-10T01:56:20+00:00", "name": "Example Startup Script", "type": "pxe", "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-startup-script", "description": "Create a new Startup Script. The `name` and `script` attributes are required, and scripts are base-64 encoded.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the Startup Script." }, "type": { "type": "string", "description": "The Startup Script type.\n\n* boot (default)\n* pxe" }, "script": { "type": "string", "description": "The base-64 encoded Startup Script." } }, "required": [ "name", "script" ] }, "examples": { "request": { "value": { "name": "Example Startup Script", "type": "pxe", "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "parameters": [] }, "/ssh-keys/{ssh-key-id}": { "get": { "summary": "Get SSH Key", "tags": [ "ssh" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/ssh-keys/{ssh-key-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "ssh_key": { "$ref": "#/components/schemas/ssh" } } }, "examples": { "response": { "value": { "ssh_key": { "id": "3b8066a7-b438-455a-9688-44afc9a3597f", "date_created": "2020-10-10T01:56:20+00:00", "name": "Example SSH Key", "ssh_key": "ssh-rsa AA... user@example.com" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-ssh-key", "description": "Get information about an SSH Key.", "security": [ { "APIKey": [] } ] }, "patch": { "summary": "Update SSH Key", "tags": [ "ssh" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/ssh-keys/{ssh-key-id}\" \\\n -X PATCH \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"name\" : \"Example SSH Key\",\n \"ssh_key\" : \"ssh-rsa AA... user@example.com\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "update-ssh-key", "description": "Update an SSH Key. The attributes `name` and `ssh_key` are optional. If not set, the attributes will retain their original values. New deployments will use the updated key, but this action does not update previously deployed instances.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The user-supplied name for this SSH Key." }, "ssh_key": { "type": "string", "description": "The SSH Key." } } }, "examples": { "request": { "value": { "name": "Example SSH Key", "ssh_key": "ssh-rsa AA... user@example.com" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "delete": { "summary": "Delete SSH Key", "tags": [ "ssh" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/ssh-keys/{ssh-key-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-ssh-key", "description": "Delete an SSH Key.", "security": [ { "APIKey": [] } ] }, "parameters": [ { "schema": { "type": "string" }, "name": "ssh-key-id", "in": "path", "required": true, "description": "The [SSH Key id](#operation/list-ssh-keys)." } ] }, "/ssh-keys": { "get": { "summary": "List SSH Keys", "tags": [ "ssh" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/ssh-keys\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "ssh_keys": { "type": "array", "items": { "$ref": "#/components/schemas/ssh" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "ssh_keys": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "name": "Example SSH Key", "ssh_key": "ssh-rsa AA... user@example.com" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "401": { "description": "Unauthorized" } }, "operationId": "list-ssh-keys", "description": "List all SSH Keys in your account.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500.\n" }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create SSH key", "tags": [ "ssh" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/ssh-keys\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"name\" : \"Example SSH Key\",\n \"ssh_key\" : \"ssh-rsa AA... user@example.com\"\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "ssh_key": { "$ref": "#/components/schemas/ssh" } } }, "examples": { "response": { "value": { "ssh_key": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "name": "Example SSH Key", "ssh_key": "ssh-rsa AA... user@example.com" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" } }, "operationId": "create-ssh-key", "description": "Create a new SSH Key for use with future instances. This does not update any running instances.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The user-supplied name for this SSH Key." }, "ssh_key": { "type": "string", "description": "The SSH Key." } }, "required": [ "name", "ssh_key" ] }, "examples": { "request": { "value": { "name": "Example SSH Key", "ssh_key": "ssh-rsa AA... user@example.com" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] } }, "/snapshots/{snapshot-id}": { "delete": { "summary": "Delete Snapshot", "tags": [ "snapshot" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/snapshots/{snapshot-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-snapshot", "description": "Delete a Snapshot.", "security": [ { "APIKey": [] } ] }, "parameters": [ { "schema": { "type": "string" }, "name": "snapshot-id", "in": "path", "required": true, "description": "The [Snapshot id](#operation/list-snapshots)." } ], "get": { "summary": "Get Snapshot", "tags": [ "snapshot" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/snapshots/{snapshot-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "snapshot": { "$ref": "#/components/schemas/snapshot" } } }, "examples": { "response": { "value": { "snapshot": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "description": "Example Snapshot", "size": 42949672960, "compressed_size": 949678560, "status": "complete", "os_id": 215, "app_id": 0 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-snapshot", "description": "Get information about a Snapshot.", "security": [ { "APIKey": [] } ] }, "put": { "summary": "Update Snapshot", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/snapshots/{snapshot-id}\" \\\n -X PUT \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"description\": \"Example Snapshot\"\n }'" } ], "operationId": "put-snapshots-snapshot-id", "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "description": "Update the description for a Snapshot.", "tags": [ "snapshot" ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "description": { "type": "string", "description": "The user-supplied description for the Snapshot." } }, "required": [ "description" ] }, "examples": { "request": { "value": { "description": "Example Snapshot" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] } }, "/snapshots": { "get": { "summary": "List Snapshots", "tags": [ "snapshot" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/snapshots\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "snapshots": { "type": "array", "items": { "$ref": "#/components/schemas/snapshot" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "snapshots": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "description": "Example Snapshot", "size": 42949672960, "compressed_size": 949678560, "status": "complete", "os_id": 215, "app_id": 0 } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "401": { "description": "Unauthorized" } }, "operationId": "list-snapshots", "description": "Get information about all Snapshots in your account.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "description", "description": "Filter the list of Snapshots by `description`" }, { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create Snapshot", "tags": [ "snapshot" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/snapshots\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"instance_id\" : \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\",\n \"description\" : \"Example Snapshot\"\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "snapshot": { "$ref": "#/components/schemas/snapshot" } } }, "examples": { "response": { "value": { "snapshot": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "description": "Example Snapshot", "size": 0, "compressed_size": 0, "status": "pending", "os_id": 215, "app_id": 0 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" } }, "operationId": "create-snapshot", "description": "Create a new Snapshot for `instance_id`.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "instance_id": { "type": "string", "description": "Create a Snapshot for this [Instance id](#operation/list-instances)." }, "description": { "type": "string", "description": "The user-supplied description of the Snapshot." } }, "required": [ "instance_id" ] }, "examples": { "request": { "value": { "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "description": "Example Snapshot" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/snapshots/create-from-url": { "post": { "summary": "Create Snapshot from URL", "tags": [ "snapshot" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/snapshots/create-from-url\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"url\" : \"https://example.com/disk_image.raw\",\n \"description\" : \"Example Snapshot\"\n }'" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "snapshot": { "$ref": "#/components/schemas/snapshot" } } }, "examples": { "snapshot": { "value": { "snapshot": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "description": "Example Snapshot", "size": 0, "compressed_size": 0, "status": "pending", "os_id": 215, "app_id": 0 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-snapshot-create-from-url", "description": "Create a new Snapshot from a RAW image located at `url`.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "url": { "type": "string", "description": "The public URL containing a RAW image." }, "description": { "type": "string", "description": "The user-supplied description of the Snapshot." } }, "required": [ "url" ] }, "examples": { "example": { "value": { "url": "http://example.com/disk_image.raw", "description": "Example Snapshot" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] } }, "/reserved-ips/{reserved-ip}": { "get": { "summary": "Get Reserved IP", "tags": [ "reserved-ip" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/reserved-ips/{reserved-ip}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "reserved_ip": { "$ref": "#/components/schemas/reserved-ip" } } }, "examples": { "example-1": { "value": { "reserved_ip": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "region": "ewr", "ip_type": "v4", "subnet": "192.0.2.123", "subnet_size": 32, "label": "Example Reserved IPv4", "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-reserved-ip", "description": "Get information about a Reserved IP.", "security": [ { "APIKey": [] } ] }, "parameters": [ { "schema": { "type": "string" }, "name": "reserved-ip", "in": "path", "required": true, "description": "The [Reserved IP id](#operation/list-reserved-ips)." } ], "delete": { "summary": "Delete Reserved IP", "operationId": "delete-reserved-ip", "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" } }, "description": "Delete a Reserved IP.", "tags": [ "reserved-ip" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/reserved-ips/{reserved-ip}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "security": [ { "APIKey": [] } ] }, "patch": { "summary": "Update Reserved IP", "operationId": "patch-reserved-ips-reserved-ip", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "reserved_ip": { "$ref": "#/components/schemas/reserved-ip" } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "description": "Update information on a Reserved IP.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "label": { "type": "string" } }, "required": [ "label" ] }, "examples": { "request": { "value": { "label": "Example Label" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/reserved-ips/{reserved-ip}\" \\\n -X PATCH \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"label\" : \"Example Label\"\n }'" } ], "tags": [ "reserved-ip" ] } }, "/reserved-ips": { "get": { "summary": "List Reserved IPs", "tags": [ "reserved-ip" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/reserved-ips\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "reserved_ips": { "type": "array", "items": { "$ref": "#/components/schemas/reserved-ip" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "reserved_ips": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "region": "ewr", "ip_type": "v4", "subnet": "192.0.2.123", "subnet_size": 32, "label": "Example Reserved IPv4", "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" }, { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "region": "ewr", "ip_type": "v6", "subnet": "2001:0db8:5:5157::", "subnet_size": 64, "label": "Example Reserved IPv6", "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } ], "meta": { "total": 2, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-reserved-ips", "description": "List all Reserved IPs in your account.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create Reserved IP", "tags": [ "reserved-ip" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/reserved-ips\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"region\" : \"ewr\",\n \"ip_type\" : \"v4\",\n \"label\" : \"Example Reserved IPv4\"\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "reserved_ip": { "$ref": "#/components/schemas/reserved-ip" } } }, "examples": { "response": { "value": { "reserved_ip": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "region": "ewr", "ip_type": "v4", "subnet": "192.0.2.123", "subnet_size": 32, "label": "Example Reserved IPv4", "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-reserved-ip", "description": "Create a new Reserved IP. The `region` and `ip_type` attributes are required.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the Reserved IP will be created." }, "ip_type": { "type": "string", "description": "The type of IP address.\n\n* v4\n* v6" }, "label": { "type": "string", "description": "The user-supplied label." } }, "required": [ "region", "ip_type" ] }, "examples": { "request": { "value": { "region": "ewr", "ip_type": "v4", "label": "Example Reserved IPv4" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "parameters": [] }, "/reserved-ips/{reserved-ip}/attach": { "parameters": [ { "schema": { "type": "string" }, "name": "reserved-ip", "in": "path", "required": true, "description": "The [Reserved IP id](#operation/list-reserved-ips)" } ], "post": { "summary": "Attach Reserved IP", "tags": [ "reserved-ip" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/reserved-ips/{reserved-ip}/attach\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"instance_id\" : \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "attach-reserved-ip", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "instance_id": { "type": "string", "description": "Attach the Reserved IP to a [Compute Instance id](#operation/list-instances) or a [Bare Metal Instance id](#operation/list-baremetals)." } }, "required": [ "instance_id" ] }, "examples": { "request": { "value": { "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ], "description": "Attach a Reserved IP to an compute instance or a baremetal instance - `instance_id`." } }, "/reserved-ips/{reserved-ip}/detach": { "parameters": [ { "schema": { "type": "string" }, "name": "reserved-ip", "in": "path", "required": true, "description": "The [Reserved IP id](#operation/list-reserved-ips)" } ], "post": { "summary": "Detach Reserved IP", "tags": [ "reserved-ip" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/reserved-ips/{reserved-ip}/detach\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "detach-reserved-ip", "description": "Detach a Reserved IP.", "security": [ { "APIKey": [] } ] } }, "/reserved-ips/convert": { "post": { "summary": "Convert Instance IP to Reserved IP", "tags": [ "reserved-ip" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/reserved-ips/convert\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"\n -H \"Content-Type: application/json\" \\\n --data '{\n \"ip_address\": \"192.0.2.123\",\n \"label\": \"Example Reserved IPv4\"\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "reserved_ip": { "$ref": "#/components/schemas/reserved-ip" } } }, "examples": { "response": { "value": { "reserved_ip": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "region": "ewr", "ip_type": "v4", "subnet": "192.0.2.123", "subnet_size": 64, "label": "Example Reserved IPv4", "instance_id": "3f26dfe9-6a18-4f3d-a543-0cbca7a3e496" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "convert-reserved-ip", "description": "Convert the `ip_address` of an existing [instance](#operation/list-instances) into a Reserved IP.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "ip_address": { "type": "string", "description": "The IP address to convert." }, "label": { "type": "string", "description": "A user-supplied label for this IP address." } }, "required": [ "ip_address" ] }, "examples": { "request": { "value": { "ip_address": "192.0.2.123", "label": "Example Reserved IPv4" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "parameters": [] }, "/os": { "get": { "summary": "List OS", "tags": [ "os" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/os\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "os": { "type": "array", "items": { "$ref": "#/components/schemas/os" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "os": [ { "id": 127, "name": "CentOS 6 x64", "arch": "x64", "family": "centos" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } } }, "operationId": "list-os", "description": "List the OS images available for installation at Vultr.", "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500.\n" }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ], "security": [] } }, "/applications": { "get": { "summary": "List Applications", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/applications\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "description": "", "properties": { "applications": { "type": "array", "description": "", "items": { "$ref": "#/components/schemas/application" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "applications": [ { "id": 1, "name": "LEMP", "short_name": "lemp", "deploy_name": "LEMP on CentOS 6 x64", "type": "one-click", "vendor": "vultr", "image_id": "" }, { "id": 1028, "name": "OpenLiteSpeed WordPress", "short_name": "openlitespeedwordpress", "deploy_name": "OpenLiteSpeed WordPress on Ubuntu 20.04 x64", "type": "marketplace", "vendor": "LiteSpeed_Technologies", "image_id": "openlitespeed-wordpress" } ], "meta": { "total": 2, "links": { "next": "", "prev": "" } } } } } } } } }, "operationId": "list-applications", "description": "Get a list of all available Applications.", "tags": [ "application" ], "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "type", "description": "Filter the results by type.\n\n| | Type | Description |\n| - | ------ | ------------- |\n| | all | All available application types |\n| | marketplace | Marketplace applications |\n| | one-click | Vultr One-Click applications |" }, { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ], "security": [] } }, "/account": { "get": { "summary": "Get Account Info", "tags": [ "account" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/account\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "account": { "$ref": "#/components/schemas/account" } } }, "examples": { "response": { "value": { "account": { "name": "Example Account", "email": "admin@example.com", "acls": [ "manage_users", "subscriptions_view", "subscriptions", "billing", "support", "provisioning", "dns", "abuse", "upgrade", "firewall", "alerts", "objstore", "loadbalancer" ], "balance": -100.55, "pending_charges": 60.25, "last_payment_date": "2020-10-10T01:56:20+00:00", "last_payment_amount": -1.25 } } } } } } } }, "operationId": "get-account", "security": [ { "APIKey": [] } ], "description": "Get your Vultr account, permission, and billing information." } }, "/backups": { "get": { "summary": "List Backups", "tags": [ "backup" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/backups\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "backups": { "type": "array", "items": { "$ref": "#/components/schemas/backup" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "backups": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "description": "Example Automatic Backup", "size": 10000000, "status": "complete" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-backups", "description": "Get information about Backups in your account.", "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "instance_id", "description": "Filter the backup list by [Instance id](#operation/list-instances)." }, { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ], "security": [ { "APIKey": [] } ] } }, "/blocks": { "get": { "summary": "List Block storages", "tags": [ "block" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/blocks\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "blocks": { "type": "array", "items": { "$ref": "#/components/schemas/blockstorage" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "block storage list": { "value": { "blocks": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "cost": 5, "status": "pending", "size_gb": 50, "region": "ewr", "attached_to_instance": "742c9913-d088-4d67-bc61-5a10e922fbd1", "label": "Example Block Storage", "mount_id": "ewr-example112233" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "500": { "description": "Internal Server Error" } }, "operationId": "list-blocks", "description": "List all Block Storage in your account.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create Block Storage", "operationId": "create-block", "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "block": { "$ref": "#/components/schemas/blockstorage" } } }, "examples": { "created block storage": { "value": { "block": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "cost": 5, "status": "active", "size_gb": 50, "region": "ewr", "attached_to_instance": "742c9913-d088-4d67-bc61-5a10e922fbd1", "label": "Example Block Storage", "mount_id": "ewr-example112233", "block_type": "high_perf" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "description": "Create new Block Storage in a `region` with a size of `size_gb`. Size may range between 10 and 40000 depending on the `block_type`.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the Block Storage will be created." }, "size_gb": { "type": "integer", "description": "Size in GB may range between 10 and 40000, depending on the `block_type`." }, "label": { "type": "string", "description": "The user-supplied label." }, "block_type": { "type": "string", "description": "An optional parameter, that determines on the type of block storage volume that will be created.\nSoon to become a required parameter.\n\n* `high_perf` from 10GB to 10,000GB\n* `storage_opt` from 40GB to 40,000GB" } }, "required": [ "region", "size_gb" ] }, "examples": { "request": { "value": { "region": "ewr", "size_gb": 50, "label": "Example Block Storage" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "tags": [ "block" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/blocks\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"region\" : \"ewr\",\n \"size_gb\" : 50,\n \"label\" : \"Example Block Storage\",\n \"block_type\": \"high_perf\"\n }'" } ] }, "parameters": [] }, "/blocks/{block-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "block-id", "in": "path", "required": true, "description": "The [Block Storage id](#operation/list-blocks)." } ], "get": { "summary": "Get Block Storage", "tags": [ "block" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/blocks/{block-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "block": { "$ref": "#/components/schemas/blockstorage" } } }, "examples": { "single block storage": { "value": { "block": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "cost": 5, "status": "active", "size_gb": 50, "region": "ewr", "attached_to_instance": "742c9913-d088-4d67-bc61-5a10e922fbd1", "label": "Example Block Storage", "mount_id": "ewr-example112233", "block_type": "high_perf" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "operationId": "get-block", "description": "Get information for Block Storage.", "security": [ { "APIKey": [] } ] }, "delete": { "summary": "Delete Block Storage", "tags": [ "block" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/blocks/{block-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-block", "description": "Delete Block Storage.", "security": [ { "APIKey": [] } ] }, "patch": { "summary": "Update Block Storage", "tags": [ "block" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/blocks/{block-id}\" \\\n -X PATCH \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"label\" : \"Updated Block Storage Label\",\n \"size_gb\": 50\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "update-block", "description": "Update information for Block Storage.\n", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "label": { "type": "string", "description": "The user-supplied label." }, "size_gb": { "type": "integer", "description": "New size of the Block Storage in GB. Size may range between 10 and 40000 depending on the `block_type`." } } }, "examples": { "patch request": { "value": { "label": "Updated Block Storage Label", "size_gb": 50 } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] } }, "/blocks/{block-id}/attach": { "parameters": [ { "schema": { "type": "string" }, "name": "block-id", "in": "path", "required": true, "description": "The [Block Storage id](#operation/list-blocks)." } ], "post": { "summary": "Attach Block Storage", "tags": [ "block" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/blocks/{block-id}/attach\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"instance_id\" : \"a632673e-2fd5-4ff1-b251-2e28e7b65504\",\n \"live\" : true\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "attach-block", "description": "Attach Block Storage to Instance `instance_id`.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "instance_id": { "description": "Attach the Block Storage to this [Instance id](#operation/list-instances).", "type": "string" }, "live": { "type": "boolean", "description": "Attach Block Storage without restarting the Instance.\n\n| | Value | Description |\n| - | ----- | ----------- |\n| | true | Attach live, do not restart the instance. |\n| | false | Restart the instance and attach the Block Storage. |" } }, "required": [ "instance_id" ] }, "examples": { "post request": { "value": { "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "live": true } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/blocks/{block-id}/detach": { "parameters": [ { "schema": { "type": "string" }, "name": "block-id", "in": "path", "required": true, "description": "The [Block Storage id](#operation/list-blocks)." } ], "post": { "summary": "Detach Block Storage", "tags": [ "block" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/blocks/{block-id}/detach\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"live\" : true\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "detach-block", "security": [ { "APIKey": [] } ], "description": "Detach Block Storage.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "live": { "type": "boolean", "description": "Detach Block Storage without restarting the Instance.\n\n| | Value | Description |\n| - | ----- | ----------- |\n| | true | Detach live, do not restart the instance. |\n| | false | Restart the instance and detach the Block Storage. |" } } }, "examples": { "post request": { "value": { "live": true } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/firewalls": { "get": { "summary": "List Firewall Groups", "tags": [ "firewall" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/firewalls\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "firewall_groups": { "type": "array", "items": { "$ref": "#/components/schemas/firewall-group" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "firewall_groups": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "description": "Example Firewall Group", "date_created": "2020-10-10T01:56:20+00:00", "date_modified": "2020-10-10T01:59:20+00:00", "instance_count": 0, "rule_count": 0, "max_rule_count": 50 } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "401": { "description": "Unauthorized" } }, "operationId": "list-firewall-groups", "description": "Get a list of all Firewall Groups.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create Firewall Group", "tags": [ "firewall" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/firewalls\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"description\" : \"Example Firewall Group\"\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "firewall_group": { "$ref": "#/components/schemas/firewall-group" } } }, "examples": { "response": { "value": { "firewall_group": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "description": "Example Firewall Group", "date_created": "2020-10-10T01:56:20+00:00", "date_modified": "2020-10-10T01:56:20+00:00", "instance_count": 0, "rule_count": 0, "max_rule_count": 50 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-firewall-group", "description": "Create a new Firewall Group.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "description": { "type": "string", "description": "User-supplied description of this Firewall Group." } } }, "examples": { "request": { "value": { "description": "Example Firewall Group" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "parameters": [] }, "/firewalls/{firewall-group-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "firewall-group-id", "in": "path", "required": true, "description": "The [Firewall Group id](#operation/list-firewall-groups)." } ], "get": { "summary": "Get Firewall Group", "tags": [ "firewall" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/firewalls/{firewall-group-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "firewall_group": { "$ref": "#/components/schemas/firewall-group" } } }, "examples": { "response": { "value": { "firewall_group": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "description": "Example Firewall Group", "date_created": "2020-10-10T01:56:20+00:00", "date_modified": "2020-10-10T01:56:20+00:00", "instance_count": 0, "rule_count": 0, "max_rule_count": 50 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "get-firewall-group", "description": "Get information for a Firewall Group.", "security": [ { "APIKey": [] } ] }, "put": { "summary": "Update Firewall Group", "tags": [ "firewall" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/firewalls/{firewall-group-id}\" \\\n -X PUT \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"description\" : \"Updated Firewall Group Name\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "update-firewall-group", "description": "Update information for a Firewall Group.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "description": { "type": "string", "description": "User-supplied description of this Firewall Group." } }, "required": [ "description" ] }, "examples": { "request": { "value": { "description": "Updated Firewall Group Name" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "delete": { "summary": "Delete Firewall Group", "tags": [ "firewall" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/firewalls/{firewall-group-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-firewall-group", "security": [ { "APIKey": [] } ], "description": "Delete a Firewall Group." } }, "/firewalls/{firewall-group-id}/rules": { "parameters": [ { "schema": { "type": "string" }, "name": "firewall-group-id", "in": "path", "required": true, "description": "The [Firewall Group id](#operation/list-firewall-groups)." } ], "get": { "summary": "List Firewall Rules", "tags": [ "firewall" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "firewall_rules": { "type": "array", "items": { "$ref": "#/components/schemas/firewall-rule" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "firewall_rules": [ { "id": 1, "type": "v4", "ip_type": "v4", "action": "accept", "protocol": "tcp", "port": "80", "subnet": "192.0.2.0", "subnet_size": 24, "source": "", "notes": "Example Firewall Rule" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-firewall-group-rules", "description": "Get the Firewall Rules for a Firewall Group.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create Firewall Rules", "tags": [ "firewall" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"ip_type\" : \"v4\",\n \"protocol\" : \"tcp\",\n \"port\" : \"80\",\n \"subnet\" : \"192.0.2.0\",\n \"subnet_size\" : 24,\n \"source\" : \"\",\n \"notes\" : \"Example Firewall Rule\"\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "firewall_rule": { "$ref": "#/components/schemas/firewall-rule" } } }, "examples": { "response": { "value": { "firewall_rule": { "id": 1, "type": "v4", "ip_type": "v4", "action": "accept", "protocol": "tcp", "port": "80", "subnet": "192.0.2.0", "subnet_size": 24, "source": "", "notes": "Example Firewall Rule" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "post-firewalls-firewall-group-id-rules", "description": "Create a Firewall Rule for a Firewall Group. The attributes `ip_type`, `protocol`, `subnet`, and `subnet_size` are required.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "ip_type": { "type": "string", "description": "The type of IP rule.\n\n* v4\n* v6" }, "protocol": { "type": "string", "description": "The protocol for this rule.\n\n* ICMP\n* TCP\n* UDP\n* GRE\n* ESP\n* AH\n" }, "subnet": { "type": "string", "description": "IP address representing a subnet. The IP address format must match with the \"ip_type\" parameter value." }, "subnet_size": { "type": "integer", "description": "The number of bits for the netmask in CIDR notation. Example: 32" }, "port": { "type": "string", "description": "TCP/UDP only. This field can be a specific port or a colon separated port range." }, "source": { "type": "string", "description": "If the source string is given a value of \"cloudflare\" subnet and subnet_size will both be ignored.\nPossible values:\n\n| | Value | Description |\n| - | ------ | ------------- |\n| | \"\" | Use the value from `subnet` and `subnet_size`. |\n| | cloudflare | Allow all of Cloudflare's IP space through the firewall |\n| | [Load Balancer id](#operation/list-load-balancers) | Provide a load balancer ID to use its IPs |\n" }, "notes": { "type": "string", "description": "User-supplied notes for this rule." } }, "required": [ "ip_type", "protocol", "subnet", "subnet_size" ] }, "examples": { "request": { "value": { "ip_type": "v4", "protocol": "tcp", "port": "80", "subnet": "192.0.2.0", "subnet_size": 24, "source": "", "notes": "Example Firewall Rule" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] } }, "/firewalls/{firewall-group-id}/rules/{firewall-rule-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "firewall-group-id", "in": "path", "required": true, "description": "The [Firewall Group id](#operation/list-firewall-groups)." }, { "schema": { "type": "string" }, "name": "firewall-rule-id", "in": "path", "required": true, "description": "The [Firewall Rule id](#operation/list-firewall-group-rules)." } ], "delete": { "summary": "Delete Firewall Rule", "tags": [ "firewall" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules/{firewall-rule-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-firewall-group-rule", "description": "Delete a Firewall Rule.", "security": [ { "APIKey": [] } ] }, "get": { "summary": "Get Firewall Rule", "operationId": "get-firewall-group-rule", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "firewall_rule": { "$ref": "#/components/schemas/firewall-rule" } } }, "examples": { "example": { "value": { "firewall_rule": { "id": 1, "type": "v4", "ip_type": "v4", "action": "accept", "protocol": "tcp", "port": "80", "subnet": "192.0.2.0", "subnet_size": 24, "source": "", "notes": "Example Firewall Rule" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "description": "Get a Firewall Rule.", "security": [ { "APIKey": [] } ], "tags": [ "firewall" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules/{firewall-rule-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ] } }, "/iso": { "get": { "summary": "List ISOs", "tags": [ "iso" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/iso\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "isos": { "type": "array", "items": { "$ref": "#/components/schemas/iso" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "isos": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "filename": "my-iso.iso", "size": 120586240, "md5sum": "77ba289bdc966ec996278a5a740d96d8", "sha512sum": "2b31b6fcab34d6ea9a6b293601c39b90cb044e5679fcc5", "status": "complete" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-isos", "description": "Get the ISOs in your account.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create ISO", "tags": [ "iso" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/iso\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"url\" : \"https://example.com/my-iso.iso\"\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "iso": { "$ref": "#/components/schemas/iso" } } }, "examples": { "response": { "value": { "iso": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "filename": "my-iso.iso", "status": "pending" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-iso", "description": "Create a new ISO in your account from `url`.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "url": { "type": "string", "description": "Public URL location of the ISO image to download. Example: https://example.com/my-iso.iso" } }, "required": [ "url" ] }, "examples": { "request": { "value": { "url": "http://example.com/my-iso.iso" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] } }, "/iso/{iso-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "iso-id", "in": "path", "required": true, "description": "The [ISO id](#operation/list-isos)." } ], "get": { "summary": "Get ISO", "tags": [ "iso" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/iso/{iso-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "iso": { "$ref": "#/components/schemas/iso" } } }, "examples": { "response": { "value": { "iso": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "filename": "my-iso.iso", "size": 120586240, "md5sum": "77ba289bdc966ec996278a5a740d96d8", "sha512sum": "2b31b6fcab34d6ea9a6b293601c39b90cb044e5679fcc5", "status": "complete" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "iso-get", "description": "Get information for an ISO.", "security": [ { "APIKey": [] } ] }, "delete": { "summary": "Delete ISO", "tags": [ "iso" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/iso/{iso-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-iso", "description": "Delete an ISO.", "security": [ { "APIKey": [] } ] } }, "/iso-public": { "get": { "summary": "List Public ISOs", "tags": [ "iso" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/iso-public\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "public_isos": { "type": "array", "items": { "$ref": "#/components/schemas/iso-public" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "public_isos": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b604", "name": "CentOS 7", "description": "7 x86_64 Minimal", "md5sum": "7f4df50f42ee1b52b193e79855a3aa19" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" } }, "operationId": "list-public-isos", "description": "List all Vultr Public ISOs.", "security": [] } }, "/object-storage": { "get": { "summary": "List Object Storages", "tags": [ "s3" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/object-storage\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "object_storages": { "type": "array", "items": { "$ref": "#/components/schemas/object-storage" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "list of object-storages": { "value": { "object_storages": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "cluster_id": 2, "region": "ewr", "label": "Example Object Storage", "status": "active", "s3_hostname": "ewr1.vultrobjects.com", "s3_access_key": "00example11223344", "s3_secret_key": "00example1122334455667788990011" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" } }, "operationId": "list-object-storages", "description": "Get a list of all Object Storage in your account.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create Object Storage", "tags": [ "s3" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/object-storage\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"label\" : \"Example Object Storage\",\n \"cluster_id\" : 2\n }'" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "object_storage": { "$ref": "#/components/schemas/object-storage" } } }, "examples": { "response": { "value": { "object_storage": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "cluster_id": 2, "region": "ewr", "location": "New Jersey", "label": "Example Object Storage", "status": "pending", "s3_hostname": "ewr1.vultrobjects.com", "s3_access_key": "00example11223344", "s3_secret_key": "00example1122334455667788990011" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "operationId": "create-object-storage", "description": "Create new Object Storage. The `cluster_id` attribute is required.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "cluster_id": { "type": "integer", "description": "The [Cluster id](#operation/list-object-storage-clusters) where the Object Storage will be created." }, "label": { "type": "string", "description": "The user-supplied label for this Object Storage." } }, "required": [ "cluster_id" ] }, "examples": { "example request": { "value": { "label": "Example Object Storage", "cluster_id": 2 } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "parameters": [] }, "/object-storage/{object-storage-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "object-storage-id", "in": "path", "required": true, "description": "The [Object Storage id](#operation/list-object-storages)." } ], "get": { "summary": "Get Object Storage", "tags": [ "s3" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/object-storage/{object-storage-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "object_storage": { "$ref": "#/components/schemas/object-storage" } } }, "examples": { "response": { "value": { "object_storage": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "cluster_id": 2, "region": "ewr", "label": "Example Object Storage", "status": "active", "s3_hostname": "ewr1.vultrobjects.com", "s3_access_key": "00example11223344", "s3_secret_key": "00example1122334455667788990011" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-object-storage", "description": "Get information about an Object Storage.", "security": [ { "APIKey": [] } ] }, "delete": { "summary": "Delete Object Storage", "tags": [ "s3" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/object-storage/{object-storage-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "delete-object-storage", "description": "Delete an Object Storage.", "security": [ { "APIKey": [] } ] }, "put": { "summary": "Update Object Storage", "operationId": "update-object-storage", "responses": { "204": { "description": "No Content", "headers": {} }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "description": "Update the label for an Object Storage.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "label": { "type": "string", "description": "The user-supplied label for the Object Storage." } }, "required": [ "label" ] }, "examples": { "request": { "value": { "label": "Updated Object Storage Label" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ], "tags": [ "s3" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/object-storage/{object-storage-id}\" \\\n -X PATCH \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"label\" : \"Updated Object Storage Label\"\n }'" } ] } }, "/object-storage/{object-storage-id}/regenerate-keys": { "parameters": [ { "schema": { "type": "string" }, "name": "object-storage-id", "in": "path", "required": true, "description": "The [Object Storage id](#operation/list-object-storages)." } ], "post": { "summary": "Regenerate Object Storage Keys", "tags": [ "s3" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/object-storage/{object-storage-id}/regenerate-keys\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "s3_credentials": { "type": "object", "properties": { "s3_hostname": { "type": "string", "description": "The [Cluster hostname](#operation/list-object-storage-clusters) for this Object Storage." }, "s3_access_key": { "type": "string", "description": "The new Object Storage access key." }, "s3_secret_key": { "type": "string", "description": "The new Object Storage secret key." } } } } }, "examples": { "response": { "value": { "s3_credentials": { "s3_hostname": "ewr1.vultrobjects.com", "s3_access_key": "00example11223344", "s3_secret_key": "00example1122334455667788990011" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "regenerate-object-storage-keys", "description": "Regenerate the keys for an Object Storage.", "security": [ { "APIKey": [] } ] } }, "/object-storage/clusters": { "get": { "summary": "Get All Clusters", "tags": [ "s3" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/object-storage/clusters\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "clusters": { "type": "array", "items": { "$ref": "#/components/schemas/clusters" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "clusters": [ { "id": 2, "region": "ewr", "hostname": "ewr1.vultrobjects.com", "deploy": "yes" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } }, "headers": {} } }, "operationId": "list-object-storage-clusters", "description": "Get a list of all Object Storage Clusters.", "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ], "security": [] } }, "/domains": { "get": { "summary": "List DNS Domains", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "domains": { "type": "array", "items": { "$ref": "#/components/schemas/domain" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "list of domains": { "value": { "domains": [ { "domain": "example.com", "date_created": "2020-10-10T01:56:20+00:00", "dns_sec": "enabled" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "list-dns-domains", "description": "List all DNS Domains in your account.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500.\n" }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create DNS Domain", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"domain\" : \"example.com\",\n \"ip\" : \"192.0.2.123\",\n \"dns_sec\" : \"enabled\"\n }'" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "domain": { "$ref": "#/components/schemas/domain" } } }, "examples": { "response": { "value": { "domain": { "domain": "example.com", "date_created": "2020-10-10T01:56:20+00:00", "dns_sec": "enabled" } } } } } } } }, "operationId": "create-dns-domain", "description": "Create a DNS Domain for `domain`. If no `ip` address is supplied a domain with no records will be created.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "domain": { "type": "string", "description": "Your registered DNS Domain name." }, "ip": { "type": "string", "description": "The default IP address for your DNS Domain. If omitted an empty domain zone will be created." }, "dns_sec": { "type": "string", "description": "Enable or disable DNSSEC.\n\n* enabled\n* disabled (default)" } }, "required": [ "domain" ] }, "examples": { "request": { "value": { "domain": "example.com", "ip": "192.0.2.123", "dns_sec": "enabled" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "parameters": [] }, "/domains/{dns-domain}": { "parameters": [ { "schema": { "type": "string" }, "name": "dns-domain", "in": "path", "required": true, "description": "The [DNS Domain](#operation/list-dns-domains)." } ], "get": { "summary": "Get DNS Domain", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "domain": { "$ref": "#/components/schemas/domain" } } }, "examples": { "response": { "value": { "domain": { "domain": "example.com", "date_created": "2020-10-10T01:56:20+00:00", "dns_sec": "enabled" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "get-dns-domain", "security": [ { "APIKey": [] } ], "description": "Get information for the DNS Domain." }, "delete": { "summary": "Delete Domain", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-dns-domain", "security": [ { "APIKey": [] } ], "description": "Delete the DNS Domain." }, "put": { "summary": "Update a DNS Domain", "operationId": "update-dns-domain", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}\" \\\n -X PUT \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"dns_sec\" : \"enabled\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "dns_sec": { "type": "string", "description": "Enable or disable DNSSEC.\n\n* enabled\n* disabled" } }, "required": [ "dns_sec" ] }, "examples": { "request": { "value": { "dns_sec": "enabled" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "description": "Update the DNS Domain. ", "tags": [ "dns" ] } }, "/domains/{dns-domain}/soa": { "parameters": [ { "schema": { "type": "string" }, "name": "dns-domain", "in": "path", "required": true, "description": "The [DNS Domain](#operation/list-dns-domains)." } ], "get": { "summary": "Get SOA information", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}/soa\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "dns_soa": { "$ref": "#/components/schemas/dns-soa" } } }, "examples": { "response": { "value": { "dns_soa": { "nsprimary": "ns1.vultr.com", "email": "admin@example.com" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-dns-domain-soa", "description": "Get SOA information for the DNS Domain.", "security": [ { "APIKey": [] } ] }, "patch": { "summary": "Update SOA information", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}/soa\" \\\n -X PATCH \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"nsprimary\" : \"ns1.vultr.com\",\n \"email\" : \"admin@example.com\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "update-dns-domain-soa", "description": "Update the SOA information for the DNS Domain. All attributes are optional. If not set, the attributes will retain their original values.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "nsprimary": { "type": "string", "description": "Set the primary nameserver." }, "email": { "type": "string", "description": "Set the contact email address." } } }, "examples": { "request": { "value": { "nsprimary": "ns1.vultr.com", "email": "admin@example.com" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/domains/{dns-domain}/dnssec": { "parameters": [ { "schema": { "type": "string" }, "name": "dns-domain", "in": "path", "required": true, "description": "The [DNS Domain](#operation/list-dns-domains)." } ], "get": { "summary": "Get DNSSec Info", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}/dnssec\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "dns_sec": { "type": "array", "items": { "type": "string" } } } }, "examples": { "response": { "value": { "dns_sec": [ "example.com IN DNSKEY 257 3 13 kRrxANp7YTGqVbaWtMy8hhsK0jcG4ajjICZKMb4fKv79Vx/RSn76vNjzIT7/Uo0BXil01Fk8RRQc4nWZctGJBA==", "example.com IN DS 27933 13 1 2d9ac457e5c11a104e25d971d0a6254562bddde7", "example.com IN DS 27933 13 2 8858e7b0dfb881280ce2ca1e0eafcd93d5b53687c21da284d4f8799ba82208a9" ] } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-dns-domain-dnssec", "security": [ { "APIKey": [] } ], "description": "Get the DNSSEC information for the DNS Domain." } }, "/domains/{dns-domain}/records": { "parameters": [ { "schema": { "type": "string" }, "name": "dns-domain", "in": "path", "required": true, "description": "The [DNS Domain](#operation/list-dns-domains)." } ], "post": { "summary": "Create Record", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}/records\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"name\" : \"www\",\n \"type\" : \"A\",\n \"data\" : \"192.0.2.123\",\n \"ttl\" : 300,\n \"priority\" : 0\n }'" } ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "record": { "$ref": "#/components/schemas/dns-record" } } }, "examples": { "response": { "value": { "record": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "type": "A", "name": "www", "data": "192.0.2.123", "priority": 0, "ttl": 300 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "create-dns-domain-record", "description": "Create a DNS record.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The hostname for this DNS record." }, "type": { "type": "string", "description": "The DNS record type.\n\n* A\n* AAAA\n* CNAME\n* NS\n* MX\n* SRV\n* TXT\n* CAA\n* SSHFP" }, "data": { "type": "string", "description": "The DNS data for this record type." }, "ttl": { "type": "integer", "description": "Time to Live in seconds." }, "priority": { "type": "integer", "description": "DNS priority. Does not apply to all record types. (Only required for MX and SRV)" } }, "required": [ "name", "type", "data" ] }, "examples": { "request": { "value": { "name": "www", "type": "A", "data": "192.0.2.123", "ttl": 300, "priority": 0 } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] }, "get": { "summary": "List Records", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}/records\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "records": { "type": "array", "items": { "$ref": "#/components/schemas/dns-record" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "records": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "type": "A", "name": "foo.example.com", "data": "192.0.2.123", "priority": 0, "ttl": 300 } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-dns-domain-records", "description": "Get the DNS records for the Domain.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] } }, "/domains/{dns-domain}/records/{record-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "dns-domain", "in": "path", "required": true, "description": "The [DNS Domain](#operation/list-dns-domains)." }, { "schema": { "type": "string" }, "name": "record-id", "in": "path", "required": true, "description": "The [DNS Record id](#operation/list-dns-domain-records)." } ], "get": { "summary": "Get Record", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}/records/{record-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "record": { "$ref": "#/components/schemas/dns-record" } } }, "examples": { "response": { "value": { "record": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "type": "A", "name": "www", "data": "192.0.2.123", "priority": 0, "ttl": 300 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-dns-domain-record", "description": "Get information for a DNS Record.", "security": [ { "APIKey": [] } ] }, "patch": { "summary": "Update Record", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}/records/{record-id}}\" \\\n -X PATCH \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"name\" : \"CNAME\",\n \"data\" : \"foo.example.com\",\n \"ttl\" : 300,\n \"priority\" : 0\n }'" } ], "responses": { "204": { "description": "No Content" } }, "operationId": "update-dns-domain-record", "description": "Update the information for a DNS record. All attributes are optional. If not set, the attributes will retain their original values.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The hostname for this DNS record." }, "data": { "type": "string", "description": "The DNS data for this record type." }, "ttl": { "type": "integer", "description": "Time to Live in seconds." }, "priority": { "type": "integer", "description": "DNS priority. Does not apply to all record types." } } }, "examples": { "request": { "value": { "name": "CNAME", "data": "foo.example.com", "ttl": 300, "priority": 0 } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] }, "delete": { "summary": "Delete Record", "tags": [ "dns" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/domains/{dns-domain}/records/{record-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-dns-domain-record", "description": "Delete the DNS record.", "security": [ { "APIKey": [] } ] } }, "/regions": { "get": { "summary": "List Regions", "tags": [ "region" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/regions\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "regions": { "type": "array", "items": { "$ref": "#/components/schemas/region" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "region": { "value": { "regions": [ { "id": "ams", "city": "Amsterdam", "country": "NL", "continent": "Europe", "options": [ "ddos_protection", "block_storage_high_perf", "block_storage_storage_opt", "kubernetes", "load_balancers" ] } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } } }, "operationId": "list-regions", "description": "List all Regions at Vultr.", "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ], "security": [] } }, "/regions/{region-id}/availability": { "parameters": [ { "schema": { "type": "string" }, "name": "region-id", "in": "path", "required": true, "description": "The [Region id](#operation/list-regions)." } ], "get": { "summary": "List available plans in region", "tags": [ "region" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/regions/{region-id}/availability\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "available_plans": { "type": "array", "description": "An array of Plans available in this Region.", "items": { "type": "string" } } } }, "examples": { "plans": { "value": { "available_plans": [ "vc2-1c-1gb", "vc2-1c-2gb", "vc2-2c-4gb", "vc2-4c-8gb", "vc2-6c-16gb", "vc2-8c-32gb", "vc2-16c-64gb", "vc2-24c-96gb", "vdc-4vcpu-8gb", "vdc-4vcpu-16gb", "vdc-6vcpu-24gb", "vdc-8vcpu-32gb", "vhf-1c-1gb", "vhf-1c-2gb", "vhf-2c-4gb", "vhf-3c-8gb", "vhf-4c-16gb", "vhf-6c-24gb", "vhf-8c-32gb", "vhf-12c-48gb" ] } } } } } } }, "operationId": "list-available-plans-region", "description": "Get a list of the available plans in Region `region-id`. Not all plans are available in all regions.", "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "type", "description": "Filter the results by type.\n\n| **Type** | **Description** |\n|----------|-----------------|\n| all | All available types |\n| vc2 | Cloud Compute |\n| vdc | Dedicated Cloud |\n| vhf | High Frequency Compute |\n| vhp | High Performance |\n| voc | All Optimized Cloud types |\n| voc-g | General Purpose Optimized Cloud |\n| voc-c | CPU Optimized Cloud |\n| voc-m | Memory Optimized Cloud |\n| voc-s | Storage Optimized Cloud |\n| vbm | Bare Metal |\n| vcg | Cloud GPU |\n" } ], "security": [] } }, "/load-balancers": { "get": { "summary": "List Load Balancers", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "operationId": "list-load-balancers", "description": "List the Load Balancers in your account.", "security": [ { "APIKey": [] } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "load_balancers": { "type": "array", "items": { "$ref": "#/components/schemas/loadbalancer" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "load_balancers": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "region": "ewr", "label": "Example Load Balancer", "status": "active", "ipv4": "192.0.2.123", "ipv6": "2001:0db8:5:4973:ffff:ffff:ffff:ffff", "generic_info": { "balancing_algorithm": "roundrobin", "ssl_redirect": false, "sticky_sessions": { "cookie_name": "example-cookie" }, "proxy_protocol": false, "private_network": "9fed374c-0afc-42bf-926c-abcf840b5406" }, "health_check": { "protocol": "http", "port": 80, "path": "/health", "check_interval": 10, "response_timeout": 5, "unhealthy_threshold": 3, "healthy_threshold": 3 }, "has_ssl": false, "http2": false, "forwarding_rules": [ { "id": "73d85156c2c3129d", "frontend_protocol": "http", "frontend_port": 80, "backend_protocol": "http", "backend_port": 80 } ], "firewall_rules": [ { "id": "abcd123b93016eafb", "port": 80, "source": "198.51.100.0/24", "ip_type": "v4" } ], "instances": [] } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500.\n" }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create Load Balancer", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"region\" : \"ewr\",\n \"balancing_algorithm\" : \"roundrobin\",\n \"ssl_redirect\" : false,\n \"http2\": false,\n \"proxy_protocol\" : false,\n \"label\" : \"Example Load Balancer\",\n \"health_check\" : {\n \"protocol\" : \"http\",\n \"port\" : 80,\n \"path\" : \"/health\",\n \"check_interval\" : 10,\n \"response_timeout\" : 5,\n \"unhealthy_threshold\" : 3,\n \"healthy_threshold\" : 3\n },\n \"forwarding_rules\": [\n {\n \"frontend_protocol\" : \"http\",\n \"frontend_port\" : 80,\n \"backend_protocol\" : \"http\",\n \"backend_port\" : 80\n }\n ],\n \"firewall_rules\": [\n {\n \"port\" : 80,\n \"source\" : \"0.0.0.0/0\",\n \"ip_type\" : \"v4\",\n }\n ]\n }'" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "load_balancer": { "$ref": "#/components/schemas/loadbalancer" } } }, "examples": { "response": { "value": { "load_balancer": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "region": "ewr", "label": "Example Load Balancer", "status": "pending", "ipv4": "", "ipv6": "", "generic_info": { "balancing_algorithm": "roundrobin", "ssl_redirect": false, "sticky_sessions": { "cookie_name": "example-cookie" }, "proxy_protocol": false, "private_network": "9fed374c-0afc-42bf-926c-abcf840b5406", "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406" }, "health_check": { "protocol": "http", "port": 80, "path": "/health", "check_interval": 10, "response_timeout": 5, "unhealthy_threshold": 3, "healthy_threshold": 3 }, "has_ssl": false, "http2": false, "forwarding_rules": [ { "id": "73d85156c2c3129d", "frontend_protocol": "http", "frontend_port": 80, "backend_protocol": "http", "backend_port": 80 } ], "firewall_rules": [ { "id": "abcd123b93016eafb", "port": 80, "source": "24.187.16.196/16", "ip_type": "v4" } ], "instances": [] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "create-load-balancer", "description": "Create a new Load Balancer in a particular `region`.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "region": { "type": "string", "description": "The [Region id](#operation/list-regions) to create this Load Balancer." }, "balancing_algorithm": { "type": "string", "description": "The balancing algorithm.\n\n* roundrobin (default)\n* leastconn" }, "ssl_redirect": { "type": "boolean", "description": "If `true`, this will redirect all HTTP traffic to HTTPS. You must have an HTTPS rule and SSL certificate installed on the load balancer to enable this option.\n\n* true\n* false" }, "http2": { "type": "boolean", "description": "If `true`, this will enable HTTP2 traffic. You must have an HTTPS forwarding rule combo (HTTPS -> HTTPS) to enable this option.\n\n* true\n* false" }, "proxy_protocol": { "description": "If `true`, you must configure backend nodes to accept Proxy protocol.\n\n* true\n* false (Default)", "type": "boolean" }, "health_check": { "type": "object", "description": "The health check configuration. See [Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration).", "properties": { "protocol": { "type": "string", "description": "The protocol to use for health checks.\n\n* HTTPS\n* HTTP\n* TCP" }, "port": { "type": "integer", "description": "The port to use for health checks." }, "path": { "type": "string", "description": "HTTP Path to check. Only applies if protocol is HTTP, or HTTPS." }, "check_interval": { "type": "integer", "description": "Interval between health checks." }, "response_timeout": { "type": "integer", "description": "Timeout before health check fails." }, "unhealthy_threshold": { "type": "integer", "description": "Number times a check must fail before becoming unhealthy." }, "healthy_threshold": { "type": "integer", "description": "Number of times a check must succeed before returning to healthy status." } } }, "forwarding_rules": { "type": "array", "description": "An array of forwarding rule objects.", "items": { "type": "object", "properties": { "frontend_protocol": { "type": "string", "description": "The protocol on the Load Balancer to forward to the backend.\n\n* HTTP\n* HTTPS\n* TCP" }, "frontend_port": { "type": "integer", "description": "The port number on the Load Balancer to forward to the backend." }, "backend_protocol": { "type": "string", "description": "The protocol destination on the backend server.\n\n* HTTP\n* HTTPS\n* TCP" }, "backend_port": { "type": "integer", "description": "The port number destination on the backend server." } } } }, "sticky_session": { "type": "object", "description": "Enables sticky sessions for your load balancer when a cookie_name is provided.", "properties": { "cookie_name": { "type": "string", "description": "The cookie name to make sticky. See [Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration)." } } }, "ssl": { "type": "object", "description": "An SSL certificate to install on the Load Balancer.", "properties": { "private_key": { "type": "string", "description": "The private key." }, "certificate": { "type": "string", "description": "The SSL certificate." }, "chain": { "type": "string", "description": "The certificate chain." } } }, "label": { "type": "string", "description": "Label for your Load Balancer." }, "instances": { "type": "array", "description": "An array of instances IDs that you want attached to the load balancer.", "items": { "type": "string" } }, "firewall_rules": { "type": "array", "description": "An array of firewall rule objects.", "items": { "type": "object", "properties": { "port": { "type": "integer", "description": "Port for this rule." }, "source": { "type": "string", "description": "If the source string is given a value of \"cloudflare\" then cloudflare IPs will be supplied. Otherwise enter a IP address with subnet size that you wish to permit through the firewall.\n\nPossible values:\n\n| | Value | Description |\n| - | ------ | ------------- |\n| | \"192.168.1.1/16\" | Ip address with a subnet size. |\n| | cloudflare | Allow all of Cloudflare's IP space through the firewall |" }, "ip_type": { "type": "string", "description": "The type of IP rule.\n\n* v4\n* v6" } } } }, "private_network": { "type": "string", "description": "Use `vpc` instead. ID of the private network you wish to use. If private_network is omitted it will default to the public network.", "deprecated": true }, "vpc": { "type": "string", "description": "ID of the VPC you wish to use. If a VPC ID is omitted it will default to the public network." } }, "required": [ "region" ] }, "examples": { "request": { "value": { "region": "ewr", "balancing_algorithm": "roundrobin", "ssl_redirect": false, "http2": false, "proxy_protocol": false, "label": "Example Load Balancer", "health_check": { "protocol": "http", "port": 80, "path": "/health", "check_interval": 10, "response_timeout": 5, "unhealthy_threshold": 3, "healthy_threshold": 3 }, "forwarding_rules": [ { "frontend_protocol": "http", "frontend_port": 80, "backend_protocol": "http", "backend_port": 80 } ], "firewall_rules": [ { "port": 80, "source": "24.187.16.196/16", "ip_type": "v4" } ], "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "parameters": [] }, "/load-balancers/{load-balancer-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "load-balancer-id", "in": "path", "required": true, "description": "The [Load Balancer id](#operation/list-load-balancers)." } ], "get": { "summary": "Get Load Balancer", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers/{load-balancer-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "load_balancer": { "$ref": "#/components/schemas/loadbalancer" } } }, "examples": { "response": { "value": { "load_balancer": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "region": "ewr", "label": "Example Load Balancer", "status": "active", "ipv4": "192.0.2.123", "ipv6": "2001:0db8:5:4973:ffff:ffff:ffff:ffff", "generic_info": { "balancing_algorithm": "roundrobin", "ssl_redirect": false, "sticky_sessions": { "cookie_name": "example-cookie" }, "proxy_protocol": false, "private_network": "9fed374c-0afc-42bf-926c-abcf840b5406", "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406" }, "health_check": { "protocol": "http", "port": 80, "path": "/health", "check_interval": 10, "response_timeout": 5, "unhealthy_threshold": 3, "healthy_threshold": 3 }, "has_ssl": false, "http2": false, "forwarding_rules": [ { "id": "73d85156c2c3129d", "frontend_protocol": "http", "frontend_port": 80, "backend_protocol": "http", "backend_port": 80 } ], "firewall_rules": [ { "id": "abcd123b93016eafb", "port": 80, "source": "198.51.100.0/24", "ip_type": "v4" } ], "instances": [] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-load-balancer", "description": "Get information for a Load Balancer.", "security": [ { "APIKey": [] } ] }, "patch": { "summary": "Update Load Balancer", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers/{load-balancer-id}\" \\\n -X PATCH \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"\n -H \"Content-Type: application/json\" \\\n --data '{\n \"ssl\": {\n \"private_key\": \"-----BEGIN RSA ... \",\n \"certificate\": \"-----BEGIN RSA ... \",\n \"chain\": \"-----BEGIN RSA ... \"\n },\n \"sticky_session\": {\n \"cookie_name\": \"example-cookie\"\n },\n \"forwarding_rules\": [\n {\n \"frontend_protocol\": \"http\",\n \"frontend_port\": 80,\n \"backend_protocol\": \"http\",\n \"backend_port\": 80\n }\n ],\n \"health_check\": {\n \"protocol\": \"http\",\n \"port\": 80,\n \"path\": \"/health\",\n \"check_interval\": \"10\",\n \"response_timeout\": \"5\",\n \"unhealthy_threshold\": \"3\",\n \"healthy_threshold\": \"3\"\n },\n \"proxy_protocol\": true,\n \"ssl_redirect\": true,\n \"http2\": true,\n \"balancing_algorithm\": \"roundrobin\",\n \"instances\": [\n \"73d85156c2c3129d\"\n ]\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "update-load-balancer", "security": [ { "APIKey": [] } ], "description": "Update information for a Load Balancer. All attributes are optional. If not set, the attributes will retain their original values.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "ssl": { "type": "object", "description": "An SSL certificate to install on the Load Balancer.", "properties": { "private_key": { "type": "string", "description": "The private key." }, "certificate": { "type": "string", "description": "The SSL certificate." }, "chain": { "type": "string", "description": "The certificate chain." } } }, "sticky_session": { "type": "object", "description": "Enables sticky sessions for your load balancer when a cookie_name is provided.", "properties": { "cookie_name": { "type": "string", "description": "The cookie name to make sticky. See [Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration)." } } }, "forwarding_rules": { "type": "array", "description": "An array of forwarding rule objects.", "items": { "type": "object", "properties": { "frontend_protocol": { "type": "string", "description": "The protocol on the Load Balancer to forward to the backend.\n\n* HTTP\n* HTTPS\n* TCP" }, "frontend_port": { "type": "integer", "description": "The port number on the Load Balancer to forward to the backend." }, "backend_protocol": { "type": "string", "description": "The protocol destination on the backend server.\n\n* HTTP\n* HTTPS\n* TCP" }, "backend_port": { "type": "integer", "description": "The port number destination on the backend server." } } } }, "health_check": { "type": "object", "description": "The health check configuration. [See Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration).", "properties": { "protocol": { "type": "string", "description": "The protocol to use for health checks.\n\n* HTTPS\n* HTTP\n* TCP" }, "port": { "type": "integer", "description": "The port to use for health checks." }, "path": { "type": "string", "description": "HTTP Path to check. Only applies if protocol is HTTP, or HTTPS." }, "check_interval": { "type": "string", "description": "Interval between health checks." }, "response_timeout": { "type": "string", "description": "Timeout before health check fails." }, "unhealthy_threshold": { "type": "string", "description": "Number times a check must fail before becoming unhealthy." }, "healthy_threshold": { "type": "string", "description": "Number of times a check must succeed before returning to healthy status." } } }, "proxy_protocol": { "type": "boolean", "description": "If `true`, you must configure backend nodes to accept Proxy protocol.\n\n* true\n* false (Default)" }, "ssl_redirect": { "type": "boolean", "description": "If `true`, this will redirect all HTTP traffic to HTTPS. You must have an HTTPS rule and SSL certificate installed on the load balancer to enable this option.\n\n* true\n* false" }, "http2": { "type": "boolean", "description": "If `true`, this will enable HTTP2 traffic. You must have an HTTPS forwarding rule combo (HTTPS -> HTTPS) to enable this option.\n\n* true\n* false" }, "balancing_algorithm": { "type": "string", "description": "The balancing algorithm.\n\n* roundrobin (default)\n* leastconn" }, "instances": { "type": "array", "description": "Send the complete array of Instances IDs that should be attached to this Load Balancer. Instances will be attached or detached to match your array. For example, if Instances **X**, **Y**, and **Z** are currently attached, and you send [A,B,Z], then Instance **A** and **B** will be attached, **X** and **Y** will be detached, and **Z** will remain attached.", "items": { "type": "string" } }, "label": { "type": "string", "description": "The label for your Load Balancer" }, "private_network": { "type": "string", "description": "Use `vpc` instead. ID of the private network you wish to use. If private_network is omitted it will default to the public network.", "deprecated": true }, "vpc": { "type": "string", "description": "ID of the VPC you wish to use. If a VPC ID is omitted it will default to the public network." }, "firewall_rules": { "type": "array", "description": "An array of firewall rule objects.", "items": { "type": "object", "properties": { "port": { "type": "integer", "description": "Port for this rule." }, "source": { "type": "string", "description": "If the source string is given a value of \"cloudflare\" then cloudflare IPs will be supplied. Otherwise enter a IP address with subnet size that you wish to permit through the firewall.\n\nPossible values:\n\n| | Value | Description |\n| - | ------ | ------------- |\n| | \"192.168.1.1/16\" | Ip address with a subnet size. |\n| | cloudflare | Allow all of Cloudflare's IP space through the firewall |" }, "ip_type": { "type": "string", "description": "The type of IP rule.\n\n* v4\n* v6" } } } } } }, "examples": { "request": { "value": { "ssl": { "private_key": "-----BEGIN RSA ... ", "certificate": "-----BEGIN RSA ... ", "chain": "-----BEGIN RSA ... " }, "sticky_session": { "cookie_name": "example-cookie" }, "forwarding_rules": [ { "frontend_protocol": "http", "frontend_port": 80, "backend_protocol": "http", "backend_port": 80 } ], "firewall_rules": [ { "port": 80, "source": "192.168.1.1/16", "ip_type": "v4" } ], "health_check": { "protocol": "http", "port": 80, "path": "/health", "check_interval": "10", "response_timeout": "5", "unhealthy_threshold": "3", "healthy_threshold": "3" }, "proxy_protocol": true, "ssl_redirect": true, "http2": true, "balancing_algorithm": "roundrobin", "instances": [ "cb676a46-66fd-4dfb-b839-443f2e6c0b60" ], "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "delete": { "summary": "Delete Load Balancer", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers/{load-balancer-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-load-balancer", "description": "Delete a Load Balancer.", "security": [ { "APIKey": [] } ] } }, "/load-balancers/{load-balancer-id}/forwarding-rules": { "parameters": [ { "schema": { "type": "string" }, "name": "load-balancer-id", "in": "path", "required": true, "description": "The [Load Balancer id](#operation/list-load-balancers)." } ], "get": { "summary": "List Forwarding Rules", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers/{load-balancer-id}/forwarding-rules\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "forwarding_rules": { "type": "array", "items": { "$ref": "#/components/schemas/forwarding-rule" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "forwarding_rules": [ { "id": "443f2e6c0b60", "frontend_protocol": "http", "frontend_port": 80, "backend_protocol": "http", "backend_port": 80 } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-load-balancer-forwarding-rules", "description": "List the fowarding rules for a Load Balancer.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create Forwarding Rule", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers/{load-balancer-id}/forwarding-rules\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"frontend_protocol\" : \"http\",\n \"frontend_port\" : 8080,\n \"backend_protocol\" : \"http\",\n \"backend_port\" : 80\n }'" } ], "responses": { "202": { "description": "Accepted" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "create-load-balancer-forwarding-rules", "description": "Create a new forwarding rule for a Load Balancer.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "frontend_protocol": { "type": "string", "description": "The protocol on the Load Balancer to forward to the backend.\n\n* HTTP\n* HTTPS\n* TCP" }, "frontend_port": { "type": "integer", "description": "The port number on the Load Balancer to forward to the backend." }, "backend_protocol": { "type": "string", "description": "The protocol destination on the backend server.\n\n* HTTP\n* HTTPS\n* TCP" }, "backend_port": { "type": "integer", "description": "The port number destination on the backend server." } }, "required": [ "frontend_protocol", "frontend_port", "backend_protocol", "backend_port" ] }, "examples": { "response": { "value": { "frontend_protocol": "http", "frontend_port": 8080, "backend_protocol": "http", "backend_port": 80 } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/load-balancers/{load-balancer-id}/forwarding-rules/{forwarding-rule-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "load-balancer-id", "in": "path", "required": true, "description": "The [Load Balancer id](#operation/list-load-balancers)." }, { "schema": { "type": "string" }, "name": "forwarding-rule-id", "in": "path", "required": true, "description": "The [Forwarding Rule id](#operation/list-load-balancer-forwarding-rules)." } ], "get": { "summary": "Get Forwarding Rule", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers/{load-balancer-id}/forwarding-rules/{forwarding-rule-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "forwarding_rule": { "$ref": "#/components/schemas/forwarding-rule" } } }, "examples": { "response": { "value": { "forwarding_rule": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "frontend_protocol": "http", "frontend_port": 8080, "backend_protocol": "http", "backend_port": 80 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-load-balancer-forwarding-rule", "description": "Get information for a Forwarding Rule on a Load Balancer.", "security": [ { "APIKey": [] } ] }, "delete": { "summary": "Delete Forwarding Rule", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers/{load-balancer-id}/forwarding-rules/{forwarding-rule-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-load-balancer-forwarding-rule", "description": "Delete a Forwarding Rule on a Load Balancer.", "security": [ { "APIKey": [] } ] } }, "/plans": { "get": { "summary": "List Plans", "tags": [ "plans" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/plans\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "plans": { "type": "array", "items": { "$ref": "#/components/schemas/plans" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "plans": [ { "id": "vhf-8c-32gb", "vcpu_count": 8, "ram": 32768, "disk": 512, "disk_count": 1, "bandwidth": 6144, "monthly_cost": 192, "type": "vhf", "locations": [ "sea" ] } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } } }, "operationId": "list-plans", "description": "Get a list of all VPS plans at Vultr.\n\nThe response is an array of JSON `plan` objects, with unique `id` with sub-fields in the general format of:\n\n ---\n\nFor example: `vc2-24c-96gb-sc1`\n\nMore about the sub-fields:\n\n* ``: The Vultr type code. For example, `vc2`, `vhf`, `vdc`, etc.\n* ``: The number of cores, such as `4c` for \"4 cores\", `8c` for \"8 cores\", etc.\n* ``: Size in GB, such as `32gb`.\n* ``: Some plans include a modifier for internal identification purposes, such as CPU type or location surcharges.\n\n> Note: This information about plan id format is for general education. Vultr may change the sub-field format or values at any time. You should not attempt to parse the plan ID sub-fields in your code for any specific purpose.\n", "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "type", "description": "Filter the results by type.\n\n| **Type** | **Description** |\n|----------|-----------------|\n| all | All available types |\n| vc2 | Cloud Compute |\n| vdc | Dedicated Cloud |\n| vhf | High Frequency Compute |\n| vhp | High Performance |\n| voc | All Optimized Cloud types |\n| voc-g | General Purpose Optimized Cloud |\n| voc-c | CPU Optimized Cloud |\n| voc-m | Memory Optimized Cloud |\n| voc-s | Storage Optimized Cloud |\n| vcg | Cloud GPU |" }, { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." }, { "schema": { "type": "string" }, "in": "query", "name": "os", "description": "Filter the results by operating system.\n\n| | Type | Description |\n| - | ------ | ------------- |\n| | windows | All available plans that support windows |" } ], "security": [] } }, "/plans-metal": { "get": { "summary": "List Bare Metal Plans", "tags": [ "plans" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/plans-metal\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "plans": { "type": "array", "items": { "$ref": "#/components/schemas/plans-metal" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "bare metal": { "value": { "plans_metal": [ { "id": "vbm-4c-32gb", "cpu_count": 4, "cpu_threads": 8, "cpu_model": "E3-1270v6", "ram": 32768, "disk": 240, "disk_count": 2, "bandwidth": 5120, "monthly_cost": 300, "type": "SSD", "locations": [ "ewr" ] } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } } }, "operationId": "list-metal-plans", "description": "Get a list of all Bare Metal plans at Vultr.\n\nThe response is an array of JSON `plan` objects, with unique `id` with sub-fields in the general format of:\n\n ---\n\nFor example: `vc2-24c-96gb-sc1`\n\nMore about the sub-fields:\n\n* ``: The Vultr type code. For example, `vc2`, `vhf`, `vdc`, etc.\n* ``: The number of cores, such as `4c` for \"4 cores\", `8c` for \"8 cores\", etc.\n* ``: Size in GB, such as `32gb`.\n* ``: Some plans include a modifier for internal identification purposes, such as CPU type or location surcharges.\n\n> Note: This information about plan id format is for general education. Vultr may change the sub-field format or values at any time. You should not attempt to parse the plan ID sub-fields in your code for any specific purpose.\n", "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ], "security": [] } }, "/bare-metals": { "get": { "summary": "List Bare Metal Instances", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "bare_metals": { "type": "array", "items": { "$ref": "#/components/schemas/baremetal" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "bare metal": { "value": { "bare_metals": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "os": "Application", "ram": "32768 MB", "disk": "2x 240GB SSD", "main_ip": "192.0.2.123", "cpu_count": 4, "region": "ams", "default_password": "example-password", "date_created": "2020-10-10T01:56:20+00:00", "status": "active", "netmask_v4": "255.255.254.0", "gateway_v4": "192.0.2.1", "plan": "vbm-4c-32gb", "v6_network": "2001:0db8:5001:3990::", "v6_main_ip": "2001:0db8:5001:3990:0ec4:7aff:fe8e:f97a", "v6_network_size": 64, "label": "Example Bare Metal", "mac_address": 2199756823533, "os_id": 186, "app_id": 3, "image_id": "", "features": [ "ipv6" ], "tags": [ "a tag", "another" ] } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-baremetals", "description": "List all Bare Metal instances in your account.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500.\n" }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create Bare Metal Instance", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"region\" : \"ams\",\n \"plan\" : \"vbm-4c-32gb\",\n \"label\" : \"Example Bare Metal\",\n \"app_id\" : 3,\n \"enable_ipv6\" : true\n }'" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "baremetal": { "$ref": "#/components/schemas/baremetal" } } }, "examples": { "bare metal": { "value": { "bare_metal": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "os": "Application", "ram": "32768 MB", "disk": "2x 240GB SSD", "main_ip": "", "cpu_count": 4, "region": "ams", "date_created": "2020-10-10T01:56:20+00:00", "status": "pending", "netmask_v4": "", "gateway_v4": "", "plan": "vbm-4c-32gb", "v6_network": "", "v6_main_ip": "", "v6_network_size": 0, "label": "Example Bare Metal", "mac_address": 2199756823533, "tag": "Example Tag", "tags": [ "Another tag" ], "os_id": 186, "app_id": 3, "image_id": "", "features": [ "ipv6" ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "create-baremetal", "description": "Create a new Bare Metal instance in a `region` with the desired `plan`. Choose one of the following to deploy the instance:\n\n* `os_id`\n* `snapshot_id`\n* `app_id`\n* `image_id`\n\nSupply other attributes as desired.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "region": { "type": "string", "description": "The [Region id](#operation/list-regions) to create the instance." }, "plan": { "type": "string", "description": "The [Bare Metal plan id](#operation/list-metal-plans) to use for this instance." }, "script_id": { "type": "string", "description": "The [Startup Script id](#operation/list-startup-scripts) to use for this instance." }, "enable_ipv6": { "type": "boolean", "description": "Enable IPv6.\n\n* true" }, "sshkey_id": { "type": "array", "description": "The [SSH Key id](#operation/list-ssh-keys) to install on this instance.", "items": { "type": "string" } }, "user_data": { "type": "string", "description": "The user-supplied, base64 encoded [user data](https://www.vultr.com/docs/manage-instance-user-data-with-the-vultr-metadata-api/) for this Instance." }, "label": { "type": "string", "description": "The user-supplied label." }, "activation_email": { "type": "boolean", "description": "Notify by email after deployment.\n\n* true\n* false (default)" }, "hostname": { "type": "string", "description": "The user-supplied hostname to use when deploying this instance." }, "tag": { "type": "string", "description": "Use `tags` instead. The user-supplied tag.", "deprecated": true }, "reserved_ipv4": { "type": "string", "description": "The [Reserved IP id](#operation/list-reserved-ips) for this instance." }, "os_id": { "type": "integer", "description": "If supplied, deploy the instance using this [Operating System id](#operation/list-os)." }, "snapshot_id": { "type": "string", "description": "If supplied, deploy the instance using this [Snapshot ID](#operation/list-snapshots)." }, "app_id": { "type": "integer", "description": "If supplied, deploy the instance using this [Application id](#operation/list-applications)." }, "image_id": { "type": "string", "description": "If supplied, deploy the instance using this [Application image_id](#operation/list-applications)." }, "persistent_pxe": { "type": "boolean", "description": "Enable persistent PXE.\n\n* true\n* false (default)" }, "tags": { "type": "array", "description": "Tags to apply to the instance", "items": { "type": "string" } } }, "required": [ "region", "plan" ] }, "examples": { "request": { "value": { "region": "ams", "plan": "vbm-4c-32gb", "label": "Example Bare Metal", "app_id": 3, "enable_ipv6": true } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "parameters": [] }, "/bare-metals/{baremetal-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "get": { "summary": "Get Bare Metal", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "bare_metal": { "$ref": "#/components/schemas/baremetal" } } }, "examples": { "bare-metal": { "value": { "bare_metal": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "os": "Application", "ram": "32768 MB", "disk": "2x 240GB SSD", "main_ip": "192.0.2.123", "cpu_count": 4, "region": "ams", "date_created": "2020-10-10T01:56:20+00:00", "status": "pending", "netmask_v4": "255.255.254.0", "gateway_v4": "192.0.2.1", "plan": "vbm-4c-32gb", "v6_network": "2001:0db8:5001:3990::", "v6_main_ip": "2001:0db8:5001:3990:0ec4:7aff:fe8e:f97a", "v6_network_size": 64, "mac_address": 2199756823533, "label": "Example Bare Metal", "os_id": 183, "app_id": 3, "image_id": "", "features": [ "ipv6" ], "tags": [ "a tag", "another" ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-baremetal", "security": [ { "APIKey": [] } ], "description": "Get information for a Bare Metal instance." }, "patch": { "summary": "Update Bare Metal", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}\" \\\n -X PATCH \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"label\" : \"Updated Bare Metal Label\",\n \"tags\" : [\"a tag\", \"another\"],\n \"user_data\" : \"QmFzZTY0IEV4YW1wbGUgRGF0YQ==\"\n }'" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "bare_metal": { "$ref": "#/components/schemas/baremetal" } } }, "examples": { "example": { "value": { "bare_metal": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "os": "Application", "ram": "32768 MB", "disk": "2x 240GB SSD", "main_ip": "192.0.2.123", "cpu_count": 4, "region": "ams", "date_created": "2020-10-10T01:56:20+00:00", "status": "pending", "netmask_v4": "255.255.254.0", "gateway_v4": "192.0.2.1", "plan": "vbm-4c-32gb", "v6_network": "2001:0db8:5001:3990::", "v6_main_ip": "2001:0db8:5001:3990:0ec4:7aff:fe8e:f97a", "v6_network_size": 64, "mac_address": 2199756823533, "label": "Updated Bare Metal Label", "os_id": 183, "app_id": 3, "image_id": "", "features": [ "ipv6" ], "tags": [ "a tag", "another" ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "update-baremetal", "description": "Update a Bare Metal instance. All attributes are optional. If not set, the attributes will retain their original values.\n\n**Note:** Changing `os_id`, `app_id` or `image_id` may take a few extra seconds to complete.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "user_data": { "type": "string", "description": "The user-supplied, base64 encoded [user data](https://www.vultr.com/docs/manage-instance-user-data-with-the-vultr-metadata-api/) to attach to this instance." }, "label": { "type": "string", "description": "The user-supplied label." }, "tag": { "type": "string", "description": "Use `tags` instead. The user-supplied tag.", "deprecated": true }, "os_id": { "type": "integer", "description": "If supplied, reinstall the instance using this [Operating System id](#operation/list-os)." }, "app_id": { "type": "integer", "description": "If supplied, reinstall the instance using this [Application id](#operation/list-applications)." }, "image_id": { "type": "string", "description": "If supplied, reinstall the instance using this [Application image_id](#operation/list-applications)." }, "enable_ipv6": { "type": "boolean", "description": "Enable IPv6.\n\n* true" }, "tags": { "type": "array", "description": "Tags to apply to the instance", "items": { "type": "string" } } } }, "examples": { "request": { "value": { "label": "Updated Bare Metal Label", "tags": [ "a tag", "another" ], "user_data": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] }, "delete": { "summary": "Delete Bare Metal", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-baremetal", "description": "Delete a Bare Metal instance.", "security": [ { "APIKey": [] } ] } }, "/bare-metals/{baremetal-id}/ipv4": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "get": { "summary": "Bare Metal IPv4 Addresses", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}/ipv4\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "ipv4s": { "type": "array", "items": { "$ref": "#/components/schemas/baremetal-ipv4" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "ipv4s": { "value": { "ipv4s": [ { "ip": "192.0.2.123", "netmask": "255.255.254.0", "gateway": "192.0.2.1", "type": "main_ip", "reverse": "192.0.2.123.vultr.com" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-ipv4-baremetal", "security": [ { "APIKey": [] } ], "description": "Get the IPv4 information for the Bare Metal instance." } }, "/bare-metals/{baremetal-id}/ipv6": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "get": { "summary": "Bare Metal IPv6 Addresses", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}/ipv6\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "ipv6s": { "type": "array", "items": { "$ref": "#/components/schemas/baremetal-ipv6" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "ipv6s": { "value": { "ipv6s": [ { "ip": "2001:0db8:5001:3990:0ec4:7aff:fe8e:f97a", "network": "2001:0db8:5001:3990::", "network_size": 64, "type": "main_ip" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-ipv6-baremetal", "description": "Get the IPv6 information for the Bare Metal instance.", "security": [ { "APIKey": [] } ] } }, "/bare-metals/{baremetal-id}/start": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "post": { "summary": "Start Bare Metal", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}/start\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "start-baremetal", "description": "Start the Bare Metal instance.", "security": [ { "APIKey": [] } ] } }, "/bare-metals/{baremetal-id}/reboot": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "post": { "summary": "Reboot Bare Metal", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}/reboot\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "reboot-baremetal", "description": "Reboot the Bare Metal instance.", "security": [ { "APIKey": [] } ] } }, "/bare-metals/{baremetal-id}/reinstall": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "post": { "summary": "Reinstall Bare Metal", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}/reinstall\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "bare_metal": { "$ref": "#/components/schemas/baremetal" } } }, "examples": { "bare_metal": { "value": { "bare_metal": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "os": "Application", "ram": "32768 MB", "disk": "2x 240GB SSD", "main_ip": "192.0.2.123", "cpu_count": 4, "region": "ams", "date_created": "2020-10-10T01:56:20+00:00", "status": "pending", "netmask_v4": "255.255.254.0", "gateway_v4": "192.0.2.1", "plan": "vbm-4c-32gb", "v6_network": "2001:0db8:5001:3990::", "v6_main_ip": "2001:0db8:5001:3990:0ec4:7aff:fe8e:f97a", "v6_network_size": 64, "label": "Example Bare Metal", "mac_address": 2199756823533, "tag": "Example Tag", "os_id": 183, "app_id": 3, "image_id": "" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "reinstall-baremetal", "description": "Reinstall the Bare Metal instance.\n\n**Note:** This action may take a few extra seconds to complete.", "security": [ { "APIKey": [] } ] } }, "/bare-metals/{baremetal-id}/halt": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "post": { "summary": "Halt Bare Metal", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}/halt\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "halt-baremetal", "security": [ { "APIKey": [] } ], "description": "Halt the Bare Metal instance." } }, "/bare-metals/{baremetal-id}/bandwidth": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "get": { "summary": "Bare Metal Bandwidth", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}/bandwidth\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "bandwidth": { "type": "object", "description": "This object will contain objects that represent days in the month (UTC). The date is denoted by the nested objects keys.", "properties": { "2020-10-10": { "$ref": "#/components/schemas/bandwidth" }, "2020-10-11": { "$ref": "#/components/schemas/bandwidth" } } } } }, "examples": { "bandwidth": { "value": { "bandwidth": { "2020-07-25": { "incoming_bytes": 15989787, "outgoing_bytes": 25327729 }, "2020-07-26": { "incoming_bytes": 13964112, "outgoing_bytes": 22257069 } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-bandwidth-baremetal", "description": "Get bandwidth information for the Bare Metal instance.

The `bandwidth` object in a successful response contains objects representing a day in the month. The date is denoted by the nested object keys. Days begin and end in the UTC timezone. Bandwidth utilization data contained within the date object is refreshed periodically. We do not recommend using this endpoint to gather real-time metrics.", "security": [ { "APIKey": [] } ] } }, "/bare-metals/halt": { "post": { "summary": "Halt Bare Metals", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/halt\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"baremetal_ids\" : [\n \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\",\n \"7f6f84ea-8f87-4d9e-af01-ac44db05911c\",\n \"54a83807-64ce-42e8-a0da-4d6c31c5b93b\"\n ]\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "halt-baremetals", "description": "Halt Bare Metals.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "baremetal_ids": { "type": "array", "items": { "type": "string" } } } }, "examples": { "example": { "value": { "baremetal_ids": [ "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "7f6f84ea-8f87-4d9e-af01-ac44db05911c", "54a83807-64ce-42e8-a0da-4d6c31c5b93b" ] } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/bare-metals/reboot": { "post": { "summary": "Reboot Bare Metals", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/reboot\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"baremetal_ids\" : [\n \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\",\n \"54a83807-64ce-42e8-a0da-4d6c31c5b93b\",\n \"d092ee75-a113-480c-ae2e-e24cc6f588c3\"\n ]\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "reboot-bare-metals", "description": "Reboot Bare Metals.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "baremetal_ids": { "type": "array", "items": { "type": "string" } } } }, "examples": { "example": { "value": { "baremetal_ids": [ "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "54a83807-64ce-42e8-a0da-4d6c31c5b93b", "d092ee75-a113-480c-ae2e-e24cc6f588c3" ] } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/bare-metals/start": { "post": { "summary": "Start Bare Metals", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/start\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"baremetal_ids\" : [\n \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\",\n \"1d651bd2-b93c-4bb6-8b91-0546fd765f15\",\n \"c2790719-278d-474c-8dff-cb35d6e5503f\"\n ]\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "start-bare-metals", "description": "Start Bare Metals.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "baremetal_ids": { "type": "array", "items": { "type": "string" } } } }, "examples": { "example": { "value": { "baremetal_ids": [ "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "1d651bd2-b93c-4bb6-8b91-0546fd765f15", "c2790719-278d-474c-8dff-cb35d6e5503f" ] } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/bare-metals/{baremetal-id}/user-data": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "get": { "summary": "Get Bare Metal User Data", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}/user-data\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "user_data": { "type": "object", "properties": { "data": { "type": "string", "description": "The user-supplied, base64 encoded [user data](https://www.vultr.com/docs/manage-instance-user-data-with-the-vultr-metadata-api/) attached to this bare metal." } } } } }, "examples": { "response": { "value": { "user_data": { "data": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-bare-metal-userdata", "security": [ { "APIKey": [] } ], "description": "Get the user-supplied, base64 encoded [user data](https://www.vultr.com/docs/manage-instance-user-data-with-the-vultr-metadata-api/) for a Bare Metal." } }, "/instances": { "get": { "summary": "List Instances", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "instances": { "type": "array", "items": { "$ref": "#/components/schemas/instance" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "instance": { "value": { "instances": [ { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "os": "CentOS SELinux 8 x64", "ram": 2048, "disk": 55, "main_ip": "192.0.2.123", "vcpu_count": 1, "region": "atl", "plan": "vc2-6c-16gb", "date_created": "2020-10-10T01:56:20+00:00", "status": "active", "allowed_bandwidth": 2000, "netmask_v4": "255.255.252.0", "gateway_v4": "192.0.2.1", "power_status": "running", "server_status": "ok", "v6_network": "2001:0db8:1112:18fb::", "v6_main_ip": "2001:0db8:1112:18fb:0200:00ff:fe00:0000", "v6_network_size": 64, "label": "Example Instance", "internal_ip": "", "kvm": "https://my.vultr.com/subs/vps/novnc/api.php?data=00example11223344", "hostname": "my_hostname", "os_id": 215, "app_id": 0, "image_id": "", "firewall_group_id": "", "features": [ "ddos_protection", "ipv6", "auto_backups" ], "tags": [ "a tag", "another" ] } ], "meta": { "total": 3, "links": { "next": "WxYzExampleNext", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "list-instances", "description": "List all VPS instances in your account.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." }, { "schema": { "type": "string" }, "in": "query", "name": "tag", "description": "Filter by specific tag.", "deprecated": true }, { "schema": { "type": "string" }, "in": "query", "name": "label", "description": "Filter by label." }, { "schema": { "type": "string" }, "in": "query", "name": "main_ip", "description": "Filter by main ip address." }, { "schema": { "type": "string" }, "in": "query", "name": "region", "description": "Filter by [Region id](#operation/list-regions)." } ] }, "post": { "summary": "Create Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"region\" : \"ewr\",\n \"plan\" : \"vc2-6c-16gb\",\n \"label\" : \"Example Instance\",\n \"os_id\" : 215,\n \"user_data\" : \"QmFzZTY0IEV4YW1wbGUgRGF0YQ==\",\n \"backups\" : \"enabled\",\n \"hostname\": \"my_hostname\",\n \"tags\": [\n \"a tag\",\n \"another\"\n ]\n }'" } ], "responses": { "202": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "instance": { "$ref": "#/components/schemas/instance" } } }, "examples": { "instance": { "value": { "instance": { "id": "4f0f12e5-1f84-404f-aa84-85f431ea5ec2", "os": "CentOS 8 Stream", "ram": 1024, "disk": 0, "main_ip": "0.0.0.0", "vcpu_count": 1, "region": "ewr", "plan": "vc2-1c-1gb", "date_created": "2021-09-14T13:22:20+00:00", "status": "pending", "allowed_bandwidth": 1000, "netmask_v4": "", "gateway_v4": "0.0.0.0", "power_status": "running", "server_status": "none", "v6_network": "", "v6_main_ip": "", "v6_network_size": 0, "label": "", "internal_ip": "", "kvm": "", "hostname": "my_hostname", "os_id": 401, "app_id": 0, "image_id": "", "firewall_group_id": "", "features": [], "default_password": "v5{Fkvb#2ycPGwHs", "tags": [ "a tag", "another" ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "create-instance", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the Instance is located." }, "plan": { "type": "string", "description": "The [Plan id](#operation/list-plans) to use when deploying this instance." }, "os_id": { "type": "integer", "description": "The [Operating System id](#operation/list-os) to use when deploying this instance." }, "ipxe_chain_url": { "type": "string", "description": "The URL location of the iPXE chainloader." }, "iso_id": { "type": "string", "description": "The [ISO id](#operation/list-isos) to use when deploying this instance." }, "script_id": { "type": "string", "description": "The [Startup Script id](#operation/list-startup-scripts) to use when deploying this instance." }, "snapshot_id": { "type": "string", "description": "The [Snapshot id](#operation/list-snapshots) to use when deploying the instance." }, "enable_ipv6": { "type": "boolean", "description": "Enable IPv6.\n\n* true" }, "attach_private_network": { "type": "array", "description": "Use `attach_vpc` instead. An array of [Private Network ids](#operation/list-networks) to attach to this Instance. This parameter takes precedence over `enable_private_network`. Please choose one parameter.", "deprecated": true, "items": { "type": "string" } }, "attach_vpc": { "type": "array", "description": "An array of [VPC IDs](#operation/list-vpcs) to attach to this Instance. This parameter takes precedence over `enable_vpc`. Please choose one parameter.", "items": { "type": "string" } }, "label": { "type": "string", "description": "A user-supplied label for this instance." }, "sshkey_id": { "type": "array", "description": "The [SSH Key id](#operation/list-ssh-keys) to install on this instance.", "items": { "type": "string" } }, "backups": { "type": "string", "description": "Enable automatic backups for the instance.\n\n* enabled\n* disabled" }, "app_id": { "type": "integer", "description": "The [Application id](#operation/list-applications) to use when deploying this instance." }, "image_id": { "type": "string", "description": "The [Application image_id](#operation/list-applications) to use when deploying this instance." }, "user_data": { "type": "string", "description": "The user-supplied, base64 encoded [user data](https://www.vultr.com/docs/manage-instance-user-data-with-the-vultr-metadata-api/) to attach to this instance." }, "ddos_protection": { "type": "boolean", "description": "Enable DDoS protection (there is an additional charge for this).\n\n* true\n* false" }, "activation_email": { "type": "boolean", "description": "Notify by email after deployment.\n\n* true\n* false (default)" }, "hostname": { "type": "string", "description": "The hostname to use when deploying this instance." }, "tag": { "type": "string", "description": "Use `tags` instead. The user-supplied tag.", "deprecated": true }, "firewall_group_id": { "type": "string", "description": "The [Firewall Group id](#operation/list-firewall-groups) to attach to this Instance." }, "reserved_ipv4": { "type": "string", "description": "ID of the floating IP to use as the main IP of this server." }, "enable_private_network": { "type": "boolean", "description": "Use `enable_vpc` instead.\n\nIf `true`, private networking support will be added to the new server.\n\nThis parameter attaches a single network. When no network exists in the region, it will be automatically created.\n\nIf there are multiple private networks in the instance's region, use `attach_private_network` instead to specify a network.", "deprecated": true }, "enable_vpc": { "type": "boolean", "description": "If `true`, VPC support will be added to the new server.\n\nThis parameter attaches a single VPC. When no VPC exists in the region, it will be automatically created.\n\nIf there are multiple VPCs in the instance's region, use `attach_vpc` instead to specify a network." }, "tags": { "type": "array", "description": "Tags to apply to the instance", "items": { "type": "string" } } }, "required": [ "region", "plan" ] }, "examples": { "request": { "value": { "region": "ewr", "plan": "vc2-6c-16gb", "label": "Example Instance", "os_id": 215, "user_data": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==", "backups": "enabled", "hostname": "my_hostname", "tags": [ "a tag", "another" ] } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "description": "Create a new VPS Instance in a `region` with the desired `plan`. Choose one of the following to deploy the instance:\n\n* `os_id`\n* `iso_id`\n* `snapshot_id`\n* `app_id`\n* `image_id`\n\nSupply other attributes as desired." } }, "/instances/{instance-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "get": { "summary": "Get Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "instance": { "$ref": "#/components/schemas/instance" } } }, "examples": { "instance": { "value": { "instance": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "os": "Ubuntu 20.04 x64", "ram": 16384, "disk": 384, "main_ip": "192.0.2.123", "vcpu_count": 4, "region": "ewr", "plan": "vc2-6c-16gb", "date_created": "2020-10-10T01:56:20+00:00", "status": "active", "allowed_bandwidth": 5000, "netmask_v4": "255.255.254.0", "gateway_v4": "192.0.2.1", "power_status": "running", "server_status": "ok", "v6_network": "", "v6_main_ip": "", "v6_network_size": 0, "label": "Example Instance", "internal_ip": "", "kvm": "https://my.vultr.com/subs/vps/novnc/api.php?data=00example11223344", "hostname": "my_hostname", "os_id": 215, "app_id": 0, "image_id": "", "firewall_group_id": "", "features": [ "ddos_protection", "ipv6", "auto_backups" ], "tags": [ "a tag", "another" ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "get-instance", "description": "Get information about an Instance.", "security": [ { "APIKey": [] } ] }, "patch": { "summary": "Update Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}\" \\\n -X PATCH \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"label\" : \"Example Instance\",\n \"tags\" : [\"a tag\", \"another\"],\n \"plan\" : \"vc2-24c-97gb\"\n }'" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "instance": { "$ref": "#/components/schemas/instance" } } }, "examples": { "example": { "value": { "instance": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "os": "Ubuntu 20.04 x64", "ram": 16384, "disk": 384, "main_ip": "192.0.2.123", "vcpu_count": 4, "region": "ewr", "plan": "vc2-24c-97gb", "date_created": "2020-10-10T01:56:20+00:00", "status": "active", "allowed_bandwidth": 5000, "netmask_v4": "255.255.254.0", "gateway_v4": "192.0.2.1", "power_status": "running", "server_status": "ok", "v6_network": "", "v6_main_ip": "", "v6_network_size": 0, "label": "Example Instance", "internal_ip": "", "kvm": "https://my.vultr.com/subs/vps/novnc/api.php?data=00example11223344", "hostname": "my_hostname", "os_id": 215, "app_id": 0, "image_id": "", "firewall_group_id": "", "features": [ "ddos_protection", "ipv6", "auto_backups" ], "tags": [ "a tag", "another" ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "update-instance", "description": "Update information for an Instance. All attributes are optional. If not set, the attributes will retain their original values.\n\n**Note:** Changing `os_id`, `app_id` or `image_id` may take a few extra seconds to complete.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "app_id": { "type": "integer", "description": "Reinstall the instance with this [Application id](#operation/list-applications)." }, "image_id": { "type": "string", "description": "Reinstall the instance with this [Application image_id](#operation/list-applications)." }, "backups": { "description": "Enable automatic backups for the instance.\n\n* enabled\n* disabled", "type": "string" }, "firewall_group_id": { "type": "string", "description": "The [Firewall Group id](#operation/list-firewall-groups) to attach to this Instance." }, "enable_ipv6": { "type": "boolean", "description": "Enable IPv6.\n\n* true" }, "os_id": { "type": "string", "description": "Reinstall the instance with this [ISO id](#operation/list-isos)." }, "user_data": { "type": "string", "description": "The user-supplied, base64 encoded [user data](https://www.vultr.com/docs/manage-instance-user-data-with-the-vultr-metadata-api/) to attach to this instance." }, "tag": { "type": "string", "description": "Use `tags` instead. The user-supplied tag.", "deprecated": true }, "plan": { "type": "string", "description": "Upgrade the instance with this [Plan id](#operation/list-plans)." }, "ddos_protection": { "description": "Enable DDoS Protection (there is an additional charge for this).\n\n* true\n* false", "type": "boolean" }, "attach_private_network": { "type": "array", "description": "Use `attach_vpc` instead. An array of [Private Network ids](#operation/list-networks) to attach to this Instance. This parameter takes precedence over `enable_private_network`. Please choose one parameter.", "deprecated": true, "items": { "type": "string" } }, "attach_vpc": { "type": "array", "description": "An array of [VPC IDs](#operation/list-vpcs) to attach to this Instance. This parameter takes precedence over `enable_vpc`. Please choose one parameter.", "items": { "type": "string" } }, "detach_private_network": { "type": "array", "description": "Use `detach_vpc` instead. An array of [Private Network ids](#operation/list-networks) to detach from this Instance. This parameter takes precedence over `enable_private_network`.", "deprecated": true, "items": { "type": "string" } }, "detach_vpc": { "type": "array", "description": "An array of [VPC IDs](#operation/list-vpcs) to detach from this Instance. This parameter takes precedence over `enable_vpc`.", "items": { "type": "string" } }, "enable_private_network": { "type": "boolean", "description": "Use `enable_vpc` instead.\n\nIf `true`, private networking support will be added to the new server.\n\nThis parameter attaches a single network. When no network exists in the region, it will be automatically created.\n\nIf there are multiple private networks in the instance's region, use `attach_private_network` instead to specify a network.", "deprecated": true }, "enable_vpc": { "type": "boolean", "description": "If `true`, VPC support will be added to the new server.\n\nThis parameter attaches a single VPC. When no VPC exists in the region, it will be automatically created.\n\nIf there are multiple VPCs in the instance's region, use `attach_vpc` instead to specify a VPC." }, "label": { "type": "string", "description": "The user supplied label" }, "tags": { "type": "array", "description": "Tags to apply to the instance", "items": { "type": "string" } } } }, "examples": { "request": { "value": { "label": "Example Instance", "tags": [ "a tag", "another" ], "plan": "vc2-24c-97gb" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "delete": { "summary": "Delete Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-instance", "description": "Delete an Instance.", "security": [ { "APIKey": [] } ] } }, "/instances/halt": { "post": { "summary": "Halt Instances", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/halt\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"instance_ids\" : [\n \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\",\n \"1d651bd2-b93c-4bb6-8b91-0546fd765f15\",\n \"c2790719-278d-474c-8dff-cb35d6e5503f\"\n ]\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "halt-instances", "description": "Halt Instances.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "instance_ids": { "type": "array", "description": "The [Instance IDs](#operation/list-instances) to halt.", "items": { "type": "string" } } } }, "examples": { "example": { "value": { "instance_ids": [ "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "1d651bd2-b93c-4bb6-8b91-0546fd765f15", "c2790719-278d-474c-8dff-cb35d6e5503f" ] } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/instances/reboot": { "post": { "summary": "Reboot instances", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/reboot\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"instance_ids\" : [\n \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\",\n \"1d651bd2-b93c-4bb6-8b91-0546fd765f15\",\n \"c2790719-278d-474c-8dff-cb35d6e5503f\"\n ]\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "reboot-instances", "description": "Reboot Instances.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "instance_ids": { "type": "array", "description": "The [Instance IDs](#operation/list-instances) to reboot.", "items": { "type": "string" } } } }, "examples": { "example": { "value": { "instance_ids": [ "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "1d651bd2-b93c-4bb6-8b91-0546fd765f15", "c2790719-278d-474c-8dff-cb35d6e5503f" ] } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/instances/start": { "post": { "summary": "Start instances", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/start\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"instance_ids\" : [\n \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\",\n \"1d651bd2-b93c-4bb6-8b91-0546fd765f15\",\n \"c2790719-278d-474c-8dff-cb35d6e5503f\"\n ]\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "start-instances", "description": "Start Instances.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "instance_ids": { "type": "array", "description": "The [Instance IDs](#operation/list-instances) to start.", "items": { "type": "string" } } } }, "examples": { "example": { "value": { "instance_ids": [ "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "1d651bd2-b93c-4bb6-8b91-0546fd765f15", "c2790719-278d-474c-8dff-cb35d6e5503f" ] } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/instances/{instance-id}/start": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Start instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/start\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "start-instance", "description": "Start an Instance.", "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/reboot": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Reboot Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/reboot\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "reboot-instance", "description": "Reboot an Instance.", "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/reinstall": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Reinstall Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/reinstall\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"hostname\" : \"my_new_hostname\"\n }'" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "instance": { "$ref": "#/components/schemas/instance" } } }, "examples": { "example": { "value": { "instance": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "os": "Ubuntu 20.04 x64", "ram": 16384, "disk": 384, "main_ip": "192.0.2.123", "vcpu_count": 4, "region": "ewr", "plan": "vc2-6c-16gb", "date_created": "2020-10-10T01:56:20+00:00", "status": "active", "allowed_bandwidth": 5000, "netmask_v4": "255.255.254.0", "gateway_v4": "192.0.2.1", "power_status": "running", "server_status": "ok", "v6_network": "", "v6_main_ip": "", "v6_network_size": 0, "label": "Example Instance", "internal_ip": "", "kvm": "https://my.vultr.com/subs/vps/novnc/api.php?data=00example11223344", "hostname": "my_new_hostname", "tag": "Example Tag", "os_id": 215, "app_id": 0, "image_id": "", "firewall_group_id": "", "features": [ "ddos_protection", "ipv6", "auto_backups" ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "reinstall-instance", "description": "Reinstall an Instance using an optional `hostname`.\n\n**Note:** This action may take a few extra seconds to complete.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "hostname": { "type": "string", "description": "The hostname to use when reinstalling this instance." } } }, "examples": { "request": { "value": { "hostname": "my_new_hostname" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/bandwidth": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "get": { "summary": "Instance Bandwidth", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/bandwidth\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "bandwidth": { "type": "object", "description": "This object will contain objects that represent days in the month (UTC). The date is denoted by the nested objects keys.", "properties": { "2020-10-10": { "$ref": "#/components/schemas/bandwidth" }, "2020-10-11": { "$ref": "#/components/schemas/bandwidth" } } } } }, "examples": { "bandwidth": { "value": { "bandwidth": { "2020-07-25": { "incoming_bytes": 15989787, "outgoing_bytes": 25327729 }, "2020-07-26": { "incoming_bytes": 13964112, "outgoing_bytes": 22257069 } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-instance-bandwidth", "description": "Get bandwidth information about an Instance.

The `bandwidth` object in a successful response contains objects representing a day in the month. The date is denoted by the nested object keys. Days begin and end in the UTC timezone. The bandwidth utilization data contained within the date object is refreshed periodically. We do not recommend using this endpoint to gather real-time metrics.", "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/neighbors": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "get": { "summary": "Get Instance neighbors", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/neighbors\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "neighbors": { "type": "array", "description": "An array of [Instance ids](#operation/list-instances) in the same location as this Instance.", "items": { "type": "string" } } } }, "examples": { "response": { "value": { "neighbors": [ "478dbfe7-43f8-4dc8-940c-8bb61f547400", "a8047e6b-16bd-42be-8351-58df7e5ab89c" ] } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-instance-neighbors", "security": [ { "APIKey": [] } ], "description": "Get a list of other instances in the same location as this Instance." } }, "/instances/{instance-id}/private-networks": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "get": { "summary": "List instance Private Networks", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/private-networks\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "private_networks": { "type": "array", "items": { "$ref": "#/components/schemas/private-networks" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "private_networks": [ { "network_id": "d325e78b-bcec-4d4e-b9b8-9c294f37b04d", "mac_address": "00:00:5e:00:53:5e", "ip_address": "10.99.0.123" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-instance-private-networks", "security": [ { "APIKey": [] } ], "description": "**Deprecated**: use [List Instance VPCs](#operation/list-instance-vpcs) instead.

List the private networks for an Instance.", "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ], "deprecated": true } }, "/instances/{instance-id}/vpcs": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "get": { "summary": "List instance VPCs", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/vpcs\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "private_networks": { "type": "array", "items": { "$ref": "#/components/schemas/vpc" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "response": { "value": { "vpcs": [ { "id": "d325e78b-bcec-4d4e-b9b8-9c294f37b04d", "mac_address": "00:00:5e:00:53:5e", "ip_address": "10.99.0.123" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-instance-vpcs", "security": [ { "APIKey": [] } ], "description": "List the VPCs for an Instance.", "parameters": [ { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] } }, "/instances/{instance-id}/iso": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "get": { "summary": "Get Instance ISO Status", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/iso\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "iso_status": { "type": "object", "properties": { "iso_id": { "description": "The [ISO id](#operation/list-isos).", "type": "string" }, "state": { "type": "string", "description": "The status of this ISO.\n* ready\n* attached" } } } } }, "examples": { "response": { "value": { "iso_status": { "state": "ready", "iso_id": "0532a75b-14e8-48b8-b27e-1ebcf382a804" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-instance-iso-status", "description": "Get the ISO status for an Instance.", "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/iso/attach": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true } ], "post": { "summary": "Attach ISO to Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/iso/attach\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"iso_id\" : \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\"\n }'" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "iso_status": { "type": "object", "properties": { "state": { "type": "string", "description": "State of the ISO\n\n* ismounting" }, "iso_id": { "type": "string", "description": "The [ISO id](#operation/list-isos) being attached." } } } } }, "examples": { "example": { "value": { "iso_status": { "status": "ismounting", "iso_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "attach-instance-iso", "description": "Attach an ISO to an Instance.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "iso_id": { "description": "The [ISO id](#operation/list-isos) to attach to this Instance.", "type": "string" } } }, "examples": { "request": { "value": { "iso_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/iso/detach": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Detach ISO from instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/iso/detach\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "iso_status": { "type": "object", "properties": { "state": { "type": "string", "description": "State of the ISO\n\n* isunmounting" } } } } }, "examples": { "example": { "value": { "iso_status": { "status": "isunmounting" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "detach-instance-iso", "description": "Detach the ISO from an Instance.", "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/private-networks/attach": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Attach Private Network to Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/private-networks/attach\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"network_id\": \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "attach-instance-network", "description": "Attach Private Network to an Instance.

**Deprecated**: use [Attach VPC to Instance](#operation/attach-instance-vpc) instead.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "network_id": { "type": "string", "description": "The [Private Network id](#operation/list-networks) to attach to this Instance." } } }, "examples": { "example": { "value": { "network_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "deprecated": true } }, "/instances/{instance-id}/private-networks/detach": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Detach Private Network from Instance.", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/private-networks/detach\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"network_id\": \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "detach-instance-network", "description": "Detach Private Network from an Instance.

**Deprecated**: use [Detach VPC from Instance](#operation/detach-instance-vpc) instead.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "network_id": { "type": "string", "description": "The [Private Network id](#operation/list-networks) to detach from this Instance." } } }, "examples": { "example": { "value": { "network_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "deprecated": true } }, "/instances/{instance-id}/vpcs/attach": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Attach VPC to Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/vpcs/attach\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"vpc_id\": \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "attach-instance-vpc", "description": "Attach a VPC to an Instance.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "vpc_id": { "type": "string", "description": "The [VPC ID](#operation/list-vpcs) to attach to this Instance." } } }, "examples": { "example": { "value": { "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/instances/{instance-id}/vpcs/detach": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Detach VPC from Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/vpcs/detach\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"vpc_id\": \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "detach-instance-vpc", "description": "Detach a VPC from an Instance.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "vpc_id": { "type": "string", "description": "The [VPC ID](#operation/list-vpcs) to detach from this Instance." } } }, "examples": { "example": { "value": { "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/instances/{instance-id}/backup-schedule": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Set Instance Backup Schedule", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/backup-schedule\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"type\": \"daily\",\n \"hour\": 10,\n \"dow\": 1,\n \"dom\": 1\n }'" } ], "responses": { "200": { "description": "OK" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-instance-backup-schedule", "description": "Set the backup schedule for an Instance in UTC. The `type` is required.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "type": { "type": "string", "description": "Type of backup schedule:\n\n| | Value | Description |\n| - | ------ | ------------- |\n| | daily | Back up once per day at `hour`. |\n| | weekly | Back up once per week on `dow` at `hour`. |\n| | monthly | Back up each month at `dom` at `hour`. |\n| | daily\\_alt\\_even | Back up on even dates at `hour`. |\n| | daily\\_alt\\_odd | Back up on odd dates at `hour`. |" }, "hour": { "description": "Hour of day to run in UTC.", "type": "integer" }, "dow": { "description": "Day of week to run.\n\n| | Value | Description |\n| - | ------ | ------------- |\n| | 1 | Sunday |\n| | 2 | Monday |\n| | 3 | Tuesday |\n| | 4 | Wednesday |\n| | 5 | Thursday |\n| | 6 | Friday |\n| | 7 | Saturday |", "type": "integer" }, "dom": { "description": "Day of month to run. Use values between 1 and 28.", "type": "integer" } }, "required": [ "type" ] }, "examples": { "request": { "value": { "type": "daily", "hour": 10, "dow": 1, "dom": 1 } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "security": [ { "APIKey": [] } ] }, "get": { "summary": "Get Instance Backup Schedule", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/backup-schedule\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "backup_schedule": { "$ref": "#/components/schemas/backup-schedule" } } }, "examples": { "backup-schedule": { "value": { "backup_schedule": { "enabled": true, "type": "daily", "next_scheduled_time_utc": "2020-07-28 00:00:00", "hour": 10, "dow": 1, "dom": 1 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-instance-backup-schedule", "description": "Get the backup schedule for an Instance.", "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/restore": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Restore Instance", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/restore\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"backup_id\": \"cb676a46-66fd-4dfb-b839-443f2e6c0b60\"\n }'" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "object", "properties": { "restore_type": { "type": "string" }, "restore_id": { "type": "string" }, "status": { "type": "string" } } } } }, "examples": { "example": { "value": { "status": { "restore_type": "backup_id", "restore_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "status": "inprogress" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "restore-instance", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "backup_id": { "type": "string", "description": "The [Backup id](#operation/list-backups) used to restore this instance." }, "snapshot_id": { "type": "string", "description": "The [Snapshot id](#operation/list-snapshots) used to restore this instance." } } }, "examples": { "request": { "value": { "backup_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "description": "Restore an Instance from either `backup_id` or `snapshot_id`.", "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/ipv4": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "get": { "summary": "List Instance IPv4 Information", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/ipv4\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "ipv4s": { "type": "array", "items": { "$ref": "#/components/schemas/baremetal-ipv4" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "ipv4": { "value": { "ipv4s": [ { "ip": "192.0.2.123", "netmask": "255.255.254.0", "gateway": "192.0.2.1", "type": "main_ip", "reverse": "host1.example.com" }, { "ip": "203.0.113.123", "netmask": "255.255.255.255", "gateway": "", "type": "secondary_ip", "reverse": "host2.example.com" }, { "ip": "10.99.0.123", "netmask": "255.255.0.0", "gateway": "", "type": "private", "reverse": "" } ], "meta": { "total": 3, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-instance-ipv4", "security": [ { "APIKey": [] } ], "description": "List the IPv4 information for an Instance.", "parameters": [ { "schema": { "type": "boolean" }, "in": "query", "name": "public_network", "description": "If `true`, includes information about the public network adapter (such as MAC address) with the `main_ip` entry." }, { "schema": { "type": "integer" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500.\n" }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] }, "post": { "summary": "Create IPv4", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/ipv4\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"reboot\" : true\n }'" } ], "operationId": "create-instance-ipv4", "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": {} }, "examples": { "example": { "value": { "ipv4": { "ip": "192.0.2.123", "netmask": "255.255.254.0", "gateway": "192.0.2.1", "type": "secondary_ip", "reverse": "192.0.2.123.vultr.com" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "description": "Create an IPv4 address for an Instance.", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "reboot": { "type": "boolean", "description": "Set if the server is rebooted immediately after the IPv4 address is created.\n\n* true (default)\n* false" } } }, "examples": { "example": { "value": { "reboot": true } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "tags": [ "instances" ] } }, "/instances/{instance-id}/ipv6": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "get": { "summary": "Get Instance IPv6 Information", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/ipv6\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "ipv6s": { "type": "array", "items": { "$ref": "#/components/schemas/baremetal-ipv6" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "ipv6": { "value": { "ipv6s": [ { "ip": "2001:0db8:5:6bb:5400:02ff:fee5:3fe3", "network": "2001:0db8:5:6bb::", "network_size": 64, "type": "main_ip" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-instance-ipv6", "security": [ { "APIKey": [] } ], "description": "Get the IPv6 information for an VPS Instance." } }, "/instances/{instance-id}/ipv6/reverse": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Create Instance Reverse IPv6", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/ipv6/reverse\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"ip\" : \"2001:0db8:5:6bb:5400:2ff:fee5:2\",\n \"reverse\" : \"foo.example.com\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-instance-reverse-ipv6", "description": "Create a reverse IPv6 entry for an Instance. The `ip` and `reverse` attributes are required. IP address must be in full, expanded format.", "parameters": [], "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "ip": { "type": "string", "description": "The IPv6 address in full, expanded format." }, "reverse": { "type": "string", "description": "The IPv6 reverse entry." } }, "required": [ "ip", "reverse" ] }, "examples": { "request": { "value": { "ip": "2001:0db8:0005:6bb0:5400:2ff0:fee5:0002", "reverse": "foo.example.com" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } }, "get": { "summary": "List Instance IPv6 Reverse", "operationId": "list-instance-ipv6-reverse", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "reverse_ipv6s": { "type": "array", "items": { "type": "object", "properties": { "reverse": { "type": "string", "description": "The IPv6 reverse entry." }, "ip": { "type": "string", "description": "The IPv6 address." } } } } } }, "examples": { "response": { "value": { "reverse_ipv6s": [ { "ip": "2001:0db8:5:6bb:5400:2ff:fee5:1", "reverse": "foo.example.com" } ] } } } } } } }, "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/ipv6/reverse\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "description": "List the reverse IPv6 information for an Instance.", "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/ipv4/reverse": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Create Instance Reverse IPv4", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/ipv4/reverse\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"ip\" : \"192.0.2.123\",\n \"reverse\" : \"foo.example.com\"\n }'" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-instance-reverse-ipv4", "description": "Create a reverse IPv4 entry for an Instance. The `ip` and `reverse` attributes are required. ", "parameters": [], "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "ip": { "type": "string", "description": "The IPv4 address." }, "reverse": { "type": "string", "description": "The IPv4 reverse entry." } }, "required": [ "ip", "reverse" ] }, "examples": { "request": { "value": { "ip": "192.0.2.123", "reverse": "foo.example.com" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." } } }, "/backups/{backup-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "backup-id", "in": "path", "required": true, "description": "The [Backup id](#operation/list-backups)." } ], "get": { "summary": "Get a Backup", "tags": [ "backup" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/backups/{backup-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "backup": { "$ref": "#/components/schemas/backup" } } }, "examples": { "backup": { "value": { "backup": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "description": "Example Description", "size": 10000000, "status": "complete" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-backup", "security": [ { "APIKey": [] } ], "description": "Get the information for the Backup." } }, "/instances/{instance-id}/user-data": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "get": { "summary": "Get Instance User Data", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/user-data\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "user_data": { "type": "object", "properties": { "data": { "type": "string", "description": "The user-supplied, base64 encoded [user data](https://www.vultr.com/docs/manage-instance-user-data-with-the-vultr-metadata-api/) attached to this instance." } } } } }, "examples": { "response": { "value": { "user_data": { "data": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==" } } } } } } } }, "operationId": "get-instance-userdata", "security": [ { "APIKey": [] } ], "description": "Get the user-supplied, base64 encoded [user data](https://www.vultr.com/docs/manage-instance-user-data-with-the-vultr-metadata-api/) for an Instance." } }, "/instances/{instance-id}/halt": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Halt Instance", "operationId": "halt-instance", "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "description": "Halt an Instance.", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/halt\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "security": [ { "APIKey": [] } ], "tags": [ "instances" ] } }, "/instances/{instance-id}/ipv4/reverse/default": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "post": { "summary": "Set Default Reverse DNS Entry", "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/reverse/default\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"ip\" : \"192.0.2.123\"\n }'" } ], "operationId": "post-instances-instance-id-ipv4-reverse-default", "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "description": "Set a reverse DNS entry for an IPv4 address", "security": [ { "APIKey": [] } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "ip": { "type": "string" } }, "required": [ "ip" ] }, "examples": { "example": { "value": { "ip": "192.0.2.123" } } } } }, "description": "Include a JSON object in the request body with a content type of **application/json**." }, "tags": [ "instances" ] } }, "/instances/{instance-id}/ipv4/{ipv4}": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." }, { "schema": { "type": "string" }, "name": "ipv4", "in": "path", "required": true, "description": "The IPv4 address." } ], "delete": { "summary": "Delete IPv4 Address", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/ipv4/{ipv4}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "operationId": "delete-instance-ipv4", "description": "Delete an IPv4 address from an Instance.", "security": [ { "APIKey": [] } ], "parameters": [] } }, "/instances/{instance-id}/ipv6/reverse/{ipv6}": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." }, { "schema": { "type": "string" }, "name": "ipv6", "in": "path", "required": true, "description": "The IPv6 address." } ], "delete": { "summary": "Delete Instance Reverse IPv6", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/ipv6/reverse/{ipv6}\" \\\n -X DELETE \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" } }, "operationId": "delete-instance-reverse-ipv6", "description": "Delete the reverse IPv6 for an Instance.", "security": [ { "APIKey": [] } ] } }, "/instances/{instance-id}/upgrades": { "parameters": [ { "schema": { "type": "string" }, "name": "instance-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "get": { "summary": "Get Available Instance Upgrades", "tags": [ "instances" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/instances/{instance-id}/upgrades\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "upgrades": { "type": "object", "properties": { "applications": { "type": "array", "items": {} }, "plans": { "type": "array", "items": {} }, "os": { "type": "array", "items": {} } } } } }, "examples": { "example": { "value": { "upgrades": { "os": [ { "id": 900, "name": "Example CentOS 6 x64", "arch": "x64", "family": "centos" }, { "id": 901, "name": "Example CentOS 6 i386", "arch": "i386", "family": "centos" } ], "applications": [ { "id": 1, "name": "LEMP", "short_name": "lemp", "deploy_name": "LEMP on CentOS 6 x64", "type": "one-click", "vendor": "vultr", "image_id": "" }, { "id": 39, "name": "LEMP", "short_name": "lemp", "deploy_name": "LEMP on CentOS 7 x64", "type": "one-click", "vendor": "vultr", "image_id": "" }, { "id": 1028, "name": "OpenLiteSpeed WordPress", "short_name": "openlitespeedwordpress", "deploy_name": "OpenLiteSpeed WordPress on Ubuntu 20.04 x64", "type": "marketplace", "vendor": "LiteSpeed_Technologies", "image_id": "openlitespeed-wordpress" } ], "plans": [ "vc2-2c-4gb", "vc2-4c-8gb", "vc2-6c-16gb", "vc2-8c-64gb", "vc2-16c-64gb", "vc2-24c-97gb" ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "get-instance-upgrades", "description": "Get available upgrades for an Instance", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "type", "description": "Filter upgrade by type:\n\n- all (applications, os, plans)\n- applications\n- os\n- plans" } ] } }, "/bare-metals/{baremetal-id}/upgrades": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "get": { "summary": "Get Available Bare Metal Upgrades", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}/upgrades\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "upgrades": { "type": "object", "description": "This object will contain the available Bare Metal Upgrades", "properties": { "applications": { "type": "array", "items": {} }, "os": { "type": "array", "items": {} } } } } }, "examples": { "example": { "value": { "upgrades": { "os": [ { "id": 127, "name": "CentOS 6 x64", "arch": "x64", "family": "centos" }, { "id": 147, "name": "CentOS 6 i386", "arch": "i386", "family": "centos" } ], "applications": [ { "id": 1, "name": "LEMP", "short_name": "lemp", "deploy_name": "LEMP on CentOS 6 x64", "type": "one-click", "vendor": "vultr", "image_id": "" }, { "id": 39, "name": "LEMP", "short_name": "lemp", "deploy_name": "LEMP on CentOS 7 x64", "type": "one-click", "vendor": "vultr", "image_id": "" }, { "id": 1028, "name": "OpenLiteSpeed WordPress", "short_name": "openlitespeedwordpress", "deploy_name": "OpenLiteSpeed WordPress on Ubuntu 20.04 x64", "type": "marketplace", "vendor": "LiteSpeed_Technologies", "image_id": "openlitespeed-wordpress" } ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "get-bare-metals-upgrades", "description": "Get available upgrades for a Bare Metal", "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "type", "description": "Filter upgrade by type:\n\n- all (applications, plans)\n- applications\n- os" } ], "security": [ { "APIKey": [] } ] } }, "/bare-metals/{baremetal-id}/vnc": { "parameters": [ { "schema": { "type": "string" }, "name": "baremetal-id", "in": "path", "required": true, "description": "The [Bare Metal id](#operation/list-baremetals)." } ], "get": { "summary": "Get VNC URL for a Bare Metal", "tags": [ "baremetal" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/bare-metals/{baremetal-id}/vnc\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "vnc": { "type": "object", "description": "This object will contain the VNC URL for the Bare Metal Instance", "properties": { "url": { "type": "string", "description": "This is the VNC URL for the Bare Metal Instance" } } } } }, "examples": { "example": { "value": { "vnc": { "url": "https://my.vultr.com/subs/baremetal/novnc/api.php?data=00example11223344" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "Not Found" } }, "operationId": "get-bare-metal-vnc", "description": "Get the VNC URL for a Bare Metal", "security": [ { "APIKey": [] } ] } }, "/load-balancers/{loadbalancer-id}/firewall-rules": { "parameters": [ { "schema": { "type": "string" }, "name": "loadbalancer-id", "in": "path", "required": true } ], "get": { "summary": "List Firewall Rules", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers/{load-balancer-id}/firewall-rules\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/loadbalancer-firewall-rule" }, "examples": { "Response": { "value": { "firewall_rules": [ { "id": "asb123f2e6c0b60", "port": 80, "source": "24.187.16.196/16", "ip_type": "v4" } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-loadbalancer-firewall-rules", "description": "List the firewall rules for a Load Balancer.", "security": [ { "APIKey": [] } ], "parameters": [ { "schema": { "type": "string" }, "in": "query", "name": "per_page", "description": "Number of items requested per page. Default is 100 and Max is 500." }, { "schema": { "type": "string" }, "in": "query", "name": "cursor", "description": "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)." } ] } }, "/load-balancers/{loadbalancer-id}/firewall-rules/{firewall-rule-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "loadbalancer-id", "in": "path", "required": true }, { "schema": { "type": "string" }, "name": "firewall-rule-id", "in": "path", "required": true } ], "get": { "summary": "Get Firewall Rule", "tags": [ "load-balancer" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/load-balancers/{load-balancer-id}/firewall-rules/{firewall-rule-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/loadbalancer-firewall-rule" }, "examples": { "Example": { "value": { "firewall_rule": { "id": "asb123f2e6c0b60", "port": 80, "source": "24.187.16.196/16", "ip_type": "v4" } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-loadbalancer-firewall-rule", "description": "Get a firewall rule for a Load Balancer.", "security": [ { "APIKey": [] } ] } }, "/kubernetes/clusters": { "post": { "summary": "Create Kubernetes Cluster", "tags": [ "kubernetes" ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "vke_cluster": { "$ref": "#/components/schemas/vke-cluster" } } }, "examples": { "example create response": { "value": { "vke_cluster": { "id": "455dcd32-e621-48ee-a10e-0cb5f754e13e", "label": "vke", "date_created": "2021-07-07T22:57:01+00:00", "cluster_subnet": "10.244.0.0/16", "service_subnet": "10.96.0.0/12", "ip": "0.0.0.0", "endpoint": "455dcd32-e621-48ee-a10e-0cb5f754e13e.vultr-k8s.com", "version": "v1.20.0+1", "region": "lax", "status": "pending", "node_pools": [ { "id": "11e4443a-f92a-46d6-94c8-61c1a1a7514e", "date_created": "2021-07-07T22:57:01+00:00", "date_updated": "2021-07-07T22:58:44+00:00", "label": "my-label", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "pending", "node_quantity": 2, "min_nodes": 2, "max_nodes": 5, "auto_scaler": true, "nodes": [ { "id": "43eda5c8-67f7-4c63-88bc-2f568b48b2b0", "label": "my-label-6ac60e6313dd1", "date_created": "2021-07-07T22:57:01+00:00", "status": "pending" }, { "id": "15a7893d-d584-45d5-a74c-d9f46866aa3c", "label": "my-label-6ac60e6313ddc", "date_created": "2021-07-07T22:57:01+00:00", "status": "pending" } ] } ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-kubernetes-cluster", "description": "Create Kubernetes Cluster", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "label": { "type": "string", "description": "The label for your Kubernetes cluster." }, "region": { "type": "string", "description": "Region you want to deploy VKE in. See [Regions](#tag/region) for more information." }, "version": { "type": "string", "description": "Version of Kubernetes you want to deploy." }, "node_pools": { "type": "array", "items": { "type": "object", "properties": { "node_quantity": { "type": "integer", "description": "Number of instances to deploy in this nodepool. Minimum of 1 node required, but at least 3 is recommended." }, "label": { "type": "string", "description": "Label for this nodepool. You cannot change the label after a nodepool is created. You cannot have duplicate node pool labels in the same cluster." }, "plan": { "type": "string", "description": "Plan you want this nodepool to use. Note: minimum plan must be $10" }, "tag": { "type": "string", "description": "Tag for node pool" }, "auto_scaler": { "type": "boolean", "description": "Option to use the auto scaler with your cluster. Default false." }, "min_nodes": { "type": "integer", "description": "Auto scaler field for minimum nodes you want for your cluster. Default 1." }, "max_nodes": { "type": "integer", "description": "Auto scaler field for maximum nodes you want for your cluster. Default 1." } }, "required": [ "node_quantity", "label", "plan" ] } } }, "required": [ "region", "version" ] }, "examples": { "example request": { "value": { "label": "vke", "region": "lax", "version": "v1.20.0+1", "node_pools": [ { "node_quantity": 2, "min_nodes": 2, "max_nodes": 5, "auto_scaler": true, "label": "my-label", "plan": "vc2-1c-2gb", "tag": "my-tag" } ] } } } } }, "description": "Request Body" }, "security": [ { "APIKey": [] } ] }, "get": { "summary": "List all Kubernetes Clusters", "tags": [ "kubernetes" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "vke_clusters": { "type": "array", "items": { "$ref": "#/components/schemas/vke-cluster" } } } }, "examples": { "example response": { "value": { "vke_clusters": [ { "id": "c907e832-3080-48a6-a54d-7379e645c0b7", "label": "my-vke", "date_created": "2021-07-02T12:12:43+00:00", "cluster_subnet": "10.244.0.0/16", "service_subnet": "10.96.0.0/12", "ip": "8.9.30.155", "endpoint": "c907e832-3080-48a6-a54d-7379e645c0b7.vultr-k8s.com", "version": "v1.20.0+1", "region": "ewr", "status": "active", "node_pools": [ { "id": "74de1914-63ea-4a78-9da5-b7220063c701", "date_created": "2021-07-02T12:12:44+00:00", "date_updated": "2021-07-03T12:12:44+00:00", "label": "nodepool", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "active", "node_quantity": 2, "min_nodes": 2, "max_nodes": 5, "auto_scaler": true, "nodes": [ { "id": "cafd4673-2a62-49c4-a045-44d05ecc0a7b", "label": "nodepool-6a960df02bc1b", "date_created": "2021-07-02T12:12:44+00:00", "status": "active" }, { "id": "5fc5ae88-f73e-46b5-9fa1-ac5ed8dcd33c", "label": "nodepool-6a960df02bc25", "date_created": "2021-07-02T12:12:44+00:00", "status": "active" } ] } ] }, { "id": "455dcd32-e621-48ee-a10e-0cb5f754e13e", "label": "vke", "date_created": "2021-07-07T22:57:01+00:00", "cluster_subnet": "10.244.0.0/16", "service_subnet": "10.96.0.0/12", "ip": "207.246.109.187", "endpoint": "455dcd32-e621-48ee-a10e-0cb5f754e13e.vultr-k8s.com", "version": "v1.20.0+1", "region": "lax", "status": "active", "node_pools": [ { "id": "11e4443a-f92a-46d6-94c8-61c1a1a7514e", "date_created": "2021-07-07T22:57:01+00:00", "date_updated": "2021-07-08T12:12:44+00:00", "label": "my-label", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "active", "node_quantity": 2, "min_nodes": 2, "max_nodes": 5, "auto_scaler": true, "nodes": [ { "id": "43eda5c8-67f7-4c63-88bc-2f568b48b2b0", "label": "my-label-6ac60e6313dd1", "date_created": "2021-07-07T22:57:01+00:00", "status": "active" }, { "id": "15a7893d-d584-45d5-a74c-d9f46866aa3c", "label": "my-label-6ac60e6313ddc", "date_created": "2021-07-07T22:57:01+00:00", "status": "active" } ] } ] } ], "meta": { "total": 2, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-kubernetes-clusters", "description": "List all Kubernetes clusters currently deployed", "security": [ { "APIKey": [] } ] } }, "/kubernetes/clusters/{vke-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "vke-id", "in": "path", "required": true, "description": "The [VKE ID](#operation/list-kubernetes-clusters)." } ], "get": { "summary": "Get Kubernetes Cluster", "tags": [ "kubernetes" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "vke_cluster": { "$ref": "#/components/schemas/vke-cluster" } } }, "examples": { "example response": { "value": { "vke_cluster": { "id": "455dcd32-e621-48ee-a10e-0cb5f754e13e", "label": "vke", "date_created": "2021-07-07T22:57:01+00:00", "cluster_subnet": "10.244.0.0/16", "service_subnet": "10.96.0.0/12", "ip": "207.246.109.187", "endpoint": "455dcd32-e621-48ee-a10e-0cb5f754e13e.vultr-k8s.com", "version": "v1.20.0+1", "region": "lax", "status": "active", "node_pools": [ { "id": "11e4443a-f92a-46d6-94c8-61c1a1a7514e", "date_created": "2021-07-07T22:57:01+00:00", "date_updated": "2021-07-08T12:12:44+00:00", "label": "my-label", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "active", "node_quantity": 2, "min_nodes": 2, "max_nodes": 5, "auto_scaler": true, "nodes": [ { "id": "43eda5c8-67f7-4c63-88bc-2f568b48b2b0", "label": "my-label-6ac60e6313dd1", "date_created": "2021-07-07T22:57:01+00:00", "status": "active" }, { "id": "15a7893d-d584-45d5-a74c-d9f46866aa3c", "label": "my-label-6ac60e6313ddc", "date_created": "2021-07-07T22:57:01+00:00", "status": "active" } ] } ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-kubernetes-clusters", "description": "Get Kubernetes Cluster", "security": [ { "APIKey": [] } ] }, "put": { "summary": "Update Kubernetes Cluster", "tags": [ "kubernetes" ], "responses": { "204": { "description": "No Content", "headers": {} }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "update-kubernetes-cluster", "description": "Update Kubernetes Cluster", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "label": { "type": "string", "description": "Label for the Kubernetes cluster" } }, "required": [ "label" ] }, "examples": { "example-1": { "value": { "label": "my new label" } } } } }, "description": "Request Body" }, "security": [ { "APIKey": [] } ] }, "delete": { "summary": "Delete Kubernetes Cluster", "tags": [ "kubernetes" ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-kubernetes-cluster", "description": "Delete Kubernetes Cluster", "security": [ { "APIKey": [] } ] } }, "/kubernetes/clusters/{vke-id}/delete-with-linked-resources": { "parameters": [ { "schema": { "type": "string" }, "name": "vke-id", "in": "path", "required": true } ], "delete": { "summary": "Delete VKE Cluster and All Related Resources", "tags": [ "kubernetes" ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-kubernetes-cluster-vke-id-delete-with-linked-resources", "description": "Delete Kubernetes Cluster and all related resources. ", "security": [ { "APIKey": [] } ] } }, "/kubernetes/clusters/{vke-id}/resources": { "parameters": [ { "schema": { "type": "string" }, "name": "vke-id", "in": "path", "required": true, "description": "The [VKE ID](#operation/list-kubernetes-clusters)." } ], "get": { "summary": "Get Kubernetes Resources", "tags": [ "kubernetes" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "description": "", "type": "object", "x-examples": { "example-1": { "resources": { "block_storage": [ { "id": "7eb35f6c-c4fa-4835-9548-d4730912cbd4", "label": "track-again3", "date_created": "2021-07-29T16:41:07+00:00", "status": "pending" }, { "id": "6d1526c9-2d55-4f6b-a775-0024ec5048f0", "label": "tracking", "date_created": "2021-08-04T15:34:50+00:00", "status": "pending" } ], "load_balancer": [ { "id": "04a27709-8d3d-42c2-ae69-c7d8ae6155d8", "label": "tracking8", "date_created": "2021-07-29T16:46:12+00:00", "status": "active" } ] } } }, "properties": { "resources": { "type": "object", "properties": { "block_storage": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "Unique identifier for the block storage volume" }, "label": { "type": "string", "minLength": 1, "description": "Label given to the block storage volume" }, "date_created": { "type": "string", "minLength": 1, "description": "Date the block storage volume was created" }, "status": { "type": "string", "minLength": 1, "description": "Status of the block storage volume" } } } }, "load_balancer": { "type": "array", "uniqueItems": true, "minItems": 1, "items": { "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "Unique identifier for the load balancer" }, "label": { "type": "string", "minLength": 1, "description": "Label given to the load balancer" }, "date_created": { "type": "string", "minLength": 1, "description": "Date the load balancer was created" }, "status": { "type": "string", "minLength": 1, "description": "Status of the load balancer" } } } } } } } }, "examples": { "example": { "value": { "resources": { "block_storage": [ { "id": "29479a12-6edd-48cf-a883-24eccafab094", "label": "29479a12-6edd-48cf-a883-24eccafab094", "date_created": "2021-07-29T16:41:07+00:00", "status": "active" }, { "id": "0fa3097e-aef9-475e-958a-56f697ed3998", "label": "0fa3097e-aef9-475e-958a-56f697ed3998", "date_created": "2021-08-04T15:34:50+00:00", "status": "pending" } ], "load_balancer": [ { "id": "369ed902-2ec4-4a22-b959-cb1709394c3a", "label": "369ed902-2ec4-4a22-b959-cb1709394c3a", "date_created": "2021-07-29T16:46:12+00:00", "status": "active" } ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-kubernetes-resources", "description": "Get the block storage volumes and load balancers deployed by the specified Kubernetes cluster.", "security": [ { "APIKey": [] } ] } }, "/kubernetes/clusters/{vke-id}/available-upgrades": { "parameters": [ { "schema": { "type": "string" }, "name": "vke-id", "in": "path", "required": true, "description": "The [VKE ID](#operation/list-kubernetes-clusters)." } ], "get": { "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/kubernetes/clusters/{vke-id}/available-upgrades\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ], "summary": "Get Kubernetes Available Upgrades", "tags": [ "kubernetes" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "description": "", "type": "object", "x-examples": { "example-1": { "available_upgrades": [ "v1.22.8+3", "v1.21.11+3" ] } }, "properties": { "available_upgrades": { "type": "array", "description": "Array of available upgrade version strings", "items": { "type": "string" } } } }, "examples": { "example": { "value": { "available_upgrades": [ "v1.22.8+3", "v1.21.11+3" ] } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-kubernetes-available-upgrades", "description": "Get the available upgrades for the specified Kubernetes cluster.", "security": [ { "APIKey": [] } ] } }, "/kubernetes/clusters/{vke-id}/upgrades": { "parameters": [ { "schema": { "type": "string" }, "name": "vke-id", "in": "path", "required": true, "description": "The [VKE ID](#operation/list-kubernetes-clusters)." } ], "post": { "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/kubernetes/clusters/{vke-id}/upgrades\" \\\n -X POST \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n --data '{\n \"upgrade_version\" : \"v1.22.8+3\"\n }'" } ], "summary": "Start Kubernetes Cluster Upgrade", "tags": [ "kubernetes" ], "responses": { "202": { "description": "Accepted" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "start-kubernetes-cluster-upgrade", "description": "Start a Kubernetes cluster upgrade.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "upgrade_version": { "type": "string", "description": "The version you're upgrading to." } }, "required": [ "upgrade_version" ] }, "examples": { "example request": { "value": { "upgrade_version": "v1.22.8+3" } } } } }, "description": "Request Body" }, "security": [ { "APIKey": [] } ] } }, "/kubernetes/clusters/{vke-id}/node-pools": { "parameters": [ { "schema": { "type": "string" }, "name": "vke-id", "in": "path", "required": true, "description": "The [VKE ID](#operation/list-kubernetes-clusters)." } ], "post": { "summary": "Create NodePool", "tags": [ "kubernetes" ], "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { "node_pool": { "$ref": "#/components/schemas/nodepools" } } }, "examples": { "example response": { "value": { "node_pool": { "id": "4130764b-5276-4552-546f-32513239732b", "date_created": "2021-07-07T23:29:18+00:00", "date_updated": "2021-07-08T23:29:18+00:00", "label": "nodepool", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "pending", "node_quantity": 2, "min_nodes": 2, "max_nodes": 5, "auto_scaler": true, "nodes": [ { "id": "2f863151-d784-4184-804e-31e4e60945bd", "label": "nodepool-6c360e638ce61", "date_created": "2021-07-07T23:29:18+00:00", "status": "pending" }, { "id": "73a459dc-293f-4c2b-92f7-61be459a033b", "label": "nodepool-6c360e638ce6c", "date_created": "2021-07-07T23:29:18+00:00", "status": "pending" } ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "create-nodepools", "description": "Create NodePool for a Existing Kubernetes Cluster", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "node_quantity": { "type": "integer", "description": "Number of instances in this nodepool" }, "label": { "type": "string", "description": "Label for the nodepool. You cannot change the label after a nodepool is created. You cannot have duplicate node pool labels in the same cluster." }, "plan": { "type": "string", "description": "Plan that this nodepool will use" }, "tag": { "type": "string", "description": "Tag for node pool" }, "auto_scaler": { "type": "boolean", "description": "Option to use the auto scaler with your cluster. Default false." }, "min_nodes": { "type": "integer", "description": "Auto scaler field for minimum nodes you want for your cluster. Default 1." }, "max_nodes": { "type": "integer", "description": "Auto scaler field for maximum nodes you want for your cluster. Default 1." } }, "required": [ "node_quantity", "label", "plan" ] }, "examples": { "request body example": { "value": { "node_quantity": 2, "label": "nodepool", "plan": "vc2-1c-2gb", "tag": "my-tag", "min_nodes": 2, "max_nodes": 5, "auto_scaler": true } } } } }, "description": "Request Body" }, "security": [ { "APIKey": [] } ] }, "get": { "summary": "List NodePools", "tags": [ "kubernetes" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "node_pools": { "type": "array", "items": { "$ref": "#/components/schemas/nodepools" } } } }, "examples": { "example response": { "value": { "node_pools": [ { "id": "e97bdee9-2781-4f31-be03-60fc75f399ae", "date_created": "2021-07-07T23:27:08+00:00", "date_updated": "2021-07-08T12:12:44+00:00", "label": "my-label", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "active", "node_quantity": 2, "min_nodes": 2, "max_nodes": 5, "auto_scaler": true, "nodes": [ { "id": "f2e11430-76e5-4dc6-a1c9-ef5682c21ddf", "label": "my-label-44060e6384c45", "date_created": "2021-07-07T23:27:08+00:00", "status": "active" }, { "id": "c0a160eb-a7bc-4377-a6fb-52a9531167ca", "label": "my-label-44060e6384c50", "date_created": "2021-07-07T23:27:08+00:00", "status": "active" } ] }, { "id": "4130764b-5276-4552-546f-32513239732b", "date_created": "2021-07-07T23:29:18+00:00", "label": "nodepool", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "active", "node_quantity": 2, "min_nodes": 2, "max_nodes": 5, "auto_scaler": true, "nodes": [ { "id": "2f863151-d784-4184-804e-31e4e60945bd", "label": "nodepool-6c360e638ce61", "date_created": "2021-07-07T23:29:18+00:00", "status": "active" }, { "id": "73a459dc-293f-4c2b-92f7-61be459a033b", "label": "nodepool-6c360e638ce6c", "date_created": "2021-07-07T23:29:18+00:00", "status": "active" } ] } ], "meta": { "total": 2, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-nodepools", "description": "List all available NodePools on a Kubernetes Cluster", "security": [ { "APIKey": [] } ] } }, "/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "vke-id", "in": "path", "required": true, "description": "The [VKE ID](#operation/list-kubernetes-clusters)." }, { "schema": { "type": "string" }, "name": "nodepool-id", "in": "path", "required": true, "description": "The [NodePool ID](#operation/get-nodepools)." } ], "get": { "summary": "Get NodePool", "tags": [ "kubernetes" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "node_pool": { "$ref": "#/components/schemas/nodepools" } } }, "examples": { "example response": { "value": { "node_pool": { "id": "e97bdee9-2781-4f31-be03-60fc75f399ae", "date_created": "2021-07-07T23:27:08+00:00", "date_updated": "2021-07-08T12:12:44+00:00", "label": "my-label", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "active", "node_quantity": 2, "min_nodes": 2, "max_nodes": 5, "auto_scaler": true, "nodes": [ { "id": "f2e11430-76e5-4dc6-a1c9-ef5682c21ddf", "label": "my-label-44060e6384c45", "date_created": "2021-07-07T23:27:08+00:00", "status": "active" }, { "id": "c0a160eb-a7bc-4377-a6fb-52a9531167ca", "label": "my-label-44060e6384c50", "date_created": "2021-07-07T23:27:08+00:00", "status": "active" } ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-nodepool", "description": "Get Nodepool from a Kubernetes Cluster", "security": [ { "APIKey": [] } ] }, "patch": { "summary": "Update Nodepool", "tags": [ "kubernetes" ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "node_pool": { "$ref": "#/components/schemas/nodepools" } } }, "examples": { "example-1": { "value": { "node_pool": { "id": "e97bdee9-2781-4f31-be03-60fc75f399ae", "date_created": "2021-07-07T23:27:08+00:00", "date_updated": "2021-07-08T12:12:44+00:00", "label": "my-label", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "active", "node_quantity": 1, "min_nodes": 1, "max_nodes": 5, "auto_scaler": true, "nodes": [ { "id": "f2e11430-76e5-4dc6-a1c9-ef5682c21ddf", "label": "my-label-44060e6384c45", "date_created": "2021-07-07T23:27:08+00:00", "status": "active" } ] } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "update-nodepool", "description": "Update a Nodepool on a Kubernetes Cluster", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "node_quantity": { "type": "integer", "description": "Number of instances in the NodePool. Minimum of 1 is required, but at least 3 is recommended." }, "tag": { "type": "string", "description": "Tag for your node pool" }, "auto_scaler": { "type": "boolean", "description": "Option to use the auto scaler for your cluster. Default false." }, "min_nodes": { "type": "integer", "description": "Auto scaler field for minimum nodes you want for your cluster. Default 1." }, "max_nodes": { "description": "Auto scaler field for maximum nodes you want for your cluster. Default 1.", "type": "integer" } } }, "examples": { "example-1": { "value": { "node_quantity": 1, "tag": "my-tag", "min_nodes": 1, "max_nodes": 5, "auto_scaler": true } } } }, "application/xml": { "schema": { "type": "object", "properties": { "node_quantity": { "type": "integer", "description": "Number of instances in the nodepool. Minimum of 1 is required, but at least 3 is recommended." } }, "required": [ "node_quantity" ] } } }, "description": "Request Body" }, "security": [ { "APIKey": [] } ] }, "delete": { "summary": "Delete Nodepool", "tags": [ "kubernetes" ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "delete-nodepool", "description": "Delete a NodePool from a Kubernetes Cluster", "security": [ { "APIKey": [] } ] } }, "/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}/nodes/{node-id}": { "parameters": [ { "schema": { "type": "string" }, "name": "vke-id", "in": "path", "required": true, "description": "The [VKE ID](#operation/list-kubernetes-clusters)." }, { "schema": { "type": "string" }, "name": "nodepool-id", "in": "path", "required": true, "description": "The [NodePool ID](#operation/get-nodepools)." }, { "schema": { "type": "string" }, "name": "node-id", "in": "path", "required": true, "description": "The [Instance ID](#operation/list-instances)." } ], "delete": { "summary": "Delete NodePool Instance", "tags": [ "kubernetes" ], "operationId": "delete-nodepool-instance", "security": [ { "APIKey": [] } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "description": "Delete a single nodepool instance from a given Nodepool" } }, "/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}/nodes/{node-id}/recycle": { "parameters": [ { "schema": { "type": "string" }, "name": "vke-id", "in": "path", "required": true, "description": "The [VKE ID](#operation/list-kubernetes-clusters)." }, { "schema": { "type": "string" }, "name": "nodepool-id", "in": "path", "required": true, "description": "The [NodePool ID](#operation/get-nodepools)." }, { "schema": { "type": "string" }, "name": "node-id", "in": "path", "required": true, "description": "Node ID" } ], "post": { "summary": "Recycle a NodePool Instance", "tags": [ "kubernetes" ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "recycle-nodepool-instance", "description": "Recycle a specific NodePool Instance", "security": [ { "APIKey": [] } ] } }, "/kubernetes/clusters/{vke-id}/config": { "parameters": [ { "schema": { "type": "string" }, "name": "vke-id", "in": "path", "required": true, "description": "The [VKE ID](#operation/list-kubernetes-clusters)." } ], "get": { "summary": "Get Kubernetes Cluster Kubeconfig", "tags": [ "kubernetes" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "kube_config": { "type": "string", "description": "Base64 encoded KubeConfig" } } }, "examples": { "example response": { "value": { "kube_config": "YXBpdmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VSblZFTkRRVzF0WjBGM1NVSkJaMGxKU2psdFN6bEViRk5pY0RSM1JGRlpTa3R2V2tsb2RtTk9RVkZGVEVKUlFYZFVla1ZNVFVGclIwRXhWVVVLUW1oTlExWldUWGhHYWtGVlFtZE9Wa0pCWTFSRVZrNW9ZbWxDUjJOdFJuVlpNbXg2V1RJNGVFVjZRVkpDWjA1V1FrRnZWRU5yZERGWmJWWjVZbTFXTUFwYVdFMTRSWHBCVWtKblRsWkNRVTFVUTJ0ME1WbHRWbmxpYlZZd1dsaE5kMGhvWTA1TmFrVjNUbnBCZVUxVVNYaE5la0Y1VjJoalRrMXFTWGRPZWtGNUNrMVVTWGhOZWtGNVYycENVRTFSYzNkRFVWbEVWbEZSUjBWM1NsWlZla1ZYVFVKUlIwRXhWVVZDZUUxT1ZUSkdkVWxGV25sWlZ6VnFZVmhPYW1KNlJWUUtUVUpGUjBFeFZVVkRhRTFMVXpOV2FWcFlTblZhV0ZKc1kzcEZWRTFDUlVkQk1WVkZRWGhOUzFNelZtbGFXRXAxV2xoU2JHTjZRME5CVTBsM1JGRlpTZ3BMYjFwSmFIWmpUa0ZSUlVKQ1VVRkVaMmRGVUVGRVEwTkJVVzlEWjJkRlFrRk1laTlITXpOaVlWZG5TMU5GVmpKQ2RsQlhZbWd6WkhZclYybEhOVlJqQ2s1bllVTlZNMlJWVm5KdGNtaHVXbVJPYWtkTVl5OUJTR3RIWm1OaVIxQlRXbkJ2UVZCbWFuaGtWRTA0WlVOTFlXdGxkR0Z6YkRsdFNDOVhlVTlETXpnS1pGcEZVWGRSZWpseFIzWnpaa3BTT0RKQ01WWTBWM3AxUVdRMEwxSmtaVGxqU3psaVdIWktkRUZMU2xrNVF6aG9VM2RtTDNNM1drRlNabGxYYTIxb1R3cHZkSHBFUnpaR2JtaFljSFJtUkRZdmRXNXNXRWhyYTNveFVHSjZhR1Z2ZG5adU9GUkNUamR2UWpkTVdUaG9kRE5tVTBJeFEwSlRTMGxxV1hsaGJEaHJDbU5XZVU1R1MyUndVRVoxV0ZvelkyYzRaMHN2ZUROS1VXZHBLMGxqVTA0Mk9GZDJaa3gxYXpjM2JXOXNWWE5IY25neWNWRkZTa2RwU2k5SGEzUm5kMndLWlVnNU1FbHpMMkZDZERjd1dsaG9aM2cyTnpkSmVuTnVWMnN3UWpWSFlVeGpaRk5oYUN0WlNraGthbkpMU0N0R01qVTNWekpvTUVOQmQwVkJRV0ZPYUFwTlJqaDNSR2RaUkZaU01GQkJVVWd2UWtGUlJFRm5TMFZOUWpCSFFURlZaRXBSVVZkTlFsRkhRME56UjBGUlZVWkNkMDFEUW1kbmNrSm5SVVpDVVdORUNrRlVRVkJDWjA1V1NGSk5Ra0ZtT0VWQ1ZFRkVRVkZJTDAxQ01FZEJNVlZrUkdkUlYwSkNVME5EVWtoSmFERm1XbnBzU210MFMwVmtOalpITVZWWGRqQUtNRVJCVGtKbmEzRm9hMmxIT1hjd1FrRlJjMFpCUVU5RFFWRkZRV0V3VG1SUVlYa3dPREp0YVcxWllUa3ZOVVpMY1hWa1YwSmpabVpHVkVScFdrTmljUXA1YVUxNFZXeEVTQzl6Tm1Od1YzbEJORXRuY0ZGRWMySXdiM0pzYTNwTk1ERjNieTlsTUc1clUxTTFVVkIyWVZvNU9FaFNObFlyTUV4a0swZzViM1JCQ2xZM2VUbEdlQzlJVUhCdldGWTJhVWswYWpCaVpFdFBNMHQ0VUZKVWRsaDFRMUZETTNRd2FHc3pjVnBRSzFSalNEaHhWRTV6VkVwb1JGTnlSMWRLUjNvS1dqZ3liMGwwY0c5RVRsaEJZVUpqYmxSRmNUUkNXRzFoTTJVNVJHSkpVMU5SZW5aaGFIYzBWMkZwVTFWNGVYUllVakJ5Um1oaFpFUnpkbFJuVVhZNGF3cEdlbkV5TjNkS2RUaHZUV2hIWTJWb2VGUlRXVUpyWjNGWVUzYzNPR2xsTVZadk1XVlBMMGxTYlhsM1ZtMWlhM2M1TWswcldtZFdOV0Z3VERCNlNYRnNDbFEzWmtkekszWTViREkwYkM4eGFIbExVekZCU1ZKTmVrRkljMGw1YVdWdE1GUkZUM0Z6WVVVNVFYWjBlWEZZZEZKblBUMEtMUzB0TFMxRlRrUWdRMFZTVkVsR1NVTkJWRVV0TFMwdExRbz0KICAgIHNlcnZlcjogaHR0cHM6Ly9jOTA3ZTgzMi0zMDgwLTQ4YTYtYTU0ZC03Mzc5ZTY0NWMwYjcudnVsdHItazhzLmNvbTo2NDQzCiAgbmFtZTogdmtlCmNvbnRleHRzOgotIGNvbnRleHQ6CiAgICBjbHVzdGVyOiB2a2UKICAgIHVzZXI6IGFkbWluCiAgbmFtZTogdmtlCmN1cnJlbnQtY29udGV4dDogdmtlCmtpbmQ6IENvbmZpZwpwcmVmZXJlbmNlczoge30KdXNlcnM6Ci0gbmFtZTogYWRtaW4KICB1c2VyOgogICAgY2xpZW50LWNlcnRpZmljYXRlLWRhdGE6IExTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENrMUpTVVJWUkVORFFXcHBaMEYzU1VKQlowbEpUVmg0VTFOSGRFRnliR2QzUkZGWlNrdHZXa2xvZG1OT1FWRkZURUpSUVhkVWVrVk1UVUZyUjBFeFZVVUtRbWhOUTFaV1RYaEdha0ZWUW1kT1ZrSkJZMVJFVms1b1ltbENSMk50Um5WWk1teDZXVEk0ZUVWNlFWSkNaMDVXUWtGdlZFTnJkREZaYlZaNVltMVdNQXBhV0UxNFJYcEJVa0puVGxaQ1FVMVVRMnQwTVZsdFZubGliVll3V2xoTmQwaG9ZMDVOYWtWM1RucEJlVTFVU1hoTmVrRjVWMmhqVGsxcVNYZE9la0Y1Q2sxVVNYaE5la0Y1VjJwQ1QwMVJjM2REVVZsRVZsRlJSMFYzU2xaVmVrVlhUVUpSUjBFeFZVVkNlRTFPVlRKR2RVbEZXbmxaVnpWcVlWaE9hbUo2UlZnS1RVSlZSMEV4VlVWRGFFMVBZek5zZW1SSFZuUlBiVEZvWXpOU2JHTnVUWGhFYWtGTlFtZE9Wa0pCVFZSQ1YwWnJZbGRzZFUxSlNVSkpha0ZPUW1kcmNRcG9hMmxIT1hjd1FrRlJSVVpCUVU5RFFWRTRRVTFKU1VKRFowdERRVkZGUVhselRIVndNSHBvYXpsUFVHODVWa05TTUZSbmJ6UTFORThyV0hOTVEyUXhDbE5CWVdKNmFtMVJaM1pEVVZKeFdEaEZUa0Z0VW5kbVdFUjNaRkJMWTFkbmFtcHpRaTlQU2pSR2F6TmpWWFZIVVdkNmFrRkRXVVJYVjNBM1RWaG1TM1VLVm5GeVNGTmtZMnhQWVV0dEwwbGpNMEkxWVd0a1pYcGxRVFJ4UzFGRlRrbFVSbXR1VkdSWVJ6RTFVV3MxU2tNMGNIWXpaa3M1ZUhVMldqZHhjVmRXVlFwdmVFMXdjR2huV1hGWFVsUkNSMnByT0hSRk5sbDZOazVZZGs5NkwxVXpNWEprV0ZOVFluYzRWakpxTUdnNU1FTlRMMkZLVkN0U01sRmxNRWh3YkZNeUNsSjBWek0yYlRjMFVGaHpXRGQ2Ym1aTVZWZEpaMGQxYjBvNVdYTkJNRFphUTFSVllrdFNTekV2V0haRmFGZHVPSGRtWTFCblRHTXlRWEJRTnpsMVlYa0taV0phZVV4SmFXOWFXRXRNVERWQ05tcEZaVkZWV2pGWlRFTjNSV0pCTXpWYVdYSm1lRTVCUmsxcFUwcDFTMnhhUlRWSGNYRlJTVVJCVVVGQ2IzcEZkd3BNZWtGUFFtZE9Wa2hST0VKQlpqaEZRa0ZOUTBGdlVYZElVVmxFVmxJd2JFSkNXWGRHUVZsSlMzZFpRa0pSVlVoQmQwbEhRME56UjBGUlZVWkNkMDFDQ2sxQk1FZERVM0ZIVTBsaU0wUlJSVUpEZDFWQlFUUkpRa0ZSUWpWbUwwdHJVVGxRV1d4WE1uQllUek13V1dSYVZHMUlhbWRhTm10RlFUUmhVelJvVWs4S2NqSldSbHBwUjBoUVluZGFZMjVuZFc1UVRXTnJaRmh2UWs5a1dsVkhkelpoYkUxaVFVOUZhRlpIUVVOSU5IcEhkM2RUUlZrMk5HRTJVV0ZsVFVaSWF3cHZkalU1UW1GclJIZFJkVlprTVdoMk1rcFZkMXB3WTFsTVZUZE5PWGRLWTI5a09FODBNM0EyVGxwTmNrVjBObHB2YmtsSWJGbEpkMGhFTWxWaGVYcHZDamhUVkhWeWNXVm5jakJvYzAwd1ltWlFRbkZzY25CdE9VTXZOV2hVVjJVemJ6STJiRFpNUTBabWFFdzBaamN5VURSaWFYWnNkVTVoYVc5UFp6QXZXVVlLZFVwd09WUjZkMnRuUWtSVE9DOU5hVTFUVDFwSFpVdHlia2hWYlhKa2FGbHpSbTFCVVRCRVRYWlJiMnh1TWtwVlRYSXlkWE4yU0VGcFJGWm9PVkZMWlFwM1lrSlRMMlJ3UW04M09UbEZRWHBpWkdaclpIcG5iVWhDU2k5WU4wVjNNR3B4Tm5Nek5YTkRNMUpqY0dNNFJrd0tMUzB0TFMxRlRrUWdRMFZTVkVsR1NVTkJWRVV0TFMwdExRbz0KICAgIGNsaWVudC1rZXktZGF0YTogTFMwdExTMUNSVWRKVGlCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRcE5TVWxGYjJkSlFrRkJTME5CVVVWQmVYTk1kWEF3ZW1ock9VOVFiemxXUTFJd1ZHZHZORFUwVHl0WWMweERaREZUUVdGaWVtcHRVV2QyUTFGU2NWZzRDa1ZPUVcxU2QyWllSSGRrVUV0alYyZHFhbk5DTDA5S05FWnJNMk5WZFVkUlozcHFRVU5aUkZkWGNEZE5XR1pMZFZaeGNraFRaR05zVDJGTGJTOUpZek1LUWpWaGEyUmxlbVZCTkhGTFVVVk9TVlJHYTI1VVpGaEhNVFZSYXpWS1F6Undkak5tU3psNGRUWmFOM0Z4VjFaVmIzaE5jSEJvWjFseFYxSlVRa2RxYXdvNGRFVTJXWG8yVGxoMlQzb3ZWVE14Y21SWVUxTmlkemhXTW1vd2FEa3dRMU12WVVwVUsxSXlVV1V3U0hCc1V6SlNkRmN6Tm0wM05GQlljMWczZW01bUNreFZWMGxuUjNWdlNqbFpjMEV3TmxwRFZGVmlTMUpMTVM5WWRrVm9WMjQ0ZDJaalVHZE1ZekpCY0ZBM09YVmhlV1ZpV25sTVNXbHZXbGhMVEV3MVFqWUtha1ZsVVZWYU1WbE1RM2RGWWtFek5WcFpjbVo0VGtGR1RXbFRTblZMYkZwRk5VZHhjVkZKUkVGUlFVSkJiMGxDUVVKaWN6VXpUQzlJUm5CTmFESmpjd3A1Tm5WdVVFRmpRMHQwU1VzNGVVMXBObll6VkRCWVdVWjVSRTFzTlVGdk5EVnJSVFJhTjNWTlVsZExjbTUxV0VsT1NtdG5WSFE0Tmpndk1FSnVURWMyQ2xVd05tazRaMDlvUkRWME4ySlFkMHRZYlM5eFN6RktUVUY1WkRkSWIzQmhPVE4yYVV0dlNYa3pMemxwWjB4Tk0yRkZkRXB2Vlc5S2NUaDJaMDFxVDNRS2MxWk5aMVJWVmpKVVVYZGFUR056ZEdFNU5YTlphamh1V214S2QyczNhSHBFTmtFemNUSTBhRVJ0YUU1a2FUZ3dSSEJEVDJjMk1IbFpTaXQ2Y0dab1dBcHZORkJPTlhsTVZGaFhkSG80SzJ0UllqaDZaR3B0Wms5a1pHVnJaeTlOTTA1T1pUY3JPRVZHV2tJMWExWkRkbEV3UmxoSVIxRlZPREUzV1dNdlNEZHZDamhpVFZsM2QySlZRbEppTkdobmVWWnZkemxVV2s5YVkwMXVMM2xoYVd3M1JtVmljblpGU2s5dVJtdG9Wa3BoUlRKdVlWSlJjbEJ1TmtORWRVdEdXRGdLUTJNM2JHZGhSVU5uV1VWQmVuZEVURlpFY1UxWlYxcHNiWFJUYzJGdWVGaEJhMnBwUW5GVWFreFhTbGRIZVZSTk0xZEtUM2RzZG1GWk9FTlRiSHB5TkFwelMyOTNOMXByT0doQ1ZXSm1WRFJCV1ZWTlpVRlBSV0p2UkhCTVpYQTBURmxYU0hSUmJuQkpWakY1ZURSMVdWZHlSM28yZVhSemVGbE1MMnRvYTBSMENtUnVRVTFDVTBOdlZXOW1VVWczSzBWa2NHdFpZbGxrYW05bFZuWXdlalpPVG1SQ1ZYSk9VbFpQWlc1NFR6WkllR1JIZDNwSFUxVkRaMWxGUVN0elJXVUtVMk5wU0RSbWIybDVkRlZNWW5VMVJVVmtaM0YwTDFseUszTmtVMjl6TURGTWVtOXpSVU4wZGpFMGJrNHZWVlpIYTI5WE5UUTRVVEpOYmtkeUswSTFLd3BvUkRCME1XTXpXQ3RPT1dOc2FYRXdWVzVGZVhad09DOXhWblJUZGxSYWFscEdOVTFKTXpadWJqWXhVVkkxV0hOcFNEVmhWbWQyUlRoYWNFNTBSbHBsQ21sWlRVNHpRM2R6VjNCb1drMUJTV2hVZDI1S1RVOVZlVXhHVlhWT05rTjNhelJFUlhacVZVTm5XVUZ2UWs5R1MxVldPV1ZZVTNRM1pWYzBlakJCU1VzS1VWRnFhR1V2VFc1cVVVWlZhMmhNUWtsbldsUTRUMjlTY1hWTmMwNVplSEZ4ZUhneVkzTXJUMUZZTld4QmFESlZjME5OVjNwSE5Va3hZbmhPTkd0M1ZRbzRXbVZ4TmtoVlpqTndNMDVZWlc4MFVEUkdhM2R0WlZSaGMxaEdXbkozUW5vM2RXcExhVTFuWjFnd2RFSm9kVmg1YUZVNE5UVllUbU5OZG1weVVUUnFDblo2YWk5cFRGWktWWFkzSzBwc2NrWjRWREZFZFZGTFFtZEhZbkJrVmxoUk1FUjJiRmhtZDJrellrNXJXa1pzZVdZeU0wdDNXbWRHTUVKMGVUTjJORWtLUVU5bFRpOUVVRmx2WTNKMFkwbzFXRGxqWms0d2JsSXphRW95Y2xocU9VWnZTbU5qUTFOU2FDOHllU3RGUVRJMU1scHhNRmgyZEZKMVN6Vm9UVkFyVkFwV0szQkdXU3RSTjNwRVVHeERlRTlzZWpoME5uWjRVblJSVEVSbWRHRk1ORkF5Y2paVmFWaEpWM1Z3UTBwWmREZDBOaXQ1YTFKdWVYZzJiMkUzTHpGS0NtNTJWakZCYjBkQlRtRkZSV1VyZERoNGFXUlFaeXRIUm5FemN6VkhUa1pPU0VKQmMzcG1NV3BxVFdwdmF6ZEtiMmxyWWxaVU1FNUJWVmhLZEdWclNra0taekZPVUd0UVQxSjRWakZWY0dKUGVsUXJhMWhyTjBwVmExTTNiVE0zV0VneWRuUm1abVIxTlhFNVEzWkhObkZaYW1OcVpVOHZSRWhzYUZWRmNrMUpXUXBsVHpSQk9FOUNWRWgwUVRkM01XTjVVa2hIVUZWUE1VRlFiRXRTTWtWVU9XMXVOeXROV0hSRU1GQmxjRWh2TVV0UU9VRTlDaTB0TFMwdFJVNUVJRkpUUVNCUVVrbFdRVlJGSUV0RldTMHRMUzB0Q2c9PQo=" } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-kubernetes-clusters-config", "security": [ { "APIKey": [] } ], "description": "Get Kubernetes Cluster Kubeconfig" } }, "/kubernetes/versions": { "get": { "summary": "Get Kubernetes Versions", "tags": [ "kubernetes" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "versions": { "type": "array", "items": { "type": "string" } } } }, "examples": { "example": { "value": { "versions": [ "v1.20.0+1" ] } } } } } }, "404": { "description": "Not Found" } }, "operationId": "get-kubernetes-versions", "description": "Get a list of supported Kubernetes versions", "security": [] } }, "/billing/history": { "get": { "summary": "List Billing History", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "billing_history": { "type": "array", "description": "List of all billing history.", "items": { "$ref": "#/components/schemas/billing" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "example-1": { "value": { "billing_history": [ { "id": 123456, "date": "2020-10-10T01:56:20+00:00", "type": "invoice", "description": "Invoice #123456", "amount": 100.03, "balance": 79.48 }, { "id": 123457, "date": "2020-10-10T01:46:05+00:00", "type": "credit", "description": "Account Credit", "amount": 50.55, "balance": -20.55 } ], "meta": { "total": 3, "links": { "next": "WxYzExampleNext", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-billing-history", "description": "Retrieve list of billing history", "security": [ { "APIKey": [] } ], "tags": [ "billing" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/billing/history\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ] }, "parameters": [] }, "/billing/invoices": { "get": { "summary": "List Invoices", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "description": "", "type": "object", "x-examples": { "example-1": { "billing_invoice": [ { "id": 123456, "billing_period": "09-01-2021", "amount": 5 } ] } }, "properties": { "billing_invoices": { "type": "array", "description": "List of billing invoices.", "items": { "$ref": "#/components/schemas/invoice" } }, "meta": { "$ref": "#/components/schemas/meta" } } }, "examples": { "example-1": { "value": { "billing_invoices": [ { "id": 123456, "date": "2021-10-10T00:00:00+00:00", "description": "Invoice #123456", "amount": 5.25, "balance": 10.25 } ], "meta": { "total": 1, "links": { "next": "", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "list-invoices", "description": "Retrieve a list of invoices", "security": [ { "APIKey": [] } ], "tags": [ "billing" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/billing/invoices\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ] }, "parameters": [] }, "/billing/invoices/{invoice-id}": { "get": { "summary": "Get Invoice", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "description": "", "type": "object", "x-examples": { "example-1": { "billing_invoice": { "id": 123456, "description": "Account Credit", "billing_period": "09-01-2021", "amount": 5 } } }, "properties": { "billing_invoice": { "$ref": "#/components/schemas/invoice" } } }, "examples": { "example-1": { "value": { "billing_invoice": { "id": 123456, "description": "Account Credit", "date": "09-01-2021T00:00:00+00:00", "amount": 5.25 } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-invoice", "description": "Retrieve specified invoice", "security": [ { "APIKey": [] } ], "tags": [ "billing" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/billing/invoices/{invoice-id}\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ] }, "parameters": [ { "schema": { "type": "string" }, "name": "invoice-id", "in": "path", "required": true, "description": "ID of invoice" } ] }, "/billing/invoices/{invoice-id}/items": { "get": { "summary": "Get Invoice Items", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "description": "", "type": "object", "x-examples": { "example-1": { "invoice_items": [ { "description": "Load Balancer (my-loadbalancer)", "product": "Load Balancer", "start_date": "2021-08-31 20:00:00", "end_date": "2021-09-30 20:00:00", "units": 720, "unit_type": "hours", "unit_price": 0.0149, "total": 10 }, { "description": "1.1.1.1 (8192 MB) [my-instance]", "product": "Vultr Cloud Compute", "start_date": "2021-09-15 09:13:15", "end_date": "2021-09-30 20:00:00", "units": 371, "unit_type": "hours", "unit_price": 0.0595, "total": 22.09 } ], "meta": { "total": 3, "links": { "next": "WxYzExampleNext", "prev": "" } } } }, "properties": { "invoice_items": { "type": "array", "description": "List of invoice items.", "items": { "type": "object", "properties": { "description": { "type": "string", "description": "Invoice item description" }, "product": { "type": "string", "description": "Product name" }, "start_date": { "type": "string", "description": "Start date of item" }, "end_date": { "type": "string", "description": "End date of item" }, "units": { "type": "number", "description": "Number of units item consumed in billing period" }, "unit_type": { "type": "string", "description": "Unit type. Options include \"hours\", \"overage\", and \"discount\"" }, "unit_price": { "type": "number", "description": "Price per unit in dollars" }, "total": { "type": "number", "description": "Total amount due in dollars" } } } }, "meta": { "type": "object", "properties": { "total": { "type": "number" }, "links": { "type": "object", "properties": { "next": { "type": "string" }, "prev": { "type": "string" } } } } } } }, "examples": { "example-1": { "value": { "invoice_items": [ { "description": "Load Balancer (my-loadbalancer)", "product": "Load Balancer", "start_date": "2021-08-31T00:00:00+00:00", "end_date": "2021-09-30T00:00:00+00:00", "units": 720, "unit_type": "hours", "unit_price": 0.0149, "total": 10 }, { "description": "1.1.1.1 (8192 MB) [my-instance]", "product": "Vultr Cloud Compute", "start_date": "2021-09-15T00:00:00+00:00", "end_date": "2021-09-30T00:00:00+00:00", "units": 371, "unit_type": "hours", "unit_price": 0.0595, "total": 22.09 } ], "meta": { "total": 3, "links": { "next": "WxYzExampleNext", "prev": "" } } } } } } } }, "400": { "description": "Bad Request" }, "401": { "description": "Unauthorized" }, "404": { "description": "Not Found" } }, "operationId": "get-invoice-items", "description": "Retrieve full specified invoice", "security": [ { "APIKey": [] } ], "tags": [ "billing" ], "x-codeSamples": [ { "lang": "Curl", "source": "curl \"https://api.vultr.com/v2/billing/invoices/{invoice-id}/items\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"" } ] }, "parameters": [ { "schema": { "type": "string" }, "name": "invoice-id", "in": "path", "required": true, "description": "ID of invoice" } ] } }, "components": { "schemas": { "billing": { "description": "Invoice", "type": "object", "x-examples": { "example": { "id": 123456, "date": "2020-10-10T01:56:20+00:00", "type": "invoice", "description": "Invoice #123456", "amount": 100.25, "balance": 100.25 } }, "x-tags": [ "billing" ], "properties": { "id": { "type": "number", "description": "ID of the billing history item" }, "date": { "type": "string", "description": "Date billing history item was generated" }, "type": { "type": "string", "description": "Type of billing history item" }, "description": { "type": "string", "description": "Description of billing history item" }, "amount": { "type": "number", "description": "Amount for the billing history item in dollars" }, "balance": { "type": "number", "description": "The accounts balance in dollars" } }, "title": "billing" }, "invoice": { "title": "invoice", "type": "object", "x-examples": { "example-1": { "id": 123456, "date": "2021-11-02T00:48:13+00:00", "description": "Invoice #132456", "amount": 0.25, "balance": -197.88 } }, "properties": { "id": { "type": "integer", "description": "ID of the invoice" }, "date": { "type": "string", "description": "Date invoice was generated" }, "description": { "type": "string", "description": "description of item" }, "amount": { "type": "number", "description": "Amount due in dollars" }, "balance": { "type": "number", "description": "Account balance amount in dollars" } } }, "vke-cluster": { "title": "vke-cluster", "type": "object", "x-examples": { "example vke cluster": { "id": "455dcd32-e621-48ee-a10e-0cb5f754e13e", "label": "vke", "date_created": "2021-07-07T22:57:01+00:00", "cluster_subnet": "10.244.0.0/16", "service_subnet": "10.96.0.0/12", "ip": "0.0.0.0", "endpoint": "455dcd32-e621-48ee-a10e-0cb5f754e13e.vultr-k8s.com", "version": "v1.20.0+1", "region": "lax", "status": "pending", "node_pools": [ { "id": "11e4443a-f92a-46d6-94c8-61c1a1a7514e", "date_created": "2021-07-07T22:57:01+00:00", "label": "my-label", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "pending", "node_quantity": 2, "nodes": [ { "id": "43eda5c8-67f7-4c63-88bc-2f568b48b2b0", "label": "my-label-6ac60e6313dd1", "date_created": "2021-07-07T22:57:01+00:00", "status": "pending" }, { "id": "15a7893d-d584-45d5-a74c-d9f46866aa3c", "label": "my-label-6ac60e6313ddc", "date_created": "2021-07-07T22:57:01+00:00", "status": "pending" } ] } ] } }, "x-tags": [ "kubernetes" ], "description": "VKE Cluster", "properties": { "id": { "type": "string", "description": "ID for the VKE cluster" }, "label": { "type": "string", "description": "Label for your cluster" }, "date_created": { "type": "string", "description": "Date of creation" }, "cluster_subnet": { "type": "string", "description": "IP range that your pods will run on in this cluster" }, "service_subnet": { "type": "string", "description": "IP range that services will run on this cluster" }, "ip": { "type": "string", "description": "IP for your Kubernetes Clusters Control Plane" }, "endpoint": { "type": "string", "description": "Domain for your Kubernetes Clusters Control Plane" }, "version": { "type": "string", "description": "Version of Kubernetes this cluster is running on" }, "region": { "type": "string", "description": "Region this Kubernetes Cluster is running in" }, "status": { "type": "string", "description": "Status for VKE cluster" }, "node_pools": { "type": "array", "description": "NodePools in this cluster", "items": { "$ref": "#/components/schemas/nodepools" } } } }, "nodepool-instances": { "title": "nodepool-instances", "type": "object", "description": "Instance that belongs to a nodepool", "x-examples": { "example nodepool": { "id": "43eda5c8-67f7-4c63-88bc-2f568b48b2b0", "label": "my-label-48770259-6ac60e6313dd1", "date_created": "2021-07-07T22:57:01+00:00", "status": "pending" } }, "properties": { "id": { "type": "string", "description": "ID of the nodepool instance" }, "label": { "type": "string", "description": "Label of the nodepool instance" }, "date_created": { "type": "string", "description": "Date of creation" } } }, "nodepools": { "title": "nodepools", "type": "object", "x-examples": { "example nodepool": { "id": "11e4443a-f92a-46d6-94c8-61c1a1a7514e", "date_created": "2021-07-07T22:57:01+00:00", "label": "my-label", "tag": "my-tag", "plan": "vc2-1c-2gb", "status": "pending", "node_quantity": 2, "min_nodes": 2, "max_nodes": 5, "auto_scaler": true, "nodes": [ { "id": "43eda5c8-67f7-4c63-88bc-2f568b48b2b0", "label": "my-label-48770259-6ac60e6313dd1", "date_created": "2021-07-07T22:57:01+00:00", "status": "pending" }, { "id": "15a7893d-d584-45d5-a74c-d9f46866aa3c", "label": "my-label-48770259-6ac60e6313ddc", "date_created": "2021-07-07T22:57:01+00:00", "status": "pending" } ] } }, "description": "NodePool", "x-tags": [ "kubernetes" ], "properties": { "id": { "type": "string", "description": "The [NodePool ID](#operation/get-nodepools)." }, "date_created": { "type": "string", "description": "Date of creation" }, "label": { "type": "string", "description": "Label for nodepool" }, "tag": { "type": "string", "description": "Tag for node pool" }, "plan": { "type": "string", "description": "Plan used for nodepool" }, "status": { "type": "string", "description": "Status for nodepool" }, "node_quantity": { "type": "integer", "description": "Number of nodes in nodepool" }, "nodes": { "type": "array", "items": { "$ref": "#/components/schemas/nodepool-instances" } }, "date_updated": { "type": "string", "description": "Date the nodepool was updated." }, "auto_scaler": { "type": "boolean", "description": "Displays if the auto scaler is enabled or disabled for your cluster." }, "min_nodes": { "type": "integer", "description": "Auto scaler field that displays the minimum nodes you want for your cluster." }, "max_nodes": { "description": "Auto scaler field that displays the maximum nodes you want for your cluster.", "type": "integer" } } }, "network": { "title": "network", "type": "object", "x-examples": { "example": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "region": "ewr", "description": "Example Private Network", "v4_subnet": "10.99.0.0", "v4_subnet_mask": 24 } }, "description": "Network information.", "x-tags": [ "Private Networks" ], "properties": { "id": { "type": "string", "description": "A unique ID for the Private Network." }, "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the network is located." }, "date_created": { "type": "string", "description": "Date the network was created." }, "description": { "type": "string", "description": "A description of the private network." }, "v4_subnet": { "type": "string", "description": "The IPv4 network address. For example: 10.99.0.0" }, "v4_subnet_mask": { "type": "integer", "description": "The number of bits for the netmask in CIDR notation. Example: 24" } }, "required": [ "id" ], "deprecated": true }, "vpc": { "title": "vpc", "type": "object", "x-examples": { "example": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "region": "ewr", "description": "Example VPC", "v4_subnet": "10.99.0.0", "v4_subnet_mask": 24 } }, "description": "VPC information.", "x-tags": [ "VPCs" ], "properties": { "id": { "type": "string", "description": "A unique ID for the VPC." }, "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the VPC is located." }, "date_created": { "type": "string", "description": "Date the VPC was created." }, "description": { "type": "string", "description": "A description of the VPC." }, "v4_subnet": { "type": "string", "description": "The IPv4 VPC address. For example: 10.99.0.0" }, "v4_subnet_mask": { "type": "integer", "description": "The number of bits for the netmask in CIDR notation. Example: 24" } }, "required": [ "id" ] }, "user": { "title": "user", "type": "object", "x-tags": [ "users" ], "description": "User information.", "x-examples": { "user": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "email": "user@example.com", "api_enabled": true, "acls": [ "manage_users", "subscriptions_view", "subscriptions", "provisioning", "billing", "support", "abuse", "dns", "upgrade", "objstore", "loadbalancer" ] } }, "properties": { "user": { "type": "object", "description": "An array of Users.", "properties": { "id": { "type": "string", "description": "The User's id." }, "name": { "type": "string", "description": "The User's name." }, "api_enabled": { "type": "boolean", "description": "Permit API access for this User.\n\n* true\n* false" }, "email": { "type": "string", "description": "The User's email address." }, "password": { "type": "string", "description": "The User's password." }, "acls": { "type": "array", "description": "An array of permission granted.\n\n* abuse\n* alerts\n* billing\n* dns\n* firewall\n* loadbalancer\n* manage\\_users\n* objstore\n* provisioning\n* subscriptions\n* subscriptions\\_view\n* support\n* upgrade", "items": { "type": "string" } } } } } }, "startup": { "title": "startup", "type": "object", "x-tags": [ "startup" ], "description": "Startup Script information.", "x-examples": { "startup": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "date_modified": "2020-10-10T01:59:20+00:00", "name": "Example Startup Script", "type": "pxe", "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==" } }, "properties": { "id": { "type": "string", "description": "A unique ID for the Startup Script." }, "date_created": { "type": "string", "description": "The date the Startup Script was created." }, "date_modified": { "type": "string", "description": "The date the Startup Script was last modified." }, "name": { "type": "string", "description": "The user-supplied name of the Startup Script." }, "script": { "type": "string", "description": "The base-64 encoded Startup Script." }, "type": { "type": "string", "description": "The Startup Script type.\n\n* boot\n* pxe" } } }, "ssh": { "title": "ssh", "type": "object", "x-examples": { "ssh-key": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "name": "Example SSH Key", "ssh_key": "ssh-rsa AA... user@example.com" } }, "description": "SSH Key information.", "x-tags": [ "ssh" ], "properties": { "id": { "type": "string", "description": "A unique ID for the SSH Key." }, "date_created": { "type": "string", "description": "The date this SSH Key was created." }, "name": { "type": "string", "description": "The user-supplied name for this SSH Key." }, "ssh_key": { "type": "string", "description": "The SSH Key." } } }, "snapshot": { "title": "snapshot", "type": "object", "x-examples": { "snapshot": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "description": "Example Snapshot", "size": 42949672960, "status": "complete", "os_id": 215, "app_id": 0 } }, "description": "Snapshot information.", "x-tags": [ "snapshot" ], "properties": { "id": { "type": "string", "description": "A unique ID for the Snapshot." }, "date_created": { "type": "string", "description": "The date this snapshot was created." }, "description": { "type": "string", "description": "The user-supplied description of the Snapshot." }, "size": { "type": "integer", "description": "The snapshot size in bytes." }, "status": { "type": "string", "description": "The Snapshot status.\n\n* pending\n* complete\n* deleted" }, "os_id": { "type": "integer", "description": "The [Operating System id](#operation/list-os) for this Snapshot." }, "app_id": { "type": "integer", "description": "The [Application id](#operation/list-applications) for this snapshot." } } }, "reserved-ip": { "title": "reserved-ip", "type": "object", "x-examples": { "reserved ip": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "region": "ewr", "ip_type": "v6", "subnet": "2001:db8:9999::", "subnet_size": 64, "label": "Example Reserved IPv6", "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60" } }, "description": "Reserved IP information.", "properties": { "id": { "type": "string", "description": "A unique ID for the Reserved IP." }, "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the Reserved IP is located." }, "ip_type": { "type": "string", "description": "The type of IP address.\n\n* v4\n* v6" }, "subnet": { "type": "string", "description": "The IP subnet." }, "subnet_size": { "type": "integer", "description": "The IP network size in bits." }, "label": { "type": "string", "description": "The user-supplied label." }, "instance_id": { "type": "string", "description": "The [Instance id](#operation/list-instances) attached to this Reserved IP." } } }, "os": { "title": "os", "type": "object", "x-tags": [ "os" ], "x-examples": { "os": { "id": 127, "name": "CentOS 6 x64", "arch": "x64", "family": "centos" } }, "description": "Operating System information.", "properties": { "id": { "type": "integer", "description": "The Operating System id." }, "name": { "type": "string", "description": "The Operating System description." }, "arch": { "type": "string", "description": "The Operating System architecture." }, "family": { "type": "string", "description": "The Operating System family. " } } }, "application": { "title": "application", "type": "object", "x-examples": { "application": [ { "id": 1, "name": "LEMP", "short_name": "lemp", "deploy_name": "LEMP on CentOS 6 x64", "type": "one-click", "vendor": "vultr", "image_id": "" }, { "id": 10008, "name": "OpenLiteSpeed WordPress", "short_name": "", "deploy_name": "", "type": "marketplace", "vendor": "LiteSpeed_Technologies", "image_id": "openlitespeed-wordpress" } ] }, "description": "Application information.", "x-tags": [ "application" ], "properties": { "id": { "type": "integer", "description": "A unique ID for the application." }, "name": { "type": "string", "description": "The application name." }, "short_name": { "type": "string", "description": "The short application name." }, "deploy_name": { "type": "string", "description": "A long description of the application." }, "type": { "type": "string", "description": "The type of application.\n\n* one-click - use app_id to deploy one-click applications.\n* marketplace - use image_id to deploy marketplace applications." }, "vendor": { "type": "string", "description": "The application vendor name." }, "image_id": { "type": "string", "description": "A unique ID for marketplace applications." } } }, "account": { "title": "account", "type": "object", "x-tags": [ "account" ], "description": "Account information.", "x-examples": { "account": { "account": { "name": "Example User", "email": "user@example.com", "acls": [ "manage_users", "subscriptions_view", "subscriptions", "billing", "support", "provisioning", "dns", "abuse", "upgrade", "firewall", "alerts", "objstore", "loadbalancer" ], "balance": -100.55, "pending_charges": 60.25, "last_payment_date": "2020-10-10T01:56:20+00:00", "last_payment_amount": -1.25 } } }, "properties": { "name": { "type": "string", "description": "Your user name." }, "email": { "type": "string", "description": "Your email address." }, "acls": { "type": "array", "description": "An array of permission granted.\n* manage\\_users\n* subscriptions_view\n* subscriptions\n* billing\n* support\n* provisioning\n* dns\n* abuse\n* upgrade\n* firewall\n* alerts\n* objstore\n* loadbalancer", "items": { "type": "string" } }, "balance": { "type": "number", "description": "Your current account balance." }, "pending_charges": { "type": "number", "description": "Unbilled charges for this month." }, "last_payment_date": { "description": "Date of your last payment.", "type": "string" }, "last_payment_amount": { "type": "number", "description": "The amount of your last payment." } } }, "backup": { "title": "backup", "type": "object", "x-examples": { "backup": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "description": "Example Automatic Backup", "size": 10000000, "status": "complete" } }, "description": "Backup information.", "properties": { "id": { "type": "string", "description": "A unique ID for the backup." }, "date_created": { "type": "string", "description": "The date the backup was created." }, "description": { "type": "string", "description": "The user-supplied description of this backup." }, "size": { "type": "integer", "description": "The size of the backup in Bytes." }, "status": { "type": "string", "description": "The Backup status.\n\n* complete\n* pending" } }, "x-tags": [ "backup" ] }, "blockstorage": { "title": "blockstorage", "type": "object", "x-tags": [ "block" ], "description": "Block Storage information.", "x-examples": { "block structure": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "cost": 10, "status": "active", "size_gb": 100, "region": "ewr", "attached_to_instance": "b92f4771-d8cd-480a-b6e6-a14ca31ea2ca", "date_created": "2020-10-10T01:56:20+00:00", "label": "Example Block Storage" } }, "properties": { "id": { "type": "string", "description": "A unique ID for the Block Storage." }, "cost": { "type": "integer", "description": "The monthly cost of this Block Storage." }, "status": { "type": "string", "description": "The current status of this Block Storage.\n\n* active" }, "size_gb": { "type": "integer", "description": "Size of the Block Storage in GB." }, "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the Block Storage is located." }, "attached_to_instance": { "type": "string", "description": "The [Instance id](#operation/list-instances) with this Block Storage attached." }, "date_created": { "type": "string", "description": "The date this Block Storage was created." }, "label": { "type": "string", "description": "The user-supplied label." }, "mount_id": { "type": "string", "description": "An ID associated with the instance, when mounted the ID can be found in /dev/disk/by-id prefixed with virtio." } } }, "firewall-group": { "title": "firewall-group", "type": "object", "x-tags": [ "firewall" ], "x-examples": { "group": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "description": "Example Firewall Group", "date_created": "2020-10-10T01:56:20+00:00", "date_modified": "2020-10-10T01:59:20+00:00", "instance_count": 2, "rule_count": 2, "max_rule_count": 50 } }, "description": "Firewall Group information.", "properties": { "id": { "type": "string", "description": "A unique ID for the Firewall Group." }, "description": { "type": "string", "description": "User-supplied description of this Firewall Group." }, "date_created": { "type": "string", "description": "Date the Firewall Group was originally created." }, "date_modified": { "type": "string", "description": "Date of the last modification to this Firewall Group." }, "instance_count": { "type": "integer", "description": "The number of instances linked to this Firewall Group." }, "rule_count": { "type": "integer", "description": "The number of rules in this Firewall Group." }, "max_rule_count": { "type": "integer", "description": "The maximum number of rules allowed for this Firewall Group." } } }, "firewall-rule": { "title": "firewall-rule", "type": "object", "x-tags": [ "firewall" ], "description": "Firewall rule information.", "x-examples": { "firewall rule": { "id": 1, "type": "v4", "ip_type": "v4", "action": "accept", "protocol": "tcp", "port": "80", "subnet": "192.0.2.123", "subnet_size": 24, "source": "", "notes": "Example Firewall Rule" } }, "properties": { "id": { "type": "integer", "description": "A unique ID for the Firewall Rule." }, "type": { "type": "string", "description": "This field is deprecated. Use `ip_type` instead.\n\nThe type of IP rule.\n\n* v4\n* v6", "deprecated": true }, "ip_type": { "type": "string", "description": "The type of IP rule.\n\n* v4\n* v6" }, "action": { "type": "string", "description": "Action to take when this rule is met.\n\n* accept" }, "protocol": { "type": "string", "description": "The protocol for this rule.\n\n* ICMP\n* TCP\n* UDP\n* GRE\n" }, "port": { "type": "string", "description": "Port or port range for this rule." }, "subnet": { "type": "string", "description": "IP address representing a subnet. The IP address format must match with the \"ip_type\" parameter value." }, "subnet_size": { "type": "integer", "description": "The number of bits for the netmask in CIDR notation. Example: 24" }, "source": { "type": "string", "description": "If the source string is given a value of \"cloudflare\" subnet and subnet_size will both be ignored.\nPossible values:\n\n| | Value | Description |\n| - | ------ | ------------- |\n| | \"\" | Use the value from `subnet` and `subnet_size`. |\n| | cloudflare | Allow all of Cloudflare's IP space through the firewall |" }, "notes": { "type": "string", "description": "User-supplied notes for this rule." } } }, "iso": { "title": "iso", "type": "object", "x-tags": [ "iso" ], "description": "ISO information.", "x-examples": { "iso": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "filename": "my-iso.iso", "size": 9342976, "md5sum": "ec0669895a250f803e1709d0402fc411", "sha512sum": "1741f890bce04613f60b4f2b16fb8070c31640c53d4dbb4271b22610150928743eda1207f031b0b5bdd240ef1a6ed21fd5e6a2d192b9c87eff60b6d9698b8260", "status": "complete" } }, "properties": { "id": { "type": "string", "description": "A unique ID for the ISO." }, "date_created": { "type": "string", "description": "Date the ISO was created." }, "filename": { "type": "string", "description": "The ISO filename." }, "size": { "type": "integer", "description": "The ISO size in KB." }, "md5sum": { "type": "string", "description": "The calculated md5sum of the ISO." }, "sha512sum": { "type": "string", "description": "The calculated sha512sum of the ISO." }, "status": { "type": "string", "description": "The current status of the ISO.\n\n* complete\n* pending" } } }, "iso-public": { "title": "iso-public", "type": "object", "x-tags": [ "iso" ], "description": "Public ISO information.", "x-examples": { "public iso": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b604", "name": "CentOS 7", "description": "7 x86_64 Minimal", "md5sum": "7f4df50f42ee1b52b193e79855a3aa19" } }, "properties": { "id": { "description": "A unique ID for the Vultr Public ISO.", "type": "string" }, "name": { "type": "string", "description": "The short name of the Public ISO." }, "description": { "type": "string", "description": "The long description of the Public ISO." }, "md5sum": { "type": "string" } } }, "object-storage": { "title": "object-storage", "type": "object", "x-tags": [ "s3" ], "x-examples": { "object storage": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "cluster_id": 2, "region": "ewr", "label": "Example Object Storage", "status": "active", "s3_hostname": "ewr1.vultrobjects.com", "s3_access_key": "00example11223344", "s3_secret_key": "00example1122334455667788990011" } }, "description": "Object Storage information.", "properties": { "id": { "type": "string", "description": "A unique ID for the Object Storage." }, "date_created": { "type": "string", "description": "Date the Object Store was created." }, "cluster_id": { "type": "integer", "description": "The [Cluster id](#operation/list-object-storage-clusters)." }, "region": { "type": "string", "description": "The [Region id](#operation/list-regions) for this Object Storage." }, "label": { "type": "string", "description": "The user-supplied label for this Object Storage." }, "status": { "type": "string", "description": "The status of this Object Storage.\n\n* active\n* pending" }, "s3_hostname": { "type": "string", "description": "The [Cluster hostname](#operation/list-object-storage-clusters) for this Object Storage." }, "s3_access_key": { "type": "string", "description": "The Object Storage access key." }, "s3_secret_key": { "type": "string", "description": "The Object Storage secret key." } } }, "clusters": { "title": "clusters", "type": "object", "x-tags": [ "s3" ], "description": "Object Storage Cluster information.", "x-examples": { "object storage cluster": { "id": 1, "region": "ewr", "hostname": "ewr1.vultrobjects.com", "deploy": "yes" } }, "properties": { "id": { "type": "integer", "description": "A unique ID for the Object Storage cluster." }, "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the cluster is located." }, "hostname": { "type": "string", "description": "The cluster host name." }, "deploy": { "type": "string", "description": "The Cluster is eligible for Object Storage deployment.\n\n* yes\n* no" } } }, "domain": { "title": "domain", "type": "object", "description": "DNS Domain information.", "x-tags": [ "dns" ], "x-examples": { "list of domains": { "domain": "example.com", "date_created": "2020-10-10T01:56:20+00:00" } }, "properties": { "domain": { "type": "string", "description": "Your registered domain name." }, "date_created": { "type": "string", "description": "Date the DNS Domain was created." }, "dns_sec": { "type": "string", "description": "The domain's DNSSEC status\n\n* enabled\n* disabled" } } }, "dns-soa": { "title": "dns-soa", "type": "object", "x-tags": [ "dns" ], "description": "SOA Record information.", "x-examples": { "dns_soa": { "dns_soa": { "nsprimary": "ns1.vultr.com", "email": "admin@example.com" } } }, "properties": { "nsprimary": { "type": "string", "description": "Primary nameserver for this domain." }, "email": { "type": "string", "description": "Domain contact email address." } } }, "dns-record": { "title": "dns-record", "type": "object", "x-tags": [ "dns" ], "description": "DNS Record information.", "x-examples": { "dns-record": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "type": "A", "name": "foo.example.com", "data": "192.0.2.123", "priority": 0, "ttl": 300 } }, "properties": { "id": { "description": "A unique ID for the DNS Record.", "type": "string" }, "type": { "type": "string", "description": "The DNS record type.\n\n* A\n* AAAA\n* CNAME\n* NS\n* MX\n* SRV\n* TXT\n* CAA\n* SSHFP" }, "name": { "type": "string", "description": "The hostname for this DNS record." }, "data": { "type": "string", "description": "The DNS data for this record type." }, "priority": { "type": "integer", "description": "DNS priority. Does not apply to all record types." }, "ttl": { "type": "integer", "description": "Time to Live in seconds." } } }, "loadbalancer": { "title": "loadbalancer", "type": "object", "x-tags": [ "load-balancer" ], "description": "Load Balancer information.", "x-examples": { "load balancer": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "date_created": "2020-10-10T01:56:20+00:00", "region": "ewr", "label": "Example Load Balancer", "status": "active", "ipv4": "192.0.2.123", "ipv6": "2001:0db8:6374:dc29:ffff:ffff:ffff:ffff", "generic_info": { "balancing_algorithm": "roundrobin", "ssl_redirect": true, "sticky_sessions": { "cookie_name": "example-cookie" }, "proxy_protocol": false, "private_network": "9fed374c-0afc-42bf-926c-abcf840b5406", "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406" }, "health_check": { "protocol": "http", "port": 80, "path": "/health", "check_interval": 10, "response_timeout": 5, "unhealthy_threshold": 3, "healthy_threshold": 3 }, "has_ssl": true, "forward_rules": [ { "id": "73d85156c2c3129d", "frontend_protocol": "http", "frontend_port": 80, "backend_portocol": "http", "backend_port": 80 } ], "firewall_rules": [ { "id": "abcd123b93016eafb", "port": 80, "source": "198.51.100.0/24", "ip_type": "v4" } ], "instances": [ "d277caaa-0fab-48cc-9c35-eab056b9b141" ] } }, "properties": { "id": { "description": "A unique ID for the Load Balancer.", "type": "string" }, "date_created": { "type": "string", "description": "Date this Load Balancer was created." }, "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the Load Balancer is located." }, "label": { "type": "string", "description": "The user-supplied label for this load-balancer." }, "status": { "type": "string", "description": "The current status.\n\n* active" }, "ipv4": { "type": "string", "description": "The IPv4 address of this Load Balancer." }, "ipv6": { "type": "string", "description": "The IPv6 address of this Load Balancer." }, "generic_info": { "type": "object", "description": "An object containing additional options.", "properties": { "balancing_algorithm": { "type": "string", "description": "The balancing algorithm.\n\n* roundrobin (default)\n* leastconn" }, "ssl_redirect": { "type": "boolean", "description": "If `true`, this will redirect all HTTP traffic to HTTPS. You must have an HTTPS rule and SSL certificate installed on the load balancer to enable this option.\n\n* true\n* false" }, "sticky_sessions": { "type": "object", "description": "Array of sticky session cookies.", "properties": { "cookie_name": { "type": "string", "description": "The cookie name to make sticky. See [Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration)." } } }, "proxy_protocol": { "type": "boolean", "description": "\"If `true`, you must configure backend nodes to accept Proxy protocol. \\n\\n* true\\n* false (Default)\"" }, "private_network": { "type": "string", "description": "Use `vpc` instead. ID of the private network you wish to use. If private_network is omitted it will default to the public network.", "deprecated": true }, "vpc": { "type": "string", "description": "ID of the VPC you wish to use. If a VPC ID is omitted it will default to the public network." } } }, "health_check": { "type": "object", "description": "The health check object configuration. See [Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration).", "properties": { "protocol": { "type": "string", "description": "The protocol to use for health checks.\n\n* HTTPS\n* HTTP\n* TCP" }, "port": { "type": "integer", "description": "The port to use for health checks." }, "path": { "type": "string", "description": "HTTP Path to check. Only applies if Protocol is HTTP or HTTPS." }, "check_interval": { "type": "integer", "description": "Interval between health checks." }, "response_timeout": { "type": "integer", "description": "Timeout before health check fails." }, "unhealthy_threshold": { "type": "integer", "description": "Number times a check must fail before becoming unhealthy." }, "healthy_threshold": { "type": "integer", "description": "Number of times a check must succeed before returning to healthy status." } } }, "has_ssl": { "type": "boolean", "description": "Indicates if this Load Balancer has an SSL certificate installed." }, "http2": { "type": "boolean", "description": "Indicates if this Load Balancer has HTTP2 enabled." }, "forward_rules": { "type": "array", "description": "An array of forwarding rule objects.", "items": { "type": "object", "description": "A forwarding rule object.", "properties": { "id": { "type": "string", "description": "A unique ID for the forwarding rule." }, "frontend_protocol": { "type": "string", "description": "The protocol on the Load Balancer to forward to the backend.\n\n* HTTP\n* HTTPS\n* TCP" }, "frontend_port": { "type": "integer", "description": "The port number on the Load Balancer to forward to the backend." }, "backend_portocol": { "type": "string", "description": "The protocol destination on the backend server.\n\n* HTTP\n* HTTPS\n* TCP" }, "backend_port": { "type": "integer", "description": "The port number destination on the backend server. " } } } }, "instances": { "type": "array", "description": "Array of [Instance ids](#operation/list-instances) attached to this Load Balancer.", "items": { "type": "string" } }, "firewall_rules": { "type": "array", "description": "An array of firewall rule objects.", "items": { "type": "object", "description": "", "properties": { "id": { "type": "string", "description": "A unique ID for the firewall rule." }, "port": { "type": "integer", "description": "Port for this rule." }, "source": { "type": "string", "description": "If the source string is given a value of \"cloudflare\" then cloudflare IPs will be supplied. Otherwise enter a IP address with subnet size that you wish to permit through the firewall.\n\n Possible values:\n\n | | Value | Description |\n | - | ------ | ------------- |\n | | \"192.168.1.1/16\" | Ip address with a subnet size. |\n | | cloudflare | Allow all of Cloudflare's IP space through the firewall |" }, "ip_type": { "type": "string", "description": "The type of IP rule.\n\n* v4\n* v6\n" } } } } } }, "region": { "title": "region", "type": "object", "x-tags": [ "region" ], "description": "Region information.", "x-examples": { "example": { "id": "ewr", "city": "New Jersey", "country": "US", "continent": "North America", "options": [ "ddos_protection", "load_balancers", "object_storage", "kubernetes", "block_storage" ] } }, "properties": { "id": { "type": "string", "description": "A unique ID for the Region." }, "country": { "type": "string", "description": "The [two-letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) for this Region." }, "options": { "type": "array", "description": "An array of product features available in this Region.", "items": { "type": "string" } }, "continent": { "type": "string", "description": "The name of the continent for this Region." }, "city": { "type": "string", "description": "The name of the city for this Region." } } }, "plans": { "title": "plans", "type": "object", "x-tags": [ "plans" ], "description": "Plans for VPS instances.", "x-examples": { "plans": { "id": "vhf-8c-32gb", "vcpu_count": 8, "ram": 32768, "disk": 512, "disk_count": 1, "bandwidth": 6144, "monthly_cost": 192, "type": "vhf", "locations": [ "sea" ] } }, "properties": { "id": { "type": "string", "description": "A unique ID for the Plan." }, "name": { "type": "string", "description": "The Plan name." }, "vcpu_count": { "type": "integer", "description": "The number of vCPUs in this Plan." }, "ram": { "type": "integer", "description": "The amount of RAM in MB." }, "disk": { "type": "integer", "description": "The disk size in GB." }, "bandwidth": { "type": "integer", "description": "The monthly bandwidth quota in GB." }, "monthly_cost": { "type": "integer", "description": "The monthly cost in US Dollars." }, "type": { "type": "string", "description": "The plan type.\n\n| | Type | Description |\n| - | ------ | ------------- |\n| | vc2 | Cloud Compute |\n| | vhf | High Frequency Compute |\n| | vdc | Dedicated Cloud |" }, "locations": { "type": "array", "description": "An array of Regions where this plan is valid for use.", "items": { "type": "string" } }, "disk_count": { "type": "integer", "description": "The number of disks that this plan offers." } } }, "plans-metal": { "title": "plans-metal", "type": "object", "x-tags": [ "plans" ], "description": "Plans for Bare Metal instances.", "x-examples": { "baremetal": { "id": "vbm-4c-32gb", "cpu_count": 4, "cpu_threads": 8, "cpu_model": "E3-1270v6", "ram": 32768, "disk": 240, "disk_count": 2, "bandwidth": 5120, "monthly_cost": 300, "type": "SSD", "locations": [ "ewr" ] } }, "properties": { "id": { "type": "string", "description": "A unique ID for the Bare Metal Plan." }, "cpu_count": { "type": "integer", "description": "The number of CPUs in this Plan." }, "cpu_model": { "type": "string", "description": "The CPU model type for this instance." }, "cpu_threads": { "type": "integer", "description": "The numner of supported threads for this instance." }, "ram": { "type": "integer", "description": "The amount of RAM in MB." }, "disk": { "type": "string", "description": "The disk size in GB." }, "bandwidth": { "type": "integer", "description": "The monthly bandwidth quota in GB." }, "locations": { "type": "array", "description": "An array of Regions where this plan is valid for use.", "items": { "type": "string" } }, "type": { "type": "string", "description": "The plan type.\n\n* SSD" }, "monthly_cost": { "type": "integer", "description": "The monthly cost in US Dollars." }, "disk_count": { "type": "integer", "description": "The number of disks that this plan offers." } } }, "baremetal": { "title": "baremetal", "type": "object", "x-tags": [ "baremetal" ], "description": "Bare Metal information.", "x-examples": { "bare metal": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "os": "CentOS 8 x64", "ram": "32768 MB", "disk": "2x 240GB SSD", "main_ip": "192.0.2.123", "cpu_count": 4, "region": "ewr", "default_password": "example-password", "date_created": "2020-10-10T01:56:20+00:00", "status": "active", "netmask_v4": "255.255.254.0", "gateway_v4": "192.0.2.123", "plan": "vbm-4c-32gb", "v6_network": "2001:0db8:1000::", "v6_main_ip": "2001:0db8:1000::100", "v6_network_size": 64, "label": "Example Bare Metal", "mac_address": 2199756823533, "os_id": 215, "app_id": 0, "image_id": "", "tags": [ "a tag", "another" ] } }, "properties": { "id": { "type": "string", "description": "A unique ID for the Bare Metal instance." }, "os": { "type": "string", "description": "The [Operating System name](#operation/list-os)." }, "ram": { "type": "string", "description": "Text description of the instances' RAM." }, "disk": { "type": "string", "description": "Text description of the instances' disk configuration." }, "main_ip": { "type": "string", "description": "The main IPv4 address." }, "cpu_count": { "type": "integer", "description": "Number of CPUs." }, "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the instance is located." }, "default_password": { "type": "string", "description": "The default password assigned at deployment." }, "date_created": { "type": "string", "description": "The date this instance was created." }, "status": { "type": "string", "description": "The current status.\n\n* active\n* pending\n* suspended" }, "netmask_v4": { "type": "string", "description": "The IPv4 netmask in dot-decimal notation." }, "gateway_v4": { "type": "string", "description": "The IPv4 gateway address." }, "plan": { "type": "string", "description": "The [Bare Metal Plan id](#operation/list-metal-plans) used by this instance." }, "label": { "type": "string", "description": "The user-supplied label for this instance." }, "tag": { "type": "string", "description": "Use `tags` instead. The user-supplied tag for this instance.", "deprecated": true }, "os_id": { "type": "integer", "description": "The [Operating System id](#operation/list-os)." }, "app_id": { "type": "integer", "description": "The [Application id](#operation/list-applications)." }, "image_id": { "type": "string", "description": "The [Application image_id](#operation/list-applications)." }, "v6_network": { "type": "string", "description": "The IPv6 network size in bits." }, "v6_main_ip": { "type": "string", "description": "The main IPv6 network address." }, "v6_network_size": { "type": "integer", "description": "The IPv6 subnet." }, "mac_address": { "type": "integer", "description": "The MAC address for a Bare Metal server" }, "tags": { "type": "array", "description": "Tags to apply to the instance", "items": { "type": "string" } } } }, "baremetal-ipv4": { "title": "baremetal-ipv4", "type": "object", "x-tags": [ "baremetal" ], "description": "Bare Metal IPv4 information.", "x-examples": { "ipv4 example": { "ip": "192.0.2.123", "netmask": "255.255.254.0", "gateway": "192.0.2.123", "type": "main_ip", "reverse": "192.0.2.123.vultr.com", "mac_address": "00:00:5e:00:53:5e" } }, "properties": { "ip": { "type": "string", "description": "The IPv4 address." }, "netmask": { "type": "string", "description": "The IPv4 netmask in dot-decimal notation." }, "gateway": { "type": "string", "description": "The gateway IP address." }, "type": { "type": "string", "description": "The type of IP address.\n\n* main_ip" }, "reverse": { "type": "string", "description": "The reverse DNS information for this IP address." }, "mac_address": { "type": "string", "description": "The MAC address associated with this IP address." } } }, "baremetal-ipv6": { "title": "baremetal-ipv6", "type": "object", "x-tags": [ "baremetal" ], "description": "Bare Metal IPv6 information.", "properties": { "ip": { "type": "string", "description": "A unique ID for the IPv6 address." }, "network": { "type": "string", "description": "The IPv6 subnet." }, "network_size": { "type": "integer", "description": "The IPv6 network size in bits." }, "type": { "type": "string", "description": "The type of IP address.\n\n* main_ip" } } }, "bandwidth": { "title": "bandwidth", "type": "object", "description": "Bandwidth information.", "x-examples": {}, "x-tags": [ "bandwidth" ], "properties": { "incoming_bytes": { "type": "integer", "description": "Total bytes received by this instance on the date (UTC) denoted by the object key." }, "outgoing_bytes": { "description": "Total bytes sent by this instance on the date (UTC) denoted by the object key.", "type": "integer" } } }, "instance": { "title": "instance", "type": "object", "x-tags": [ "instances" ], "description": "Instance information.", "x-examples": {}, "properties": { "id": { "type": "string", "description": "A unique ID for the VPS Instance." }, "os": { "type": "string", "description": "The [Operating System name](#operation/list-os)." }, "ram": { "type": "integer", "description": "The amount of RAM in MB." }, "disk": { "type": "integer", "description": "The size of the disk in GB." }, "main_ip": { "type": "string", "description": "The main IPv4 address." }, "vcpu_count": { "type": "integer", "description": "Number of vCPUs." }, "region": { "type": "string", "description": "The [Region id](#operation/list-regions) where the Instance is located." }, "default_password": { "type": "string", "description": "The default password assigned at deployment." }, "date_created": { "type": "string", "description": "The date this instance was created." }, "status": { "type": "string", "description": "The current status.\n\n* active\n* pending\n* suspended\n* resizing" }, "power_status": { "type": "string", "description": "The power-on status.\n\n* running\n* stopped" }, "server_status": { "type": "string", "description": "The server health status.\n\n* none\n* locked\n* installingbooting\n* ok" }, "allowed_bandwidth": { "type": "integer", "description": "Monthly bandwidth quota in GB." }, "netmask_v4": { "type": "string", "description": "The IPv4 netmask in dot-decimal notation." }, "gateway_v4": { "type": "string", "description": "The gateway IP address." }, "v6_networks": { "type": "array", "description": "An array of IPv6 objects.", "items": { "type": "object", "description": "An IPv6 object.", "properties": { "network": { "type": "string", "description": "The IPv6 subnet." }, "main_ip": { "type": "string", "description": "The main IPv6 network address." }, "network_size": { "description": "The IPv6 network size in bits.", "type": "integer" } } } }, "hostname": { "type": "string", "description": "The hostname for this instance." }, "label": { "type": "string", "description": "The user-supplied label for this instance." }, "tag": { "type": "string", "description": "Use `tags` instead. The user-supplied tag for this instance.", "deprecated": true }, "internal_ip": { "type": "string", "description": "The internal IP used by this instance, if set." }, "kvm": { "type": "string", "description": "HTTPS link to the Vultr noVNC Web Console." }, "os_id": { "type": "integer", "description": "The [Operating System id](#operation/list-os) used by this instance." }, "app_id": { "type": "integer", "description": "The [Application id](#operation/list-applications) used by this instance." }, "image_id": { "type": "string", "description": "The [Application image_id](#operation/list-applications) used by this instance." }, "firewall_group_id": { "type": "string", "description": "The [Firewall Group id](#operation/list-firewall-groups) linked to this Instance." }, "features": { "type": "array", "description": "\"auto_backups\", \"ipv6\", \"ddos_protection\"", "items": { "type": "string" } }, "plan": { "type": "string", "description": "A unique ID for the Plan." }, "tags": { "type": "array", "description": "Tags to apply to the instance", "items": { "type": "string" } } } }, "private-networks": { "title": "private-networks", "type": "object", "x-tags": [ "private-networks" ], "description": "Private Network information.", "properties": { "id": { "type": "string", "description": "A unique ID for the Private Network." }, "mac_address": { "type": "string", "description": "The assigned MAC address." }, "ip_address": { "type": "string", "description": "The assigned IP address." } }, "x-examples": { "example-1": {} }, "deprecated": true }, "backup-schedule": { "title": "backup-schedule", "type": "object", "x-tags": [ "backup-schedule" ], "description": "Backup schedule information.", "properties": { "enabled": { "type": "boolean", "description": "Indicates if backup is enabled:\n\n* true\n* false" }, "type": { "type": "string", "description": "Type of backup schedule:\n\n| | Value | Description |\n| - | ------ | ------------- |\n| | daily | Back up once per day at `hour`. |\n| | weekly | Back up once per week on `dow` at `hour`. |\n| | monthly | Back up each month at `dom` at `hour`. |\n| | daily\\_alt\\_even | Back up on even dates at `hour`. |\n| | daily\\_alt\\_odd | Back up on odd dates at `hour`. |" }, "next_scheduled_time_utc": { "type": "string", "description": "Time of next backup run in UTC." }, "hour": { "type": "integer", "description": "Scheduled hour of day in UTC." }, "dow": { "description": "Day of week to run.\n\n| | Value | Description |\n| - | ------ | ------------- |\n| | 1 | Sunday |\n| | 2 | Monday |\n| | 3 | Tuesday |\n| | 4 | Wednesday |\n| | 5 | Thursday |\n| | 6 | Friday |\n| | 7 | Saturday |", "type": "integer" }, "dom": { "description": "Day of month to run. Use values between 1 and 28.", "type": "integer" } } }, "forwarding-rule": { "title": "forwarding-rule", "type": "object", "x-tags": [ "load-balancer" ], "description": "Forwarding Rule information.", "x-examples": { "forwarding rules": { "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60", "frontend_protocol": "http", "frontend_port": 80, "backend_protocol": "http", "backend_port": 80 } }, "properties": { "id": { "type": "string", "description": "A unique ID for the Forwarding Rule." }, "frontend_protocol": { "type": "string", "description": "The protocol on the Load Balancer to forward to the backend.\n\n* HTTP\n* HTTPS\n* TCP" }, "frontend_port": { "type": "integer", "description": "The port number on the Load Balancer to forward to the backend." }, "backend_protocol": { "type": "string", "description": "The protocol destination on the backend server.\n\n* HTTP\n* HTTPS\n* TCP" }, "backend_port": { "type": "integer", "description": "The port number destination on the backend server." } } }, "meta": { "title": "meta", "type": "object", "x-examples": { "meta response": { "meta": { "total": 31, "links": { "next": "WxYzExampleNext", "prev": "" } } } }, "description": "The meta information object. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination) for more information.", "properties": { "total": { "type": "integer", "description": "Total objects available in the list. This value may be greater than the number of objects returned if `per_page` is set." }, "links": { "type": "object", "description": "Cursor values for pagination.", "properties": { "next": { "type": "string", "description": "Cursor value for the next page." }, "prev": { "type": "string", "description": "Cursor value for the previous page." } } } } }, "loadbalancer-firewall-rule": { "description": "Load Balancer firewall rule information.", "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "The unique ID for the firewall rule" }, "port": { "type": "integer", "description": "Port for this rule.\n" }, "source": { "type": "string", "minLength": 1, "description": "If the source string is given a value of \"cloudflare\" then cloudflare IPs will be supplied. Otherwise enter a IP address with subnet size that you wish to permit through the firewall.\n\nPossible values:\n\n| | Value | Description |\n| - | ------ | ------------- |\n| | \"192.168.1.1/16\" | Ip address with a subnet size. |\n| | cloudflare | Allow all of Cloudflare's IP space through the firewall |" }, "ip_type": { "type": "string", "minLength": 1, "description": "The type of IP rule.\n\n* v4\n* v6\n" } }, "x-examples": { "Example": { "id": "9fea55b93016eafb", "port": 80, "source": "192.168.1.1/16", "ip_type": "v4" } } } }, "securitySchemes": { "APIKey": { "type": "http", "scheme": "bearer", "in": "header", "description": "The Vultr API v2 uses APIKeys for authentication. You can manage your APIKeys in the Vultr customer portal. Please do not share APIKeys publicly, or embed them in client-side code. It is a good security practice to restrict their use by IP address in the [customer portal](https://my.vultr.com/settings/#settingsapi).\n\nTo authenticate a request, send your APIKey as a bearer token in the request header.\n\n### Authentication Example\n\n curl \"https://api.vultr.com/v2/account\" \\\n -X GET \\\n -H \"Authorization: Bearer ${VULTR_API_KEY}\"\n\nUnauthenticated API requests will fail. All requests must use HTTPS encryption for security, and calls made with HTTP will fail." } } }, "tags": [ { "name": "account", "x-displayName": "Account", "description": "Read-only information about your [user account](https://my.vultr.com/settings/#settingsprofile) and [billing](https://my.vultr.com/billing/#billinghistory) information.\n" }, { "name": "application", "x-displayName": "Applications", "description": "[One-Click](https://www.vultr.com/features/one-click-apps/) and [Marketplace](https://www.vultr.com/marketplace/) Applications are ready-to-run with minimal configuration. We have an extensive [documentation library](https://www.vultr.com/docs/category/apps/) for our Applications.\n

There are two types of Applications: `marketplace` and `one-click`. This is denoted by the `type` field in the Application object. Applications with `type` of `marketplace` can be deployed by using the `image_id` while Applications with `type` of `one-click` should use the `id`.\n" }, { "name": "backup", "x-displayName": "Backups", "description": "A backup is a scheduled, automatic, point-in-time image of an instance. We do not stop the instance when taking a backup. Booting from a backup is similar to rebooting after a non-graceful restart. [Snapshots](#tag/snapshot) are physically the same as backups, but snapshots are manual while backups run automatically on a schedule. Backups can be converted into snapshots. See our [Automatic Backup FAQ](https://www.vultr.com/docs/vps-automatic-backups/) for more information.\n" }, { "name": "baremetal", "x-displayName": "Bare Metal", "description": "[Bare Metal](https://www.vultr.com/products/bare-metal/) servers give you access to the underlying physical hardware in a single-tenant environment without a virtualization layer.\n" }, { "name": "billing", "x-displayName": "Billing", "description": "Read-only [billing](https://my.vultr.com/billing/#billinghistory) information for your [user account](https://my.vultr.com/settings/#settingsprofile)." }, { "name": "block", "x-displayName": "Block Storage", "description": "[Block Storage](https://www.vultr.com/products/block-storage/) volumes are highly-available, redundant, SSD backed, and expandable from 10 GB to 40,000 GB depending on the type. Block storage volumes can be formatted with your choice of filesystems and moved between server instances as needed. [See our FAQ](https://www.vultr.com/docs/block-storage/) for details.\n" }, { "name": "dns", "x-displayName": "DNS", "description": "Vultr offers [free DNS hosting](https://www.vultr.com/docs/introduction-to-vultr-dns/) for customers' domains. The nameservers are on an AnyCAST network and ensure fast DNS resolution. When you manage your DNS through the API, you can view the results [in your customer portal](https://my.vultr.com/dns/).\n" }, { "name": "firewall", "x-displayName": "Firewall", "description": "Vultr offers a [web-based firewall](https://www.vultr.com/docs/vultr-firewall/) solution to protect one or more compute instances. [Firewall groups](https://my.vultr.com/firewall/) can manage multiple servers with a standard ruleset. You can control multiple groups with the API.\n" }, { "name": "instances", "x-displayName": "Instances", "description": "Vultr [Cloud instances](https://www.vultr.com/products/cloud-compute/) can be [deployed](https://my.vultr.com/) with your preferred operating system or pre-installed application in seconds. [High Frequency Compute](https://www.vultr.com/products/high-frequency-compute/) instances are powered by high clock speed CPU's and NVMe local storage to power your most demanding applications. [Dedicated Cloud](https://www.vultr.com/products/dedicated-cloud/) instances have dedicated CPU, SSD drives, and RAM.\n
\n
\nNote: Do not use this endpoint to manage [Kubernetes](https://www.vultr.com/kubernetes/) cluster nodes as it may result in unintended issues and charges. Use the kubernetes [endpoint](https://www.vultr.com/api/#tag/kubernetes) instead.\n" }, { "name": "iso", "x-displayName": "ISO", "description": "[Upload](https://www.vultr.com/features/upload-iso/) and boot instances from your ISO, or choose one from our [public ISO library](https://my.vultr.com/iso/public/). See our [ISO documentation](https://www.vultr.com/docs/requirements-for-uploading-an-os-iso-to-vultr/).\n" }, { "name": "kubernetes", "x-displayName": "Kubernetes", "description": "Vultr Kubernetes Engine is a managed Kubernetes offering." }, { "name": "load-balancer", "x-displayName": "Load Balancers", "description": "[Load Balancers](https://www.vultr.com/docs/vultr-load-balancers/) sit in front of your application and distribute incoming traffic across multiple Instances. When you control the load balancer via the API, you can inspect the results in the [customer portal](https://my.vultr.com/loadbalancers/).\n" }, { "name": "s3", "x-displayName": "Object Storage", "description": "[Object Storage](https://www.vultr.com/docs/vultr-object-storage/) is S3 API compatible. Objects uploaded to object storage can be accessed privately or publicly on the web. Object storage supports a virtually unlimited number of objects. Control your Object Storage via the API or browse in the [Customer Portal](https://my.vultr.com/objectstorage/).\n" }, { "name": "os", "x-displayName": "Operating Systems", "description": "We have a wide range of [operating systems](https://www.vultr.com/features/operating-systems/) available to deploy server instances. You can also [upload an ISO](#tag/iso) or choose from our public ISO library.\n" }, { "name": "plans", "x-displayName": "Plans", "description": "A Plan is a particular configuration of vCPU, RAM, SSD, and bandwidth to deploy an [Instance](#tag/instances). Not all Plans are available in all [Regions](#tag/region). You can browse plans in the [Customer Portal](https://my.vultr.com/deploy/) or get a list of Plans from the API.\n" }, { "name": "private Networks", "x-displayName": "Private Networks", "description": "**Deprecated**: use [VPCs](#tag/VPCs) instead.

[Private Networks](https://www.vultr.com/docs/configuring-private-network/) are fully isolated networks accessible only by instances on your account. Each private network is only available in one Region and cannot span across regions. An [instance](#tag/instances) can connect to [multiple private networks](https://www.vultr.com/docs/multiple-private-networks/) and you may have up to 5 private networks per [region](#tag/region).\n" }, { "name": "VPCs", "x-displayName": "VPCs", "description": "[VPCs](https://www.vultr.com/docs/how-to-create-a-vultr-virtual-private-cloud-vpc/) are fully isolated networks accessible only by instances on your account. Each VPC is only available in one region and cannot span across regions. An [instance](#tag/instances) can connect to multiple VPCs and you may have up to 5 VPCs per [region](#tag/region).\n" }, { "name": "reserved-ip", "x-displayName": "Reserved IPs", "description": "IP addresses can be [reserved](https://my.vultr.com/network/) and moved between [instances](#tag/instances). Reserved IPs can also be used as [floating addresses](https://www.vultr.com/docs/high-availability-on-vultr-with-floating-ip-and-bgp/) for high-availability.\n" }, { "name": "region", "x-displayName": "Regions", "description": "Instances can be deployed in many [Regions](https://www.vultr.com/features/datacenter-locations/) on multiple continents. Choose any of our worldwide locations to deploy servers near your office or customers for low-latency." }, { "name": "snapshot", "x-displayName": "Snapshots", "description": "A snapshot is a point-in-time image of an instance. We do not stop the instance when taking a snapshot. Booting from a snapshot is similar to rebooting after a non-graceful restart. Snapshots are physically the same as [backups](#tag/backup), but snapshots are manual while backups run automatically on a schedule. See our [Snapshot Quickstart Guide](https://www.vultr.com/docs/vultr-vps-snapshots/) for more information.\n" }, { "name": "ssh", "x-displayName": "SSH Keys", "description": "You can add [SSH keys](https://www.vultr.com/docs/how-do-i-generate-ssh-keys/) to your [account](https://my.vultr.com/settings/#settingssshkeys/), which can be copied to new instances when first deployed. Updating a key does not update any running instances. If you [reinstall](#operation/reinstall-instance) an instance (erasing all its data), it will inherit the updated key." }, { "name": "startup", "x-displayName": "Startup Scripts", "description": "Vultr allows you to assign [two types of scripts to a server](https://www.vultr.com/docs/vultr-startup-scripts-quickstart-guide/). Boot scripts configure new deployments, and PXE scripts automatically install operating systems. Assign startup scripts to your servers through the API or on your [Startup Scripts page](https://my.vultr.com/startup/) in the customer portal." }, { "name": "users", "x-displayName": "Users", "description": "Vultr supports [multiple users](https://my.vultr.com/settings/#settingsusers) in each account, and each user has [individual access permissions](https://my.vultr.com/users/manage/?USERID=new). Users have unique APIKeys, which respect the permission for that user." } ], "security": [ { "APIKey": [] } ] }