openapi: 3.0.0
info:
contact:
email: support@vultr.com
name: ""
url: https://www.vultr.com
description: |
# Introduction
The 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.
## Requests
Communicate with the API by making an HTTP request at the correct endpoint. The chosen method determines the action taken.
| Method | Usage |
| ------ | ------------- |
| 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. |
| 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. |
| PATCH | Some resources support partial modification with PATCH, which modifies specific attributes without updating the entire object representation. |
| POST | Issue a POST method to create a new object. Include all needed attributes in the request body encoded as JSON. |
| 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. |
**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.
## Response Codes
We 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.
| Response | Description |
| ------ | ------------- |
| 200 OK | The response contains your requested information. |
| 201 Created | Your request was accepted. The resource was created. |
| 202 Accepted | Your request was accepted. The resource was created or updated. |
| 204 No Content | Your request succeeded, there is no additional information returned. |
| 400 Bad Request | Your request was malformed. |
| 401 Unauthorized | You did not supply valid authentication credentials. |
| 403 Forbidden | You are not allowed to perform that action. |
| 404 Not Found | No results were found for your request. |
| 429 Too Many Requests | Your request exceeded the API rate limit. |
| 500 Internal Server Error | We were unable to perform the request due to server-side problems. |
## Meta and Pagination
Many API calls will return a `meta` object with paging information.
### Definitions
| Term | Description |
| ------ | ------------- |
| **List** | The items returned from the database for your request (not necessarily shown in a single response depending on the **cursor** size). |
| **Page** | A subset of the full **list** of items. Choose the size of a **page** with the `per_page` parameter. |
| **Total** | The `total` attribute indicates the number of items in the full **list**.|
| **Cursor** | Use the `cursor` query parameter to select a next or previous **page**. |
| **Next** & **Prev** | Use the `next` and `prev` attributes of the `links` meta object as `cursor` values. |
### How to use Paging
If 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.
### Paging Example
> These examples have abbreviated attributes and sample values. Your actual `cursor` values will be encoded alphanumeric strings.
To return a **page** with the first two plans in the List:
curl "https://api.vultr.com/v2/plans?per_page=2" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
The API returns an object similar to this:
{
"plans": [
{
"id": "vc2-1c-2gb",
"vcpu_count": 1,
"ram": 2048,
"locations": []
},
{
"id": "vc2-24c-97gb",
"vcpu_count": 24,
"ram": 98304,
"locations": []
}
],
"meta": {
"total": 19,
"links": {
"next": "WxYzExampleNext",
"prev": "WxYzExamplePrev"
}
}
}
The 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.
curl "https://api.vultr.com/v2/plans?per_page=2&cursor=WxYzExampleNext" \
-X GET
-H "Authorization: Bearer ${VULTR_API_KEY}"
Likewise, you can use the example `prev` value `WxYzExamplePrev` to navigate backward.
## Parameters
You can pass information to the API with three different types of parameters.
### Path parameters
Some 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.
curl "https://api.vultr.com/v2/users/{user-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
### Query parameters
Some 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.
curl "https://api.vultr.com/v2/plans?type=vhf" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
You can also combine filtering with paging. Use the `per_page` parameter to retreive a subset of vhf plans.
curl "https://api.vultr.com/v2/plans?type=vhf&per_page=2" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
### Request Body
PUT, 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.
## API Example Conventions
The 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.
Each example is split across multiple lines with the `\` character, which is compatible with a `bash` terminal. A typical example looks like this:
curl "https://api.vultr.com/v2/domains" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"domain" : "example.com",
"ip" : "192.0.2.123"
}'
* 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.
* The `-H` lines set required HTTP headers. These examples are formatted to expand the VULTR\_API\_KEY environment variable for your convenience.
* Examples that require a JSON object in the request body pass the required data via the `--data` parameter.
All 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.
title: Vultr API
version: "2.0"
servers:
- url: https://api.vultr.com/v2
security:
- API Key: []
tags:
- description: |
Read-only information about your [user account](https://my.vultr.com/settings/#settingsprofile) and [billing](https://my.vultr.com/billing/#billinghistory) information.
name: account
x-displayName: Account
- 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.
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`.
name: application
x-displayName: Applications
- 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.
name: backup
x-displayName: Backups
- 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.
name: baremetal
x-displayName: Bare Metal
- description: "Read-only [billing](https://my.vultr.com/billing/#billinghistory)\
\ information for your [user account](https://my.vultr.com/settings/#settingsprofile)."
name: billing
x-displayName: Billing
- 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.
name: block
x-displayName: Block Storage
- description: |
Store and manage public and private container images for rapid deployment to Vultr Managed Kubernetes.
name: Container Registry
x-displayName: Container Registry
- 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/).
name: dns
x-displayName: DNS
- 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.
name: firewall
x-displayName: Firewall
- 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.
Note: 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.
name: instances
x-displayName: Instances
- 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/).
name: iso
x-displayName: ISO
- description: Vultr Kubernetes Engine is a managed Kubernetes offering.
name: kubernetes
x-displayName: Kubernetes
- 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/).
name: load-balancer
x-displayName: Load Balancers
- description: |
[Vultr Managed Databases](https://www.vultr.com/docs/vultr-managed-databases/) is a managed database offering supporting MySQL, PostgreSQL, FerretDB + PostgreSQL, and Redis.
name: managed-databases
x-displayName: Managed Databases
- 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/).
name: s3
x-displayName: Object Storage
- 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.
name: os
x-displayName: Operating Systems
- 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.
name: plans
x-displayName: Plans
- 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).
name: private Networks
x-displayName: Private Networks
- 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).
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).
name: VPC2
x-displayName: VPC 2.0
- 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.
name: reserved-ip
x-displayName: Reserved IPs
- 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: region
x-displayName: Regions
- 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.
name: snapshot
x-displayName: Snapshots
- description: |
Sub-accounts are separate Vultr accounts that are directly linked to your account. These accounts function similarly to normal Vultr accounts with some additional billing and administrative features available to your account.
name: subaccount
x-displayName: Sub-Accounts
- 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: ssh
x-displayName: SSH Keys
- 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.
**Note**: There is a size limit of 64KB on the startup script.
name: startup
x-displayName: Startup Scripts
- 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 API keys, which respect the permission for that user."
name: users
x-displayName: Users
paths:
/private-networks/{network-id}:
delete:
deprecated: true
description: "Delete a Private Network.
**Deprecated**: Use [Delete VPC](#operation/delete-vpc)\
\ instead."
operationId: delete-network
parameters:
- description: "The [Network id](#operation/list-networks)."
explode: false
in: path
name: network-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Delete a private network
tags:
- private Networks
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/private-networks/{network-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
deprecated: true
description: "Get information about a Private Network.
**Deprecated**:\
\ Use [Get VPC](#operation/get-vpc) instead. "
operationId: get-network
parameters:
- description: "The [Network id](#operation/list-networks)."
explode: false
in: path
name: network-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_network_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get a private network
tags:
- private Networks
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/private-networks/{network-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
deprecated: true
description: "Update information for a Private Network.
**Deprecated**:\
\ Use [Update VPC](#operation/update-vpc) instead."
operationId: update-network
parameters:
- description: "The [Network id](#operation/list-networks)."
explode: false
in: path
name: network-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
description: Example Private Network
schema:
$ref: '#/components/schemas/update_network_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Update a Private Network
tags:
- private Networks
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/private-networks/{network-id}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"description" : "Example Private Network"
}'
x-content-type: application/json
x-accepts: application/json
/private-networks:
get:
deprecated: true
description: "Get a list of all Private Networks in your account.
**Deprecated**:\
\ Use [List VPCs](#operation/list-vpcs) instead."
operationId: list-networks
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_networks_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List Private Networks
tags:
- private Networks
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/private-networks" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
deprecated: true
description: |
Create a new Private Network in a `region`.
**Deprecated**: Use [Create VPC](#operation/create-vpc) instead.
Private networks should use [RFC1918 private address space](https://tools.ietf.org/html/rfc1918):
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
operationId: create-network
requestBody:
content:
application/json:
examples:
example:
value:
region: ewr
description: Example Private Network
v4_subnet: 10.99.0.0
v4_subnet_mask: 24
schema:
$ref: '#/components/schemas/create_network_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_network_200_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create a Private Network
tags:
- private Networks
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/private-networks" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "ewr",
"description" : "Example Private Network",
"v4_subnet" : "10.99.0.0",
"v4_subnet_mask" : 24
}'
x-content-type: application/json
x-accepts: application/json
/vpcs/{vpc-id}:
delete:
description: Delete a VPC.
operationId: delete-vpc
parameters:
- description: "The [VPC ID](#operation/list-vpcs)."
explode: false
in: path
name: vpc-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Delete a VPC
tags:
- VPCs
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpcs/{vpc-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about a VPC.
operationId: get-vpc
parameters:
- description: "The [VPC ID](#operation/list-vpcs)."
explode: false
in: path
name: vpc-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_vpc_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get a VPC
tags:
- VPCs
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpcs/{vpc-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: Update information for a VPC.
operationId: update-vpc
parameters:
- description: "The [VPC ID](#operation/list-vpcs)."
explode: false
in: path
name: vpc-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
description: Example VPC
schema:
$ref: '#/components/schemas/update_vpc_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Update a VPC
tags:
- VPCs
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpcs/{vpc-id}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"description" : "Example VPC"
}'
x-content-type: application/json
x-accepts: application/json
/vpcs:
get:
description: Get a list of all VPCs in your account.
operationId: list-vpcs
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_vpcs_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List VPCs
tags:
- VPCs
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpcs" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: |
Create a new VPC in a `region`. VPCs should use [RFC1918 private address space](https://tools.ietf.org/html/rfc1918):
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
operationId: create-vpc
requestBody:
content:
application/json:
examples:
example:
value:
region: ewr
description: Example VPC
v4_subnet: 10.99.0.0
v4_subnet_mask: 24
schema:
$ref: '#/components/schemas/create_vpc_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_vpc_200_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create a VPC
tags:
- VPCs
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpcs" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "ewr",
"description" : "Example VPC",
"v4_subnet" : "10.99.0.0",
"v4_subnet_mask" : 24
}'
x-content-type: application/json
x-accepts: application/json
/vpc2/{vpc-id}:
delete:
description: Delete a VPC 2.0 network.
operationId: delete-vpc2
parameters:
- description: "The [VPC ID](#operation/list-vpcs)."
explode: false
in: path
name: vpc-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Delete a VPC 2.0 network
tags:
- VPC2
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpc2/{vpc-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about a VPC 2.0 network.
operationId: get-vpc2
parameters:
- description: "The [VPC ID](#operation/list-vpcs)."
explode: false
in: path
name: vpc-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
ip_block: 10.99.0.0
prefix_length: 24
schema:
$ref: '#/components/schemas/get_vpc2_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get a VPC 2.0 network
tags:
- VPC2
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpc2/{vpc-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: Update information for a VPC 2.0 network.
operationId: update-vpc2
parameters:
- description: "The [VPC ID](#operation/list-vpcs)."
explode: false
in: path
name: vpc-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
description: Example VPC
schema:
$ref: '#/components/schemas/update_vpc2_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Update a VPC 2.0 network
tags:
- VPC2
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpc2/{vpc-id}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"description" : "Example VPC"
}'
x-content-type: application/json
x-accepts: application/json
/vpc2:
get:
description: Get a list of all VPC 2.0 networks in your account.
operationId: list-vpc2
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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
ip_block: 10.99.0.0
prefix_length: 24
meta:
total: 1
links:
next: ""
prev: ""
schema:
$ref: '#/components/schemas/list_vpc2_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List VPC 2.0 networks
tags:
- VPC2
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpc2" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: |
Create a new VPC 2.0 network in a `region`. VPCs should use [RFC1918 private address space](https://tools.ietf.org/html/rfc1918):
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
operationId: create-vpc2
requestBody:
content:
application/json:
examples:
example:
value:
region: ewr
description: Example VPC
ip_block: 10.99.0.0
prefix_length: 24
schema:
$ref: '#/components/schemas/create_vpc2_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
examples:
response:
value:
network:
id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
date_created: 2020-10-10T01:56:20+00:00
region: ewr
description: Example VPC
ip_block: 10.99.0.0
prefix_length: 24
schema:
$ref: '#/components/schemas/get_vpc2_200_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create a VPC 2.0 network
tags:
- VPC2
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpc2" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "ewr",
"description" : "Example VPC",
"ip_block" : "10.99.0.0",
"prefix_length" : 24
}'
x-content-type: application/json
x-accepts: application/json
/vpc2/{vpc-id}/nodes:
get:
description: Get a list of nodes attached to a VPC 2.0 network.
operationId: list-vpc2-nodes
parameters:
- description: "The [VPC ID](#operation/list-vpcs)."
explode: false
in: path
name: vpc-id
required: true
schema:
type: string
style: simple
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
examples:
response:
value:
nodes:
- id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
ip_address: 10.1.96.3
mac_address: "98964710968448"
description: Example-Description
type: vps
node_status: active
meta:
total: 1
links:
next: ""
prev: ""
schema:
$ref: '#/components/schemas/get_vpc2_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get a list of nodes attached to a VPC 2.0 network
tags:
- VPC2
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpc2/{vpc-id}/nodes" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/vpc2/{vpc-id}/nodes/attach:
post:
description: Attach nodes to a VPC 2.0 network.
operationId: attach-vpc2-nodes
parameters:
- description: "The [VPC ID](#operation/list-vpcs)."
explode: false
in: path
name: vpc-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
nodes:
- a4021db4-c1d0-43ba-8b5c-7a4a35444167
- 12a43ca5-0025-40ef-9edb-3a475809a8c0
schema:
$ref: '#/components/schemas/attach_vpc2_nodes_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
description: accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Attach nodes to a VPC 2.0 network
tags:
- VPC2
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpc2/{vpc-id}/nodes/attach" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-content-type: application/json
x-accepts: application/json
/vpc2/{vpc-id}/nodes/detach:
post:
description: Remove nodes from a VPC 2.0 network.
operationId: detach-vpc2-nodes
parameters:
- description: "The [VPC ID](#operation/list-vpcs)."
explode: false
in: path
name: vpc-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
nodes:
- a4021db4-c1d0-43ba-8b5c-7a4a35444167
- 12a43ca5-0025-40ef-9edb-3a475809a8c0
schema:
$ref: '#/components/schemas/detach_vpc2_nodes_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
description: accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Remove nodes from a VPC 2.0 network
tags:
- VPC2
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/vpc2/{vpc-id}/nodes/detach" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-content-type: application/json
x-accepts: application/json
/users/{user-id}:
delete:
description: Delete a User.
operationId: delete-user
parameters:
- description: "The [User id](#operation/list-users)."
explode: false
in: path
name: user-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Delete User
tags:
- users
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/users/{user-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about a User.
operationId: get-user
parameters:
- description: "The [User id](#operation/list-users)."
explode: false
in: path
name: user-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/user'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get User
tags:
- users
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/users/{user-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
patch:
description: "Update information for a User. All attributes are optional. If\
\ not set, the attributes will retain their original values."
operationId: update-user
parameters:
- description: "The [User id](#operation/list-users)."
explode: false
in: path
name: user-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
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
schema:
$ref: '#/components/schemas/update_user_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Update User
tags:
- users
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/users/{user-id}" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"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"
]
}'
x-content-type: application/json
x-accepts: application/json
/users:
get:
description: Get a list of all Users in your account.
operationId: list-users
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: number
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_users_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Users
tags:
- users
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/users" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: "Create a new User. The `email`, `name`, and `password` attributes\
\ are required."
operationId: create-user
requestBody:
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_user_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/user'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
security:
- API Key: []
summary: Create User
tags:
- users
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/users" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"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"
]
}'
x-content-type: application/json
x-accepts: application/json
/startup-scripts/{startup-id}:
delete:
description: Delete a Startup Script.
operationId: delete-startup-script
parameters:
- description: "The [Startup Script id](#operation/list-startup-scripts)."
explode: false
in: path
name: startup-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Startup Script
tags:
- startup
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/startup-scripts/{startup-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information for a Startup Script.
operationId: get-startup-script
parameters:
- description: "The [Startup Script id](#operation/list-startup-scripts)."
explode: false
in: path
name: startup-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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==
schema:
$ref: '#/components/schemas/get_startup_script_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Startup Script
tags:
- startup
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/startup-scripts/{startup-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
patch:
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."
operationId: update-startup-script
parameters:
- description: "The [Startup Script id](#operation/list-startup-scripts)."
explode: false
in: path
name: startup-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
name: Example Startup Script
script: QmFzZTY0IEV4YW1wbGUgRGF0YQ==
schema:
$ref: '#/components/schemas/update_startup_script_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Update Startup Script
tags:
- startup
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/startup-scripts/{startup-id}" \
-X PATCH \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"name" : "Example Startup Script",
"script" : "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}'
x-content-type: application/json
x-accepts: application/json
/startup-scripts:
get:
description: Get a list of all Startup Scripts.
operationId: list-startup-scripts
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_startup_scripts_200_response'
description: OK
"401":
description: Unauthorized
security:
- API Key: []
summary: List Startup Scripts
tags:
- startup
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/startup-scripts" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: "Create a new Startup Script. The `name` and `script` attributes\
\ are required, and scripts are base-64 encoded."
operationId: create-startup-script
requestBody:
content:
application/json:
examples:
request:
value:
name: Example Startup Script
type: pxe
script: QmFzZTY0IEV4YW1wbGUgRGF0YQ==
schema:
$ref: '#/components/schemas/create_startup_script_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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==
schema:
$ref: '#/components/schemas/get_startup_script_200_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create Startup Script
tags:
- startup
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/startup-scripts" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"name" : "Example Startup Script",
"type" : "pxe",
"script" : "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}'
x-content-type: application/json
x-accepts: application/json
/ssh-keys/{ssh-key-id}:
delete:
description: Delete an SSH Key.
operationId: delete-ssh-key
parameters:
- description: "The [SSH Key id](#operation/list-ssh-keys)."
explode: false
in: path
name: ssh-key-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete SSH Key
tags:
- ssh
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/ssh-keys/{ssh-key-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about an SSH Key.
operationId: get-ssh-key
parameters:
- description: "The [SSH Key id](#operation/list-ssh-keys)."
explode: false
in: path
name: ssh-key-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_ssh_key_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get SSH Key
tags:
- ssh
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/ssh-keys/{ssh-key-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
patch:
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."
operationId: update-ssh-key
parameters:
- description: "The [SSH Key id](#operation/list-ssh-keys)."
explode: false
in: path
name: ssh-key-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
name: Example SSH Key
ssh_key: ssh-rsa AA... user@example.com
schema:
$ref: '#/components/schemas/update_ssh_key_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Update SSH Key
tags:
- ssh
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/ssh-keys/{ssh-key-id}" \
-X PATCH \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"name" : "Example SSH Key",
"ssh_key" : "ssh-rsa AA... user@example.com"
}'
x-content-type: application/json
x-accepts: application/json
/ssh-keys:
get:
description: List all SSH Keys in your account.
operationId: list-ssh-keys
parameters:
- description: |
Number of items requested per page. Default is 100 and Max is 500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_ssh_keys_200_response'
description: OK
"401":
description: Unauthorized
security:
- API Key: []
summary: List SSH Keys
tags:
- ssh
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/ssh-keys" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new SSH Key for use with future instances. This does not
update any running instances.
operationId: create-ssh-key
requestBody:
content:
application/json:
examples:
request:
value:
name: Example SSH Key
ssh_key: ssh-rsa AA... user@example.com
schema:
$ref: '#/components/schemas/create_ssh_key_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_ssh_key_200_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
security:
- API Key: []
summary: Create SSH key
tags:
- ssh
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/ssh-keys" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"name" : "Example SSH Key",
"ssh_key" : "ssh-rsa AA... user@example.com"
}'
x-content-type: application/json
x-accepts: application/json
/snapshots/{snapshot-id}:
delete:
description: Delete a Snapshot.
operationId: delete-snapshot
parameters:
- description: "The [Snapshot id](#operation/list-snapshots)."
explode: false
in: path
name: snapshot-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Snapshot
tags:
- snapshot
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/snapshots/{snapshot-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about a Snapshot.
operationId: get-snapshot
parameters:
- description: "The [Snapshot id](#operation/list-snapshots)."
explode: false
in: path
name: snapshot-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_snapshot_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Snapshot
tags:
- snapshot
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/snapshots/{snapshot-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: Update the description for a Snapshot.
operationId: put-snapshots-snapshot-id
parameters:
- description: "The [Snapshot id](#operation/list-snapshots)."
explode: false
in: path
name: snapshot-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
description: Example Snapshot
schema:
$ref: '#/components/schemas/put_snapshots_snapshot_id_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Update Snapshot
tags:
- snapshot
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/snapshots/{snapshot-id}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"description": "Example Snapshot"
}'
x-content-type: application/json
x-accepts: application/json
/snapshots:
get:
description: Get information about all Snapshots in your account.
operationId: list-snapshots
parameters:
- description: Filter the list of Snapshots by `description`
explode: true
in: query
name: description
required: false
schema:
type: string
style: form
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_snapshots_200_response'
description: OK
"401":
description: Unauthorized
security:
- API Key: []
summary: List Snapshots
tags:
- snapshot
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/snapshots" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new Snapshot for `instance_id`.
operationId: create-snapshot
requestBody:
content:
application/json:
examples:
request:
value:
instance_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
description: Example Snapshot
schema:
$ref: '#/components/schemas/create_snapshot_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_snapshot_200_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
security:
- API Key: []
summary: Create Snapshot
tags:
- snapshot
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/snapshots" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"instance_id" : "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
"description" : "Example Snapshot"
}'
x-content-type: application/json
x-accepts: application/json
/snapshots/create-from-url:
post:
description: Create a new Snapshot from a RAW image located at `url`.
operationId: create-snapshot-create-from-url
requestBody:
content:
application/json:
examples:
example:
value:
url: http://example.com/disk_image.raw
description: Example Snapshot
schema:
$ref: '#/components/schemas/create_snapshot_create_from_url_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_snapshot_200_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create Snapshot from URL
tags:
- snapshot
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/snapshots/create-from-url" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"url" : "https://example.com/disk_image.raw",
"description" : "Example Snapshot",
"uefi": "no"
}'
x-content-type: application/json
x-accepts: application/json
/subaccounts:
get:
description: Get information about all sub-accounts for your account.
operationId: list-subaccounts
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
examples:
response:
value:
subaccounts:
- id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
email: subaccount@vultr.com
subaccount_name: Acme Widgets LLC
subaccount_id: 472924
activated: false
balance: 0
pending_charges: 0
meta:
total: 1
links:
next: ""
prev: ""
schema:
$ref: '#/components/schemas/list_subaccounts_200_response'
description: OK
"401":
description: Unauthorized
security:
- API Key: []
summary: List Sub-Accounts
tags:
- subaccount
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/subaccounts" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new subaccount.
operationId: create-subaccount
requestBody:
content:
application/json:
examples:
request:
value:
email: subaccount@vultr.com
subaccount_name: Acme Widgets LLC
subaccount_id: 472924
schema:
$ref: '#/components/schemas/create_subaccount_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
examples:
response:
value:
subaccount:
id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
email: subaccount@vultr.com
subaccount_name: Acme Widgets LLC
subaccount_id: 472924
activated: false
balance: 0
pending_charges: 0
schema:
$ref: '#/components/schemas/create_subaccount_201_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
security:
- API Key: []
summary: Create Sub-Account
tags:
- subaccount
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/subaccounts" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"email" : "subaccount@vultr.com",
"subaccount_name" : "Acme Widgets LLC"
"subaccount_id" : "472924"
}'
x-content-type: application/json
x-accepts: application/json
/reserved-ips/{reserved-ip}:
delete:
description: Delete a Reserved IP.
operationId: delete-reserved-ip
parameters:
- description: "The [Reserved IP id](#operation/list-reserved-ips)."
explode: false
in: path
name: reserved-ip
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
security:
- API Key: []
summary: Delete Reserved IP
tags:
- reserved-ip
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about a Reserved IP.
operationId: get-reserved-ip
parameters:
- description: "The [Reserved IP id](#operation/list-reserved-ips)."
explode: false
in: path
name: reserved-ip
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_reserved_ip_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Reserved IP
tags:
- reserved-ip
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
patch:
description: Update information on a Reserved IP.
operationId: patch-reserved-ips-reserved-ip
parameters:
- description: "The [Reserved IP id](#operation/list-reserved-ips)."
explode: false
in: path
name: reserved-ip
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
label: Example Label
schema:
$ref: '#/components/schemas/patch_reserved_ips_reserved_ip_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/get_reserved_ip_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Update Reserved IP
tags:
- reserved-ip
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}" \
-X PATCH \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"label" : "Example Label"
}'
x-content-type: application/json
x-accepts: application/json
/reserved-ips:
get:
description: List all Reserved IPs in your account.
operationId: list-reserved-ips
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_reserved_ips_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Reserved IPs
tags:
- reserved-ip
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/reserved-ips" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new Reserved IP. The `region` and `ip_type` attributes
are required.
operationId: create-reserved-ip
requestBody:
content:
application/json:
examples:
request:
value:
region: ewr
ip_type: v4
label: Example Reserved IPv4
schema:
$ref: '#/components/schemas/create_reserved_ip_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_reserved_ip_200_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create Reserved IP
tags:
- reserved-ip
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/reserved-ips" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "ewr",
"ip_type" : "v4",
"label" : "Example Reserved IPv4"
}'
x-content-type: application/json
x-accepts: application/json
/reserved-ips/{reserved-ip}/attach:
post:
description: Attach a Reserved IP to an compute instance or a baremetal instance
- `instance_id`.
operationId: attach-reserved-ip
parameters:
- description: "The [Reserved IP id](#operation/list-reserved-ips)"
explode: false
in: path
name: reserved-ip
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
instance_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
schema:
$ref: '#/components/schemas/attach_reserved_ip_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Attach Reserved IP
tags:
- reserved-ip
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}/attach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"instance_id" : "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}'
x-content-type: application/json
x-accepts: application/json
/reserved-ips/{reserved-ip}/detach:
post:
description: Detach a Reserved IP.
operationId: detach-reserved-ip
parameters:
- description: "The [Reserved IP id](#operation/list-reserved-ips)"
explode: false
in: path
name: reserved-ip
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Detach Reserved IP
tags:
- reserved-ip
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}/detach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/reserved-ips/convert:
post:
description: "Convert the `ip_address` of an existing [instance](#operation/list-instances)\
\ into a Reserved IP."
operationId: convert-reserved-ip
requestBody:
content:
application/json:
examples:
request:
value:
ip_address: 192.0.2.123
label: Example Reserved IPv4
schema:
$ref: '#/components/schemas/convert_reserved_ip_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_reserved_ip_200_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Convert Instance IP to Reserved IP
tags:
- reserved-ip
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/reserved-ips/convert" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
-H "Content-Type: application/json" \
--data '{
"ip_address": "192.0.2.123",
"label": "Example Reserved IPv4"
}'
x-content-type: application/json
x-accepts: application/json
/os:
get:
description: List the OS images available for installation at Vultr.
operationId: list-os
parameters:
- description: |
Number of items requested per page. Default is 100 and Max is 500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
examples:
response:
value:
os:
- id: 127
name: CentOS 6 x64
arch: x64
family: centos
meta:
total: 1
links:
next: ""
prev: ""
schema:
$ref: '#/components/schemas/list_os_200_response'
description: OK
security: []
summary: List OS
tags:
- os
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/os" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/applications:
get:
description: Get a list of all available Applications.
operationId: list-applications
parameters:
- description: |-
Filter the results by type.
| | Type | Description |
| - | ------ | ------------- |
| | all | All available application types |
| | marketplace | Marketplace applications |
| | one-click | Vultr One-Click applications |
explode: true
in: query
name: type
required: false
schema:
type: string
style: form
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_applications_200_response'
description: OK
security: []
summary: List Applications
tags:
- application
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/applications" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/account:
get:
description: "Get your Vultr account, permission, and billing information."
operationId: get-account
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_account_200_response'
description: OK
security:
- API Key: []
summary: Get Account Info
tags:
- account
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/account" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/backups:
get:
description: Get information about Backups in your account.
operationId: list-backups
parameters:
- description: "Filter the backup list by [Instance id](#operation/list-instances)."
explode: true
in: query
name: instance_id
required: false
schema:
type: string
style: form
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_backups_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Backups
tags:
- backup
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/backups" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/blocks:
get:
description: List all Block Storage in your account.
operationId: list-blocks
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_blocks_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"500":
description: Internal Server Error
security:
- API Key: []
summary: List Block storages
tags:
- block
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/blocks" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
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`.
operationId: create-block
requestBody:
content:
application/json:
examples:
request:
value:
region: ewr
size_gb: 50
label: Example Block Storage
schema:
$ref: '#/components/schemas/create_block_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_block_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Create Block Storage
tags:
- block
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/blocks" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "ewr",
"size_gb" : 50,
"label" : "Example Block Storage",
"block_type": "high_perf"
}'
x-content-type: application/json
x-accepts: application/json
/blocks/{block-id}:
delete:
description: Delete Block Storage.
operationId: delete-block
parameters:
- description: "The [Block Storage id](#operation/list-blocks)."
explode: false
in: path
name: block-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Block Storage
tags:
- block
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/blocks/{block-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information for Block Storage.
operationId: get-block
parameters:
- description: "The [Block Storage id](#operation/list-blocks)."
explode: false
in: path
name: block-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_block_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
security:
- API Key: []
summary: Get Block Storage
tags:
- block
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/blocks/{block-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
patch:
description: |
Update information for Block Storage.
operationId: update-block
parameters:
- description: "The [Block Storage id](#operation/list-blocks)."
explode: false
in: path
name: block-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
patch request:
value:
label: Updated Block Storage Label
size_gb: 50
schema:
$ref: '#/components/schemas/update_block_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Update Block Storage
tags:
- block
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/blocks/{block-id}" \
-X PATCH \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"label" : "Updated Block Storage Label",
"size_gb": 50
}'
x-content-type: application/json
x-accepts: application/json
/blocks/{block-id}/attach:
post:
description: Attach Block Storage to Instance `instance_id`.
operationId: attach-block
parameters:
- description: "The [Block Storage id](#operation/list-blocks)."
explode: false
in: path
name: block-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
post request:
value:
instance_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
live: true
schema:
$ref: '#/components/schemas/attach_block_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Attach Block Storage
tags:
- block
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/blocks/{block-id}/attach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"instance_id" : "a632673e-2fd5-4ff1-b251-2e28e7b65504",
"live" : true
}'
x-content-type: application/json
x-accepts: application/json
/blocks/{block-id}/detach:
post:
description: Detach Block Storage.
operationId: detach-block
parameters:
- description: "The [Block Storage id](#operation/list-blocks)."
explode: false
in: path
name: block-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
post request:
value:
live: true
schema:
$ref: '#/components/schemas/detach_block_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Detach Block Storage
tags:
- block
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/blocks/{block-id}/detach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"live" : true
}'
x-content-type: application/json
x-accepts: application/json
/firewalls:
get:
description: Get a list of all Firewall Groups.
operationId: list-firewall-groups
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_firewall_groups_200_response'
description: OK
"401":
description: Unauthorized
security:
- API Key: []
summary: List Firewall Groups
tags:
- firewall
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/firewalls" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new Firewall Group.
operationId: create-firewall-group
requestBody:
content:
application/json:
examples:
request:
value:
description: Example Firewall Group
schema:
$ref: '#/components/schemas/create_firewall_group_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_firewall_group_201_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create Firewall Group
tags:
- firewall
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/firewalls" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"description" : "Example Firewall Group"
}'
x-content-type: application/json
x-accepts: application/json
/firewalls/{firewall-group-id}:
delete:
description: Delete a Firewall Group.
operationId: delete-firewall-group
parameters:
- description: "The [Firewall Group id](#operation/list-firewall-groups)."
explode: false
in: path
name: firewall-group-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Firewall Group
tags:
- firewall
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information for a Firewall Group.
operationId: get-firewall-group
parameters:
- description: "The [Firewall Group id](#operation/list-firewall-groups)."
explode: false
in: path
name: firewall-group-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_firewall_group_201_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Firewall Group
tags:
- firewall
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: Update information for a Firewall Group.
operationId: update-firewall-group
parameters:
- description: "The [Firewall Group id](#operation/list-firewall-groups)."
explode: false
in: path
name: firewall-group-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
description: Updated Firewall Group Name
schema:
$ref: '#/components/schemas/update_firewall_group_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Update Firewall Group
tags:
- firewall
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"description" : "Updated Firewall Group Name"
}'
x-content-type: application/json
x-accepts: application/json
/firewalls/{firewall-group-id}/rules:
get:
description: Get the Firewall Rules for a Firewall Group.
operationId: list-firewall-group-rules
parameters:
- description: "The [Firewall Group id](#operation/list-firewall-groups)."
explode: false
in: path
name: firewall-group-id
required: true
schema:
type: string
style: simple
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_firewall_group_rules_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Firewall Rules
tags:
- firewall
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: "Create a Firewall Rule for a Firewall Group. The attributes `ip_type`,\
\ `protocol`, `subnet`, and `subnet_size` are required."
operationId: post-firewalls-firewall-group-id-rules
parameters:
- description: "The [Firewall Group id](#operation/list-firewall-groups)."
explode: false
in: path
name: firewall-group-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
ip_type: v4
protocol: tcp
port: "80"
subnet: 192.0.2.0
subnet_size: 24
source: ""
notes: Example Firewall Rule
schema:
$ref: '#/components/schemas/post_firewalls_firewall_group_id_rules_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/post_firewalls_firewall_group_id_rules_201_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create Firewall Rules
tags:
- firewall
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"ip_type" : "v4",
"protocol" : "tcp",
"port" : "80",
"subnet" : "192.0.2.0",
"subnet_size" : 24,
"source" : "",
"notes" : "Example Firewall Rule"
}'
x-content-type: application/json
x-accepts: application/json
/firewalls/{firewall-group-id}/rules/{firewall-rule-id}:
delete:
description: Delete a Firewall Rule.
operationId: delete-firewall-group-rule
parameters:
- description: "The [Firewall Group id](#operation/list-firewall-groups)."
explode: false
in: path
name: firewall-group-id
required: true
schema:
type: string
style: simple
- description: "The [Firewall Rule id](#operation/list-firewall-group-rules)."
explode: false
in: path
name: firewall-rule-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
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}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get a Firewall Rule.
operationId: get-firewall-group-rule
parameters:
- description: "The [Firewall Group id](#operation/list-firewall-groups)."
explode: false
in: path
name: firewall-group-id
required: true
schema:
type: string
style: simple
- description: "The [Firewall Rule id](#operation/list-firewall-group-rules)."
explode: false
in: path
name: firewall-rule-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/post_firewalls_firewall_group_id_rules_201_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Firewall Rule
tags:
- firewall
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules/{firewall-rule-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/iso:
get:
description: Get the ISOs in your account.
operationId: list-isos
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_isos_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List ISOs
tags:
- iso
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/iso" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new ISO in your account from `url`.
operationId: create-iso
requestBody:
content:
application/json:
examples:
request:
value:
url: http://example.com/my-iso.iso
schema:
$ref: '#/components/schemas/create_iso_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_iso_201_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create ISO
tags:
- iso
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/iso" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"url" : "https://example.com/my-iso.iso"
}'
x-content-type: application/json
x-accepts: application/json
/iso/{iso-id}:
delete:
description: Delete an ISO.
operationId: delete-iso
parameters:
- description: "The [ISO id](#operation/list-isos)."
explode: false
in: path
name: iso-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete ISO
tags:
- iso
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/iso/{iso-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information for an ISO.
operationId: iso-get
parameters:
- description: "The [ISO id](#operation/list-isos)."
explode: false
in: path
name: iso-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_iso_201_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get ISO
tags:
- iso
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/iso/{iso-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/iso-public:
get:
description: List all Vultr Public ISOs.
operationId: list-public-isos
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_public_isos_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
security: []
summary: List Public ISOs
tags:
- iso
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/iso-public" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/object-storage:
get:
description: Get a list of all Object Storage in your account.
operationId: list-object-storages
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_object_storages_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
security:
- API Key: []
summary: List Object Storages
tags:
- s3
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/object-storage" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create new Object Storage. The `cluster_id` attribute is required.
operationId: create-object-storage
requestBody:
content:
application/json:
examples:
example request:
value:
label: Example Object Storage
cluster_id: 2
schema:
$ref: '#/components/schemas/create_object_storage_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_object_storage_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
security:
- API Key: []
summary: Create Object Storage
tags:
- s3
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/object-storage" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"label" : "Example Object Storage",
"cluster_id" : 2
}'
x-content-type: application/json
x-accepts: application/json
/object-storage/{object-storage-id}:
delete:
description: Delete an Object Storage.
operationId: delete-object-storage
parameters:
- description: "The [Object Storage id](#operation/list-object-storages)."
explode: false
in: path
name: object-storage-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Delete Object Storage
tags:
- s3
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/object-storage/{object-storage-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about an Object Storage.
operationId: get-object-storage
parameters:
- description: "The [Object Storage id](#operation/list-object-storages)."
explode: false
in: path
name: object-storage-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_object_storage_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Object Storage
tags:
- s3
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/object-storage/{object-storage-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: Update the label for an Object Storage.
operationId: update-object-storage
parameters:
- description: "The [Object Storage id](#operation/list-object-storages)."
explode: false
in: path
name: object-storage-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
label: Updated Object Storage Label
schema:
$ref: '#/components/schemas/update_object_storage_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Update Object Storage
tags:
- s3
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/object-storage/{object-storage-id}" \
-X PATCH \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"label" : "Updated Object Storage Label"
}'
x-content-type: application/json
x-accepts: application/json
/object-storage/{object-storage-id}/regenerate-keys:
post:
description: Regenerate the keys for an Object Storage.
operationId: regenerate-object-storage-keys
parameters:
- description: "The [Object Storage id](#operation/list-object-storages)."
explode: false
in: path
name: object-storage-id
required: true
schema:
type: string
style: simple
responses:
"201":
content:
application/json:
examples:
response:
value:
s3_credentials:
s3_hostname: ewr1.vultrobjects.com
s3_access_key: 00example11223344
s3_secret_key: 00example1122334455667788990011
schema:
$ref: '#/components/schemas/regenerate_object_storage_keys_201_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
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" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/object-storage/clusters:
get:
description: Get a list of all Object Storage Clusters.
operationId: list-object-storage-clusters
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
examples:
response:
value:
clusters:
- id: 2
region: ewr
hostname: ewr1.vultrobjects.com
deploy: "yes"
meta:
total: 1
links:
next: ""
prev: ""
schema:
$ref: '#/components/schemas/list_object_storage_clusters_200_response'
description: OK
security: []
summary: Get All Clusters
tags:
- s3
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/object-storage/clusters" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/domains:
get:
description: List all DNS Domains in your account.
operationId: list-dns-domains
parameters:
- description: |
Number of items requested per page. Default is 100 and Max is 500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_dns_domains_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List DNS Domains
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a DNS Domain for `domain`. If no `ip` address is supplied
a domain with no records will be created.
operationId: create-dns-domain
requestBody:
content:
application/json:
examples:
request:
value:
domain: example.com
ip: 192.0.2.123
dns_sec: enabled
schema:
$ref: '#/components/schemas/create_dns_domain_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"200":
content:
application/json:
examples:
response:
value:
domain:
domain: example.com
date_created: 2020-10-10T01:56:20+00:00
dns_sec: enabled
schema:
$ref: '#/components/schemas/create_dns_domain_200_response'
description: OK
security:
- API Key: []
summary: Create DNS Domain
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"domain" : "example.com",
"ip" : "192.0.2.123",
"dns_sec" : "enabled"
}'
x-content-type: application/json
x-accepts: application/json
/domains/{dns-domain}:
delete:
description: Delete the DNS Domain.
operationId: delete-dns-domain
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Domain
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information for the DNS Domain.
operationId: get-dns-domain
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
response:
value:
domain:
domain: example.com
date_created: 2020-10-10T01:56:20+00:00
dns_sec: enabled
schema:
$ref: '#/components/schemas/create_dns_domain_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get DNS Domain
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: 'Update the DNS Domain. '
operationId: update-dns-domain
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
dns_sec: enabled
schema:
$ref: '#/components/schemas/update_dns_domain_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
summary: Update a DNS Domain
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"dns_sec" : "enabled"
}'
x-content-type: application/json
x-accepts: application/json
/domains/{dns-domain}/soa:
get:
description: Get SOA information for the DNS Domain.
operationId: get-dns-domain-soa
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
response:
value:
dns_soa:
nsprimary: ns1.vultr.com
email: admin@example.com
schema:
$ref: '#/components/schemas/get_dns_domain_soa_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get SOA information
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}/soa" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
patch:
description: "Update the SOA information for the DNS Domain. All attributes\
\ are optional. If not set, the attributes will retain their original values."
operationId: update-dns-domain-soa
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
nsprimary: ns1.vultr.com
email: admin@example.com
schema:
$ref: '#/components/schemas/update_dns_domain_soa_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Update SOA information
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}/soa" \
-X PATCH \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"nsprimary" : "ns1.vultr.com",
"email" : "admin@example.com"
}'
x-content-type: application/json
x-accepts: application/json
/domains/{dns-domain}/dnssec:
get:
description: Get the DNSSEC information for the DNS Domain.
operationId: get-dns-domain-dnssec
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_dns_domain_dnssec_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get DNSSec Info
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}/dnssec" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/domains/{dns-domain}/records:
get:
description: Get the DNS records for the Domain.
operationId: list-dns-domain-records
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_dns_domain_records_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Records
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}/records" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a DNS record.
operationId: create-dns-domain-record
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
name: www
type: A
data: 192.0.2.123
ttl: 300
priority: 0
schema:
$ref: '#/components/schemas/create_dns_domain_record_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"201":
content:
application/json:
examples:
response:
value:
record:
id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
type: A
name: www
data: 192.0.2.123
priority: 0
ttl: 300
schema:
$ref: '#/components/schemas/create_dns_domain_record_201_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Create Record
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}/records" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"name" : "www",
"type" : "A",
"data" : "192.0.2.123",
"ttl" : 300,
"priority" : 0
}'
x-content-type: application/json
x-accepts: application/json
/domains/{dns-domain}/records/{record-id}:
delete:
description: Delete the DNS record.
operationId: delete-dns-domain-record
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
- description: "The [DNS Record id](#operation/list-dns-domain-records)."
explode: false
in: path
name: record-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Record
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}/records/{record-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information for a DNS Record.
operationId: get-dns-domain-record
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
- description: "The [DNS Record id](#operation/list-dns-domain-records)."
explode: false
in: path
name: record-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
response:
value:
record:
id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
type: A
name: www
data: 192.0.2.123
priority: 0
ttl: 300
schema:
$ref: '#/components/schemas/create_dns_domain_record_201_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Record
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}/records/{record-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
patch:
description: "Update the information for a DNS record. All attributes are optional.\
\ If not set, the attributes will retain their original values."
operationId: update-dns-domain-record
parameters:
- description: "The [DNS Domain](#operation/list-dns-domains)."
explode: false
in: path
name: dns-domain
required: true
schema:
type: string
style: simple
- description: "The [DNS Record id](#operation/list-dns-domain-records)."
explode: false
in: path
name: record-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
name: CNAME
data: foo.example.com
ttl: 300
priority: 0
schema:
$ref: '#/components/schemas/update_dns_domain_record_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
security:
- API Key: []
summary: Update Record
tags:
- dns
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/domains/{dns-domain}/records/{record-id}}" \
-X PATCH \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"name" : "CNAME",
"data" : "foo.example.com",
"ttl" : 300,
"priority" : 0
}'
x-content-type: application/json
x-accepts: application/json
/regions:
get:
description: List all Regions at Vultr.
operationId: list-regions
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_regions_200_response'
description: OK
security: []
summary: List Regions
tags:
- region
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/regions" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/regions/{region-id}/availability:
get:
description: Get a list of the available plans in Region `region-id`. Not all
plans are available in all regions.
operationId: list-available-plans-region
parameters:
- description: "The [Region id](#operation/list-regions)."
explode: false
in: path
name: region-id
required: true
schema:
type: string
style: simple
- description: |
Filter the results by type.
| **Type** | **Description** |
|----------|-----------------|
| all | All available types |
| vc2 | Cloud Compute |
| vdc | Dedicated Cloud |
| vhf | High Frequency Compute |
| vhp | High Performance |
| voc | All Optimized Cloud types |
| voc-g | General Purpose Optimized Cloud |
| voc-c | CPU Optimized Cloud |
| voc-m | Memory Optimized Cloud |
| voc-s | Storage Optimized Cloud |
| vbm | Bare Metal |
| vcg | Cloud GPU |
explode: true
in: query
name: type
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/list_available_plans_region_200_response'
description: OK
security: []
summary: List available plans in region
tags:
- region
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/regions/{region-id}/availability" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/load-balancers:
get:
description: List the Load Balancers in your account.
operationId: list-load-balancers
parameters:
- description: |
Number of items requested per page. Default is 100 and Max is 500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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
nodes: 1
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: ""
schema:
$ref: '#/components/schemas/list_load_balancers_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Load Balancers
tags:
- load-balancer
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/load-balancers" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new Load Balancer in a particular `region`.
operationId: create-load-balancer
requestBody:
content:
application/json:
examples:
request:
value:
region: ewr
balancing_algorithm: roundrobin
ssl_redirect: false
http2: false
nodes: 1
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
schema:
$ref: '#/components/schemas/create_load_balancer_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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
nodes: 1
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: []
schema:
$ref: '#/components/schemas/create_load_balancer_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Create Load Balancer
tags:
- load-balancer
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/load-balancers" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "ewr",
"balancing_algorithm" : "roundrobin",
"ssl_redirect" : false,
"http2": false,
"proxy_protocol" : false,
"label" : "Example Load Balancer",
"nodes" : 1,
"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" : "0.0.0.0/0",
"ip_type" : "v4",
}
]
}'
x-content-type: application/json
x-accepts: application/json
/load-balancers/{load-balancer-id}:
delete:
description: Delete a Load Balancer.
operationId: delete-load-balancer
parameters:
- description: "The [Load Balancer id](#operation/list-load-balancers)."
explode: false
in: path
name: load-balancer-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Load Balancer
tags:
- load-balancer
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information for a Load Balancer.
operationId: get-load-balancer
parameters:
- description: "The [Load Balancer id](#operation/list-load-balancers)."
explode: false
in: path
name: load-balancer-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
nodes: 1
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: []
schema:
$ref: '#/components/schemas/create_load_balancer_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Load Balancer
tags:
- load-balancer
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
patch:
description: "Update information for a Load Balancer. All attributes are optional.\
\ If not set, the attributes will retain their original values."
operationId: update-load-balancer
parameters:
- description: "The [Load Balancer id](#operation/list-load-balancers)."
explode: false
in: path
name: load-balancer-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
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
nodes: 1
balancing_algorithm: roundrobin
instances:
- cb676a46-66fd-4dfb-b839-443f2e6c0b60
vpc: 9fed374c-0afc-42bf-926c-abcf840b5406
schema:
$ref: '#/components/schemas/update_load_balancer_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Update Load Balancer
tags:
- load-balancer
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}" \
-X PATCH \
-H "Authorization: Bearer ${VULTR_API_KEY}"
-H "Content-Type: application/json" \
--data '{
"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
}
],
"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,
"nodes": 1,
"balancing_algorithm": "roundrobin",
"instances": [
"73d85156c2c3129d"
]
}'
x-content-type: application/json
x-accepts: application/json
/load-balancers/{load-balancer-id}/ssl:
delete:
description: Delete a Load Balancer SSL.
operationId: delete-load-balancer-ssl
parameters:
- description: "The [Load Balancer id](#operation/delete-load-balancer-ssl)."
explode: false
in: path
name: load-balancer-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Load Balancer SSL
tags:
- load-balancer
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/ssl" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/load-balancers/{load-balancer-id}/forwarding-rules:
get:
description: List the fowarding rules for a Load Balancer.
operationId: list-load-balancer-forwarding-rules
parameters:
- description: "The [Load Balancer id](#operation/list-load-balancers)."
explode: false
in: path
name: load-balancer-id
required: true
schema:
type: string
style: simple
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_load_balancer_forwarding_rules_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
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" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new forwarding rule for a Load Balancer.
operationId: create-load-balancer-forwarding-rules
parameters:
- description: "The [Load Balancer id](#operation/list-load-balancers)."
explode: false
in: path
name: load-balancer-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
response:
value:
frontend_protocol: http
frontend_port: 8080
backend_protocol: http
backend_port: 80
schema:
$ref: '#/components/schemas/create_load_balancer_forwarding_rules_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
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" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"frontend_protocol" : "http",
"frontend_port" : 8080,
"backend_protocol" : "http",
"backend_port" : 80
}'
x-content-type: application/json
x-accepts: application/json
/load-balancers/{load-balancer-id}/forwarding-rules/{forwarding-rule-id}:
delete:
description: Delete a Forwarding Rule on a Load Balancer.
operationId: delete-load-balancer-forwarding-rule
parameters:
- description: "The [Load Balancer id](#operation/list-load-balancers)."
explode: false
in: path
name: load-balancer-id
required: true
schema:
type: string
style: simple
- description: "The [Forwarding Rule id](#operation/list-load-balancer-forwarding-rules)."
explode: false
in: path
name: forwarding-rule-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
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}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information for a Forwarding Rule on a Load Balancer.
operationId: get-load-balancer-forwarding-rule
parameters:
- description: "The [Load Balancer id](#operation/list-load-balancers)."
explode: false
in: path
name: load-balancer-id
required: true
schema:
type: string
style: simple
- description: "The [Forwarding Rule id](#operation/list-load-balancer-forwarding-rules)."
explode: false
in: path
name: forwarding-rule-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
response:
value:
forwarding_rule:
id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
frontend_protocol: http
frontend_port: 8080
backend_protocol: http
backend_port: 80
schema:
$ref: '#/components/schemas/get_load_balancer_forwarding_rule_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
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}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/plans:
get:
description: |
Get a list of all VPS plans at Vultr.
The response is an array of JSON `plan` objects, with unique `id` with sub-fields in the general format of:
---
For example: `vc2-24c-96gb-sc1`
More about the sub-fields:
* ``: The Vultr type code. For example, `vc2`, `vhf`, `vdc`, etc.
* ``: The number of cores, such as `4c` for "4 cores", `8c` for "8 cores", etc.
* ``: Size in GB, such as `32gb`.
* ``: Some plans include a modifier for internal identification purposes, such as CPU type or location surcharges.
> 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.
operationId: list-plans
parameters:
- description: |-
Filter the results by type.
| **Type** | **Description** |
|----------|-----------------|
| all | All available types |
| vc2 | Cloud Compute |
| vdc | Dedicated Cloud |
| vhf | High Frequency Compute |
| vhp | High Performance |
| voc | All Optimized Cloud types |
| voc-g | General Purpose Optimized Cloud |
| voc-c | CPU Optimized Cloud |
| voc-m | Memory Optimized Cloud |
| voc-s | Storage Optimized Cloud |
| vcg | Cloud GPU |
explode: true
in: query
name: type
required: false
schema:
type: string
style: form
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
- description: |-
Filter the results by operating system.
| | Type | Description |
| - | ------ | ------------- |
| | windows | All available plans that support windows |
explode: true
in: query
name: os
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_plans_200_response'
description: OK
security: []
summary: List Plans
tags:
- plans
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/plans" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/plans-metal:
get:
description: |
Get a list of all Bare Metal plans at Vultr.
The response is an array of JSON `plan` objects, with unique `id` with sub-fields in the general format of:
---
For example: `vc2-24c-96gb-sc1`
More about the sub-fields:
* ``: The Vultr type code. For example, `vc2`, `vhf`, `vdc`, etc.
* ``: The number of cores, such as `4c` for "4 cores", `8c` for "8 cores", etc.
* ``: Size in GB, such as `32gb`.
* ``: Some plans include a modifier for internal identification purposes, such as CPU type or location surcharges.
> 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.
operationId: list-metal-plans
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: string
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_metal_plans_200_response'
description: OK
security: []
summary: List Bare Metal Plans
tags:
- plans
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/plans-metal" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/bare-metals:
get:
description: List all Bare Metal instances in your account.
operationId: list-baremetals
parameters:
- description: |
Number of items requested per page. Default is 100 and Max is 500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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
user_scheme: root
meta:
total: 1
links:
next: ""
prev: ""
schema:
$ref: '#/components/schemas/list_baremetals_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Bare Metal Instances
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: |-
Create a new Bare Metal instance in a `region` with the desired `plan`. Choose one of the following to deploy the instance:
* `os_id`
* `snapshot_id`
* `app_id`
* `image_id`
Supply other attributes as desired.
operationId: create-baremetal
requestBody:
content:
application/json:
examples:
request:
value:
region: ams
plan: vbm-4c-32gb
label: Example Bare Metal
app_id: 3
enable_ipv6: true
schema:
$ref: '#/components/schemas/create_baremetal_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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
user_scheme: root
schema:
$ref: '#/components/schemas/create_baremetal_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Create Bare Metal Instance
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "ams",
"plan" : "vbm-4c-32gb",
"label" : "Example Bare Metal",
"app_id" : 3,
"enable_ipv6" : true
}'
x-content-type: application/json
x-accepts: application/json
/bare-metals/{baremetal-id}:
delete:
description: Delete a Bare Metal instance.
operationId: delete-baremetal
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Bare Metal
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information for a Bare Metal instance.
operationId: get-baremetal
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
user_scheme: root
schema:
$ref: '#/components/schemas/get_baremetal_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Bare Metal
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
patch:
description: |-
Update a Bare Metal instance. All attributes are optional. If not set, the attributes will retain their original values.
**Note:** Changing `os_id`, `app_id` or `image_id` may take a few extra seconds to complete.
operationId: update-baremetal
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
label: Updated Bare Metal Label
tags:
- a tag
- another
user_data: QmFzZTY0IEV4YW1wbGUgRGF0YQ==
schema:
$ref: '#/components/schemas/update_baremetal_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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
user_scheme: root
schema:
$ref: '#/components/schemas/get_baremetal_200_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Update Bare Metal
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}" \
-X PATCH \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"label" : "Updated Bare Metal Label",
"tags" : ["a tag", "another"],
"user_data" : "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}'
x-content-type: application/json
x-accepts: application/json
/bare-metals/{baremetal-id}/ipv4:
get:
description: Get the IPv4 information for the Bare Metal instance.
operationId: get-ipv4-baremetal
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/get_ipv4_baremetal_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Bare Metal IPv4 Addresses
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/ipv4" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/bare-metals/{baremetal-id}/ipv6:
get:
description: Get the IPv6 information for the Bare Metal instance.
operationId: get-ipv6-baremetal
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/get_ipv6_baremetal_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Bare Metal IPv6 Addresses
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/ipv6" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/bare-metals/{baremetal-id}/start:
post:
description: Start the Bare Metal instance.
operationId: start-baremetal
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Start Bare Metal
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/start" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/bare-metals/{baremetal-id}/reboot:
post:
description: Reboot the Bare Metal instance.
operationId: reboot-baremetal
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Reboot Bare Metal
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/reboot" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/bare-metals/{baremetal-id}/reinstall:
post:
description: |-
Reinstall the Bare Metal instance using an optional `hostname`.
**Note:** This action may take some time to complete.
operationId: reinstall-baremetal
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
hostname: my_new_hostname
schema:
$ref: '#/components/schemas/reinstall_baremetal_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/get_baremetal_200_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Reinstall Bare Metal
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/reinstall" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
--data '{
"hostname" : "my_new_hostname"
}'
x-content-type: application/json
x-accepts: application/json
/bare-metals/{baremetal-id}/halt:
post:
description: Halt the Bare Metal instance.
operationId: halt-baremetal
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Halt Bare Metal
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/halt" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/bare-metals/{baremetal-id}/bandwidth:
get:
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.
operationId: get-bandwidth-baremetal
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
bandwidth:
value:
bandwidth:
"2020-07-25":
incoming_bytes: 15989787
outgoing_bytes: 25327729
"2020-07-26":
incoming_bytes: 13964112
outgoing_bytes: 22257069
schema:
$ref: '#/components/schemas/get_bandwidth_baremetal_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Bare Metal Bandwidth
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/bandwidth" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/bare-metals/halt:
post:
description: Halt Bare Metals.
operationId: halt-baremetals
requestBody:
content:
application/json:
examples:
example:
value:
baremetal_ids:
- cb676a46-66fd-4dfb-b839-443f2e6c0b60
- 7f6f84ea-8f87-4d9e-af01-ac44db05911c
- 54a83807-64ce-42e8-a0da-4d6c31c5b93b
schema:
$ref: '#/components/schemas/halt_baremetals_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Halt Bare Metals
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/halt" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"baremetal_ids" : [
"cb676a46-66fd-4dfb-b839-443f2e6c0b60",
"7f6f84ea-8f87-4d9e-af01-ac44db05911c",
"54a83807-64ce-42e8-a0da-4d6c31c5b93b"
]
}'
x-content-type: application/json
x-accepts: application/json
/bare-metals/reboot:
post:
description: Reboot Bare Metals.
operationId: reboot-bare-metals
requestBody:
content:
application/json:
examples:
example:
value:
baremetal_ids:
- cb676a46-66fd-4dfb-b839-443f2e6c0b60
- 54a83807-64ce-42e8-a0da-4d6c31c5b93b
- d092ee75-a113-480c-ae2e-e24cc6f588c3
schema:
$ref: '#/components/schemas/halt_baremetals_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Reboot Bare Metals
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/reboot" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"baremetal_ids" : [
"cb676a46-66fd-4dfb-b839-443f2e6c0b60",
"54a83807-64ce-42e8-a0da-4d6c31c5b93b",
"d092ee75-a113-480c-ae2e-e24cc6f588c3"
]
}'
x-content-type: application/json
x-accepts: application/json
/bare-metals/start:
post:
description: Start Bare Metals.
operationId: start-bare-metals
requestBody:
content:
application/json:
examples:
example:
value:
baremetal_ids:
- cb676a46-66fd-4dfb-b839-443f2e6c0b60
- 1d651bd2-b93c-4bb6-8b91-0546fd765f15
- c2790719-278d-474c-8dff-cb35d6e5503f
schema:
$ref: '#/components/schemas/halt_baremetals_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Start Bare Metals
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/start" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"baremetal_ids" : [
"cb676a46-66fd-4dfb-b839-443f2e6c0b60",
"1d651bd2-b93c-4bb6-8b91-0546fd765f15",
"c2790719-278d-474c-8dff-cb35d6e5503f"
]
}'
x-content-type: application/json
x-accepts: application/json
/bare-metals/{baremetal-id}/user-data:
get:
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."
operationId: get-bare-metal-userdata
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
response:
value:
user_data:
data: QmFzZTY0IEV4YW1wbGUgRGF0YQ==
schema:
$ref: '#/components/schemas/get_bare_metal_userdata_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
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" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances:
get:
description: List all VPS instances in your account.
operationId: list-instances
parameters:
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
- deprecated: true
description: Filter by specific tag.
explode: true
in: query
name: tag
required: false
schema:
type: string
style: form
- description: Filter by label.
explode: true
in: query
name: label
required: false
schema:
type: string
style: form
- description: Filter by main ip address.
explode: true
in: query
name: main_ip
required: false
schema:
type: string
style: form
- description: "Filter by [Region id](#operation/list-regions)."
explode: true
in: query
name: region
required: false
schema:
type: string
style: form
- description: "Filter by [Firewall group id](#operation/list-firewall-groups)."
explode: true
in: query
name: firewall_group_id
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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
user_scheme: root
meta:
total: 3
links:
next: WxYzExampleNext
prev: ""
schema:
$ref: '#/components/schemas/list_instances_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: List Instances
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: |-
Create a new VPS Instance in a `region` with the desired `plan`. Choose one of the following to deploy the instance:
* `os_id`
* `iso_id`
* `snapshot_id`
* `app_id`
* `image_id`
Supply other attributes as desired.
operationId: create-instance
requestBody:
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_instance_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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
user_scheme: root
schema:
$ref: '#/components/schemas/create_instance_202_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Create Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "ewr",
"plan" : "vc2-6c-16gb",
"label" : "Example Instance",
"os_id" : 215,
"user_data" : "QmFzZTY0IEV4YW1wbGUgRGF0YQ==",
"backups" : "enabled",
"hostname": "my_hostname",
"tags": [
"a tag",
"another"
]
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}:
delete:
description: Delete an Instance.
operationId: delete-instance
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about an Instance.
operationId: get-instance
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
user_scheme: root
schema:
$ref: '#/components/schemas/create_instance_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
patch:
description: |-
Update information for an Instance. All attributes are optional. If not set, the attributes will retain their original values.
**Note:** Changing `os_id`, `app_id` or `image_id` may take a few extra seconds to complete.
operationId: update-instance
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
label: Example Instance
tags:
- a tag
- another
plan: vc2-24c-97gb
schema:
$ref: '#/components/schemas/update_instance_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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
user_scheme: root
schema:
$ref: '#/components/schemas/create_instance_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Update Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}" \
-X PATCH \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"label" : "Example Instance",
"tags" : ["a tag", "another"],
"plan" : "vc2-24c-97gb"
}'
x-content-type: application/json
x-accepts: application/json
/instances/halt:
post:
description: Halt Instances.
operationId: halt-instances
requestBody:
content:
application/json:
examples:
example:
value:
instance_ids:
- cb676a46-66fd-4dfb-b839-443f2e6c0b60
- 1d651bd2-b93c-4bb6-8b91-0546fd765f15
- c2790719-278d-474c-8dff-cb35d6e5503f
schema:
$ref: '#/components/schemas/halt_instances_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Halt Instances
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/halt" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"instance_ids" : [
"cb676a46-66fd-4dfb-b839-443f2e6c0b60",
"1d651bd2-b93c-4bb6-8b91-0546fd765f15",
"c2790719-278d-474c-8dff-cb35d6e5503f"
]
}'
x-content-type: application/json
x-accepts: application/json
/instances/reboot:
post:
description: Reboot Instances.
operationId: reboot-instances
requestBody:
content:
application/json:
examples:
example:
value:
instance_ids:
- cb676a46-66fd-4dfb-b839-443f2e6c0b60
- 1d651bd2-b93c-4bb6-8b91-0546fd765f15
- c2790719-278d-474c-8dff-cb35d6e5503f
schema:
$ref: '#/components/schemas/reboot_instances_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Reboot instances
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/reboot" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"instance_ids" : [
"cb676a46-66fd-4dfb-b839-443f2e6c0b60",
"1d651bd2-b93c-4bb6-8b91-0546fd765f15",
"c2790719-278d-474c-8dff-cb35d6e5503f"
]
}'
x-content-type: application/json
x-accepts: application/json
/instances/start:
post:
description: Start Instances.
operationId: start-instances
requestBody:
content:
application/json:
examples:
example:
value:
instance_ids:
- cb676a46-66fd-4dfb-b839-443f2e6c0b60
- 1d651bd2-b93c-4bb6-8b91-0546fd765f15
- c2790719-278d-474c-8dff-cb35d6e5503f
schema:
$ref: '#/components/schemas/start_instances_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Start instances
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/start" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"instance_ids" : [
"cb676a46-66fd-4dfb-b839-443f2e6c0b60",
"1d651bd2-b93c-4bb6-8b91-0546fd765f15",
"c2790719-278d-474c-8dff-cb35d6e5503f"
]
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/start:
post:
description: Start an Instance.
operationId: start-instance
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Start instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/start" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/reboot:
post:
description: Reboot an Instance.
operationId: reboot-instance
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Reboot Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/reboot" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/reinstall:
post:
description: |-
Reinstall an Instance using an optional `hostname`.
**Note:** This action may take a few extra seconds to complete.
operationId: reinstall-instance
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
hostname: my_new_hostname
schema:
$ref: '#/components/schemas/reinstall_instance_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_instance_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Reinstall Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/reinstall" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"hostname" : "my_new_hostname"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/bandwidth:
get:
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.
operationId: get-instance-bandwidth
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
- description: "The range of days to include, represented as the number of days\
\ relative to the current date. Default 30, Minimum 1 and Max 60."
explode: true
in: query
name: date_range
required: false
schema:
type: integer
style: form
responses:
"200":
content:
application/json:
examples:
bandwidth:
value:
bandwidth:
"2020-07-25":
incoming_bytes: 15989787
outgoing_bytes: 25327729
"2020-07-26":
incoming_bytes: 13964112
outgoing_bytes: 22257069
schema:
$ref: '#/components/schemas/get_bandwidth_baremetal_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Instance Bandwidth
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/bandwidth" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/neighbors:
get:
description: Get a list of other instances in the same location as this Instance.
operationId: get-instance-neighbors
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
response:
value:
neighbors:
- 478dbfe7-43f8-4dc8-940c-8bb61f547400
- a8047e6b-16bd-42be-8351-58df7e5ab89c
schema:
$ref: '#/components/schemas/get_instance_neighbors_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Instance neighbors
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/neighbors" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/private-networks:
get:
deprecated: true
description: "**Deprecated**: use [List Instance VPCs](#operation/list-instance-vpcs)\
\ instead.
List the private networks for an Instance."
operationId: list-instance-private-networks
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_instance_private_networks_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List instance Private Networks
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/private-networks" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/vpcs:
get:
description: List the VPCs for an Instance.
operationId: list-instance-vpcs
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_instance_vpcs_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List instance VPCs
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/vpcs" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/vpc2:
get:
description: List the VPC 2.0 networks for an Instance.
operationId: list-instance-vpc2
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_instance_vpc2_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Instance VPC 2.0 Networks
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/vpc2" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/iso:
get:
description: Get the ISO status for an Instance.
operationId: get-instance-iso-status
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
response:
value:
iso_status:
state: ready
iso_id: 0532a75b-14e8-48b8-b27e-1ebcf382a804
schema:
$ref: '#/components/schemas/get_instance_iso_status_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Instance ISO Status
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/iso" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/iso/attach:
post:
description: Attach an ISO to an Instance.
operationId: attach-instance-iso
parameters:
- explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
iso_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
schema:
$ref: '#/components/schemas/attach_instance_iso_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
example:
value:
iso_status:
status: ismounting
iso_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
schema:
$ref: '#/components/schemas/attach_instance_iso_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Attach ISO to Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/iso/attach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"iso_id" : "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/iso/detach:
post:
description: Detach the ISO from an Instance.
operationId: detach-instance-iso
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"202":
content:
application/json:
examples:
example:
value:
iso_status:
status: isunmounting
schema:
$ref: '#/components/schemas/detach_instance_iso_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Detach ISO from instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/iso/detach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/private-networks/attach:
post:
deprecated: true
description: "Attach Private Network to an Instance.
**Deprecated**:\
\ use [Attach VPC to Instance](#operation/attach-instance-vpc) instead."
operationId: attach-instance-network
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
network_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
schema:
$ref: '#/components/schemas/attach_instance_network_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
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" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"network_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/private-networks/detach:
post:
deprecated: true
description: "Detach Private Network from an Instance.
**Deprecated**:\
\ use [Detach VPC from Instance](#operation/detach-instance-vpc) instead."
operationId: detach-instance-network
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
network_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
schema:
$ref: '#/components/schemas/detach_instance_network_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
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" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"network_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/vpcs/attach:
post:
description: Attach a VPC to an Instance.
operationId: attach-instance-vpc
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
vpc_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
schema:
$ref: '#/components/schemas/attach_instance_vpc_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Attach VPC to Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/vpcs/attach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/vpcs/detach:
post:
description: Detach a VPC from an Instance.
operationId: detach-instance-vpc
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
vpc_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
schema:
$ref: '#/components/schemas/detach_instance_vpc_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Detach VPC from Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/vpcs/detach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/vpc2/attach:
post:
description: Attach a VPC 2.0 Network to an Instance.
operationId: attach-instance-vpc2
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
vpc_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
ip_address: 10.1.144.4
schema:
$ref: '#/components/schemas/attach_instance_vpc2_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Attach VPC 2.0 Network to Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/vpc2/attach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
"ip_address": "10.1.144.4"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/vpc2/detach:
post:
description: Detach a VPC 2.0 Network from an Instance.
operationId: detach-instance-vpc2
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
vpc_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
schema:
$ref: '#/components/schemas/detach_instance_vpc2_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Detach VPC 2.0 Network from Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/vpc2/detach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/backup-schedule:
get:
description: Get the backup schedule for an Instance.
operationId: get-instance-backup-schedule
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_instance_backup_schedule_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Instance Backup Schedule
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/backup-schedule" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Set the backup schedule for an Instance in UTC. The `type` is required.
operationId: create-instance-backup-schedule
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
type: daily
hour: 10
dow: 1
dom: 1
schema:
$ref: '#/components/schemas/create_instance_backup_schedule_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"200":
description: OK
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Set Instance Backup Schedule
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/backup-schedule" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"type": "daily",
"hour": 10,
"dow": 1,
"dom": 1
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/restore:
post:
description: Restore an Instance from either `backup_id` or `snapshot_id`.
operationId: restore-instance
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
backup_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
schema:
$ref: '#/components/schemas/restore_instance_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
example:
value:
status:
restore_type: backup_id
restore_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
status: inprogress
schema:
$ref: '#/components/schemas/restore_instance_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Restore Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/restore" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"backup_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/ipv4:
get:
description: List the IPv4 information for an Instance.
operationId: get-instance-ipv4
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
- description: "If `true`, includes information about the public network adapter\
\ (such as MAC address) with the `main_ip` entry."
explode: true
in: query
name: public_network
required: false
schema:
type: boolean
style: form
- description: |
Number of items requested per page. Default is 100 and Max is 500.
explode: true
in: query
name: per_page
required: false
schema:
type: integer
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/get_ipv4_baremetal_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Instance IPv4 Information
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv4" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create an IPv4 address for an Instance.
operationId: create-instance-ipv4
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
reboot: true
schema:
$ref: '#/components/schemas/create_instance_ipv4_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
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
schema:
properties: {}
type: object
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create IPv4
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv4" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"reboot" : true
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/ipv6:
get:
description: Get the IPv6 information for an VPS Instance.
operationId: get-instance-ipv6
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/get_ipv6_baremetal_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Instance IPv6 Information
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv6" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/ipv6/reverse:
get:
description: List the reverse IPv6 information for an Instance.
operationId: list-instance-ipv6-reverse
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
response:
value:
reverse_ipv6s:
- ip: 2001:0db8:5:6bb:5400:2ff:fee5:1
reverse: foo.example.com
schema:
$ref: '#/components/schemas/list_instance_ipv6_reverse_200_response'
description: OK
security:
- API Key: []
summary: List Instance IPv6 Reverse
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv6/reverse" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: "Create a reverse IPv6 entry for an Instance. The `ip` and `reverse`\
\ attributes are required. IP address must be in full, expanded format."
operationId: create-instance-reverse-ipv6
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
ip: 2001:0db8:0005:6bb0:5400:2ff0:fee5:0002
reverse: foo.example.com
schema:
$ref: '#/components/schemas/create_instance_reverse_ipv6_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create Instance Reverse IPv6
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv6/reverse" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"ip" : "2001:0db8:5:6bb:5400:2ff:fee5:2",
"reverse" : "foo.example.com"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/ipv4/reverse:
post:
description: 'Create a reverse IPv4 entry for an Instance. The `ip` and `reverse`
attributes are required. '
operationId: create-instance-reverse-ipv4
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
ip: 192.0.2.123
reverse: foo.example.com
schema:
$ref: '#/components/schemas/create_instance_reverse_ipv4_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create Instance Reverse IPv4
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv4/reverse" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"ip" : "192.0.2.123",
"reverse" : "foo.example.com"
}'
x-content-type: application/json
x-accepts: application/json
/backups/{backup-id}:
get:
description: Get the information for the Backup.
operationId: get-backup
parameters:
- description: "The [Backup id](#operation/list-backups)."
explode: false
in: path
name: backup-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_backup_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get a Backup
tags:
- backup
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/backups/{backup-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/user-data:
get:
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."
operationId: get-instance-userdata
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
response:
value:
user_data:
data: QmFzZTY0IEV4YW1wbGUgRGF0YQ==
schema:
$ref: '#/components/schemas/get_instance_userdata_200_response'
description: OK
security:
- API Key: []
summary: Get Instance User Data
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/user-data" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/halt:
post:
description: Halt an Instance.
operationId: halt-instance
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Halt Instance
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/halt" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/ipv4/reverse/default:
post:
description: Set a reverse DNS entry for an IPv4 address
operationId: post-instances-instance-id-ipv4-reverse-default
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
ip: 192.0.2.123
schema:
$ref: '#/components/schemas/post_instances_instance_id_ipv4_reverse_default_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Set Default Reverse DNS Entry
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/reverse/default" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"ip" : "192.0.2.123"
}'
x-content-type: application/json
x-accepts: application/json
/instances/{instance-id}/ipv4/{ipv4}:
delete:
description: Delete an IPv4 address from an Instance.
operationId: delete-instance-ipv4
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
- description: The IPv4 address.
explode: false
in: path
name: ipv4
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
security:
- API Key: []
summary: Delete IPv4 Address
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv4/{ipv4}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/ipv6/reverse/{ipv6}:
delete:
description: Delete the reverse IPv6 for an Instance.
operationId: delete-instance-reverse-ipv6
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
- description: The IPv6 address.
explode: false
in: path
name: ipv6
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
security:
- API Key: []
summary: Delete Instance Reverse IPv6
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv6/reverse/{ipv6}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/instances/{instance-id}/upgrades:
get:
description: Get available upgrades for an Instance
operationId: get-instance-upgrades
parameters:
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: instance-id
required: true
schema:
type: string
style: simple
- description: |-
Filter upgrade by type:
- all (applications, os, plans)
- applications
- os
- plans
explode: true
in: query
name: type
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_instance_upgrades_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Available Instance Upgrades
tags:
- instances
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/instances/{instance-id}/upgrades" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/bare-metals/{baremetal-id}/upgrades:
get:
description: Get available upgrades for a Bare Metal
operationId: get-bare-metals-upgrades
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
- description: |-
Filter upgrade by type:
- all (applications, plans)
- applications
- os
explode: true
in: query
name: type
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_bare_metals_upgrades_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Available Bare Metal Upgrades
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/upgrades" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/bare-metals/{baremetal-id}/vnc:
get:
description: Get the VNC URL for a Bare Metal
operationId: get-bare-metal-vnc
parameters:
- description: "The [Bare Metal id](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
example:
value:
vnc:
url: https://my.vultr.com/subs/baremetal/novnc/api.php?data=00example11223344
schema:
$ref: '#/components/schemas/get_bare_metal_vnc_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
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" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/bare-metals/{baremetal-id}/vpc2/attach:
post:
description: Attach a VPC 2.0 Network to a Bare Metal Instance.
operationId: attach-baremetals-vpc2
parameters:
- description: "The [Bare Metal ID](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
vpc_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
ip_address: 10.1.144.4
schema:
$ref: '#/components/schemas/attach_baremetals_vpc2_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Attach VPC 2.0 Network to Bare Metal Instance
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/vpc2/attach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
"ip_address": "10.1.144.4"
}'
x-content-type: application/json
x-accepts: application/json
/bare-metals/{baremetal-id}/vpc2/detach:
post:
description: Detach a VPC 2.0 Network from an Bare Metal Instance.
operationId: detach-baremetal-vpc2
parameters:
- description: "The [bare-metal ID](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
vpc_id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
schema:
$ref: '#/components/schemas/detach_baremetal_vpc2_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Detach VPC 2.0 Network from Bare Metal Instance
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/vpc2/detach" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}'
x-content-type: application/json
x-accepts: application/json
/bare-metals/{baremetal-id}/vpc2:
get:
description: List the VPC 2.0 networks for a Bare Metal Instance.
operationId: list-baremetal-vpc2
parameters:
- description: "The [Bare Metal ID](#operation/list-baremetals)."
explode: false
in: path
name: baremetal-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
response:
value:
vpcs:
- id: d325e78b-bcec-4d4e-b9b8-9c294f37b04d
mac_address: 00:00:5e:00:53:5e
ip_address: 10.99.0.123
schema:
$ref: '#/components/schemas/list_baremetal_vpc2_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Bare Metal Instance VPC 2.0 Networks
tags:
- baremetal
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/vpc2" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/load-balancers/{loadbalancer-id}/firewall-rules:
get:
description: List the firewall rules for a Load Balancer.
operationId: list-loadbalancer-firewall-rules
parameters:
- explode: false
in: path
name: loadbalancer-id
required: true
schema:
type: string
style: simple
- description: Number of items requested per page. Default is 100 and Max is
500.
explode: true
in: query
name: per_page
required: false
schema:
type: string
style: form
- description: "Cursor for paging. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)."
explode: true
in: query
name: cursor
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
examples:
Response:
value:
firewall_rules:
- id: asb123f2e6c0b60
port: 80
source: 24.187.16.196/16
ip_type: v4
meta:
total: 1
links:
next: ""
prev: ""
schema:
$ref: '#/components/schemas/loadbalancer-firewall-rule'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
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" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/load-balancers/{loadbalancer-id}/firewall-rules/{firewall-rule-id}:
get:
description: Get a firewall rule for a Load Balancer.
operationId: get-loadbalancer-firewall-rule
parameters:
- explode: false
in: path
name: loadbalancer-id
required: true
schema:
type: string
style: simple
- explode: false
in: path
name: firewall-rule-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
Example:
value:
firewall_rule:
id: asb123f2e6c0b60
port: 80
source: 24.187.16.196/16
ip_type: v4
schema:
$ref: '#/components/schemas/loadbalancer-firewall-rule'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
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}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/kubernetes/clusters:
get:
description: List all Kubernetes clusters currently deployed
operationId: list-kubernetes-clusters
responses:
"200":
content:
application/json:
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
ha_controlplanes: false
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: ""
schema:
$ref: '#/components/schemas/list_kubernetes_clusters_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List all Kubernetes Clusters
tags:
- kubernetes
x-accepts: application/json
post:
description: Create Kubernetes Cluster
operationId: create-kubernetes-cluster
requestBody:
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_kubernetes_cluster_request'
description: Request Body
responses:
"201":
content:
application/json:
examples:
example create response:
value:
vke_cluster:
id: 455dcd32-e621-48ee-a10e-0cb5f754e13e
firewall_group_id: ""
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
ha_controlplanes: false
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
schema:
$ref: '#/components/schemas/create_kubernetes_cluster_201_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create Kubernetes Cluster
tags:
- kubernetes
x-content-type: application/json
x-accepts: application/json
/kubernetes/clusters/{vke-id}:
delete:
description: Delete Kubernetes Cluster
operationId: delete-kubernetes-cluster
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Kubernetes Cluster
tags:
- kubernetes
x-accepts: application/json
get:
description: Get Kubernetes Cluster
operationId: get-kubernetes-clusters
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
example response:
value:
vke_cluster:
id: 455dcd32-e621-48ee-a10e-0cb5f754e13e
firewall_group_id: ""
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
ha_controlplanes: false
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
schema:
$ref: '#/components/schemas/create_kubernetes_cluster_201_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Kubernetes Cluster
tags:
- kubernetes
x-accepts: application/json
put:
description: Update Kubernetes Cluster
operationId: update-kubernetes-cluster
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example-1:
value:
label: my new label
schema:
$ref: '#/components/schemas/update_kubernetes_cluster_request'
description: Request Body
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Update Kubernetes Cluster
tags:
- kubernetes
x-content-type: application/json
x-accepts: application/json
/kubernetes/clusters/{vke-id}/delete-with-linked-resources:
delete:
description: 'Delete Kubernetes Cluster and all related resources. '
operationId: delete-kubernetes-cluster-vke-id-delete-with-linked-resources
parameters:
- explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete VKE Cluster and All Related Resources
tags:
- kubernetes
x-accepts: application/json
/kubernetes/clusters/{vke-id}/resources:
get:
description: Get the block storage volumes and load balancers deployed by the
specified Kubernetes cluster.
operationId: get-kubernetes-resources
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/get_kubernetes_resources_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Kubernetes Resources
tags:
- kubernetes
x-accepts: application/json
/kubernetes/clusters/{vke-id}/available-upgrades:
get:
description: Get the available upgrades for the specified Kubernetes cluster.
operationId: get-kubernetes-available-upgrades
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
example:
value:
available_upgrades:
- v1.22.8+3
- v1.21.11+3
schema:
$ref: '#/components/schemas/get_kubernetes_available_upgrades_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Kubernetes Available Upgrades
tags:
- kubernetes
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/kubernetes/clusters/{vke-id}/available-upgrades" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/kubernetes/clusters/{vke-id}/upgrades:
post:
description: Start a Kubernetes cluster upgrade.
operationId: start-kubernetes-cluster-upgrade
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example request:
value:
upgrade_version: v1.22.8+3
schema:
$ref: '#/components/schemas/start_kubernetes_cluster_upgrade_request'
description: Request Body
responses:
"202":
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Start Kubernetes Cluster Upgrade
tags:
- kubernetes
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/kubernetes/clusters/{vke-id}/upgrades" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"upgrade_version" : "v1.22.8+3"
}'
x-content-type: application/json
x-accepts: application/json
/kubernetes/clusters/{vke-id}/node-pools:
get:
description: List all available NodePools on a Kubernetes Cluster
operationId: get-nodepools
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/get_nodepools_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List NodePools
tags:
- kubernetes
x-accepts: application/json
post:
description: Create NodePool for a Existing Kubernetes Cluster
operationId: create-nodepools
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_nodepools_request'
description: Request Body
responses:
"201":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_nodepools_201_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Create NodePool
tags:
- kubernetes
x-content-type: application/json
x-accepts: application/json
/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}:
delete:
description: Delete a NodePool from a Kubernetes Cluster
operationId: delete-nodepool
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
- description: "The [NodePool ID](#operation/get-nodepools)."
explode: false
in: path
name: nodepool-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Nodepool
tags:
- kubernetes
x-accepts: application/json
get:
description: Get Nodepool from a Kubernetes Cluster
operationId: get-nodepool
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
- description: "The [NodePool ID](#operation/get-nodepools)."
explode: false
in: path
name: nodepool-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_nodepools_201_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get NodePool
tags:
- kubernetes
x-accepts: application/json
patch:
description: Update a Nodepool on a Kubernetes Cluster
operationId: update-nodepool
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
- description: "The [NodePool ID](#operation/get-nodepools)."
explode: false
in: path
name: nodepool-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example-1:
value:
node_quantity: 1
tag: my-tag
min_nodes: 1
max_nodes: 5
auto_scaler: true
schema:
$ref: '#/components/schemas/update_nodepool_request'
application/xml:
schema:
$ref: '#/components/schemas/update_nodepool_request_1'
description: Request Body
responses:
"202":
content:
application/json:
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
schema:
$ref: '#/components/schemas/create_nodepools_201_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Update Nodepool
tags:
- kubernetes
x-content-type: application/json
x-accepts: application/json
/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}/nodes/{node-id}:
delete:
description: Delete a single nodepool instance from a given Nodepool
operationId: delete-nodepool-instance
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
- description: "The [NodePool ID](#operation/get-nodepools)."
explode: false
in: path
name: nodepool-id
required: true
schema:
type: string
style: simple
- description: "The [Instance ID](#operation/list-instances)."
explode: false
in: path
name: node-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete NodePool Instance
tags:
- kubernetes
x-accepts: application/json
/kubernetes/clusters/{vke-id}/node-pools/{nodepool-id}/nodes/{node-id}/recycle:
post:
description: Recycle a specific NodePool Instance
operationId: recycle-nodepool-instance
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
- description: "The [NodePool ID](#operation/get-nodepools)."
explode: false
in: path
name: nodepool-id
required: true
schema:
type: string
style: simple
- description: Node ID
explode: false
in: path
name: node-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Recycle a NodePool Instance
tags:
- kubernetes
x-accepts: application/json
/kubernetes/clusters/{vke-id}/config:
get:
description: Get Kubernetes Cluster Kubeconfig
operationId: get-kubernetes-clusters-config
parameters:
- description: "The [VKE ID](#operation/list-kubernetes-clusters)."
explode: false
in: path
name: vke-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
example response:
value:
kube_config: YXBpdmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VSblZFTkRRVzF0WjBGM1NVSkJaMGxKU2psdFN6bEViRk5pY0RSM1JGRlpTa3R2V2tsb2RtTk9RVkZGVEVKUlFYZFVla1ZNVFVGclIwRXhWVVVLUW1oTlExWldUWGhHYWtGVlFtZE9Wa0pCWTFSRVZrNW9ZbWxDUjJOdFJuVlpNbXg2V1RJNGVFVjZRVkpDWjA1V1FrRnZWRU5yZERGWmJWWjVZbTFXTUFwYVdFMTRSWHBCVWtKblRsWkNRVTFVUTJ0ME1WbHRWbmxpYlZZd1dsaE5kMGhvWTA1TmFrVjNUbnBCZVUxVVNYaE5la0Y1VjJoalRrMXFTWGRPZWtGNUNrMVVTWGhOZWtGNVYycENVRTFSYzNkRFVWbEVWbEZSUjBWM1NsWlZla1ZYVFVKUlIwRXhWVVZDZUUxT1ZUSkdkVWxGV25sWlZ6VnFZVmhPYW1KNlJWUUtUVUpGUjBFeFZVVkRhRTFMVXpOV2FWcFlTblZhV0ZKc1kzcEZWRTFDUlVkQk1WVkZRWGhOUzFNelZtbGFXRXAxV2xoU2JHTjZRME5CVTBsM1JGRlpTZ3BMYjFwSmFIWmpUa0ZSUlVKQ1VVRkVaMmRGVUVGRVEwTkJVVzlEWjJkRlFrRk1laTlITXpOaVlWZG5TMU5GVmpKQ2RsQlhZbWd6WkhZclYybEhOVlJqQ2s1bllVTlZNMlJWVm5KdGNtaHVXbVJPYWtkTVl5OUJTR3RIWm1OaVIxQlRXbkJ2UVZCbWFuaGtWRTA0WlVOTFlXdGxkR0Z6YkRsdFNDOVhlVTlETXpnS1pGcEZVWGRSZWpseFIzWnpaa3BTT0RKQ01WWTBWM3AxUVdRMEwxSmtaVGxqU3psaVdIWktkRUZMU2xrNVF6aG9VM2RtTDNNM1drRlNabGxYYTIxb1R3cHZkSHBFUnpaR2JtaFljSFJtUkRZdmRXNXNXRWhyYTNveFVHSjZhR1Z2ZG5adU9GUkNUamR2UWpkTVdUaG9kRE5tVTBJeFEwSlRTMGxxV1hsaGJEaHJDbU5XZVU1R1MyUndVRVoxV0ZvelkyYzRaMHN2ZUROS1VXZHBLMGxqVTA0Mk9GZDJaa3gxYXpjM2JXOXNWWE5IY25neWNWRkZTa2RwU2k5SGEzUm5kMndLWlVnNU1FbHpMMkZDZERjd1dsaG9aM2cyTnpkSmVuTnVWMnN3UWpWSFlVeGpaRk5oYUN0WlNraGthbkpMU0N0R01qVTNWekpvTUVOQmQwVkJRV0ZPYUFwTlJqaDNSR2RaUkZaU01GQkJVVWd2UWtGUlJFRm5TMFZOUWpCSFFURlZaRXBSVVZkTlFsRkhRME56UjBGUlZVWkNkMDFEUW1kbmNrSm5SVVpDVVdORUNrRlVRVkJDWjA1V1NGSk5Ra0ZtT0VWQ1ZFRkVRVkZJTDAxQ01FZEJNVlZrUkdkUlYwSkNVME5EVWtoSmFERm1XbnBzU210MFMwVmtOalpITVZWWGRqQUtNRVJCVGtKbmEzRm9hMmxIT1hjd1FrRlJjMFpCUVU5RFFWRkZRV0V3VG1SUVlYa3dPREp0YVcxWllUa3ZOVVpMY1hWa1YwSmpabVpHVkVScFdrTmljUXA1YVUxNFZXeEVTQzl6Tm1Od1YzbEJORXRuY0ZGRWMySXdiM0pzYTNwTk1ERjNieTlsTUc1clUxTTFVVkIyWVZvNU9FaFNObFlyTUV4a0swZzViM1JCQ2xZM2VUbEdlQzlJVUhCdldGWTJhVWswYWpCaVpFdFBNMHQ0VUZKVWRsaDFRMUZETTNRd2FHc3pjVnBRSzFSalNEaHhWRTV6VkVwb1JGTnlSMWRLUjNvS1dqZ3liMGwwY0c5RVRsaEJZVUpqYmxSRmNUUkNXRzFoTTJVNVJHSkpVMU5SZW5aaGFIYzBWMkZwVTFWNGVYUllVakJ5Um1oaFpFUnpkbFJuVVhZNGF3cEdlbkV5TjNkS2RUaHZUV2hIWTJWb2VGUlRXVUpyWjNGWVUzYzNPR2xsTVZadk1XVlBMMGxTYlhsM1ZtMWlhM2M1TWswcldtZFdOV0Z3VERCNlNYRnNDbFEzWmtkekszWTViREkwYkM4eGFIbExVekZCU1ZKTmVrRkljMGw1YVdWdE1GUkZUM0Z6WVVVNVFYWjBlWEZZZEZKblBUMEtMUzB0TFMxRlRrUWdRMFZTVkVsR1NVTkJWRVV0TFMwdExRbz0KICAgIHNlcnZlcjogaHR0cHM6Ly9jOTA3ZTgzMi0zMDgwLTQ4YTYtYTU0ZC03Mzc5ZTY0NWMwYjcudnVsdHItazhzLmNvbTo2NDQzCiAgbmFtZTogdmtlCmNvbnRleHRzOgotIGNvbnRleHQ6CiAgICBjbHVzdGVyOiB2a2UKICAgIHVzZXI6IGFkbWluCiAgbmFtZTogdmtlCmN1cnJlbnQtY29udGV4dDogdmtlCmtpbmQ6IENvbmZpZwpwcmVmZXJlbmNlczoge30KdXNlcnM6Ci0gbmFtZTogYWRtaW4KICB1c2VyOgogICAgY2xpZW50LWNlcnRpZmljYXRlLWRhdGE6IExTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENrMUpTVVJWUkVORFFXcHBaMEYzU1VKQlowbEpUVmg0VTFOSGRFRnliR2QzUkZGWlNrdHZXa2xvZG1OT1FWRkZURUpSUVhkVWVrVk1UVUZyUjBFeFZVVUtRbWhOUTFaV1RYaEdha0ZWUW1kT1ZrSkJZMVJFVms1b1ltbENSMk50Um5WWk1teDZXVEk0ZUVWNlFWSkNaMDVXUWtGdlZFTnJkREZaYlZaNVltMVdNQXBhV0UxNFJYcEJVa0puVGxaQ1FVMVVRMnQwTVZsdFZubGliVll3V2xoTmQwaG9ZMDVOYWtWM1RucEJlVTFVU1hoTmVrRjVWMmhqVGsxcVNYZE9la0Y1Q2sxVVNYaE5la0Y1VjJwQ1QwMVJjM2REVVZsRVZsRlJSMFYzU2xaVmVrVlhUVUpSUjBFeFZVVkNlRTFPVlRKR2RVbEZXbmxaVnpWcVlWaE9hbUo2UlZnS1RVSlZSMEV4VlVWRGFFMVBZek5zZW1SSFZuUlBiVEZvWXpOU2JHTnVUWGhFYWtGTlFtZE9Wa0pCVFZSQ1YwWnJZbGRzZFUxSlNVSkpha0ZPUW1kcmNRcG9hMmxIT1hjd1FrRlJSVVpCUVU5RFFWRTRRVTFKU1VKRFowdERRVkZGUVhselRIVndNSHBvYXpsUFVHODVWa05TTUZSbmJ6UTFORThyV0hOTVEyUXhDbE5CWVdKNmFtMVJaM1pEVVZKeFdEaEZUa0Z0VW5kbVdFUjNaRkJMWTFkbmFtcHpRaTlQU2pSR2F6TmpWWFZIVVdkNmFrRkRXVVJYVjNBM1RWaG1TM1VLVm5GeVNGTmtZMnhQWVV0dEwwbGpNMEkxWVd0a1pYcGxRVFJ4UzFGRlRrbFVSbXR1VkdSWVJ6RTFVV3MxU2tNMGNIWXpaa3M1ZUhVMldqZHhjVmRXVlFwdmVFMXdjR2huV1hGWFVsUkNSMnByT0hSRk5sbDZOazVZZGs5NkwxVXpNWEprV0ZOVFluYzRWakpxTUdnNU1FTlRMMkZLVkN0U01sRmxNRWh3YkZNeUNsSjBWek0yYlRjMFVGaHpXRGQ2Ym1aTVZWZEpaMGQxYjBvNVdYTkJNRFphUTFSVllrdFNTekV2V0haRmFGZHVPSGRtWTFCblRHTXlRWEJRTnpsMVlYa0taV0phZVV4SmFXOWFXRXRNVERWQ05tcEZaVkZWV2pGWlRFTjNSV0pCTXpWYVdYSm1lRTVCUmsxcFUwcDFTMnhhUlRWSGNYRlJTVVJCVVVGQ2IzcEZkd3BNZWtGUFFtZE9Wa2hST0VKQlpqaEZRa0ZOUTBGdlVYZElVVmxFVmxJd2JFSkNXWGRHUVZsSlMzZFpRa0pSVlVoQmQwbEhRME56UjBGUlZVWkNkMDFDQ2sxQk1FZERVM0ZIVTBsaU0wUlJSVUpEZDFWQlFUUkpRa0ZSUWpWbUwwdHJVVGxRV1d4WE1uQllUek13V1dSYVZHMUlhbWRhTm10RlFUUmhVelJvVWs4S2NqSldSbHBwUjBoUVluZGFZMjVuZFc1UVRXTnJaRmh2UWs5a1dsVkhkelpoYkUxaVFVOUZhRlpIUVVOSU5IcEhkM2RUUlZrMk5HRTJVV0ZsVFVaSWF3cHZkalU1UW1GclJIZFJkVlprTVdoMk1rcFZkMXB3WTFsTVZUZE5PWGRLWTI5a09FODBNM0EyVGxwTmNrVjBObHB2YmtsSWJGbEpkMGhFTWxWaGVYcHZDamhUVkhWeWNXVm5jakJvYzAwd1ltWlFRbkZzY25CdE9VTXZOV2hVVjJVemJ6STJiRFpNUTBabWFFdzBaamN5VURSaWFYWnNkVTVoYVc5UFp6QXZXVVlLZFVwd09WUjZkMnRuUWtSVE9DOU5hVTFUVDFwSFpVdHlia2hWYlhKa2FGbHpSbTFCVVRCRVRYWlJiMnh1TWtwVlRYSXlkWE4yU0VGcFJGWm9PVkZMWlFwM1lrSlRMMlJ3UW04M09UbEZRWHBpWkdaclpIcG5iVWhDU2k5WU4wVjNNR3B4Tm5Nek5YTkRNMUpqY0dNNFJrd0tMUzB0TFMxRlRrUWdRMFZTVkVsR1NVTkJWRVV0TFMwdExRbz0KICAgIGNsaWVudC1rZXktZGF0YTogTFMwdExTMUNSVWRKVGlCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRcE5TVWxGYjJkSlFrRkJTME5CVVVWQmVYTk1kWEF3ZW1ock9VOVFiemxXUTFJd1ZHZHZORFUwVHl0WWMweERaREZUUVdGaWVtcHRVV2QyUTFGU2NWZzRDa1ZPUVcxU2QyWllSSGRrVUV0alYyZHFhbk5DTDA5S05FWnJNMk5WZFVkUlozcHFRVU5aUkZkWGNEZE5XR1pMZFZaeGNraFRaR05zVDJGTGJTOUpZek1LUWpWaGEyUmxlbVZCTkhGTFVVVk9TVlJHYTI1VVpGaEhNVFZSYXpWS1F6Undkak5tU3psNGRUWmFOM0Z4VjFaVmIzaE5jSEJvWjFseFYxSlVRa2RxYXdvNGRFVTJXWG8yVGxoMlQzb3ZWVE14Y21SWVUxTmlkemhXTW1vd2FEa3dRMU12WVVwVUsxSXlVV1V3U0hCc1V6SlNkRmN6Tm0wM05GQlljMWczZW01bUNreFZWMGxuUjNWdlNqbFpjMEV3TmxwRFZGVmlTMUpMTVM5WWRrVm9WMjQ0ZDJaalVHZE1ZekpCY0ZBM09YVmhlV1ZpV25sTVNXbHZXbGhMVEV3MVFqWUtha1ZsVVZWYU1WbE1RM2RGWWtFek5WcFpjbVo0VGtGR1RXbFRTblZMYkZwRk5VZHhjVkZKUkVGUlFVSkJiMGxDUVVKaWN6VXpUQzlJUm5CTmFESmpjd3A1Tm5WdVVFRmpRMHQwU1VzNGVVMXBObll6VkRCWVdVWjVSRTFzTlVGdk5EVnJSVFJhTjNWTlVsZExjbTUxV0VsT1NtdG5WSFE0Tmpndk1FSnVURWMyQ2xVd05tazRaMDlvUkRWME4ySlFkMHRZYlM5eFN6RktUVUY1WkRkSWIzQmhPVE4yYVV0dlNYa3pMemxwWjB4Tk0yRkZkRXB2Vlc5S2NUaDJaMDFxVDNRS2MxWk5aMVJWVmpKVVVYZGFUR056ZEdFNU5YTlphamh1V214S2QyczNhSHBFTmtFemNUSTBhRVJ0YUU1a2FUZ3dSSEJEVDJjMk1IbFpTaXQ2Y0dab1dBcHZORkJPTlhsTVZGaFhkSG80SzJ0UllqaDZaR3B0Wms5a1pHVnJaeTlOTTA1T1pUY3JPRVZHV2tJMWExWkRkbEV3UmxoSVIxRlZPREUzV1dNdlNEZHZDamhpVFZsM2QySlZRbEppTkdobmVWWnZkemxVV2s5YVkwMXVMM2xoYVd3M1JtVmljblpGU2s5dVJtdG9Wa3BoUlRKdVlWSlJjbEJ1TmtORWRVdEdXRGdLUTJNM2JHZGhSVU5uV1VWQmVuZEVURlpFY1UxWlYxcHNiWFJUYzJGdWVGaEJhMnBwUW5GVWFreFhTbGRIZVZSTk0xZEtUM2RzZG1GWk9FTlRiSHB5TkFwelMyOTNOMXByT0doQ1ZXSm1WRFJCV1ZWTlpVRlBSV0p2UkhCTVpYQTBURmxYU0hSUmJuQkpWakY1ZURSMVdWZHlSM28yZVhSemVGbE1MMnRvYTBSMENtUnVRVTFDVTBOdlZXOW1VVWczSzBWa2NHdFpZbGxrYW05bFZuWXdlalpPVG1SQ1ZYSk9VbFpQWlc1NFR6WkllR1JIZDNwSFUxVkRaMWxGUVN0elJXVUtVMk5wU0RSbWIybDVkRlZNWW5VMVJVVmtaM0YwTDFseUszTmtVMjl6TURGTWVtOXpSVU4wZGpFMGJrNHZWVlpIYTI5WE5UUTRVVEpOYmtkeUswSTFLd3BvUkRCME1XTXpXQ3RPT1dOc2FYRXdWVzVGZVhad09DOXhWblJUZGxSYWFscEdOVTFKTXpadWJqWXhVVkkxV0hOcFNEVmhWbWQyUlRoYWNFNTBSbHBsQ21sWlRVNHpRM2R6VjNCb1drMUJTV2hVZDI1S1RVOVZlVXhHVlhWT05rTjNhelJFUlhacVZVTm5XVUZ2UWs5R1MxVldPV1ZZVTNRM1pWYzBlakJCU1VzS1VWRnFhR1V2VFc1cVVVWlZhMmhNUWtsbldsUTRUMjlTY1hWTmMwNVplSEZ4ZUhneVkzTXJUMUZZTld4QmFESlZjME5OVjNwSE5Va3hZbmhPTkd0M1ZRbzRXbVZ4TmtoVlpqTndNMDVZWlc4MFVEUkdhM2R0WlZSaGMxaEdXbkozUW5vM2RXcExhVTFuWjFnd2RFSm9kVmg1YUZVNE5UVllUbU5OZG1weVVUUnFDblo2YWk5cFRGWktWWFkzSzBwc2NrWjRWREZFZFZGTFFtZEhZbkJrVmxoUk1FUjJiRmhtZDJrellrNXJXa1pzZVdZeU0wdDNXbWRHTUVKMGVUTjJORWtLUVU5bFRpOUVVRmx2WTNKMFkwbzFXRGxqWms0d2JsSXphRW95Y2xocU9VWnZTbU5qUTFOU2FDOHllU3RGUVRJMU1scHhNRmgyZEZKMVN6Vm9UVkFyVkFwV0szQkdXU3RSTjNwRVVHeERlRTlzZWpoME5uWjRVblJSVEVSbWRHRk1ORkF5Y2paVmFWaEpWM1Z3UTBwWmREZDBOaXQ1YTFKdWVYZzJiMkUzTHpGS0NtNTJWakZCYjBkQlRtRkZSV1VyZERoNGFXUlFaeXRIUm5FemN6VkhUa1pPU0VKQmMzcG1NV3BxVFdwdmF6ZEtiMmxyWWxaVU1FNUJWVmhLZEdWclNra0taekZPVUd0UVQxSjRWakZWY0dKUGVsUXJhMWhyTjBwVmExTTNiVE0zV0VneWRuUm1abVIxTlhFNVEzWkhObkZaYW1OcVpVOHZSRWhzYUZWRmNrMUpXUXBsVHpSQk9FOUNWRWgwUVRkM01XTjVVa2hIVUZWUE1VRlFiRXRTTWtWVU9XMXVOeXROV0hSRU1GQmxjRWh2TVV0UU9VRTlDaTB0TFMwdFJVNUVJRkpUUVNCUVVrbFdRVlJGSUV0RldTMHRMUzB0Q2c9PQo=
schema:
$ref: '#/components/schemas/get_kubernetes_clusters_config_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Kubernetes Cluster Kubeconfig
tags:
- kubernetes
x-accepts: application/json
/kubernetes/versions:
get:
description: Get a list of supported Kubernetes versions
operationId: get-kubernetes-versions
responses:
"200":
content:
application/json:
examples:
example:
value:
versions:
- v1.20.0+1
schema:
$ref: '#/components/schemas/get_kubernetes_versions_200_response'
description: OK
"404":
description: Not Found
security: []
summary: Get Kubernetes Versions
tags:
- kubernetes
x-accepts: application/json
/billing/history:
get:
description: Retrieve list of billing history
operationId: list-billing-history
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_billing_history_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Billing History
tags:
- billing
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/billing/history" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/billing/invoices:
get:
description: Retrieve a list of invoices
operationId: list-invoices
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/list_invoices_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: List Invoices
tags:
- billing
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/billing/invoices" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/billing/invoices/{invoice-id}:
get:
description: Retrieve specified invoice
operationId: get-invoice
parameters:
- description: ID of invoice
explode: false
in: path
name: invoice-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
example-1:
value:
billing_invoice:
id: 123456
description: Account Credit
date: 09-01-2021T00:00:00+00:00
amount: 5.25
schema:
$ref: '#/components/schemas/get_invoice_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Invoice
tags:
- billing
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/billing/invoices/{invoice-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/billing/invoices/{invoice-id}/items:
get:
description: Retrieve full specified invoice
operationId: get-invoice-items
parameters:
- description: ID of invoice
explode: false
in: path
name: invoice-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
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: ""
schema:
$ref: '#/components/schemas/get_invoice_items_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Get Invoice Items
tags:
- billing
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/billing/invoices/{invoice-id}/items" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/databases/plans:
get:
description: List all Managed Databases plans.
operationId: list-database-plans
parameters:
- description: |-
Filter by engine type
* `mysql`
* `pg`
* `redis`.
explode: true
in: query
name: engine
required: false
schema:
type: string
style: form
- description: Filter by number of nodes.
explode: true
in: query
name: nodes
required: false
schema:
type: integer
style: form
- description: "Filter by [Region id](#operation/list-regions)."
explode: true
in: query
name: region
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
examples:
plans:
value:
plans:
- id: vultr-dbaas-hobbyist-cc-1-25-1
number_of_nodes: 1
type: vc2
vcpu_count: 1
ram: 1024
disk: 25
monthly_cost: 15
supported_engines:
mysql: true
pg: true
redis: false
max_connections:
mysql: 75
pg: 22
locations:
- DEV
- ICN
- SEA
schema:
$ref: '#/components/schemas/list_database_plans_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List Managed Database Plans
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/plans" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/databases:
get:
description: List all Managed Databases in your account.
operationId: list-databases
parameters:
- description: Filter by label.
explode: true
in: query
name: label
required: false
schema:
type: string
style: form
- description: Filter by specific tag.
explode: true
in: query
name: tag
required: false
schema:
type: string
style: form
- description: "Filter by [Region id](#operation/list-regions)."
explode: true
in: query
name: region
required: false
schema:
type: string
style: form
responses:
"200":
content:
application/json:
examples:
database:
value:
databases:
- id: 999c4ed0-f2e4-4f2a-a951-de358ceb9ab5
date_created: 2022-05-09 10:13:31
plan: vultr-dbaas-hobbyist-cc-1-25-1
plan_disk: 25
plan_ram: 1024
plan_vcpus: 1
plan_replicas: 0
region: EWR
database_engine: mysql
database_engine_version: 8
vpc_id: d39bf0bf-e050-47d4-a291-5d6fc736f250
status: Running
label: some label
tag: some tag
dbname: defaultdb
host: HOSTNAME_GOES_HERE
public_host: PUBLIC_HOSTNAME_GOES_HERE
user: vultradmin
password: PASSWORD_GOES_HERE
port: 16751
maintenance_dow: sunday
maintenance_time: 06:00:00
latest_backup: 2022-11-02 12:58:18"
trusted_ips:
- '...'
mysql_sql_modes:
- ANSI
- ERROR_FOR_DIVISION_BY_ZERO
- NO_ENGINE_SUBSTITUTION
- NO_ZERO_DATE
- NO_ZERO_IN_DATE
- STRICT_ALL_TABLES
mysql_require_primary_key: true
mysql_slow_query_log: false
cluster_time_zone: America/New_York
read_replicas:
- '...'
meta:
total: 1
schema:
$ref: '#/components/schemas/list_databases_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List Managed Databases
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new Managed Database in a `region` with the desired `plan`.
Supply optional attributes as desired.
operationId: create-database
requestBody:
content:
application/json:
examples:
request:
value:
database_engine: mysql
database_engine_version: "8"
region: ewr
plan: vultr-dbaas-hobbyist-cc-1-25-1
label: Example Managed Database
schema:
$ref: '#/components/schemas/create_database_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
database:
value:
database:
id: 999c4ed0-f2e4-4f2a-a951-de358ceb9ab5
date_created: 2022-05-09 10:13:31
plan: vultr-dbaas-hobbyist-cc-1-25-1
plan_disk: 25
plan_ram: 1024
plan_vcpus: 1
plan_replicas: 0
region: EWR
database_engine: mysql
database_engine_version: 8
vpc_id: d39bf0bf-e050-47d4-a291-5d6fc736f250
status: Running
label: some label
tag: some tag
dbname: defaultdb
host: HOSTNAME_GOES_HERE
public_host: PUBLIC_HOSTNAME_GOES_HERE
user: vultradmin
password: PASSWORD_GOES_HERE
port: 16751
maintenance_dow: sunday
maintenance_time: 06:00:00
latest_backup: 2022-11-02 12:58:18"
trusted_ips:
- '...'
mysql_sql_modes:
- ANSI
- ERROR_FOR_DIVISION_BY_ZERO
- NO_ENGINE_SUBSTITUTION
- NO_ZERO_DATE
- NO_ZERO_IN_DATE
- STRICT_ALL_TABLES
mysql_require_primary_key: true
mysql_slow_query_log: false
cluster_time_zone: America/New_York
read_replicas:
- '...'
schema:
$ref: '#/components/schemas/create_database_202_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Create Managed Database
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"database_engine" : "mysql",
"database_engine_version" : "8"
"region" : "ewr",
"plan" : "vultr-dbaas-hobbyist-cc-1-25-1",
"label" : "Example Managed Database"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}:
delete:
description: Delete a Managed Database.
operationId: delete-database
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Managed Database
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about a Managed Database.
operationId: get-database
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
database:
value:
database:
id: 999c4ed0-f2e4-4f2a-a951-de358ceb9ab5
date_created: 2022-05-09 10:13:31
plan: vultr-dbaas-hobbyist-cc-1-25-1
plan_disk: 25
plan_ram: 1024
plan_vcpus: 1
plan_replicas: 0
region: EWR
database_engine: mysql
database_engine_version: 8
vpc_id: d39bf0bf-e050-47d4-a291-5d6fc736f250
status: Running
label: some label
tag: some tag
dbname: defaultdb
host: HOSTNAME_GOES_HERE
public_host: PUBLIC_HOSTNAME_GOES_HERE
user: vultradmin
password: PASSWORD_GOES_HERE
port: 16751
maintenance_dow: sunday
maintenance_time: 06:00:00
latest_backup: 2022-11-02 12:58:18"
trusted_ips:
- '...'
mysql_sql_modes:
- ANSI
- ERROR_FOR_DIVISION_BY_ZERO
- NO_ENGINE_SUBSTITUTION
- NO_ZERO_DATE
- NO_ZERO_IN_DATE
- STRICT_ALL_TABLES
mysql_require_primary_key: true
mysql_slow_query_log: false
cluster_time_zone: America/New_York
read_replicas:
- '...'
schema:
$ref: '#/components/schemas/create_database_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Managed Database
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: "Update information for a Managed Database. All attributes are\
\ optional. If not set, the attributes will retain their original values."
operationId: update-database
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
plan: vultr-dbaas-startup-cc-1-55-2
label: Example Managed Database
schema:
$ref: '#/components/schemas/update_database_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
database:
value:
database:
id: 999c4ed0-f2e4-4f2a-a951-de358ceb9ab5
date_created: 2022-05-09 10:13:31
plan: vultr-dbaas-hobbyist-cc-1-25-1
plan_disk: 25
plan_ram: 1024
plan_vcpus: 1
plan_replicas: 0
region: EWR
database_engine: mysql
database_engine_version: 8
vpc_id: d39bf0bf-e050-47d4-a291-5d6fc736f250
status: Running
label: some label
tag: some tag
dbname: defaultdb
host: HOSTNAME_GOES_HERE
public_host: PUBLIC_HOSTNAME_GOES_HERE
user: vultradmin
password: PASSWORD_GOES_HERE
port: 16751
maintenance_dow: sunday
maintenance_time: 06:00:00
latest_backup: 2022-11-02 12:58:18"
trusted_ips:
- '...'
mysql_sql_modes:
- ANSI
- ERROR_FOR_DIVISION_BY_ZERO
- NO_ENGINE_SUBSTITUTION
- NO_ZERO_DATE
- NO_ZERO_IN_DATE
- STRICT_ALL_TABLES
mysql_require_primary_key: true
mysql_slow_query_log: false
cluster_time_zone: America/New_York
read_replicas:
- '...'
schema:
$ref: '#/components/schemas/create_database_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Update Managed Database
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"plan" : "vultr-dbaas-startup-cc-1-55-2",
"label" : "Example Managed Database"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/usage:
get:
description: "Get disk, memory, and vCPU usage information for a Managed Database."
operationId: get-database-usage
responses:
"200":
content:
application/json:
examples:
usage:
value:
usage:
disk:
current_gb: 1.25
max_gb: 55
percentage: 2.27
memory:
current_mb: 768
max_mb: 2048
percentage: 37.5
cpu:
percentage: 4.65
schema:
$ref: '#/components/schemas/get_database_usage_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Database Usage Information
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/usage" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/databases/{database-id}/users:
get:
description: List all database users within the Managed Database.
operationId: list-database-users
responses:
"200":
content:
application/json:
examples:
users:
value:
users:
- username: vultradmin
password: PASSWORD_GOES_HERE
encryption: Default (MySQL 8+)
- username: ANOTHER_USER_HERE
password: PASSWORD_GOES_HERE
encryption: Legacy (MySQL 5.x)
meta:
total: 2
schema:
$ref: '#/components/schemas/list_database_users_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List Database Users
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/users" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new database user within the Managed Database. Supply
optional attributes as desired.
operationId: create-database-user
requestBody:
content:
application/json:
examples:
request:
value:
username: some_new_user
password: some_secure_password
encryption: caching_sha2_password
schema:
$ref: '#/components/schemas/create_database_user_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
user:
value:
user:
username: some_new_user
password: some_secure_password
encryption: Default (MySQL 8+)
schema:
$ref: '#/components/schemas/create_database_user_202_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Create Database User
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/users" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"username" : "some_new_user",
"password" : "some_secure_password",
"encryption" : "ewrcaching_sha2_password"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/users/{username}:
delete:
description: Delete a database user within a Managed Database.
operationId: delete-database-user
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
- description: "The [database user](#operation/list-database-users)."
explode: false
in: path
name: username
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Database User
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/users/{username}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about a Managed Database user.
operationId: get-database-user
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
- description: "The [database user](#operation/list-database-users)."
explode: false
in: path
name: username
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
user:
value:
user:
username: some_username
password: some_secure_password
encryption: Default (MySQL 8+)
schema:
$ref: '#/components/schemas/create_database_user_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Database User
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/users/{username}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: Update database user information within a Managed Database.
operationId: update-database-user
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
- description: "The [database user](#operation/list-database-users)."
explode: false
in: path
name: username
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
password: some_new_password_here
schema:
$ref: '#/components/schemas/update_database_user_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
user:
value:
user:
username: some_username
password: some_secure_password
encryption: Default (MySQL 8+)
schema:
$ref: '#/components/schemas/create_database_user_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Update Database User
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/users/{username}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"password" : "some_new_password_here"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/users/{username}/access-control:
put:
description: Configure access control settings for a Managed Database user (Redis
engine type only).
operationId: set-database-user-acl
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
- description: "The [database user](#operation/list-database-users)."
explode: false
in: path
name: username
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
redis_acl_categories:
- +@all
redis_acl_channels:
- '*'
redis_acl_commands: []
redis_acl_keys:
- '*'
schema:
$ref: '#/components/schemas/set_database_user_acl_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
user:
value:
user:
username: some_username
password: some_secure_password
access_control:
redis_acl_categories:
- +@all
redis_acl_channels:
- '*'
redis_acl_commands: []
redis_acl_keys:
- '*'
schema:
$ref: '#/components/schemas/create_database_user_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Set Database User Access Control
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/users/{username}/access-control" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"redis_acl_categories" : [
"+@all"
],
"redis_acl_channels" : [
"*"
],
"redis_acl_commands" : [],
"redis_acl_keys" : [
"*"
]
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/dbs:
get:
description: List all logical databases within the Managed Database (MySQL and
PostgreSQL only).
operationId: list-database-dbs
responses:
"200":
content:
application/json:
examples:
dbs:
value:
dbs:
- name: defaultdb
- name: another_db
meta:
total: 2
schema:
$ref: '#/components/schemas/list_database_dbs_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List Logical Databases
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/dbs" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new logical database within the Managed Database (MySQL
and PostgreSQL only).
operationId: create-database-db
requestBody:
content:
application/json:
examples:
request:
value:
name: new_db_name
schema:
$ref: '#/components/schemas/create_database_db_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
db:
value:
db:
name: new_db_name
schema:
$ref: '#/components/schemas/create_database_db_202_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Create Logical Database
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/dbs" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"name" : "new_db_name"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/dbs/{db-name}:
delete:
description: Delete a logical database within a Managed Database (MySQL and
PostgreSQL only).
operationId: delete-database-db
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
- description: "The [logical database name](#operation/list-database-dbs)."
explode: false
in: path
name: db-name
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Logical Database
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/dbs/{db-name}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about a logical database within a Managed Database
(MySQL and PostgreSQL only).
operationId: get-database-db
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
- description: "The [logical database name](#operation/list-database-dbs)."
explode: false
in: path
name: db-name
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
db:
value:
db:
name: some_db_name
schema:
$ref: '#/components/schemas/create_database_db_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Logical Database
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/dbs/{db-name}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/databases/{database-id}/maintenance:
get:
description: List all available version upgrades within the Managed Database.
operationId: list-maintenance-updates
responses:
"200":
content:
application/json:
examples:
available_updates:
value:
available_updates:
- update_description_here
- another_description_here
schema:
$ref: '#/components/schemas/list_maintenance_updates_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List Maintenance Updates
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/maintenance" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Start maintenance updates for the Managed Database.
operationId: start-maintenance-updates
responses:
"200":
content:
application/json:
examples:
message:
value:
message: Maintenance updates initialized. Please note the maintenance
consists of switching to a new server that will host the service
and all pending updates will be applied. This will cause a short
service interruption.
schema:
$ref: '#/components/schemas/start_maintenance_updates_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Start Maintenance Updates
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/maintenance" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/databases/{database-id}/alerts:
post:
description: List service alert messages for the Managed Database.
operationId: list-service-alerts
requestBody:
content:
application/json:
examples:
request:
value:
period: day
schema:
$ref: '#/components/schemas/list_service_alerts_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"200":
content:
application/json:
examples:
alerts:
value:
alerts:
- timestamp: 2023-02-10 12:40:19
message_type: RESOURCE USAGE DISK
description: "Disk usage is critically high for a database service,\
\ service is not performing normally."
recommendation: We recommend you review your application or
upgrade to the next plan size.
resource_type: disk
- timestamp: 2023-02-09 15:41:20
message_type: MAINTENANCE SCHEDULED
description: Mandatory maintenance has been scheduled for a
database service.
maintenance_scheduled: 2023-02-12 01:00:00 (UTC)
schema:
$ref: '#/components/schemas/list_service_alerts_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: List Service Alerts
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/alerts \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"period" : "day"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/migration:
delete:
description: Detach a migration from the Managed Database.
operationId: database-detach-migration
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Detach Migration
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/migration" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: View the status of a migration attached to the Managed Database.
operationId: view-migration-status
responses:
"200":
content:
application/json:
examples:
migration:
value:
migration:
status: complete
method: replication
credentials:
host: some_host
port: 3306
username: some_username
password: some_password
database: some_database
ignored_databases: ""
ssl: true
schema:
$ref: '#/components/schemas/view_migration_status_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Migration Status
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/migration" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Start a migration to the Managed Database.
operationId: database-start-migration
requestBody:
content:
application/json:
examples:
request:
value:
host: some_host
port: 3306
username: some_username
password: some_password
database: some_database
ignored_databases: ""
ssl: true
schema:
$ref: '#/components/schemas/database_start_migration_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"200":
content:
application/json:
examples:
migration:
value:
migration:
status: pending
credentials:
host: some_host
port: 3306
username: some_username
password: some_password
database: some_database
ignored_databases: ""
ssl: true
schema:
$ref: '#/components/schemas/view_migration_status_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Start Migration
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/migration" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"host" : "some_host",
"port" : 3306,
"username" : "some_username",
"password" : "some_password",
"database" : "some_database",
"ssl" : true
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/read-replica:
post:
description: Create a read-only replica node for the Managed Database.
operationId: database-add-read-replica
requestBody:
content:
application/json:
examples:
request:
value:
region: ewr
label: new_read_replica_label
schema:
$ref: '#/components/schemas/database_add_read_replica_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"200":
content:
application/json:
examples:
database:
value:
database:
id: 999c4ed0-f2e4-4f2a-a951-de358ceb9ab5
date_created: 2022-05-09 10:13:31
plan: vultr-dbaas-hobbyist-cc-1-25-1
plan_disk: 25
plan_ram: 1024
plan_vcpus: 1
plan_replicas: 0
region: EWR
database_engine: mysql
database_engine_version: 8
vpc_id: d39bf0bf-e050-47d4-a291-5d6fc736f250
status: Running
label: some label
tag: some tag
dbname: defaultdb
host: HOSTNAME_GOES_HERE
public_host: PUBLIC_HOSTNAME_GOES_HERE
user: vultradmin
password: PASSWORD_GOES_HERE
port: 16751
maintenance_dow: sunday
maintenance_time: 06:00:00
latest_backup: 2022-11-02 12:58:18"
trusted_ips:
- '...'
mysql_sql_modes:
- ANSI
- ERROR_FOR_DIVISION_BY_ZERO
- NO_ENGINE_SUBSTITUTION
- NO_ZERO_DATE
- NO_ZERO_IN_DATE
- STRICT_ALL_TABLES
mysql_require_primary_key: true
mysql_slow_query_log: false
cluster_time_zone: America/New_York
schema:
$ref: '#/components/schemas/create_database_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Add Read-Only Replica
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/read-replica" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "ewr",
"label" : "new_read_replica_label"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/promote-read-replica:
post:
description: Promote a read-only replica node to its own primary Managed Database.
operationId: database-promote-read-replica
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Promote Read-Only Replica
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/promote-read-replica" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/databases/{database-id}/backups:
get:
description: Get backup information for the Managed Database.
operationId: get-backup-information
responses:
"200":
content:
application/json:
examples:
backups:
value:
latest_backup:
date: 2023-02-07
time: 20:51:05
oldest_backup:
date: 2023-02-05
time: 20:51:07
schema:
$ref: '#/components/schemas/get_backup_information_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Backup Information
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/backups \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/databases/{database-id}/restore:
post:
description: Create a new Managed Database from a backup.
operationId: database-restore-from-backup
requestBody:
content:
application/json:
examples:
request:
value:
label: new_restore_label
type: pitr
date: 2023-02-06
time: 08:00:00
schema:
$ref: '#/components/schemas/database_restore_from_backup_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"200":
content:
application/json:
examples:
database:
value:
database:
id: 999c4ed0-f2e4-4f2a-a951-de358ceb9ab5
date_created: 2022-05-09 10:13:31
plan: vultr-dbaas-hobbyist-cc-1-25-1
plan_disk: 25
plan_ram: 1024
plan_vcpus: 1
plan_replicas: 0
region: EWR
database_engine: mysql
database_engine_version: 8
vpc_id: d39bf0bf-e050-47d4-a291-5d6fc736f250
status: Running
label: some label
tag: some tag
dbname: defaultdb
host: HOSTNAME_GOES_HERE
public_host: PUBLIC_HOSTNAME_GOES_HERE
user: vultradmin
password: PASSWORD_GOES_HERE
port: 16751
maintenance_dow: sunday
maintenance_time: 06:00:00
latest_backup: 2022-11-02 12:58:18"
trusted_ips:
- '...'
mysql_sql_modes:
- ANSI
- ERROR_FOR_DIVISION_BY_ZERO
- NO_ENGINE_SUBSTITUTION
- NO_ZERO_DATE
- NO_ZERO_IN_DATE
- STRICT_ALL_TABLES
mysql_require_primary_key: true
mysql_slow_query_log: false
cluster_time_zone: America/New_York
schema:
$ref: '#/components/schemas/create_database_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Restore from Backup
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/restore" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"label" : "new_restore_label",
"type" : "pitr",
"date" : "2023-02-06",
"time" : "08:00:00"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/fork:
post:
description: Fork a Managed Database to a new subscription from a backup.
operationId: database-fork
requestBody:
content:
application/json:
examples:
request:
value:
label: new_fork_label
region: sea
plan: vultr-dbaas-startup-cc-2-80-4
type: pitr
date: 2023-02-06
time: 08:00:00
schema:
$ref: '#/components/schemas/database_fork_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"200":
content:
application/json:
examples:
database:
value:
database:
id: 999c4ed0-f2e4-4f2a-a951-de358ceb9ab5
date_created: 2022-05-09 10:13:31
plan: vultr-dbaas-startup-cc-2-80-4
plan_disk: 80
plan_ram: 4096
plan_vcpus: 2
plan_replicas: 0
region: SEA
database_engine: mysql
database_engine_version: 8
vpc_id: d39bf0bf-e050-47d4-a291-5d6fc736f250
status: Running
label: new_fork_label
tag: some tag
dbname: defaultdb
host: HOSTNAME_GOES_HERE
public_host: PUBLIC_HOSTNAME_GOES_HERE
user: vultradmin
password: PASSWORD_GOES_HERE
port: 16751
maintenance_dow: sunday
maintenance_time: 06:00:00
latest_backup: 2022-11-02 12:58:18"
trusted_ips:
- '...'
mysql_sql_modes:
- ANSI
- ERROR_FOR_DIVISION_BY_ZERO
- NO_ENGINE_SUBSTITUTION
- NO_ZERO_DATE
- NO_ZERO_IN_DATE
- STRICT_ALL_TABLES
mysql_require_primary_key: true
mysql_slow_query_log: false
cluster_time_zone: America/New_York
schema:
$ref: '#/components/schemas/create_database_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Fork Managed Database
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/fork" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"label" : "new_fork_label",
"region" : "sea",
"plan" : "vultr-dbaas-startup-cc-2-80-4",
"type" : "pitr",
"date" : "2023-02-06",
"time" : "08:00:00"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/connection-pools:
get:
description: List all connection pools within the Managed Database (PostgreSQL
engine types only).
operationId: list-connection-pools
responses:
"200":
content:
application/json:
examples:
connection_pools:
value:
connections:
used: 12
available: 10
max: 22
connection_pools:
- name: first_pool_name
database: some_db_name
username: some_username
mode: transaction
size: 5
- name: second_pool_name
database: another_db_name
username: another_username
mode: session
size: 7
meta:
total: 2
schema:
$ref: '#/components/schemas/list_connection_pools_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List Connection Pools
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Create a new connection pool within the Managed Database (PostgreSQL
engine types only).
operationId: create-connection-pool
requestBody:
content:
application/json:
examples:
request:
value:
name: new_connection_pool
database: some_database
username: some_user
mode: transaction
size: 5
schema:
$ref: '#/components/schemas/create_connection_pool_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
connection_pool:
value:
connection_pool:
name: new_connection_pool
database: some_database
username: some_user
mode: transaction
size: 5
schema:
$ref: '#/components/schemas/create_connection_pool_202_response'
description: Created
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Create Connection Pool
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"name" : "new_connection_pool",
"database" : "some_database",
"username" : "some_user",
"mode" : "transaction",
"size" : 5
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/connection-pools/{pool-name}:
delete:
description: Delete a connection pool within a Managed Database (PostgreSQL
engine types only).
operationId: delete-connection-pool
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
- description: "The [connection pool name](#operation/list-connection-pools)."
explode: false
in: path
name: pool-name
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
security:
- API Key: []
summary: Delete Connection Pool
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools/{pool-name}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get information about a Managed Database connection pool (PostgreSQL
engine types only).
operationId: get-connection-pool
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
- description: "The [connection pool name](#operation/list-connection-pools)."
explode: false
in: path
name: pool-name
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
examples:
connection_pool:
value:
connection_pool:
name: some_connection_pool
database: some_database
username: some_user
mode: transaction
size: 5
schema:
$ref: '#/components/schemas/create_connection_pool_202_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: Get Connection Pool
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools/{pool-name}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: Update connection-pool information within a Managed Database (PostgreSQL
engine types only).
operationId: update-connection-pool
parameters:
- description: "The [Managed Database ID](#operation/list-databases)."
explode: false
in: path
name: database-id
required: true
schema:
type: string
style: simple
- description: "The [connection pool name](#operation/list-connection-pools)."
explode: false
in: path
name: pool-name
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
request:
value:
mode: session
schema:
$ref: '#/components/schemas/update_connection_pool_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
connection_pool:
value:
connection_pool:
name: some_connection_pool
database: some_database
username: some_user
mode: transaction
size: 5
schema:
$ref: '#/components/schemas/create_connection_pool_202_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Update Connection Pool
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools/{pool-name}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"mode" : "session"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/advanced-options:
get:
description: List all configured and available advanced options for the Managed
Database (PostgreSQL engine types only).
operationId: list-advanced-options
responses:
"200":
content:
application/json:
examples:
advanced_options:
value:
configured_options:
jit: false
temp_file_limit: 10000
track_io_timing: "off"
available_options:
- name: autovacuum_analyze_scale_factor
type: float
min_value: 0
max_value: 1
- name: autovacuum_analyze_threshold
type: int
min_value: 0
max_value: 2147483647
- '...'
schema:
$ref: '#/components/schemas/list_advanced_options_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List Advanced Options
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/advanced-options" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: Updates an advanced configuration option for the Managed Database
(PostgreSQL engine types only).
operationId: update-advanced-options
requestBody:
content:
application/json:
examples:
request:
value:
jit: false
temp_file_limit: 10000
track_io_timing: "off"
schema:
$ref: '#/components/schemas/update_advanced_options_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"202":
content:
application/json:
examples:
advanced_options:
value:
configured_options:
jit: false
temp_file_limit: 10000
track_io_timing: "off"
available_options:
- name: autovacuum_analyze_scale_factor
type: float
min_value: 0
max_value: 1
- name: autovacuum_analyze_threshold
type: int
min_value: 0
max_value: 2147483647
- '...'
schema:
$ref: '#/components/schemas/list_advanced_options_200_response'
description: Accepted
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Update Advanced Options
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/advanced-options" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"jit" : false,
"temp_file_limit" : 10000,
"track_io_timing" : "off"
}'
x-content-type: application/json
x-accepts: application/json
/databases/{database-id}/version-upgrade:
get:
description: List all available version upgrades within the Managed Database
(PostgreSQL engine types only).
operationId: list-available-versions
responses:
"200":
content:
application/json:
examples:
available_versions:
value:
available_versions:
- "12"
- "13"
- "14"
- "15"
schema:
$ref: '#/components/schemas/list_available_versions_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
security:
- API Key: []
summary: List Available Versions
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/version-upgrade" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
post:
description: Start a version upgrade for the Managed Database (PostgreSQL engine
types only).
operationId: start-version-upgrade
requestBody:
content:
application/json:
examples:
request:
value:
version: "15"
schema:
$ref: '#/components/schemas/start_version_upgrade_request'
description: Include a JSON object in the request body with a content type
of **application/json**.
responses:
"200":
content:
application/json:
examples:
message:
value:
message: Version upgrade successfully initialized.
schema:
$ref: '#/components/schemas/start_version_upgrade_200_response'
description: OK
"400":
description: Bad Request
"401":
description: Unauthorized
"403":
description: Forbidden
"404":
description: Not Found
"422":
description: Validation Error
security:
- API Key: []
summary: Start Version Upgrade
tags:
- managed-databases
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/databases/{database-id}/version-upgrade" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"version" : "15"
}'
x-content-type: application/json
x-accepts: application/json
/registries:
get:
description: List All Container Registry Subscriptions for this account
operationId: list-registries
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/list_registries_200_response'
description: OK
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Bad Request
security:
- API Key: []
summary: List Container Registries
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registries" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/registry:
post:
description: Create a new Container Registry Subscription
operationId: create-registry
requestBody:
content:
application/json:
examples:
example:
value:
name: charizard
public: false
region: sjc
plan: business
schema:
$ref: '#/components/schemas/create_registry_request'
responses:
"201":
content:
application/json:
schema:
$ref: '#/components/schemas/registry'
description: OK
"401":
description: Unauthorized
"422":
description: Bad Request
security:
- API Key: []
summary: Create Container Registry
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registries" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "sjc",
"name" : "charizard",
"plan" : "business",
"public" : false
}'
x-content-type: application/json
x-accepts: application/json
/registry/{registry-id}:
delete:
description: Deletes a Container Registry Subscription
operationId: delete-registry
parameters:
- description: "The [Registry ID](#components/schemas/registry/properties/id).\
\ Which can be found by [List Registries](#operation/list-registries)."
explode: false
in: path
name: registry-id
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content - Successfully Deleted
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Bad Request
security:
- API Key: []
summary: Delete Container Registry
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/{registry-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get a single Container Registry Subscription
operationId: read-registry
parameters:
- description: "The [Registry ID](#components/schemas/registry/properties/id).\
\ Which can be found by [List Registries](#operation/list-registries)."
explode: false
in: path
name: registry-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/registry'
description: OK
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Bad Request
security:
- API Key: []
summary: Read Container Registry
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/{registry-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: Update a Container Registry Subscription
operationId: update-registry
parameters:
- description: "The [Registry ID](#components/schemas/registry/properties/id).\
\ Which can be found by [List Registries](#operation/list-registries)."
explode: false
in: path
name: registry-id
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
public: true
plan: business
schema:
$ref: '#/components/schemas/update_registry_request'
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/registry'
description: OK
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Bad Request
security:
- API Key: []
summary: Update Container Registry
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/{registry-id}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region" : "sjc",
"name" : "charizard",
"plan" : "business",
"public" : false
}'
x-content-type: application/json
x-accepts: application/json
/registry/{registry-id}/repositories:
get:
description: List All Repositories in a Container Registry Subscription
operationId: list-registry-repositories
parameters:
- description: "The [Registry ID](#components/schemas/registry/properties/id).\
\ Which can be found by [List Registries](#operation/list-registries)."
explode: false
in: path
name: registry-id
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/list_registry_repositories_200_response'
description: OK
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Bad Request
security:
- API Key: []
summary: List Repositories
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/{registry-id}/repositories" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/registry/{registry-id}/repository/{repository-image}:
delete:
description: Deletes a Repository from a Container Registry Subscription
operationId: delete-repository
parameters:
- description: "The [Registry ID](#components/schemas/registry/properties/id).\
\ Which can be found by [List Registries](#operation/list-registries)."
explode: false
in: path
name: registry-id
required: true
schema:
type: string
style: simple
- description: "The [Repository Image](#components/schemas/registry-repository/properties/image).\
\ Which can be found by [List Repositories](#operation/list-registry-repositories)."
explode: false
in: path
name: repository-image
required: true
schema:
type: string
style: simple
responses:
"204":
description: No Content - Successfully Deleted
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Bad Request
security:
- API Key: []
summary: Delete Repository
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
get:
description: Get a single Repository in a Container Registry Subscription
operationId: read-registry-repository
parameters:
- description: "The [Registry ID](#components/schemas/registry/properties/id).\
\ Which can be found by [List Registries](#operation/list-registries)."
explode: false
in: path
name: registry-id
required: true
schema:
type: string
style: simple
- description: "The [Repository Image](#components/schemas/registry-repository/properties/image).\
\ Which can be found by [List Repositories](#operation/list-registry-repositories)."
explode: false
in: path
name: repository-image
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/registry-repository'
description: OK
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Bad Request
security:
- API Key: []
summary: Read Repository
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
put:
description: Update a Repository in a Container Registry Subscription
operationId: update-repository
parameters:
- description: "The [Registry ID](#components/schemas/registry/properties/id).\
\ Which can be found by [List Registries](#operation/list-registries)."
explode: false
in: path
name: registry-id
required: true
schema:
type: string
style: simple
- description: "The [Repository Image](#components/schemas/registry-repository/properties/image).\
\ Which can be found by [List Repositories](#operation/list-registry-repositories)."
explode: false
in: path
name: repository-image
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
examples:
example:
value:
description: This is my super cool hello-world project
schema:
$ref: '#/components/schemas/update_repository_request'
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/registry-repository'
description: OK
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Bad Request
security:
- API Key: []
summary: Update Repository
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}" \
-X PUT \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"description" : "his is my super cool hello-world project"
}'
x-content-type: application/json
x-accepts: application/json
/registry/{registry-id}/docker-credentials?expiry_seconds=0&read_write=false:
options:
description: Create a fresh set of Docker Credentials for this Container Registry
Subscription
operationId: create-registry-docker-credentials
parameters:
- description: "The [Registry ID](#components/schemas/registry/properties/id).\
\ Which can be found by [List Registries](#operation/list-registries)."
explode: false
in: path
name: registry-id
required: true
schema:
type: string
style: simple
- description: "The seconds until these credentials expire. When set to 0, credentials\
\ do not expire. The default value is 0"
explode: true
in: query
name: expiry_seconds
required: false
schema:
type: integer
style: form
- description: "Whether these credentials will have only PULL access or PUSH\
\ access as well. If true these credentials can PUSH to repos in this registry.\
\ If false, these credentials can only PULL. Default is false."
explode: true
in: query
name: read_write
required: false
schema:
type: boolean
style: form
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/registry-docker-credentials'
description: OK
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Bad Request
security:
- API Key: []
summary: Create Docker Credentials
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/{registry-id}/docker-credentials" \
-X OPTIONS \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/registry/{registry-id}/docker-credentials/kubernetes?expiry_seconds=0&read_write=false&base64_encode=false:
options:
description: Create a fresh set of Docker Credentials for this Container Registry
Subscription and return them in a Kubernetes friendly YAML format
operationId: create-registry-kubernetes-docker-credentials
parameters:
- description: "The [Registry ID](#components/schemas/registry/properties/id).\
\ Which can be found by [List Registries](#operation/list-registries)."
explode: false
in: path
name: registry-id
required: true
schema:
type: string
style: simple
- description: "The seconds until these credentials expire. When set to 0, credentials\
\ do not expire. The default value is 0"
explode: true
in: query
name: expiry_seconds
required: false
schema:
type: integer
style: form
- description: "Whether these credentials will have only PULL access or PUSH\
\ access as well. If true these credentials can PUSH to repos in this registry.\
\ If false, these credentials can only PULL. Default is false."
explode: true
in: query
name: read_write
required: false
schema:
type: boolean
style: form
- description: "Whether this YAML will be returned in a base64 encoded string\
\ for ease of downloading. If true, the response will be a base64 encoded\
\ string. Default is false."
explode: true
in: query
name: base64_encode
required: false
schema:
type: boolean
style: form
responses:
"200":
content:
application/yaml:
schema:
$ref: '#/components/schemas/registry-kubernetes-docker-credentials'
description: OK
"401":
description: Unauthorized
"404":
description: Not Found
"422":
description: Bad Request
security:
- API Key: []
summary: Create Docker Credentials for Kubernetes
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/{registry-id}/docker-credentials/kubernetes" \
-X OPTIONS \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/yaml
/registry/region/list:
get:
description: List All Regions where a Container Registry can be deployed
operationId: list-registry-regions
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/list_registry_regions_200_response'
description: OK
"401":
description: Unauthorized
"422":
description: Bad Request
security:
- API Key: []
summary: List Registry Regions
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/region/list" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
/registry/plan/list:
get:
description: List All Plans to help choose which one is the best fit for your
Container Registry
operationId: list-registry-plans
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/list_registry_plans_200_response'
description: OK
"401":
description: Unauthorized
"422":
description: Bad Request
security:
- API Key: []
summary: List Registry Plans
tags:
- Container Registry
x-codeSamples:
- lang: Curl
source: |-
curl "https://api.vultr.com/v2/registry/plan/list" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
x-accepts: application/json
components:
parameters:
registry-id:
description: "The [Registry ID](#components/schemas/registry/properties/id).\
\ Which can be found by [List Registries](#operation/list-registries)."
explode: false
in: path
name: registry-id
required: true
schema:
type: string
style: simple
repository-image:
description: "The [Repository Image](#components/schemas/registry-repository/properties/image).\
\ Which can be found by [List Repositories](#operation/list-registry-repositories)."
explode: false
in: path
name: repository-image
required: true
schema:
type: string
style: simple
docker-credentials-expiry-seconds:
description: "The seconds until these credentials expire. When set to 0, credentials\
\ do not expire. The default value is 0"
explode: true
in: query
name: expiry_seconds
required: false
schema:
type: integer
style: form
docker-credentials-read-write:
description: "Whether these credentials will have only PULL access or PUSH access\
\ as well. If true these credentials can PUSH to repos in this registry. If\
\ false, these credentials can only PULL. Default is false."
explode: true
in: query
name: read_write
required: false
schema:
type: boolean
style: form
kubernetes-docker-credentials-base64-encode:
description: "Whether this YAML will be returned in a base64 encoded string\
\ for ease of downloading. If true, the response will be a base64 encoded\
\ string. Default is false."
explode: true
in: query
name: base64_encode
required: false
schema:
type: boolean
style: form
schemas:
billing:
description: Invoice
example:
date: date
amount: 6.027456183070403
balance: 1.4658129805029452
description: description
id: 0.8008281904610115
type: type
properties:
id:
description: ID of the billing history item
type: number
date:
description: Date billing history item was generated
type: string
type:
description: Type of billing history item
type: string
description:
description: Description of billing history item
type: string
amount:
description: Amount for the billing history item in dollars
type: number
balance:
description: The accounts balance in dollars
type: number
title: billing
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
invoice:
example:
date: date
amount: 6.027456183070403
balance: 1.4658129805029452
description: description
id: 0
properties:
id:
description: ID of the invoice
type: integer
date:
description: Date invoice was generated
type: string
description:
description: description of item
type: string
amount:
description: Amount due in dollars
type: number
balance:
description: Account balance amount in dollars
type: number
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
vke-cluster:
description: VKE Cluster
example:
firewall_group_id: firewall_group_id
ha_controlplanes: true
date_created: date_created
ip: ip
label: label
version: version
endpoint: endpoint
cluster_subnet: cluster_subnet
service_subnet: service_subnet
node_pools:
- nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
- nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
id: id
region: region
status: status
properties:
id:
description: ID for the VKE cluster
type: string
firewall_group_id:
description: "The [Firewall Group id](#operation/list-firewall-groups) linked\
\ to this cluster."
type: string
label:
description: Label for your cluster
type: string
date_created:
description: Date of creation
type: string
cluster_subnet:
description: IP range that your pods will run on in this cluster
type: string
service_subnet:
description: IP range that services will run on this cluster
type: string
ip:
description: IP for your Kubernetes Clusters Control Plane
type: string
endpoint:
description: Domain for your Kubernetes Clusters Control Plane
type: string
version:
description: Version of Kubernetes this cluster is running on
type: string
region:
description: Region this Kubernetes Cluster is running in
type: string
status:
description: Status for VKE cluster
type: string
ha_controlplanes:
description: |-
Whether a highly available control planes configuration has been deployed
* true
* false (default)
type: boolean
node_pools:
description: NodePools in this cluster
items:
$ref: '#/components/schemas/nodepools'
type: array
title: vke-cluster
type: object
x-examples:
example vke cluster:
id: 455dcd32-e621-48ee-a10e-0cb5f754e13e
firewall_group_id: ""
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
ha_controlplanes: false
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
nodepool-instances:
description: Instance that belongs to a nodepool
example:
date_created: date_created
id: id
label: label
properties:
id:
description: ID of the nodepool instance
type: string
label:
description: Label of the nodepool instance
type: string
date_created:
description: Date of creation
type: string
title: nodepool-instances
type: object
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
nodepools:
description: NodePool
example:
nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
properties:
id:
description: "The [NodePool ID](#operation/get-nodepools)."
type: string
date_created:
description: Date of creation
type: string
label:
description: Label for nodepool
type: string
tag:
description: Tag for node pool
type: string
plan:
description: Plan used for nodepool
type: string
status:
description: Status for nodepool
type: string
node_quantity:
description: Number of nodes in nodepool
type: integer
nodes:
items:
$ref: '#/components/schemas/nodepool-instances'
type: array
date_updated:
description: Date the nodepool was updated.
type: string
auto_scaler:
description: Displays if the auto scaler is enabled or disabled for your
cluster.
type: boolean
min_nodes:
description: Auto scaler field that displays the minimum nodes you want
for your cluster.
type: integer
max_nodes:
description: Auto scaler field that displays the maximum nodes you want
for your cluster.
type: integer
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
x-tags:
- kubernetes
network:
deprecated: true
description: Network information.
example:
date_created: date_created
v4_subnet_mask: 0
description: description
v4_subnet: v4_subnet
id: id
region: region
properties:
id:
description: A unique ID for the Private Network.
type: string
region:
description: "The [Region id](#operation/list-regions) where the network\
\ is located."
type: string
date_created:
description: Date the network was created.
type: string
description:
description: A description of the private network.
type: string
v4_subnet:
description: "The IPv4 network address. For example: 10.99.0.0"
type: string
v4_subnet_mask:
description: "The number of bits for the netmask in CIDR notation. Example:\
\ 24"
type: integer
required:
- id
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
x-tags:
- Private Networks
vpc:
description: VPC information.
example:
date_created: date_created
v4_subnet_mask: 0
description: description
v4_subnet: v4_subnet
id: id
region: region
properties:
id:
description: A unique ID for the VPC.
type: string
region:
description: "The [Region id](#operation/list-regions) where the VPC is\
\ located."
type: string
date_created:
description: Date the VPC was created.
type: string
description:
description: A description of the VPC.
type: string
v4_subnet:
description: "The IPv4 VPC address. For example: 10.99.0.0"
type: string
v4_subnet_mask:
description: "The number of bits for the netmask in CIDR notation. Example:\
\ 24"
type: integer
required:
- id
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
x-tags:
- VPCs
vpc2:
description: VPC 2.0 information.
example:
date_created: date_created
description: description
id: id
prefix_length: 0
region: region
ip_block: ip_block
properties:
id:
description: A unique ID for the VPC.
type: string
region:
description: "The [Region id](#operation/list-regions) where the VPC is\
\ located."
type: string
date_created:
description: Date the VPC was created.
type: string
description:
description: A description of the VPC.
type: string
ip_block:
description: "The VPC subnet IP address. For example: 10.99.0.0"
type: string
prefix_length:
description: "The number of bits for the netmask in CIDR notation. Example:\
\ 24"
type: integer
required:
- id
title: vpc2
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
ip_block: 10.99.0.0
prefix_length: 24
x-tags:
- VPC
instance-vpc2:
description: VPC 2.0 information.
example:
mac_address: mac_address
id: id
ip_address: ip_address
properties:
id:
description: A unique ID for the VPC.
type: string
mac_address:
description: The MAC address to use for this instance on the attached VPC
2.0 network.
type: string
ip_address:
description: The IP address to use for this instance on the attached VPC
2.0 network.
type: string
required:
- id
title: instance-vpc2
type: object
x-examples:
example:
id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
mac_address: 00:00:5e:00:53:5e
ip_block: 10.99.0.0
x-tags:
- VPC
user:
description: User information.
example:
user:
password: password
acls:
- acls
- acls
api_enabled: true
name: name
id: id
email: email
properties:
user:
$ref: '#/components/schemas/user_user'
title: user
type: object
x-tags:
- users
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
startup:
description: Startup Script information.
example:
date_modified: date_modified
date_created: date_created
name: name
id: id
type: type
script: script
properties:
id:
description: A unique ID for the Startup Script.
type: string
date_created:
description: The date the Startup Script was created.
type: string
date_modified:
description: The date the Startup Script was last modified.
type: string
name:
description: The user-supplied name of the Startup Script.
type: string
script:
description: The base-64 encoded Startup Script.
type: string
type:
description: |-
The Startup Script type.
* boot
* pxe
type: string
title: startup
type: object
x-tags:
- startup
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==
ssh:
description: SSH Key information.
example:
date_created: date_created
name: name
ssh_key: ssh_key
id: id
properties:
id:
description: A unique ID for the SSH Key.
type: string
date_created:
description: The date this SSH Key was created.
type: string
name:
description: The user-supplied name for this SSH Key.
type: string
ssh_key:
description: The SSH Key.
type: string
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
x-tags:
- ssh
snapshot:
description: Snapshot information.
example:
size: 0
date_created: date_created
os_id: 6
description: description
id: id
app_id: 1
status: status
properties:
id:
description: A unique ID for the Snapshot.
type: string
date_created:
description: The date this snapshot was created.
type: string
description:
description: The user-supplied description of the Snapshot.
type: string
size:
description: The snapshot size in bytes.
type: integer
status:
description: |-
The Snapshot status.
* pending
* complete
* deleted
type: string
os_id:
description: "The [Operating System id](#operation/list-os) for this Snapshot."
type: integer
app_id:
description: "The [Application id](#operation/list-applications) for this\
\ snapshot."
type: integer
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
x-tags:
- snapshot
subaccount:
description: Sub-account information.
example:
balance: ""
pending_charges: ""
subaccount_id: subaccount_id
id: id
subaccount_name: subaccount_name
email: email
activated: true
properties:
id:
description: A unique ID for the sub-account.
type: string
email:
description: The email address of this sub-account.
type: string
subaccount_name:
description: Your name for this sub-account.
type: string
subaccount_id:
description: Your ID for this sub-account.
type: string
activated:
description: Has this sub-account been activated or not.
type: boolean
balance:
description: The current balance of the sub-account.
type: float
pending_charges:
description: Charges due for this sub-account at the end of the billing
period.
type: float
title: subaccount
type: object
x-examples:
subaccount:
id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
email: subaccount@vultr.com
subaccount_name: Acme Widgets LLC
subaccount_id: 472924
activated: false
balance: 0
pending_charges: 0
x-tags:
- subaccount
reserved-ip:
description: Reserved IP information.
example:
subnet: subnet
instance_id: instance_id
id: id
subnet_size: 0
label: label
region: region
ip_type: ip_type
properties:
id:
description: A unique ID for the Reserved IP.
type: string
region:
description: "The [Region id](#operation/list-regions) where the Reserved\
\ IP is located."
type: string
ip_type:
description: |-
The type of IP address.
* v4
* v6
type: string
subnet:
description: The IP subnet.
type: string
subnet_size:
description: The IP network size in bits.
type: integer
label:
description: The user-supplied label.
type: string
instance_id:
description: "The [Instance id](#operation/list-instances) attached to this\
\ Reserved IP."
type: string
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
os:
description: Operating System information.
example:
name: name
id: 0
arch: arch
family: family
properties:
id:
description: The Operating System id.
type: integer
name:
description: The Operating System description.
type: string
arch:
description: The Operating System architecture.
type: string
family:
description: 'The Operating System family. '
type: string
title: os
type: object
x-tags:
- os
x-examples:
os:
id: 127
name: CentOS 6 x64
arch: x64
family: centos
application:
description: Application information.
example:
vendor: vendor
name: name
deploy_name: deploy_name
short_name: short_name
id: 0
type: type
image_id: image_id
properties:
id:
description: A unique ID for the application.
type: integer
name:
description: The application name.
type: string
short_name:
description: The short application name.
type: string
deploy_name:
description: A long description of the application.
type: string
type:
description: |-
The type of application.
* one-click - use app_id to deploy one-click applications.
* marketplace - use image_id to deploy marketplace applications.
type: string
vendor:
description: The application vendor name.
type: string
image_id:
description: A unique ID for marketplace applications.
type: string
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
x-tags:
- application
account:
description: Account information.
example:
acls:
- acls
- acls
balance: 0.8008281904610115
pending_charges: 6.027456183070403
name: name
last_payment_date: last_payment_date
email: email
last_payment_amount: 1.4658129805029452
properties:
name:
description: Your user name.
type: string
email:
description: Your email address.
type: string
acls:
description: |-
An array of permission granted.
* manage\_users
* subscriptions_view
* subscriptions
* billing
* support
* provisioning
* dns
* abuse
* upgrade
* firewall
* alerts
* objstore
* loadbalancer
items:
type: string
type: array
balance:
description: Your current account balance.
type: number
pending_charges:
description: Unbilled charges for this month.
type: number
last_payment_date:
description: Date of your last payment.
type: string
last_payment_amount:
description: The amount of your last payment.
type: number
title: account
type: object
x-tags:
- account
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
backup:
description: Backup information.
example:
size: 0
date_created: date_created
description: description
id: id
status: status
properties:
id:
description: A unique ID for the backup.
type: string
date_created:
description: The date the backup was created.
type: string
description:
description: The user-supplied description of this backup.
type: string
size:
description: The size of the backup in Bytes.
type: integer
status:
description: |-
The Backup status.
* complete
* pending
type: string
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
x-tags:
- backup
blockstorage:
description: Block Storage information.
example:
cost: 0
attached_to_instance: attached_to_instance
date_created: date_created
size_gb: 6
id: id
label: label
region: region
mount_id: mount_id
status: status
properties:
id:
description: A unique ID for the Block Storage.
type: string
cost:
description: The monthly cost of this Block Storage.
type: integer
status:
description: |-
The current status of this Block Storage.
* active
type: string
size_gb:
description: Size of the Block Storage in GB.
type: integer
region:
description: "The [Region id](#operation/list-regions) where the Block Storage\
\ is located."
type: string
attached_to_instance:
description: "The [Instance id](#operation/list-instances) with this Block\
\ Storage attached."
type: string
date_created:
description: The date this Block Storage was created.
type: string
label:
description: The user-supplied label.
type: string
mount_id:
description: "An ID associated with the instance, when mounted the ID can\
\ be found in /dev/disk/by-id prefixed with virtio."
type: string
title: blockstorage
type: object
x-tags:
- block
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
firewall-group:
description: Firewall Group information.
example:
date_modified: date_modified
date_created: date_created
description: description
id: id
max_rule_count: 1
instance_count: 0
rule_count: 6
properties:
id:
description: A unique ID for the Firewall Group.
type: string
description:
description: User-supplied description of this Firewall Group.
type: string
date_created:
description: Date the Firewall Group was originally created.
type: string
date_modified:
description: Date of the last modification to this Firewall Group.
type: string
instance_count:
description: The number of instances linked to this Firewall Group.
type: integer
rule_count:
description: The number of rules in this Firewall Group.
type: integer
max_rule_count:
description: The maximum number of rules allowed for this Firewall Group.
type: integer
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
firewall-rule:
description: Firewall rule information.
example:
subnet: subnet
protocol: protocol
notes: notes
port: port
action: action
id: 0
subnet_size: 6
source: source
type: type
ip_type: ip_type
properties:
id:
description: A unique ID for the Firewall Rule.
type: integer
type:
deprecated: true
description: |-
This field is deprecated. Use `ip_type` instead.
The type of IP rule.
* v4
* v6
type: string
ip_type:
description: |-
The type of IP rule.
* v4
* v6
type: string
action:
description: |-
Action to take when this rule is met.
* accept
type: string
protocol:
description: |
The protocol for this rule.
* ICMP
* TCP
* UDP
* GRE
type: string
port:
description: Port or port range for this rule.
type: string
subnet:
description: IP address representing a subnet. The IP address format must
match with the "ip_type" parameter value.
type: string
subnet_size:
description: "The number of bits for the netmask in CIDR notation. Example:\
\ 24"
type: integer
source:
description: |-
If the source string is given a value of "cloudflare" subnet and subnet_size will both be ignored.
Possible values:
| | Value | Description |
| - | ------ | ------------- |
| | "" | Use the value from `subnet` and `subnet_size`. |
| | cloudflare | Allow all of Cloudflare's IP space through the firewall |
type: string
notes:
description: User-supplied notes for this rule.
type: string
title: firewall-rule
type: object
x-tags:
- firewall
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
iso:
description: ISO information.
example:
sha512sum: sha512sum
filename: filename
size: 0
date_created: date_created
md5sum: md5sum
id: id
status: status
properties:
id:
description: A unique ID for the ISO.
type: string
date_created:
description: Date the ISO was created.
type: string
filename:
description: The ISO filename.
type: string
size:
description: The ISO size in KB.
type: integer
md5sum:
description: The calculated md5sum of the ISO.
type: string
sha512sum:
description: The calculated sha512sum of the ISO.
type: string
status:
description: |-
The current status of the ISO.
* complete
* pending
type: string
title: iso
type: object
x-tags:
- iso
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
iso-public:
description: Public ISO information.
example:
md5sum: md5sum
name: name
description: description
id: id
properties:
id:
description: A unique ID for the Vultr Public ISO.
type: string
name:
description: The short name of the Public ISO.
type: string
description:
description: The long description of the Public ISO.
type: string
md5sum:
type: string
title: iso-public
type: object
x-tags:
- iso
x-examples:
public iso:
id: cb676a46-66fd-4dfb-b839-443f2e6c0b604
name: CentOS 7
description: 7 x86_64 Minimal
md5sum: 7f4df50f42ee1b52b193e79855a3aa19
object-storage:
description: Object Storage information.
example:
s3_secret_key: s3_secret_key
cluster_id: 0
s3_access_key: s3_access_key
date_created: date_created
s3_hostname: s3_hostname
id: id
label: label
region: region
status: status
properties:
id:
description: A unique ID for the Object Storage.
type: string
date_created:
description: Date the Object Store was created.
type: string
cluster_id:
description: "The [Cluster id](#operation/list-object-storage-clusters)."
type: integer
region:
description: "The [Region id](#operation/list-regions) for this Object Storage."
type: string
label:
description: The user-supplied label for this Object Storage.
type: string
status:
description: |-
The status of this Object Storage.
* active
* pending
type: string
s3_hostname:
description: "The [Cluster hostname](#operation/list-object-storage-clusters)\
\ for this Object Storage."
type: string
s3_access_key:
description: The Object Storage access key.
type: string
s3_secret_key:
description: The Object Storage secret key.
type: string
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
clusters:
description: Object Storage Cluster information.
example:
hostname: hostname
id: 0
region: region
deploy: deploy
properties:
id:
description: A unique ID for the Object Storage cluster.
type: integer
region:
description: "The [Region id](#operation/list-regions) where the cluster\
\ is located."
type: string
hostname:
description: The cluster host name.
type: string
deploy:
description: |-
The Cluster is eligible for Object Storage deployment.
* yes
* no
type: string
title: clusters
type: object
x-tags:
- s3
x-examples:
object storage cluster:
id: 1
region: ewr
hostname: ewr1.vultrobjects.com
deploy: "yes"
domain:
description: DNS Domain information.
example:
date_created: date_created
domain: domain
dns_sec: dns_sec
properties:
domain:
description: Your registered domain name.
type: string
date_created:
description: Date the DNS Domain was created.
type: string
dns_sec:
description: |-
The domain's DNSSEC status
* enabled
* disabled
type: string
title: domain
type: object
x-tags:
- dns
x-examples:
list of domains:
domain: example.com
date_created: 2020-10-10T01:56:20+00:00
dns-soa:
description: SOA Record information.
example:
nsprimary: nsprimary
email: email
properties:
nsprimary:
description: Primary nameserver for this domain.
type: string
email:
description: Domain contact email address.
type: string
title: dns-soa
type: object
x-tags:
- dns
x-examples:
dns_soa:
dns_soa:
nsprimary: ns1.vultr.com
email: admin@example.com
dns-record:
description: DNS Record information.
example:
data: data
name: name
id: id
type: type
priority: 0
ttl: 6
properties:
id:
description: A unique ID for the DNS Record.
type: string
type:
description: |-
The DNS record type.
* A
* AAAA
* CNAME
* NS
* MX
* SRV
* TXT
* CAA
* SSHFP
type: string
name:
description: The hostname for this DNS record.
type: string
data:
description: The DNS data for this record type.
type: string
priority:
description: DNS priority. Does not apply to all record types.
type: integer
ttl:
description: Time to Live in seconds.
type: integer
title: dns-record
type: object
x-tags:
- dns
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
loadbalancer:
description: Load Balancer information.
example:
generic_info:
sticky_sessions:
cookie_name: cookie_name
private_network: private_network
ssl_redirect: true
proxy_protocol: true
vpc: vpc
balancing_algorithm: balancing_algorithm
instances:
- instances
- instances
firewall_rules:
- port: 3
id: id
source: source
ip_type: ip_type
- port: 3
id: id
source: source
ip_type: ip_type
date_created: date_created
has_ssl: true
label: label
health_check:
path: path
response_timeout: 1
healthy_threshold: 5
protocol: protocol
check_interval: 6
port: 0
unhealthy_threshold: 5
forward_rules:
- backend_portocol: backend_portocol
frontend_protocol: frontend_protocol
id: id
frontend_port: 7
backend_port: 9
- backend_portocol: backend_portocol
frontend_protocol: frontend_protocol
id: id
frontend_port: 7
backend_port: 9
nodes: 2
ipv4: ipv4
ipv6: ipv6
http2: true
id: id
region: region
status: status
properties:
id:
description: A unique ID for the Load Balancer.
type: string
date_created:
description: Date this Load Balancer was created.
type: string
region:
description: "The [Region id](#operation/list-regions) where the Load Balancer\
\ is located."
type: string
label:
description: The user-supplied label for this load-balancer.
type: string
status:
description: |-
The current status.
* active
type: string
ipv4:
description: The IPv4 address of this Load Balancer.
type: string
ipv6:
description: The IPv6 address of this Load Balancer.
type: string
generic_info:
$ref: '#/components/schemas/loadbalancer_generic_info'
health_check:
$ref: '#/components/schemas/loadbalancer_health_check'
has_ssl:
description: Indicates if this Load Balancer has an SSL certificate installed.
type: boolean
http2:
description: Indicates if this Load Balancer has HTTP2 enabled.
type: boolean
nodes:
description: "The number of nodes to add to the load balancer (1-99), must\
\ be an odd number. This defaults to 1."
type: integer
forward_rules:
description: An array of forwarding rule objects.
items:
$ref: '#/components/schemas/loadbalancer_forward_rules_inner'
type: array
instances:
description: "Array of [Instance ids](#operation/list-instances) attached\
\ to this Load Balancer."
items:
type: string
type: array
firewall_rules:
description: An array of firewall rule objects.
items:
$ref: '#/components/schemas/loadbalancer_firewall_rules_inner'
type: array
title: loadbalancer
type: object
x-tags:
- load-balancer
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
nodes: 1
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
region:
description: Region information.
example:
continent: continent
country: country
city: city
options:
- options
- options
id: id
properties:
id:
description: A unique ID for the Region.
type: string
country:
description: "The [two-letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\
\ for this Region."
type: string
options:
description: An array of product features available in this Region.
items:
type: string
type: array
continent:
description: The name of the continent for this Region.
type: string
city:
description: The name of the city for this Region.
type: string
title: region
type: object
x-tags:
- region
x-examples:
example:
id: ewr
city: New Jersey
country: US
continent: North America
options:
- ddos_protection
- load_balancers
- object_storage
- kubernetes
- block_storage
plans:
description: Plans for VPS instances.
example:
disk: 1
vcpu_count: 0
monthly_cost: 5
bandwidth: 5
name: name
locations:
- locations
- locations
disk_count: 2
id: id
type: type
ram: 6
properties:
id:
description: A unique ID for the Plan.
type: string
name:
description: The Plan name.
type: string
vcpu_count:
description: The number of vCPUs in this Plan.
type: integer
ram:
description: The amount of RAM in MB.
type: integer
disk:
description: The disk size in GB.
type: integer
bandwidth:
description: The monthly bandwidth quota in GB.
type: integer
monthly_cost:
description: The monthly cost in US Dollars.
type: integer
type:
description: |-
The plan type.
| | Type | Description |
| - | ------ | ------------- |
| | vc2 | Cloud Compute |
| | vhf | High Frequency Compute |
| | vdc | Dedicated Cloud |
type: string
locations:
description: An array of Regions where this plan is valid for use.
items:
type: string
type: array
disk_count:
description: The number of disks that this plan offers.
type: integer
title: plans
type: object
x-tags:
- plans
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
plans-metal:
description: Plans for Bare Metal instances.
example:
disk: disk
monthly_cost: 5
bandwidth: 5
cpu_model: cpu_model
locations:
- locations
- locations
disk_count: 2
id: id
cpu_threads: 6
type: type
cpu_count: 0
ram: 1
properties:
id:
description: A unique ID for the Bare Metal Plan.
type: string
cpu_count:
description: The number of CPUs in this Plan.
type: integer
cpu_model:
description: The CPU model type for this instance.
type: string
cpu_threads:
description: The numner of supported threads for this instance.
type: integer
ram:
description: The amount of RAM in MB.
type: integer
disk:
description: The disk size in GB.
type: string
bandwidth:
description: The monthly bandwidth quota in GB.
type: integer
locations:
description: An array of Regions where this plan is valid for use.
items:
type: string
type: array
type:
description: |-
The plan type.
* SSD
type: string
monthly_cost:
description: The monthly cost in US Dollars.
type: integer
disk_count:
description: The number of disks that this plan offers.
type: integer
title: plans-metal
type: object
x-tags:
- plans
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
baremetal:
description: Bare Metal information.
example:
gateway_v4: gateway_v4
user_scheme: user_scheme
os: os
main_ip: main_ip
date_created: date_created
os_id: 6
default_password: default_password
label: label
cpu_count: 0
v6_main_ip: v6_main_ip
tags:
- tags
- tags
v6_network_size: 5
disk: disk
v6_network: v6_network
mac_address: 5
id: id
tag: tag
region: region
image_id: image_id
plan: plan
app_id: 1
netmask_v4: netmask_v4
ram: ram
status: status
properties:
id:
description: A unique ID for the Bare Metal instance.
type: string
os:
description: "The [Operating System name](#operation/list-os)."
type: string
ram:
description: Text description of the instances' RAM.
type: string
disk:
description: Text description of the instances' disk configuration.
type: string
main_ip:
description: The main IPv4 address.
type: string
cpu_count:
description: Number of CPUs.
type: integer
region:
description: "The [Region id](#operation/list-regions) where the instance\
\ is located."
type: string
default_password:
description: The default password assigned at deployment. Only available
for ten minutes after deployment.
type: string
date_created:
description: The date this instance was created.
type: string
status:
description: |-
The current status.
* active
* pending
* suspended
type: string
netmask_v4:
description: The IPv4 netmask in dot-decimal notation.
type: string
gateway_v4:
description: The IPv4 gateway address.
type: string
plan:
description: "The [Bare Metal Plan id](#operation/list-metal-plans) used\
\ by this instance."
type: string
label:
description: The user-supplied label for this instance.
type: string
tag:
deprecated: true
description: Use `tags` instead. The user-supplied tag for this instance.
type: string
os_id:
description: "The [Operating System id](#operation/list-os)."
type: integer
app_id:
description: "The [Application id](#operation/list-applications)."
type: integer
image_id:
description: "The [Application image_id](#operation/list-applications)."
type: string
v6_network:
description: The IPv6 network size in bits.
type: string
v6_main_ip:
description: The main IPv6 network address.
type: string
v6_network_size:
description: The IPv6 subnet.
type: integer
mac_address:
description: The MAC address for a Bare Metal server.
type: integer
tags:
description: Tags to apply to the instance.
items:
type: string
type: array
user_scheme:
description: |-
The user scheme.
* root
* limited
type: string
title: baremetal
type: object
x-tags:
- baremetal
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
baremetal-ipv4:
description: Bare Metal IPv4 information.
example:
netmask: netmask
mac_address: mac_address
ip: ip
type: type
reverse: reverse
gateway: gateway
properties:
ip:
description: The IPv4 address.
type: string
netmask:
description: The IPv4 netmask in dot-decimal notation.
type: string
gateway:
description: The gateway IP address.
type: string
type:
description: |-
The type of IP address.
* main_ip
type: string
reverse:
description: The reverse DNS information for this IP address.
type: string
mac_address:
description: The MAC address associated with this IP address.
type: string
title: baremetal-ipv4
type: object
x-tags:
- baremetal
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
baremetal-ipv6:
description: Bare Metal IPv6 information.
example:
network_size: 0
ip: ip
type: type
network: network
properties:
ip:
description: A unique ID for the IPv6 address.
type: string
network:
description: The IPv6 subnet.
type: string
network_size:
description: The IPv6 network size in bits.
type: integer
type:
description: |-
The type of IP address.
* main_ip
type: string
title: baremetal-ipv6
type: object
x-tags:
- baremetal
bandwidth:
description: Bandwidth information.
example:
incoming_bytes: 0
outgoing_bytes: 6
properties:
incoming_bytes:
description: Total bytes received by this instance on the date (UTC) denoted
by the object key.
type: integer
outgoing_bytes:
description: Total bytes sent by this instance on the date (UTC) denoted
by the object key.
type: integer
title: bandwidth
type: object
x-examples: {}
x-tags:
- bandwidth
instance:
description: Instance information.
example:
firewall_group_id: firewall_group_id
user_scheme: user_scheme
os_id: 2
server_status: server_status
internal_ip: internal_ip
allowed_bandwidth: 5
features:
- features
- features
hostname: hostname
vcpu_count: 1
id: id
tag: tag
app_id: 7
plan: plan
netmask_v4: netmask_v4
ram: 0
gateway_v4: gateway_v4
kvm: kvm
os: os
main_ip: main_ip
power_status: power_status
date_created: date_created
default_password: default_password
label: label
tags:
- tags
- tags
disk: 6
v6_networks:
- network_size: 5
main_ip: main_ip
network: network
- network_size: 5
main_ip: main_ip
network: network
region: region
image_id: image_id
status: status
properties:
id:
description: A unique ID for the VPS Instance.
type: string
os:
description: "The [Operating System name](#operation/list-os)."
type: string
ram:
description: The amount of RAM in MB.
type: integer
disk:
description: The size of the disk in GB.
type: integer
main_ip:
description: The main IPv4 address.
type: string
vcpu_count:
description: Number of vCPUs.
type: integer
region:
description: "The [Region id](#operation/list-regions) where the Instance\
\ is located."
type: string
default_password:
description: The default password assigned at deployment. Only available
for ten minutes after deployment.
type: string
date_created:
description: The date this instance was created.
type: string
status:
description: |-
The current status.
* active
* pending
* suspended
* resizing
type: string
power_status:
description: |-
The power-on status.
* running
* stopped
type: string
server_status:
description: |-
The server health status.
* none
* locked
* installingbooting
* ok
type: string
allowed_bandwidth:
description: Monthly bandwidth quota in GB.
type: integer
netmask_v4:
description: The IPv4 netmask in dot-decimal notation.
type: string
gateway_v4:
description: The gateway IP address.
type: string
v6_networks:
description: An array of IPv6 objects.
items:
$ref: '#/components/schemas/instance_v6_networks_inner'
type: array
hostname:
description: The hostname for this instance.
type: string
label:
description: The user-supplied label for this instance.
type: string
tag:
deprecated: true
description: Use `tags` instead. The user-supplied tag for this instance.
type: string
internal_ip:
description: "The internal IP used by this instance, if set. Only relevant\
\ when a VPC is attached."
type: string
kvm:
description: HTTPS link to the Vultr noVNC Web Console.
type: string
os_id:
description: "The [Operating System id](#operation/list-os) used by this\
\ instance."
type: integer
app_id:
description: "The [Application id](#operation/list-applications) used by\
\ this instance."
type: integer
image_id:
description: "The [Application image_id](#operation/list-applications) used\
\ by this instance."
type: string
firewall_group_id:
description: "The [Firewall Group id](#operation/list-firewall-groups) linked\
\ to this Instance."
type: string
features:
description: "\"auto_backups\", \"ipv6\", \"ddos_protection\""
items:
type: string
type: array
plan:
description: A unique ID for the Plan.
type: string
tags:
description: Tags to apply to the instance.
items:
type: string
type: array
user_scheme:
description: |-
The user scheme.
* root
* limited
type: string
title: instance
type: object
x-tags:
- instances
x-examples: {}
dbaas-meta:
description: The meta information object.
example:
total: 2
properties:
total:
description: Total objects available in the list.
type: integer
title: meta
type: object
x-examples:
meta response:
meta:
total: 31
database:
description: Managed Database information.
example:
database_engine_version: database_engine_version
vpc_id: vpc_id
read_replicas:
- "{}"
- "{}"
ferretdb_credentials:
password: password
public_ip: public_ip
port: ""
host: host
private_ip: private_ip
username: username
password: password
maintenance_dow: maintenance_dow
host: host
mysql_long_query_time: 5
pg_available_extensions:
- "{}"
- "{}"
id: id
tag: tag
redis_eviction_policy: redis_eviction_policy
plan: plan
latest_backup: latest_backup
mysql_require_primary_key: true
plan_vcpus: 1
public_host: public_host
date_created: date_created
label: label
plan_replicas: 5
database_engine: database_engine
plan_ram: 6
dbname: dbname
mysql_sql_modes:
- mysql_sql_modes
- mysql_sql_modes
port: port
maintenance_time: maintenance_time
mysql_slow_query_log: true
plan_disk: 0
trusted_ips:
- trusted_ips
- trusted_ips
cluster_time_zone: cluster_time_zone
region: region
user: user
status: status
properties:
id:
description: A unique ID for the Managed Database.
type: string
date_created:
description: The date this database was created.
type: string
plan:
description: The name of the Managed Database plan.
type: string
plan_disk:
description: The size of the disk in GB (excluded for Redis engine types).
type: integer
plan_ram:
description: The amount of RAM in MB.
type: integer
plan_vcpus:
description: Number of vCPUs.
type: integer
plan_replicas:
description: Number of replica nodes.
type: integer
region:
description: "The [Region id](#operation/list-regions) where the Managed\
\ Database is located."
type: string
database_engine:
description: "The database engine type (MySQL, PostgreSQL, FerretDB + PostgreSQL,\
\ Redis)."
type: string
database_engine_version:
description: The version number of the database engine in use.
type: string
vpc_id:
description: "The ID of the [VPC Network](#operation/get-vpc) attached to\
\ the Managed Database."
type: string
status:
description: |-
The current status.
* Rebuilding
* Rebalancing
* Running
type: string
label:
description: The user-supplied label for this managed database.
type: string
tag:
description: The user-supplied tag for this managed database.
type: string
dbname:
description: The default database name.
type: string
ferretdb_credentials:
$ref: '#/components/schemas/database_ferretdb_credentials'
host:
description: "The public hostname for database connections, or private hostname\
\ if this managed database is attached to a VPC network."
type: string
public_host:
description: The public hostname for database connections. Only visible
when the managed database is attached to a VPC network.
type: string
user:
description: The default user configured on creation.
type: string
password:
description: The default user's secure password generated on creation.
type: string
port:
description: The assigned port for connecting to the Managed Database.
type: string
maintenance_dow:
description: The chosen date of week for routine maintenance updates.
type: string
maintenance_time:
description: The chosen hour for routine maintenance updates.
type: string
latest_backup:
description: The date for the latest backup stored on the Managed Database.
type: string
trusted_ips:
description: A list of trusted IP addresses for connecting to this Managed
Database (in CIDR notation).
items:
type: string
type: array
mysql_sql_modes:
description: A list names of enabled SQL Modes for MySQL engine types only.
items:
type: string
type: array
mysql_require_primary_key:
description: Configuration value for requiring table primary keys for MySQL
engine types only.
type: boolean
mysql_slow_query_log:
description: Configuration value for slow query logging on the Managed Database
for MySQL engine types only.
type: boolean
mysql_long_query_time:
description: The number of seconds to denote a slow query when logging is
enabled for MySQL engine types only.
type: integer
pg_available_extensions:
description: A list of objects containing names and versions (when applicable)
of available extensions for PostgreSQL engine types only.
items:
type: object
type: array
redis_eviction_policy:
description: The current configured data eviction policy for Redis engine
types only.
type: string
cluster_time_zone:
description: The configured time zone of the Managed Database in TZ database
format.
type: string
read_replicas:
description: A list of database objects containing details for all attached
read-only replica nodes.
items:
type: object
type: array
title: database
type: object
x-tags:
- databases
x-examples: {}
dbaas-plan:
description: Managed Database plan information.
example:
disk: 5
max_connections: "{}"
vcpu_count: 6
monthly_cost: 5
supported_engines: "{}"
locations:
- locations
- locations
id: id
type: type
number_of_nodes: 0
ram: 1
properties:
id:
description: A unique ID for the plan.
type: string
number_of_nodes:
description: The total number of nodes for this plan.
type: integer
type:
description: The type of plan this is.
type: string
vcpu_count:
description: Number of vCPUs.
type: integer
ram:
description: The amount of RAM in MB.
type: integer
disk:
description: The size of the disk in GB (excluded for Redis engine types).
type: integer
monthly_cost:
description: The monthly cost of this Managed Database plan.
type: integer
supported_engines:
description: A list of key/value pairs with database engine types and boolean
values.
type: object
max_connections:
description: A list of key/value pairs with database engine types (excluding
Redis) and integers of max connection values.
type: object
locations:
description: A list of available regions in which this plan is currently
available.
items:
type: string
type: array
title: plan
type: object
x-tags:
- database-plans
x-examples: {}
database-usage:
description: Managed Database usage information.
example:
disk:
current_gb: current_gb
percentage: percentage
max_gb: max_gb
memory:
percentage: percentage
current_mb: current_mb
max_mb: max_mb
cpu:
percentage: percentage
properties:
disk:
$ref: '#/components/schemas/database_usage_disk'
memory:
$ref: '#/components/schemas/database_usage_memory'
cpu:
$ref: '#/components/schemas/database_usage_cpu'
title: usage
type: object
x-tags:
- database-usage
x-examples: {}
database-user:
description: Managed Database user information.
example:
password: password
encryption: encryption
access_control:
redis_acl_keys:
- redis_acl_keys
- redis_acl_keys
redis_acl_channels:
- redis_acl_channels
- redis_acl_channels
redis_acl_categories:
- redis_acl_categories
- redis_acl_categories
redis_acl_commands:
- redis_acl_commands
- redis_acl_commands
username: username
properties:
username:
description: The username for the database user.
type: string
password:
description: The password for the database user.
type: string
encryption:
description: |-
The password encryption for the database user (MySQL engine type only).
* `Default (MySQL 8+)`
* `Legacy (MySQL 5.x)`
type: string
access_control:
$ref: '#/components/schemas/database_user_access_control'
title: user
type: object
x-tags:
- database-users
x-examples: {}
dbaas-alerts:
description: Managed Database alerts information.
example:
maintenance_scheduled: maintenance_scheduled
table_count: 0
resource_type: resource_type
description: description
recommendation: recommendation
message_type: message_type
timestamp: timestamp
properties:
timestamp:
description: The date and time in which the alert was sent.
type: string
message_type:
description: |-
The category of alert that was sent.
* `DB MASTER PROMOTION`
* `MAINTENANCE SCHEDULED`
* `MISSING MYSQL PRIMARY KEYS`
* `RESOURCE USAGE DISK`
* `RESOURCE USAGE OOM KILLED`
* `RESOURCE USAGE PG REPLICATION SLOTS`
type: string
description:
description: A verbose description of the associated alert category.
type: string
recommendation:
description: A description of the recommended action the customer should
take. Only included for certain alert types.
type: string
maintenance_scheduled:
description: The time in which mandatory maintenance has been scheduled
with the associated alert. Only included for certain alert types.
type: string
resource_type:
description: The affected resource related to the associated alert. Only
included for certain alert types.
type: string
table_count:
description: The number of affected tables related to the associated alert.
Only included for certain alert types.
type: integer
title: alert
type: object
x-tags:
- database-alerts
x-examples: {}
dbaas-migration:
description: Managed Database migration information.
example:
method: method
credentials:
password: password
database: database
port: ""
ignored_databases: ignored_databases
host: host
ssl: true
username: username
error: error
status: status
properties:
status:
description: |-
The current status of the attached migration.
* `complete`
* `error`
* `pending`
* `running`
type: string
method:
description: The type of migration performed (dump or replication). Only
shows if status is `complete`.
type: string
error:
description: The verbose error message output for migrations with an `error`
status.
type: string
credentials:
$ref: '#/components/schemas/dbaas_migration_credentials'
title: migration
type: object
x-tags:
- database-migration
x-examples: {}
database-latest-backup:
description: Managed Database latest backup information.
example:
date: date
time: time
properties:
date:
description: The date of the most recently available backup.
type: string
time:
description: The time of the most recently available backup.
type: string
title: backup
type: object
x-tags:
- database-latest-backup
x-examples: {}
database-oldest-backup:
description: Managed Database oldest backup information.
example:
date: date
time: time
properties:
date:
description: The date of the oldest available backup.
type: string
time:
description: The time of the oldest available backup.
type: string
title: backup
type: object
x-tags:
- database-oldest-backup
x-examples: {}
database-connections:
description: Managed Database connection information.
example:
max: 1
available: 6
used: 0
properties:
used:
description: The number of used database connections.
type: integer
available:
description: The number of available database connections.
type: integer
max:
description: The maximum number of database connections.
type: integer
title: connection
type: object
x-tags:
- database-connections
x-examples: {}
connection-pool:
description: Managed Database connection pool information.
example:
mode: mode
database: database
size: 5
name: name
username: username
properties:
name:
description: The name of the connection pool.
type: string
database:
description: The logical database associated with the connection pool.
type: string
username:
description: The database user associated with the connection pool.
type: string
mode:
description: |-
The mode for the connection pool.
* `session`
* `transaction`
* `statement`
type: string
size:
description: The size of the connection pool.
type: integer
title: connection_pool
type: object
x-tags:
- database-connection-pool
x-examples: {}
dbaas-available-options:
description: Managed Database PostgreSQL advanced configuration options.
example:
min_value: ""
enumerals:
- enumerals
- enumerals
name: name
alt_values:
- ""
- ""
units: units
type: type
max_value: ""
properties:
name:
description: The name of the configuration option.
type: string
type:
description: |-
The type of the configuration option.
* `int`
* `float`
* `bool`
* `enum`
type: string
enumerals:
description: Valid enumerals for `enum` type configuration options only.
items:
type: string
type: array
min_value:
description: The smallest value accepted for the configuration option.
type: mixed
max_value:
description: The largest value accepted for the configuration option.
type: mixed
alt_values:
description: Any alternate value accepted for the configuration option.
items:
type: mixed
type: array
units:
description: The units associated with the configuration option.
type: string
title: available_option
type: object
x-tags:
- database-available-options
x-examples: {}
database-db:
description: Managed Database logical database information.
example:
name: name
properties:
name:
description: The name of the logical database.
type: string
title: db
type: object
x-tags:
- database-dbs
x-examples: {}
private-networks:
deprecated: true
description: Private Network information.
example:
mac_address: mac_address
id: id
ip_address: ip_address
properties:
id:
description: A unique ID for the Private Network.
type: string
mac_address:
description: The assigned MAC address.
type: string
ip_address:
description: The assigned IP address.
type: string
title: private-networks
type: object
x-tags:
- private-networks
x-examples:
example-1: {}
backup-schedule:
description: Backup schedule information.
example:
dom: 1
hour: 0
next_scheduled_time_utc: next_scheduled_time_utc
type: type
dow: 6
enabled: true
properties:
enabled:
description: |-
Indicates if backup is enabled:
* true
* false
type: boolean
type:
description: |-
Type of backup schedule:
| | Value | Description |
| - | ------ | ------------- |
| | daily | Back up once per day at `hour`. |
| | weekly | Back up once per week on `dow` at `hour`. |
| | monthly | Back up each month at `dom` at `hour`. |
| | daily\_alt\_even | Back up on even dates at `hour`. |
| | daily\_alt\_odd | Back up on odd dates at `hour`. |
type: string
next_scheduled_time_utc:
description: Time of next backup run in UTC.
type: string
hour:
description: Scheduled hour of day in UTC.
type: integer
dow:
description: |-
Day of week to run.
| | Value | Description |
| - | ------ | ------------- |
| | 1 | Sunday |
| | 2 | Monday |
| | 3 | Tuesday |
| | 4 | Wednesday |
| | 5 | Thursday |
| | 6 | Friday |
| | 7 | Saturday |
type: integer
dom:
description: Day of month to run. Use values between 1 and 28.
type: integer
title: backup-schedule
type: object
x-tags:
- backup-schedule
forwarding-rule:
description: Forwarding Rule information.
example:
frontend_protocol: frontend_protocol
id: id
frontend_port: 0
backend_protocol: backend_protocol
backend_port: 6
properties:
id:
description: A unique ID for the Forwarding Rule.
type: string
frontend_protocol:
description: |-
The protocol on the Load Balancer to forward to the backend.
* HTTP
* HTTPS
* TCP
type: string
frontend_port:
description: The port number on the Load Balancer to forward to the backend.
type: integer
backend_protocol:
description: |-
The protocol destination on the backend server.
* HTTP
* HTTPS
* TCP
type: string
backend_port:
description: The port number destination on the backend server.
type: integer
title: forwarding-rule
type: object
x-tags:
- load-balancer
x-examples:
forwarding rules:
id: cb676a46-66fd-4dfb-b839-443f2e6c0b60
frontend_protocol: http
frontend_port: 80
backend_protocol: http
backend_port: 80
meta:
description: "The meta information object. See [Meta and Pagination](#section/Introduction/Meta-and-Pagination)\
\ for more information."
example:
total: 0
links:
next: next
prev: prev
properties:
total:
description: Total objects available in the list. This value may be greater
than the number of objects returned if `per_page` is set.
type: integer
links:
$ref: '#/components/schemas/meta_links'
title: meta
type: object
x-examples:
meta response:
meta:
total: 31
links:
next: WxYzExampleNext
prev: ""
loadbalancer-firewall-rule:
description: Load Balancer firewall rule information.
example:
port: 0
id: id
source: source
ip_type: ip_type
properties:
id:
description: The unique ID for the firewall rule
minLength: 1
type: string
port:
description: |
Port for this rule.
type: integer
source:
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.
Possible values:
| | Value | Description |
| - | ------ | ------------- |
| | "192.168.1.1/16" | Ip address with a subnet size. |
| | cloudflare | Allow all of Cloudflare's IP space through the firewall |
minLength: 1
type: string
ip_type:
description: |
The type of IP rule.
* v4
* v6
minLength: 1
type: string
type: object
x-examples:
Example:
id: 9fea55b93016eafb
port: 80
source: 192.168.1.1/16
ip_type: v4
registry:
description: Container Registry Entity
example:
urn: urn
metadata:
subscription:
billing:
monthly_price: ""
pending_charges: ""
region:
urn: urn
added_at: added_at
public: true
updated_at: updated_at
name: name
base_url: base_url
data_center: "{}"
id: 6
public: true
date_created: date_created
name: name
id: id
storage:
allowed:
updated_at: updated_at
mb: ""
bytes: ""
gb: ""
tb: ""
used:
updated_at: updated_at
mb: ""
bytes: ""
gb: ""
tb: ""
root_user:
added_at: added_at
password: password
updated_at: updated_at
root: true
id: 0
username: username
properties:
id:
description: The UUID to reference this registry
type: string
name:
description: The globally unique name to reference this registry
type: string
urn:
description: "The base URN (the URL without the scheme [i.e. http:// or\
\ https://]) of this registry"
type: string
storage:
$ref: '#/components/schemas/registry_storage'
date_created:
description: The date this Registry Subscription was created
type: string
public:
description: "If true, this is a publically accessible registry allowing\
\ anyone to pull from it. If false, this registry is completely private"
type: boolean
root_user:
$ref: '#/components/schemas/registry-user'
metadata:
$ref: '#/components/schemas/registry_metadata'
title: registry
type: object
x-tags:
- registry
- registries
x-examples: {}
registry-storage:
description: Container Registry Storage Information
example:
updated_at: updated_at
mb: ""
bytes: ""
gb: ""
tb: ""
properties:
bytes:
description: Storage in Bytes
type: float
mb:
description: Storage in Megabytes
type: float
gb:
description: Storage in Gigabytes
type: float
tb:
description: Storage in Terabytes
type: float
updated_at:
description: The date at which the storage information was last updated
type: string
title: registry-storage
type: object
x-tags:
- registry-storage
- registries-storage
x-examples: {}
registry-repository:
description: Container Registry Repository Entity
example:
image: image
added_at: added_at
updated_at: updated_at
name: name
artifact_count: 6
description: description
pull_count: 0
properties:
name:
description: The name of this repository (the name of the container image
prepended with the registry name)
type: string
image:
description: The name of the conatiner image
type: string
description:
description: User defined description of this repository
type: string
added_at:
description: The date this Repo was added
type: string
updated_at:
description: The date this Repo was last updated
type: string
pull_count:
description: The amount of pulls for this Repo
type: integer
artifact_count:
description: The amount of artifacts of this Repo
type: integer
title: registry-repository
type: object
x-tags:
- registry-repository
- registry-repositories
x-examples: {}
registry-user:
description: Container Registry User Entity
example:
added_at: added_at
password: password
updated_at: updated_at
root: true
id: 0
username: username
properties:
id:
description: The Numeric ID of this user.
type: integer
username:
description: The globally unique name of this user.
type: string
password:
description: The password this user will use to authenticate.
type: string
root:
description: "If true, this is a root user/registry owner meaning it cannot\
\ be deleted or renamed. If false, this is an additional user added to\
\ this registry that can be modified"
type: boolean
added_at:
description: The date this User was added
type: string
updated_at:
description: The date this User was last updated
type: string
title: registry-user
type: object
x-tags:
- registry-user
x-examples: {}
registry-region:
description: Container Registry Region Entity
example:
urn: urn
added_at: added_at
public: true
updated_at: updated_at
name: name
base_url: base_url
data_center: "{}"
id: 6
properties:
id:
description: The Numeric ID of this region.
type: integer
name:
description: "The unique name of this region, this is what you will use\
\ to specify a region when creating your subscription"
type: string
urn:
description: "The base URN (the URL without the scheme [i.e. http:// or\
\ https://]) of this region"
type: string
base_url:
description: The base URL of this region
type: string
public:
description: "If true, this is a publically accessible region allowing any\
\ customer to create new subscriptions on this region. If false, this\
\ region is not generally available yet"
type: boolean
added_at:
description: The date this Region was added
type: string
updated_at:
description: The date this Region was last updated
type: string
data_center:
description: Information on the datacenter this region resides in
type: object
title: registry-region
type: object
x-tags:
- registry-region
x-examples: {}
registry-plan:
description: Container Registry Plan Entity. The KEY of this entity is the Plan
ID you will use to create/upgrade your Container Registry
example:
monthly_price: 6
vanity_name: vanity_name
max_storage_mb: 0
properties:
vanity_name:
description: The Nice Name of the plan
type: string
max_storage_mb:
description: The total allocated storage this plan allows
type: integer
monthly_price:
description: The monthly price for this plan
type: integer
title: registry-plan
type: object
x-tags:
- registry-plan
x-examples: {}
registry-docker-credentials:
description: Container Registry Docker Credentials Entity
example:
auths:
'{registry-region-name}.vultrcr.com':
auth: auth
properties:
auths:
$ref: '#/components/schemas/registry_docker_credentials_auths'
title: registry-docker-credentials
type: object
x-tags:
- registry-docker-credentials
x-examples: {}
registry-kubernetes-docker-credentials:
description: Container Registry Kubernetes Docker Credentials Entity
properties:
apiVersion:
description: Specifies that this is api v1
type: string
kind:
description: Specifies that this is a Kubernetes Secret
type: string
metadata:
$ref: '#/components/schemas/registry_kubernetes_docker_credentials_metadata'
data:
$ref: '#/components/schemas/registry_kubernetes_docker_credentials_data'
type:
description: Specifies that this type is a kubernetes.io/dockerconfigjson
type: string
title: registry-kubernetes-docker-credentials
type: object
x-tags:
- registry-kubernetes-docker-credentials
x-examples: {}
get_network_200_response:
example:
network:
date_created: date_created
v4_subnet_mask: 0
description: description
v4_subnet: v4_subnet
id: id
region: region
properties:
network:
$ref: '#/components/schemas/network'
type: object
update_network_request:
properties:
description:
description: The Private Network description.
type: string
required:
- description
type: object
list_networks_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
networks:
- date_created: date_created
v4_subnet_mask: 0
description: description
v4_subnet: v4_subnet
id: id
region: region
- date_created: date_created
v4_subnet_mask: 0
description: description
v4_subnet: v4_subnet
id: id
region: region
properties:
networks:
items:
$ref: '#/components/schemas/network'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_network_request:
properties:
region:
description: "Create the Private Network in this [Region id](#operation/list-regions)."
type: string
description:
description: A description of the private network.
type: string
v4_subnet:
description: "The IPv4 network address. For example: 10.99.0.0"
type: string
v4_subnet_mask:
description: "The number of bits for the netmask in CIDR notation. Example:\
\ 24"
type: integer
required:
- region
type: object
get_vpc_200_response:
example:
vpc:
date_created: date_created
v4_subnet_mask: 0
description: description
v4_subnet: v4_subnet
id: id
region: region
properties:
vpc:
$ref: '#/components/schemas/vpc'
type: object
update_vpc_request:
properties:
description:
description: The VPC description.
type: string
required:
- description
type: object
list_vpcs_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
vpcs:
- date_created: date_created
v4_subnet_mask: 0
description: description
v4_subnet: v4_subnet
id: id
region: region
- date_created: date_created
v4_subnet_mask: 0
description: description
v4_subnet: v4_subnet
id: id
region: region
properties:
vpcs:
items:
$ref: '#/components/schemas/vpc'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_vpc_request:
properties:
region:
description: "Create the VPC in this [Region id](#operation/list-regions)."
type: string
description:
description: A description of the VPC.
type: string
v4_subnet:
description: "The IPv4 VPC address. For example: 10.99.0.0
If v4_subnet_mask is specified then v4_subnet is a required\
\ field."
type: string
v4_subnet_mask:
description: "The number of bits for the netmask in CIDR notation. Example:\
\ 24
If v4_subnet is specified then v4_subnet_mask\
\ is a required field."
type: integer
required:
- region
type: object
get_vpc2_200_response:
example:
vpc:
date_created: date_created
description: description
id: id
prefix_length: 0
region: region
ip_block: ip_block
properties:
vpc:
$ref: '#/components/schemas/vpc2'
type: object
update_vpc2_request:
properties:
description:
description: "The VPC description. Must be no longer than 255 characters\
\ and may include only letters, numbers, spaces, underscores and hyphens."
type: string
required:
- description
type: object
list_vpc2_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
vpcs:
- date_created: date_created
description: description
id: id
prefix_length: 0
region: region
ip_block: ip_block
- date_created: date_created
description: description
id: id
prefix_length: 0
region: region
ip_block: ip_block
properties:
vpcs:
items:
$ref: '#/components/schemas/vpc2'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_vpc2_request:
properties:
region:
description: "Create the VPC in this [Region id](#operation/list-regions)."
type: string
description:
description: "A description of the VPC. Must be no longer than 255\
\ characters and may include only letters, numbers, spaces, underscores\
\ and hyphens."
type: string
ip_type:
description: |-
Accepted values:
* `v4`
type: enum
ip_block:
description: "The VPC subnet IP address. For example: 10.99.0.0
If a prefix_length is specified then ip_block is\
\ a required field."
type: string
prefix_length:
description: "The number of bits for the netmask in CIDR notation. Example:\
\ 24
If an ip_block is specified then prefix_length\
\ is a required field."
type: integer
required:
- region
type: object
attach_vpc2_nodes_request:
properties:
nodes:
description: "An array of ID strings for [instances](#operation/list-instances)\
\ and [Bare Metal servers](#operation/list-baremetals) to attach as nodes\
\ to the VPC 2.0 network. A limit of 1000 nodes can be processed in a\
\ request"
type: array
required:
- nodes
type: object
detach_vpc2_nodes_request:
properties:
nodes:
description: "An array of ID strings for [nodes](#operation/list-vpc2-nodes)\
\ to detach from the VPC 2.0 network. A limit of 1000 nodes can be processed\
\ in a request"
type: array
required:
- nodes
type: object
update_user_request:
properties:
email:
description: The User's email address.
type: string
name:
description: The User's name.
type: string
password:
description: The User's password.
type: string
api_enabled:
description: |-
API access is permitted for this User.
* true (default)
* false
type: boolean
acls:
description: |-
An array of permission granted. Valid values:
* abuse
* alerts
* billing
* dns
* firewall
* loadbalancer
* manage\_users
* objstore
* provisioning
* subscriptions
* subscriptions\_view
* support
* upgrade
items:
type: string
type: array
type: object
list_users_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
users:
- user:
password: password
acls:
- acls
- acls
api_enabled: true
name: name
id: id
email: email
- user:
password: password
acls:
- acls
- acls
api_enabled: true
name: name
id: id
email: email
properties:
users:
items:
$ref: '#/components/schemas/user'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_user_request:
properties:
email:
description: The User's email address.
type: string
name:
description: The User's name.
type: string
password:
description: The User's password.
type: string
api_enabled:
description: |-
API access is permitted for this User.
* true (default)
* false
type: boolean
acls:
description: |-
An array of permissions granted.
* abuse
* alerts
* billing
* dns
* firewall
* loadbalancer
* manage\_users
* objstore
* provisioning
* subscriptions
* subscriptions\_view
* support
* upgrade
items:
type: string
type: array
required:
- email
- name
- password
type: object
get_startup_script_200_response:
example:
startup_script:
date_modified: date_modified
date_created: date_created
name: name
id: id
type: type
script: script
properties:
startup_script:
$ref: '#/components/schemas/startup'
type: object
update_startup_script_request:
properties:
name:
description: The name of the Startup Script.
type: string
script:
description: The base-64 encoded Startup Script.
type: string
type:
description: |-
The Startup Script type.
boot (default)
pxe
type: string
type: object
list_startup_scripts_200_response:
example:
startup_scripts:
- date_modified: date_modified
date_created: date_created
name: name
id: id
type: type
script: script
- date_modified: date_modified
date_created: date_created
name: name
id: id
type: type
script: script
meta:
total: 0
links:
next: next
prev: prev
properties:
startup_scripts:
items:
$ref: '#/components/schemas/startup'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_startup_script_request:
properties:
name:
description: The name of the Startup Script.
type: string
type:
description: |-
The Startup Script type.
* boot (default)
* pxe
type: string
script:
description: The base-64 encoded Startup Script.
type: string
required:
- name
- script
type: object
get_ssh_key_200_response:
example:
ssh_key:
date_created: date_created
name: name
ssh_key: ssh_key
id: id
properties:
ssh_key:
$ref: '#/components/schemas/ssh'
type: object
update_ssh_key_request:
properties:
name:
description: The user-supplied name for this SSH Key.
type: string
ssh_key:
description: The SSH Key.
type: string
type: object
list_ssh_keys_200_response:
example:
ssh_keys:
- date_created: date_created
name: name
ssh_key: ssh_key
id: id
- date_created: date_created
name: name
ssh_key: ssh_key
id: id
meta:
total: 0
links:
next: next
prev: prev
properties:
ssh_keys:
items:
$ref: '#/components/schemas/ssh'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_ssh_key_request:
properties:
name:
description: The user-supplied name for this SSH Key.
type: string
ssh_key:
description: The SSH Key.
type: string
required:
- name
- ssh_key
type: object
get_snapshot_200_response:
example:
snapshot:
size: 0
date_created: date_created
os_id: 6
description: description
id: id
app_id: 1
status: status
properties:
snapshot:
$ref: '#/components/schemas/snapshot'
type: object
put_snapshots_snapshot_id_request:
properties:
description:
description: The user-supplied description for the Snapshot.
type: string
required:
- description
type: object
list_snapshots_200_response:
example:
snapshots:
- size: 0
date_created: date_created
os_id: 6
description: description
id: id
app_id: 1
status: status
- size: 0
date_created: date_created
os_id: 6
description: description
id: id
app_id: 1
status: status
meta:
total: 0
links:
next: next
prev: prev
properties:
snapshots:
items:
$ref: '#/components/schemas/snapshot'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_snapshot_request:
properties:
instance_id:
description: "Create a Snapshot for this [Instance id](#operation/list-instances)."
type: string
description:
description: The user-supplied description of the Snapshot.
type: string
required:
- instance_id
type: object
create_snapshot_create_from_url_request:
properties:
url:
description: The public URL containing a RAW image.
type: string
description:
description: The user-supplied description of the Snapshot.
type: string
uefi:
description: Whether or not the snapshot uses UEFI.
type: string
required:
- url
type: object
list_subaccounts_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
subaccounts:
- balance: ""
pending_charges: ""
subaccount_id: subaccount_id
id: id
subaccount_name: subaccount_name
email: email
activated: true
- balance: ""
pending_charges: ""
subaccount_id: subaccount_id
id: id
subaccount_name: subaccount_name
email: email
activated: true
properties:
subaccounts:
items:
$ref: '#/components/schemas/subaccount'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_subaccount_request:
properties:
email:
description: Create a new sub-account with this email address.
type: string
subaccount_name:
description: Your name for this sub-account.
type: string
subaccount_id:
description: Your ID for this sub-account.
type: string
required:
- email
type: object
create_subaccount_201_response:
example:
subaccount:
balance: ""
pending_charges: ""
subaccount_id: subaccount_id
id: id
subaccount_name: subaccount_name
email: email
activated: true
properties:
subaccount:
$ref: '#/components/schemas/subaccount'
type: object
get_reserved_ip_200_response:
example:
reserved_ip:
subnet: subnet
instance_id: instance_id
id: id
subnet_size: 0
label: label
region: region
ip_type: ip_type
properties:
reserved_ip:
$ref: '#/components/schemas/reserved-ip'
type: object
patch_reserved_ips_reserved_ip_request:
properties:
label:
type: string
required:
- label
type: object
list_reserved_ips_200_response:
example:
reserved_ips:
- subnet: subnet
instance_id: instance_id
id: id
subnet_size: 0
label: label
region: region
ip_type: ip_type
- subnet: subnet
instance_id: instance_id
id: id
subnet_size: 0
label: label
region: region
ip_type: ip_type
meta:
total: 0
links:
next: next
prev: prev
properties:
reserved_ips:
items:
$ref: '#/components/schemas/reserved-ip'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_reserved_ip_request:
properties:
region:
description: "The [Region id](#operation/list-regions) where the Reserved\
\ IP will be created."
type: string
ip_type:
description: |-
The type of IP address.
* v4
* v6
type: string
label:
description: The user-supplied label.
type: string
required:
- ip_type
- region
type: object
attach_reserved_ip_request:
properties:
instance_id:
description: "Attach the Reserved IP to a [Compute Instance id](#operation/list-instances)\
\ or a [Bare Metal Instance id](#operation/list-baremetals)."
type: string
required:
- instance_id
type: object
convert_reserved_ip_request:
properties:
ip_address:
description: The IP address to convert.
type: string
label:
description: A user-supplied label for this IP address.
type: string
required:
- ip_address
type: object
list_os_200_response:
example:
os:
- name: name
id: 0
arch: arch
family: family
- name: name
id: 0
arch: arch
family: family
meta:
total: 0
links:
next: next
prev: prev
properties:
os:
items:
$ref: '#/components/schemas/os'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_applications_200_response:
description: ""
example:
meta:
total: 0
links:
next: next
prev: prev
applications:
- vendor: vendor
name: name
deploy_name: deploy_name
short_name: short_name
id: 0
type: type
image_id: image_id
- vendor: vendor
name: name
deploy_name: deploy_name
short_name: short_name
id: 0
type: type
image_id: image_id
properties:
applications:
description: ""
items:
$ref: '#/components/schemas/application'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
get_account_200_response:
example:
account:
acls:
- acls
- acls
balance: 0.8008281904610115
pending_charges: 6.027456183070403
name: name
last_payment_date: last_payment_date
email: email
last_payment_amount: 1.4658129805029452
properties:
account:
$ref: '#/components/schemas/account'
type: object
list_backups_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
backups:
- size: 0
date_created: date_created
description: description
id: id
status: status
- size: 0
date_created: date_created
description: description
id: id
status: status
properties:
backups:
items:
$ref: '#/components/schemas/backup'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_blocks_200_response:
example:
blocks:
- cost: 0
attached_to_instance: attached_to_instance
date_created: date_created
size_gb: 6
id: id
label: label
region: region
mount_id: mount_id
status: status
- cost: 0
attached_to_instance: attached_to_instance
date_created: date_created
size_gb: 6
id: id
label: label
region: region
mount_id: mount_id
status: status
meta:
total: 0
links:
next: next
prev: prev
properties:
blocks:
items:
$ref: '#/components/schemas/blockstorage'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_block_request:
properties:
region:
description: "The [Region id](#operation/list-regions) where the Block Storage\
\ will be created."
type: string
size_gb:
description: "Size in GB may range between 10 and 40000, depending on the\
\ `block_type`."
type: integer
label:
description: The user-supplied label.
type: string
block_type:
description: |-
An optional parameter, that determines on the type of block storage volume that will be created.
Soon to become a required parameter.
* `high_perf` from 10GB to 10,000GB
* `storage_opt` from 40GB to 40,000GB
type: string
required:
- region
- size_gb
type: object
create_block_202_response:
example:
block:
cost: 0
attached_to_instance: attached_to_instance
date_created: date_created
size_gb: 6
id: id
label: label
region: region
mount_id: mount_id
status: status
properties:
block:
$ref: '#/components/schemas/blockstorage'
type: object
update_block_request:
properties:
label:
description: The user-supplied label.
type: string
size_gb:
description: New size of the Block Storage in GB. Size may range between
10 and 40000 depending on the `block_type`.
type: integer
type: object
attach_block_request:
properties:
instance_id:
description: "Attach the Block Storage to this [Instance id](#operation/list-instances)."
type: string
live:
description: |-
Attach Block Storage without restarting the Instance.
| | Value | Description |
| - | ----- | ----------- |
| | true | Attach live, do not restart the instance. |
| | false | Restart the instance and attach the Block Storage. |
type: boolean
required:
- instance_id
type: object
detach_block_request:
properties:
live:
description: |-
Detach Block Storage without restarting the Instance.
| | Value | Description |
| - | ----- | ----------- |
| | true | Detach live, do not restart the instance. |
| | false | Restart the instance and detach the Block Storage. |
type: boolean
type: object
list_firewall_groups_200_response:
example:
firewall_groups:
- date_modified: date_modified
date_created: date_created
description: description
id: id
max_rule_count: 1
instance_count: 0
rule_count: 6
- date_modified: date_modified
date_created: date_created
description: description
id: id
max_rule_count: 1
instance_count: 0
rule_count: 6
meta:
total: 0
links:
next: next
prev: prev
properties:
firewall_groups:
items:
$ref: '#/components/schemas/firewall-group'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_firewall_group_request:
properties:
description:
description: User-supplied description of this Firewall Group.
type: string
type: object
create_firewall_group_201_response:
example:
firewall_group:
date_modified: date_modified
date_created: date_created
description: description
id: id
max_rule_count: 1
instance_count: 0
rule_count: 6
properties:
firewall_group:
$ref: '#/components/schemas/firewall-group'
type: object
update_firewall_group_request:
properties:
description:
description: User-supplied description of this Firewall Group.
type: string
required:
- description
type: object
list_firewall_group_rules_200_response:
example:
firewall_rules:
- subnet: subnet
protocol: protocol
notes: notes
port: port
action: action
id: 0
subnet_size: 6
source: source
type: type
ip_type: ip_type
- subnet: subnet
protocol: protocol
notes: notes
port: port
action: action
id: 0
subnet_size: 6
source: source
type: type
ip_type: ip_type
meta:
total: 0
links:
next: next
prev: prev
properties:
firewall_rules:
items:
$ref: '#/components/schemas/firewall-rule'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
post_firewalls_firewall_group_id_rules_request:
properties:
ip_type:
description: |-
The type of IP rule.
* v4
* v6
type: string
protocol:
description: |
The protocol for this rule.
* ICMP
* TCP
* UDP
* GRE
* ESP
* AH
type: string
subnet:
description: IP address representing a subnet. The IP address format must
match with the "ip_type" parameter value.
type: string
subnet_size:
description: "The number of bits for the netmask in CIDR notation. Example:\
\ 32"
type: integer
port:
description: TCP/UDP only. This field can be a specific port or a colon
separated port range.
type: string
source:
description: |
If the source string is given a value of "cloudflare" subnet and subnet_size will both be ignored.
Possible values:
| | Value | Description |
| - | ------ | ------------- |
| | "" | Use the value from `subnet` and `subnet_size`. |
| | cloudflare | Allow all of Cloudflare's IP space through the firewall |
| | [Load Balancer id](#operation/list-load-balancers) | Provide a load balancer ID to use its IPs |
type: string
notes:
description: User-supplied notes for this rule.
type: string
required:
- ip_type
- protocol
- subnet
- subnet_size
type: object
post_firewalls_firewall_group_id_rules_201_response:
example:
firewall_rule:
subnet: subnet
protocol: protocol
notes: notes
port: port
action: action
id: 0
subnet_size: 6
source: source
type: type
ip_type: ip_type
properties:
firewall_rule:
$ref: '#/components/schemas/firewall-rule'
type: object
list_isos_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
isos:
- sha512sum: sha512sum
filename: filename
size: 0
date_created: date_created
md5sum: md5sum
id: id
status: status
- sha512sum: sha512sum
filename: filename
size: 0
date_created: date_created
md5sum: md5sum
id: id
status: status
properties:
isos:
items:
$ref: '#/components/schemas/iso'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_iso_request:
properties:
url:
description: "Public URL location of the ISO image to download. Example:\
\ https://example.com/my-iso.iso"
type: string
required:
- url
type: object
create_iso_201_response:
example:
iso:
sha512sum: sha512sum
filename: filename
size: 0
date_created: date_created
md5sum: md5sum
id: id
status: status
properties:
iso:
$ref: '#/components/schemas/iso'
type: object
list_public_isos_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
public_isos:
- md5sum: md5sum
name: name
description: description
id: id
- md5sum: md5sum
name: name
description: description
id: id
properties:
public_isos:
items:
$ref: '#/components/schemas/iso-public'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_object_storages_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
object_storages:
- s3_secret_key: s3_secret_key
cluster_id: 0
s3_access_key: s3_access_key
date_created: date_created
s3_hostname: s3_hostname
id: id
label: label
region: region
status: status
- s3_secret_key: s3_secret_key
cluster_id: 0
s3_access_key: s3_access_key
date_created: date_created
s3_hostname: s3_hostname
id: id
label: label
region: region
status: status
properties:
object_storages:
items:
$ref: '#/components/schemas/object-storage'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_object_storage_request:
properties:
cluster_id:
description: "The [Cluster id](#operation/list-object-storage-clusters)\
\ where the Object Storage will be created."
type: integer
label:
description: The user-supplied label for this Object Storage.
type: string
required:
- cluster_id
type: object
create_object_storage_202_response:
example:
object_storage:
s3_secret_key: s3_secret_key
cluster_id: 0
s3_access_key: s3_access_key
date_created: date_created
s3_hostname: s3_hostname
id: id
label: label
region: region
status: status
properties:
object_storage:
$ref: '#/components/schemas/object-storage'
type: object
update_object_storage_request:
properties:
label:
description: The user-supplied label for the Object Storage.
type: string
required:
- label
type: object
regenerate_object_storage_keys_201_response_s3_credentials:
example:
s3_secret_key: s3_secret_key
s3_access_key: s3_access_key
s3_hostname: s3_hostname
properties:
s3_hostname:
description: "The [Cluster hostname](#operation/list-object-storage-clusters)\
\ for this Object Storage."
type: string
s3_access_key:
description: The new Object Storage access key.
type: string
s3_secret_key:
description: The new Object Storage secret key.
type: string
type: object
regenerate_object_storage_keys_201_response:
example:
s3_credentials:
s3_secret_key: s3_secret_key
s3_access_key: s3_access_key
s3_hostname: s3_hostname
properties:
s3_credentials:
$ref: '#/components/schemas/regenerate_object_storage_keys_201_response_s3_credentials'
type: object
list_object_storage_clusters_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
clusters:
- hostname: hostname
id: 0
region: region
deploy: deploy
- hostname: hostname
id: 0
region: region
deploy: deploy
properties:
clusters:
items:
$ref: '#/components/schemas/clusters'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_dns_domains_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
domains:
- date_created: date_created
domain: domain
dns_sec: dns_sec
- date_created: date_created
domain: domain
dns_sec: dns_sec
properties:
domains:
items:
$ref: '#/components/schemas/domain'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_dns_domain_request:
properties:
domain:
description: Your registered DNS Domain name.
type: string
ip:
description: The default IP address for your DNS Domain. If omitted an empty
domain zone will be created.
type: string
dns_sec:
description: |-
Enable or disable DNSSEC.
* enabled
* disabled (default)
type: string
required:
- domain
type: object
create_dns_domain_200_response:
example:
domain:
date_created: date_created
domain: domain
dns_sec: dns_sec
properties:
domain:
$ref: '#/components/schemas/domain'
type: object
update_dns_domain_request:
properties:
dns_sec:
description: |-
Enable or disable DNSSEC.
* enabled
* disabled
type: string
required:
- dns_sec
type: object
get_dns_domain_soa_200_response:
example:
dns_soa:
nsprimary: nsprimary
email: email
properties:
dns_soa:
$ref: '#/components/schemas/dns-soa'
type: object
update_dns_domain_soa_request:
properties:
nsprimary:
description: Set the primary nameserver.
type: string
email:
description: Set the contact email address.
type: string
type: object
get_dns_domain_dnssec_200_response:
example:
dns_sec:
- dns_sec
- dns_sec
properties:
dns_sec:
items:
type: string
type: array
type: object
list_dns_domain_records_200_response:
example:
records:
- data: data
name: name
id: id
type: type
priority: 0
ttl: 6
- data: data
name: name
id: id
type: type
priority: 0
ttl: 6
meta:
total: 0
links:
next: next
prev: prev
properties:
records:
items:
$ref: '#/components/schemas/dns-record'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_dns_domain_record_request:
properties:
name:
description: The hostname for this DNS record.
type: string
type:
description: |-
The DNS record type.
* A
* AAAA
* CNAME
* NS
* MX
* SRV
* TXT
* CAA
* SSHFP
type: string
data:
description: The DNS data for this record type.
type: string
ttl:
description: Time to Live in seconds.
type: integer
priority:
description: DNS priority. Does not apply to all record types. (Only required
for MX and SRV)
type: integer
required:
- data
- name
- type
type: object
create_dns_domain_record_201_response:
example:
record:
data: data
name: name
id: id
type: type
priority: 0
ttl: 6
properties:
record:
$ref: '#/components/schemas/dns-record'
type: object
update_dns_domain_record_request:
properties:
name:
description: The hostname for this DNS record.
type: string
data:
description: The DNS data for this record type.
type: string
ttl:
description: Time to Live in seconds.
type: integer
priority:
description: DNS priority. Does not apply to all record types.
type: integer
type: object
list_regions_200_response:
example:
regions:
- continent: continent
country: country
city: city
options:
- options
- options
id: id
- continent: continent
country: country
city: city
options:
- options
- options
id: id
meta:
total: 0
links:
next: next
prev: prev
properties:
regions:
items:
$ref: '#/components/schemas/region'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_available_plans_region_200_response:
example:
available_plans:
- available_plans
- available_plans
properties:
available_plans:
description: An array of Plans available in this Region.
items:
type: string
type: array
type: object
list_load_balancers_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
load_balancers:
- generic_info:
sticky_sessions:
cookie_name: cookie_name
private_network: private_network
ssl_redirect: true
proxy_protocol: true
vpc: vpc
balancing_algorithm: balancing_algorithm
instances:
- instances
- instances
firewall_rules:
- port: 3
id: id
source: source
ip_type: ip_type
- port: 3
id: id
source: source
ip_type: ip_type
date_created: date_created
has_ssl: true
label: label
health_check:
path: path
response_timeout: 1
healthy_threshold: 5
protocol: protocol
check_interval: 6
port: 0
unhealthy_threshold: 5
forward_rules:
- backend_portocol: backend_portocol
frontend_protocol: frontend_protocol
id: id
frontend_port: 7
backend_port: 9
- backend_portocol: backend_portocol
frontend_protocol: frontend_protocol
id: id
frontend_port: 7
backend_port: 9
nodes: 2
ipv4: ipv4
ipv6: ipv6
http2: true
id: id
region: region
status: status
- generic_info:
sticky_sessions:
cookie_name: cookie_name
private_network: private_network
ssl_redirect: true
proxy_protocol: true
vpc: vpc
balancing_algorithm: balancing_algorithm
instances:
- instances
- instances
firewall_rules:
- port: 3
id: id
source: source
ip_type: ip_type
- port: 3
id: id
source: source
ip_type: ip_type
date_created: date_created
has_ssl: true
label: label
health_check:
path: path
response_timeout: 1
healthy_threshold: 5
protocol: protocol
check_interval: 6
port: 0
unhealthy_threshold: 5
forward_rules:
- backend_portocol: backend_portocol
frontend_protocol: frontend_protocol
id: id
frontend_port: 7
backend_port: 9
- backend_portocol: backend_portocol
frontend_protocol: frontend_protocol
id: id
frontend_port: 7
backend_port: 9
nodes: 2
ipv4: ipv4
ipv6: ipv6
http2: true
id: id
region: region
status: status
properties:
load_balancers:
items:
$ref: '#/components/schemas/loadbalancer'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_load_balancer_request_health_check:
description: "The health check configuration. See [Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration)."
properties:
protocol:
description: |-
The protocol to use for health checks.
* HTTPS
* HTTP
* TCP
type: string
port:
description: The port to use for health checks.
type: integer
path:
description: "HTTP Path to check. Only applies if protocol is HTTP, or HTTPS."
type: string
check_interval:
description: Interval between health checks.
type: integer
response_timeout:
description: Timeout before health check fails.
type: integer
unhealthy_threshold:
description: Number times a check must fail before becoming unhealthy.
type: integer
healthy_threshold:
description: Number of times a check must succeed before returning to healthy
status.
type: integer
type: object
create_load_balancer_request_forwarding_rules_inner:
properties:
frontend_protocol:
description: |-
The protocol on the Load Balancer to forward to the backend.
* HTTP
* HTTPS
* TCP
type: string
frontend_port:
description: The port number on the Load Balancer to forward to the backend.
type: integer
backend_protocol:
description: |-
The protocol destination on the backend server.
* HTTP
* HTTPS
* TCP
type: string
backend_port:
description: The port number destination on the backend server.
type: integer
type: object
create_load_balancer_request_sticky_session:
description: Enables sticky sessions for your load balancer when a cookie_name
is provided.
properties:
cookie_name:
description: "The cookie name to make sticky. See [Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration)."
type: string
type: object
create_load_balancer_request_ssl:
description: An SSL certificate to install on the Load Balancer.
properties:
private_key:
description: The private key.
type: string
certificate:
description: The SSL certificate.
type: string
chain:
description: The certificate chain.
type: string
private_key_b64:
description: The private key base64 encoded. (Base64 encoded values should
not be used alongside with non-Base64 encoded values)
type: string
certificate_b64:
description: The SSL certificate base64 encoded. (Base64 encoded values
should not be used alongside with non-Base64 encoded values)
type: string
chain_b64:
description: The certificate chain base64 encoded. (Base64 encoded values
should not be used alongside with non-Base64 encoded values)
type: string
type: object
create_load_balancer_request_firewall_rules_inner:
properties:
port:
description: Port for this rule.
type: integer
source:
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.
Possible values:
| | Value | Description |
| - | ------ | ------------- |
| | "192.168.1.1/16" | Ip address with a subnet size. |
| | cloudflare | Allow all of Cloudflare's IP space through the firewall |
type: string
ip_type:
description: |-
The type of IP rule.
* v4
* v6
type: string
type: object
create_load_balancer_request:
properties:
region:
description: "The [Region id](#operation/list-regions) to create this Load\
\ Balancer."
type: string
balancing_algorithm:
description: |-
The balancing algorithm.
* roundrobin (default)
* leastconn
type: string
ssl_redirect:
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.
* true
* false
type: boolean
http2:
description: |-
If `true`, this will enable HTTP2 traffic. You must have an HTTPS forwarding rule combo (HTTPS -> HTTPS) to enable this option.
* true
* false
type: boolean
nodes:
description: "The number of nodes to add to the load balancer (1-99), must\
\ be an odd number. This defaults to 1."
type: integer
proxy_protocol:
description: |-
If `true`, you must configure backend nodes to accept Proxy protocol.
* true
* false (Default)
type: boolean
health_check:
$ref: '#/components/schemas/create_load_balancer_request_health_check'
forwarding_rules:
description: An array of forwarding rule objects.
items:
$ref: '#/components/schemas/create_load_balancer_request_forwarding_rules_inner'
type: array
sticky_session:
$ref: '#/components/schemas/create_load_balancer_request_sticky_session'
ssl:
$ref: '#/components/schemas/create_load_balancer_request_ssl'
label:
description: Label for your Load Balancer.
type: string
instances:
description: An array of instances IDs that you want attached to the load
balancer.
items:
type: string
type: array
firewall_rules:
description: An array of firewall rule objects.
items:
$ref: '#/components/schemas/create_load_balancer_request_firewall_rules_inner'
type: array
private_network:
deprecated: true
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.
type: string
vpc:
description: ID of the VPC you wish to use. If a VPC ID is omitted it will
default to the public network.
type: string
required:
- region
type: object
create_load_balancer_202_response:
example:
load_balancer:
generic_info:
sticky_sessions:
cookie_name: cookie_name
private_network: private_network
ssl_redirect: true
proxy_protocol: true
vpc: vpc
balancing_algorithm: balancing_algorithm
instances:
- instances
- instances
firewall_rules:
- port: 3
id: id
source: source
ip_type: ip_type
- port: 3
id: id
source: source
ip_type: ip_type
date_created: date_created
has_ssl: true
label: label
health_check:
path: path
response_timeout: 1
healthy_threshold: 5
protocol: protocol
check_interval: 6
port: 0
unhealthy_threshold: 5
forward_rules:
- backend_portocol: backend_portocol
frontend_protocol: frontend_protocol
id: id
frontend_port: 7
backend_port: 9
- backend_portocol: backend_portocol
frontend_protocol: frontend_protocol
id: id
frontend_port: 7
backend_port: 9
nodes: 2
ipv4: ipv4
ipv6: ipv6
http2: true
id: id
region: region
status: status
properties:
load_balancer:
$ref: '#/components/schemas/loadbalancer'
type: object
update_load_balancer_request_health_check:
description: "The health check configuration. [See Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration)."
properties:
protocol:
description: |-
The protocol to use for health checks.
* HTTPS
* HTTP
* TCP
type: string
port:
description: The port to use for health checks.
type: integer
path:
description: "HTTP Path to check. Only applies if protocol is HTTP, or HTTPS."
type: string
check_interval:
description: Interval between health checks.
type: string
response_timeout:
description: Timeout before health check fails.
type: string
unhealthy_threshold:
description: Number times a check must fail before becoming unhealthy.
type: string
healthy_threshold:
description: Number of times a check must succeed before returning to healthy
status.
type: string
type: object
update_load_balancer_request:
properties:
ssl:
$ref: '#/components/schemas/create_load_balancer_request_ssl'
sticky_session:
$ref: '#/components/schemas/create_load_balancer_request_sticky_session'
forwarding_rules:
description: An array of forwarding rule objects.
items:
$ref: '#/components/schemas/create_load_balancer_request_forwarding_rules_inner'
type: array
health_check:
$ref: '#/components/schemas/update_load_balancer_request_health_check'
proxy_protocol:
description: |-
If `true`, you must configure backend nodes to accept Proxy protocol.
* true
* false (Default)
type: boolean
ssl_redirect:
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.
* true
* false
type: boolean
http2:
description: |-
If `true`, this will enable HTTP2 traffic. You must have an HTTPS forwarding rule combo (HTTPS -> HTTPS) to enable this option.
* true
* false
type: boolean
nodes:
description: "The number of nodes to add to the load balancer (1-99), must\
\ be an odd number. This defaults to 1."
type: integer
balancing_algorithm:
description: |-
The balancing algorithm.
* roundrobin (default)
* leastconn
type: string
instances:
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
type: array
label:
description: The label for your Load Balancer
type: string
private_network:
deprecated: true
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.
type: string
vpc:
description: ID of the VPC you wish to use. If a VPC ID is omitted it will
default to the public network.
type: string
firewall_rules:
description: An array of firewall rule objects.
items:
$ref: '#/components/schemas/create_load_balancer_request_firewall_rules_inner'
type: array
type: object
list_load_balancer_forwarding_rules_200_response:
example:
forwarding_rules:
- frontend_protocol: frontend_protocol
id: id
frontend_port: 0
backend_protocol: backend_protocol
backend_port: 6
- frontend_protocol: frontend_protocol
id: id
frontend_port: 0
backend_protocol: backend_protocol
backend_port: 6
meta:
total: 0
links:
next: next
prev: prev
properties:
forwarding_rules:
items:
$ref: '#/components/schemas/forwarding-rule'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_load_balancer_forwarding_rules_request:
properties:
frontend_protocol:
description: |-
The protocol on the Load Balancer to forward to the backend.
* HTTP
* HTTPS
* TCP
type: string
frontend_port:
description: The port number on the Load Balancer to forward to the backend.
type: integer
backend_protocol:
description: |-
The protocol destination on the backend server.
* HTTP
* HTTPS
* TCP
type: string
backend_port:
description: The port number destination on the backend server.
type: integer
required:
- backend_port
- backend_protocol
- frontend_port
- frontend_protocol
type: object
get_load_balancer_forwarding_rule_200_response:
example:
forwarding_rule:
frontend_protocol: frontend_protocol
id: id
frontend_port: 0
backend_protocol: backend_protocol
backend_port: 6
properties:
forwarding_rule:
$ref: '#/components/schemas/forwarding-rule'
type: object
list_plans_200_response:
example:
plans:
- disk: 1
vcpu_count: 0
monthly_cost: 5
bandwidth: 5
name: name
locations:
- locations
- locations
disk_count: 2
id: id
type: type
ram: 6
- disk: 1
vcpu_count: 0
monthly_cost: 5
bandwidth: 5
name: name
locations:
- locations
- locations
disk_count: 2
id: id
type: type
ram: 6
meta:
total: 0
links:
next: next
prev: prev
properties:
plans:
items:
$ref: '#/components/schemas/plans'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_metal_plans_200_response:
example:
plans:
- disk: disk
monthly_cost: 5
bandwidth: 5
cpu_model: cpu_model
locations:
- locations
- locations
disk_count: 2
id: id
cpu_threads: 6
type: type
cpu_count: 0
ram: 1
- disk: disk
monthly_cost: 5
bandwidth: 5
cpu_model: cpu_model
locations:
- locations
- locations
disk_count: 2
id: id
cpu_threads: 6
type: type
cpu_count: 0
ram: 1
meta:
total: 0
links:
next: next
prev: prev
properties:
plans:
items:
$ref: '#/components/schemas/plans-metal'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_baremetals_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
bare_metals:
- gateway_v4: gateway_v4
user_scheme: user_scheme
os: os
main_ip: main_ip
date_created: date_created
os_id: 6
default_password: default_password
label: label
cpu_count: 0
v6_main_ip: v6_main_ip
tags:
- tags
- tags
v6_network_size: 5
disk: disk
v6_network: v6_network
mac_address: 5
id: id
tag: tag
region: region
image_id: image_id
plan: plan
app_id: 1
netmask_v4: netmask_v4
ram: ram
status: status
- gateway_v4: gateway_v4
user_scheme: user_scheme
os: os
main_ip: main_ip
date_created: date_created
os_id: 6
default_password: default_password
label: label
cpu_count: 0
v6_main_ip: v6_main_ip
tags:
- tags
- tags
v6_network_size: 5
disk: disk
v6_network: v6_network
mac_address: 5
id: id
tag: tag
region: region
image_id: image_id
plan: plan
app_id: 1
netmask_v4: netmask_v4
ram: ram
status: status
properties:
bare_metals:
items:
$ref: '#/components/schemas/baremetal'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_baremetal_request:
properties:
region:
description: "The [Region id](#operation/list-regions) to create the instance."
type: string
plan:
description: "The [Bare Metal plan id](#operation/list-metal-plans) to use\
\ for this instance."
type: string
script_id:
description: "The [Startup Script id](#operation/list-startup-scripts) to\
\ use for this instance."
type: string
enable_ipv6:
description: |-
Enable IPv6.
* true
type: boolean
sshkey_id:
description: "The [SSH Key id](#operation/list-ssh-keys) to install on this\
\ instance."
items:
type: string
type: array
user_data:
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."
type: string
label:
description: The user-supplied label.
type: string
activation_email:
description: |-
Notify by email after deployment.
* true
* false (default)
type: boolean
hostname:
description: The user-supplied hostname to use when deploying this instance.
type: string
tag:
deprecated: true
description: Use `tags` instead. The user-supplied tag.
type: string
reserved_ipv4:
description: "The [Reserved IP id](#operation/list-reserved-ips) for this\
\ instance."
type: string
os_id:
description: "If supplied, deploy the instance using this [Operating System\
\ id](#operation/list-os)."
type: integer
snapshot_id:
description: "If supplied, deploy the instance using this [Snapshot ID](#operation/list-snapshots)."
type: string
app_id:
description: "If supplied, deploy the instance using this [Application id](#operation/list-applications)."
type: integer
image_id:
description: "If supplied, deploy the instance using this [Application image_id](#operation/list-applications)."
type: string
persistent_pxe:
description: |-
Enable persistent PXE.
* true
* false (default)
type: boolean
attach_vpc2:
description: "An array of [VPC IDs](#operation/list-vpc2) to attach to this\
\ Bare Metal Instance. This parameter takes precedence over `enable_vpc2`.\
\ Please choose one parameter."
items:
type: string
type: array
detach_vpc2:
description: "An array of [VPC IDs](#operation/list-vpc2) to detach from\
\ this Bare Metal Instance. This parameter takes precedence over `enable_vpc2`."
items:
type: string
type: array
enable_vpc2:
description: |-
If `true`, VPC 2.0 support will be added to the new server.
This parameter attaches a single VPC 2.0 netowrk. When no VPC 2.0 network exists in the region, it will be automatically created.
If there are multiple VPC 2.0 networks in the instance's region, use `attach_vpc2` instead to specify a VPC 2.0 network.
type: boolean
tags:
description: Tags to apply to the instance.
items:
type: string
type: array
user_scheme:
description: |-
Linux-only: The user scheme used for logging into this instance. By default, the "root" user is configured. Alternatively, a limited user with sudo permissions can be selected.
* root
* limited
type: string
required:
- plan
- region
type: object
create_baremetal_202_response:
example:
baremetal:
gateway_v4: gateway_v4
user_scheme: user_scheme
os: os
main_ip: main_ip
date_created: date_created
os_id: 6
default_password: default_password
label: label
cpu_count: 0
v6_main_ip: v6_main_ip
tags:
- tags
- tags
v6_network_size: 5
disk: disk
v6_network: v6_network
mac_address: 5
id: id
tag: tag
region: region
image_id: image_id
plan: plan
app_id: 1
netmask_v4: netmask_v4
ram: ram
status: status
properties:
baremetal:
$ref: '#/components/schemas/baremetal'
type: object
get_baremetal_200_response:
example:
bare_metal:
gateway_v4: gateway_v4
user_scheme: user_scheme
os: os
main_ip: main_ip
date_created: date_created
os_id: 6
default_password: default_password
label: label
cpu_count: 0
v6_main_ip: v6_main_ip
tags:
- tags
- tags
v6_network_size: 5
disk: disk
v6_network: v6_network
mac_address: 5
id: id
tag: tag
region: region
image_id: image_id
plan: plan
app_id: 1
netmask_v4: netmask_v4
ram: ram
status: status
properties:
bare_metal:
$ref: '#/components/schemas/baremetal'
type: object
update_baremetal_request:
properties:
user_data:
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."
type: string
label:
description: The user-supplied label.
type: string
tag:
deprecated: true
description: Use `tags` instead. The user-supplied tag.
type: string
os_id:
description: "If supplied, reinstall the instance using this [Operating\
\ System id](#operation/list-os)."
type: integer
app_id:
description: "If supplied, reinstall the instance using this [Application\
\ id](#operation/list-applications)."
type: integer
image_id:
description: "If supplied, reinstall the instance using this [Application\
\ image_id](#operation/list-applications)."
type: string
enable_ipv6:
description: |-
Enable IPv6.
* true
type: boolean
attach_vpc2:
description: "An array of [VPC IDs](#operation/list-vpc2) to attach to this\
\ Bare Metal Instance. This parameter takes precedence over `enable_vpc2`.\
\ Please choose one parameter."
items:
type: string
type: array
detach_vpc2:
description: "An array of [VPC IDs](#operation/list-vpc2) to detach from\
\ this Bare Metal Instance. This parameter takes precedence over `enable_vpc2`."
items:
type: string
type: array
enable_vpc2:
description: |-
If `true`, VPC 2.0 support will be added to the new server.
This parameter attaches a single VPC 2.0 netowrk. When no VPC 2.0 network exists in the region, it will be automatically created.
If there are multiple VPC 2.0 networks in the instance's region, use `attach_vpc2` instead to specify a VPC 2.0 network.
type: boolean
tags:
description: Tags to apply to the instance.
items:
type: string
type: array
user_scheme:
description: |-
Linux-only: The user scheme used for logging into this instance. The instance must be reinstalled for this change to take effect.
* root
* limited
type: string
type: object
get_ipv4_baremetal_200_response:
example:
ipv4s:
- netmask: netmask
mac_address: mac_address
ip: ip
type: type
reverse: reverse
gateway: gateway
- netmask: netmask
mac_address: mac_address
ip: ip
type: type
reverse: reverse
gateway: gateway
meta:
total: 0
links:
next: next
prev: prev
properties:
ipv4s:
items:
$ref: '#/components/schemas/baremetal-ipv4'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
get_ipv6_baremetal_200_response:
example:
ipv6s:
- network_size: 0
ip: ip
type: type
network: network
- network_size: 0
ip: ip
type: type
network: network
meta:
total: 0
links:
next: next
prev: prev
properties:
ipv6s:
items:
$ref: '#/components/schemas/baremetal-ipv6'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
reinstall_baremetal_request:
properties:
hostname:
description: The hostname to use when reinstalling this bare metal server.
type: string
type: object
get_bandwidth_baremetal_200_response_bandwidth:
description: This object will contain objects that represent days in the month
(UTC). The date is denoted by the nested objects keys.
example:
"2020-10-11":
incoming_bytes: 0
outgoing_bytes: 6
"2020-10-10":
incoming_bytes: 0
outgoing_bytes: 6
properties:
"2020-10-10":
$ref: '#/components/schemas/bandwidth'
"2020-10-11":
$ref: '#/components/schemas/bandwidth'
type: object
get_bandwidth_baremetal_200_response:
example:
bandwidth:
"2020-10-11":
incoming_bytes: 0
outgoing_bytes: 6
"2020-10-10":
incoming_bytes: 0
outgoing_bytes: 6
properties:
bandwidth:
$ref: '#/components/schemas/get_bandwidth_baremetal_200_response_bandwidth'
type: object
halt_baremetals_request:
properties:
baremetal_ids:
items:
type: string
type: array
type: object
get_bare_metal_userdata_200_response_user_data:
example:
data: data
properties:
data:
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."
type: string
type: object
get_bare_metal_userdata_200_response:
example:
user_data:
data: data
properties:
user_data:
$ref: '#/components/schemas/get_bare_metal_userdata_200_response_user_data'
type: object
list_instances_200_response:
example:
instances:
- firewall_group_id: firewall_group_id
user_scheme: user_scheme
os_id: 2
server_status: server_status
internal_ip: internal_ip
allowed_bandwidth: 5
features:
- features
- features
hostname: hostname
vcpu_count: 1
id: id
tag: tag
app_id: 7
plan: plan
netmask_v4: netmask_v4
ram: 0
gateway_v4: gateway_v4
kvm: kvm
os: os
main_ip: main_ip
power_status: power_status
date_created: date_created
default_password: default_password
label: label
tags:
- tags
- tags
disk: 6
v6_networks:
- network_size: 5
main_ip: main_ip
network: network
- network_size: 5
main_ip: main_ip
network: network
region: region
image_id: image_id
status: status
- firewall_group_id: firewall_group_id
user_scheme: user_scheme
os_id: 2
server_status: server_status
internal_ip: internal_ip
allowed_bandwidth: 5
features:
- features
- features
hostname: hostname
vcpu_count: 1
id: id
tag: tag
app_id: 7
plan: plan
netmask_v4: netmask_v4
ram: 0
gateway_v4: gateway_v4
kvm: kvm
os: os
main_ip: main_ip
power_status: power_status
date_created: date_created
default_password: default_password
label: label
tags:
- tags
- tags
disk: 6
v6_networks:
- network_size: 5
main_ip: main_ip
network: network
- network_size: 5
main_ip: main_ip
network: network
region: region
image_id: image_id
status: status
meta:
total: 0
links:
next: next
prev: prev
properties:
instances:
items:
$ref: '#/components/schemas/instance'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_instance_request:
properties:
region:
description: "The [Region id](#operation/list-regions) where the Instance\
\ is located."
type: string
plan:
description: "The [Plan id](#operation/list-plans) to use when deploying\
\ this instance."
type: string
os_id:
description: "The [Operating System id](#operation/list-os) to use when\
\ deploying this instance."
type: integer
ipxe_chain_url:
description: The URL location of the iPXE chainloader.
type: string
iso_id:
description: "The [ISO id](#operation/list-isos) to use when deploying this\
\ instance."
type: string
script_id:
description: "The [Startup Script id](#operation/list-startup-scripts) to\
\ use when deploying this instance."
type: string
snapshot_id:
description: "The [Snapshot id](#operation/list-snapshots) to use when deploying\
\ the instance."
type: string
enable_ipv6:
description: |-
Enable IPv6.
* true
type: boolean
disable_public_ipv4:
description: |-
Don't set up a public IPv4 address when IPv6 is enabled. Will not do anything unless `enable_ipv6` is also `true`.
* true
type: boolean
attach_private_network:
deprecated: true
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."
items:
type: string
type: array
attach_vpc:
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
type: array
attach_vpc2:
description: "An array of [VPC IDs](#operation/list-vpc2) to attach to this\
\ Instance. This parameter takes precedence over `enable_vpc2`. Please\
\ choose one parameter."
items:
type: string
type: array
label:
description: A user-supplied label for this instance.
type: string
sshkey_id:
description: "The [SSH Key id](#operation/list-ssh-keys) to install on this\
\ instance."
items:
type: string
type: array
backups:
description: |-
Enable automatic backups for the instance.
* enabled
* disabled
type: string
app_id:
description: "The [Application id](#operation/list-applications) to use\
\ when deploying this instance."
type: integer
image_id:
description: "The [Application image_id](#operation/list-applications) to\
\ use when deploying this instance."
type: string
user_data:
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."
type: string
ddos_protection:
description: |-
Enable DDoS protection (there is an additional charge for this).
* true
* false
type: boolean
activation_email:
description: |-
Notify by email after deployment.
* true
* false (default)
type: boolean
hostname:
description: The hostname to use when deploying this instance.
type: string
tag:
deprecated: true
description: Use `tags` instead. The user-supplied tag.
type: string
firewall_group_id:
description: "The [Firewall Group id](#operation/list-firewall-groups) to\
\ attach to this Instance."
type: string
reserved_ipv4:
description: ID of the floating IP to use as the main IP of this server.
type: string
enable_private_network:
deprecated: true
description: |-
Use `enable_vpc` instead.
If `true`, private networking support will be added to the new server.
This parameter attaches a single network. When no network exists in the region, it will be automatically created.
If there are multiple private networks in the instance's region, use `attach_private_network` instead to specify a network.
type: boolean
enable_vpc:
description: |-
If `true`, VPC support will be added to the new server.
This parameter attaches a single VPC. When no VPC exists in the region, it will be automatically created.
If there are multiple VPCs in the instance's region, use `attach_vpc` instead to specify a network.
type: boolean
enable_vpc2:
description: |-
If `true`, VPC 2.0 support will be added to the new server.
This parameter attaches a single VPC 2.0 network. When no VPC 2.0 network exists in the region, it will be automatically created.
If there are multiple VPC 2.0 networks in the instance's region, use `attach_vpc2` instead to specify a network.
type: boolean
tags:
description: Tags to apply to the instance
items:
type: string
type: array
user_scheme:
description: |-
Linux-only: The user scheme used for logging into this instance. By default, the "root" user is configured. Alternatively, a limited user with sudo permissions can be selected.
* root
* limited
type: string
required:
- plan
- region
type: object
create_instance_202_response:
example:
instance:
firewall_group_id: firewall_group_id
user_scheme: user_scheme
os_id: 2
server_status: server_status
internal_ip: internal_ip
allowed_bandwidth: 5
features:
- features
- features
hostname: hostname
vcpu_count: 1
id: id
tag: tag
app_id: 7
plan: plan
netmask_v4: netmask_v4
ram: 0
gateway_v4: gateway_v4
kvm: kvm
os: os
main_ip: main_ip
power_status: power_status
date_created: date_created
default_password: default_password
label: label
tags:
- tags
- tags
disk: 6
v6_networks:
- network_size: 5
main_ip: main_ip
network: network
- network_size: 5
main_ip: main_ip
network: network
region: region
image_id: image_id
status: status
properties:
instance:
$ref: '#/components/schemas/instance'
type: object
update_instance_request:
properties:
app_id:
description: "Reinstall the instance with this [Application id](#operation/list-applications)."
type: integer
image_id:
description: "Reinstall the instance with this [Application image_id](#operation/list-applications)."
type: string
backups:
description: |-
Enable automatic backups for the instance.
* enabled
* disabled
type: string
firewall_group_id:
description: "The [Firewall Group id](#operation/list-firewall-groups) to\
\ attach to this Instance."
type: string
enable_ipv6:
description: |-
Enable IPv6.
* true
type: boolean
os_id:
description: "Reinstall the instance with this [ISO id](#operation/list-isos)."
type: string
user_data:
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."
type: string
tag:
deprecated: true
description: Use `tags` instead. The user-supplied tag.
type: string
plan:
description: "Upgrade the instance with this [Plan id](#operation/list-plans)."
type: string
ddos_protection:
description: |-
Enable DDoS Protection (there is an additional charge for this).
* true
* false
type: boolean
attach_private_network:
deprecated: true
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."
items:
type: string
type: array
attach_vpc:
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
type: array
attach_vpc2:
description: "An array of [VPC IDs](#operation/list-vpc2) to attach to this\
\ Instance. This parameter takes precedence over `enable_vpc2`. Please\
\ choose one parameter."
items:
type: string
type: array
detach_private_network:
deprecated: true
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`."
items:
type: string
type: array
detach_vpc:
description: "An array of [VPC IDs](#operation/list-vpcs) to detach from\
\ this Instance. This parameter takes precedence over `enable_vpc`."
items:
type: string
type: array
detach_vpc2:
description: "An array of [VPC IDs](#operation/list-vpc2) to detach from\
\ this Instance. This parameter takes precedence over `enable_vpc2`."
items:
type: string
type: array
enable_private_network:
deprecated: true
description: |-
Use `enable_vpc` instead.
If `true`, private networking support will be added to the new server.
This parameter attaches a single network. When no network exists in the region, it will be automatically created.
If there are multiple private networks in the instance's region, use `attach_private_network` instead to specify a network.
type: boolean
enable_vpc:
description: |-
If `true`, VPC support will be added to the new server.
This parameter attaches a single VPC. When no VPC exists in the region, it will be automatically created.
If there are multiple VPCs in the instance's region, use `attach_vpc` instead to specify a VPC.
type: boolean
enable_vpc2:
description: |-
If `true`, VPC 2.0 support will be added to the new server.
This parameter attaches a single VPC 2.0 netowrk. When no VPC 2.0 network exists in the region, it will be automatically created.
If there are multiple VPC 2.0 networks in the instance's region, use `attach_vpc2` instead to specify a VPC 2.0 network.
type: boolean
label:
description: The user supplied label.
type: string
tags:
description: Tags to apply to the instance.
items:
type: string
type: array
user_scheme:
description: |-
Linux-only: The user scheme used for logging into this instance. The instance must be reinstalled for this change to take effect.
* root
* limited
type: string
type: object
halt_instances_request:
properties:
instance_ids:
description: "The [Instance IDs](#operation/list-instances) to halt."
items:
type: string
type: array
type: object
reboot_instances_request:
properties:
instance_ids:
description: "The [Instance IDs](#operation/list-instances) to reboot."
items:
type: string
type: array
type: object
start_instances_request:
properties:
instance_ids:
description: "The [Instance IDs](#operation/list-instances) to start."
items:
type: string
type: array
type: object
reinstall_instance_request:
properties:
hostname:
description: The hostname to use when reinstalling this instance.
type: string
type: object
get_instance_neighbors_200_response:
example:
neighbors:
- neighbors
- neighbors
properties:
neighbors:
description: "An array of [Instance ids](#operation/list-instances) in the\
\ same location as this Instance."
items:
type: string
type: array
type: object
list_instance_private_networks_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
private_networks:
- mac_address: mac_address
id: id
ip_address: ip_address
- mac_address: mac_address
id: id
ip_address: ip_address
properties:
private_networks:
items:
$ref: '#/components/schemas/private-networks'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_instance_vpcs_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
private_networks:
- date_created: date_created
v4_subnet_mask: 0
description: description
v4_subnet: v4_subnet
id: id
region: region
- date_created: date_created
v4_subnet_mask: 0
description: description
v4_subnet: v4_subnet
id: id
region: region
properties:
private_networks:
items:
$ref: '#/components/schemas/vpc'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_instance_vpc2_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
vpcs:
- mac_address: mac_address
id: id
ip_address: ip_address
- mac_address: mac_address
id: id
ip_address: ip_address
properties:
vpcs:
items:
$ref: '#/components/schemas/instance-vpc2'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
get_instance_iso_status_200_response_iso_status:
example:
iso_id: iso_id
state: state
properties:
iso_id:
description: "The [ISO id](#operation/list-isos)."
type: string
state:
description: |-
The status of this ISO.
* ready
* attached
type: string
type: object
get_instance_iso_status_200_response:
example:
iso_status:
iso_id: iso_id
state: state
properties:
iso_status:
$ref: '#/components/schemas/get_instance_iso_status_200_response_iso_status'
type: object
attach_instance_iso_request:
properties:
iso_id:
description: "The [ISO id](#operation/list-isos) to attach to this Instance."
type: string
type: object
attach_instance_iso_202_response_iso_status:
example:
iso_id: iso_id
state: state
properties:
state:
description: |-
State of the ISO
* ismounting
type: string
iso_id:
description: "The [ISO id](#operation/list-isos) being attached."
type: string
type: object
attach_instance_iso_202_response:
example:
iso_status:
iso_id: iso_id
state: state
properties:
iso_status:
$ref: '#/components/schemas/attach_instance_iso_202_response_iso_status'
type: object
detach_instance_iso_202_response_iso_status:
example:
state: state
properties:
state:
description: |-
State of the ISO
* isunmounting
type: string
type: object
detach_instance_iso_202_response:
example:
iso_status:
state: state
properties:
iso_status:
$ref: '#/components/schemas/detach_instance_iso_202_response_iso_status'
type: object
attach_instance_network_request:
properties:
network_id:
description: "The [Private Network id](#operation/list-networks) to attach\
\ to this Instance."
type: string
type: object
detach_instance_network_request:
properties:
network_id:
description: "The [Private Network id](#operation/list-networks) to detach\
\ from this Instance."
type: string
type: object
attach_instance_vpc_request:
properties:
vpc_id:
description: "The [VPC ID](#operation/list-vpcs) to attach to this Instance."
type: string
type: object
detach_instance_vpc_request:
properties:
vpc_id:
description: "The [VPC ID](#operation/list-vpcs) to detach from this Instance."
type: string
type: object
attach_instance_vpc2_request:
properties:
vpc_id:
description: "The [VPC ID](#operation/list-vpc2) to attach to this Instance."
type: string
ip_address:
description: 'The IP address to use for this instance on the attached VPC
2.0 network. '
type: string
required:
- vpc_id
type: object
detach_instance_vpc2_request:
properties:
vpc_id:
description: "The [VPC ID](#operation/list-vpc2) to detach from this Instance."
type: string
required:
- vpc_id
type: object
get_instance_backup_schedule_200_response:
example:
backup_schedule:
dom: 1
hour: 0
next_scheduled_time_utc: next_scheduled_time_utc
type: type
dow: 6
enabled: true
properties:
backup_schedule:
$ref: '#/components/schemas/backup-schedule'
type: object
create_instance_backup_schedule_request:
properties:
type:
description: |-
Type of backup schedule:
| | Value | Description |
| - | ------ | ------------- |
| | daily | Back up once per day at `hour`. |
| | weekly | Back up once per week on `dow` at `hour`. |
| | monthly | Back up each month at `dom` at `hour`. |
| | daily\_alt\_even | Back up on even dates at `hour`. |
| | daily\_alt\_odd | Back up on odd dates at `hour`. |
type: string
hour:
description: Hour of day to run in UTC.
type: integer
dow:
description: |-
Day of week to run.
| | Value | Description |
| - | ------ | ------------- |
| | 1 | Sunday |
| | 2 | Monday |
| | 3 | Tuesday |
| | 4 | Wednesday |
| | 5 | Thursday |
| | 6 | Friday |
| | 7 | Saturday |
type: integer
dom:
description: Day of month to run. Use values between 1 and 28.
type: integer
required:
- type
type: object
restore_instance_request:
properties:
backup_id:
description: "The [Backup id](#operation/list-backups) used to restore this\
\ instance."
type: string
snapshot_id:
description: "The [Snapshot id](#operation/list-snapshots) used to restore\
\ this instance."
type: string
type: object
restore_instance_202_response_status:
example:
restore_id: restore_id
restore_type: restore_type
status: status
properties:
restore_type:
type: string
restore_id:
type: string
status:
type: string
type: object
restore_instance_202_response:
example:
status:
restore_id: restore_id
restore_type: restore_type
status: status
properties:
status:
$ref: '#/components/schemas/restore_instance_202_response_status'
type: object
create_instance_ipv4_request:
properties:
reboot:
description: |-
Set if the server is rebooted immediately after the IPv4 address is created.
* true (default)
* false
type: boolean
type: object
list_instance_ipv6_reverse_200_response_reverse_ipv6s_inner:
example:
ip: ip
reverse: reverse
properties:
reverse:
description: The IPv6 reverse entry.
type: string
ip:
description: The IPv6 address.
type: string
type: object
list_instance_ipv6_reverse_200_response:
example:
reverse_ipv6s:
- ip: ip
reverse: reverse
- ip: ip
reverse: reverse
properties:
reverse_ipv6s:
items:
$ref: '#/components/schemas/list_instance_ipv6_reverse_200_response_reverse_ipv6s_inner'
type: array
type: object
create_instance_reverse_ipv6_request:
properties:
ip:
description: "The IPv6 address in full, expanded format."
type: string
reverse:
description: The IPv6 reverse entry.
type: string
required:
- ip
- reverse
type: object
create_instance_reverse_ipv4_request:
properties:
ip:
description: The IPv4 address.
type: string
reverse:
description: The IPv4 reverse entry.
type: string
required:
- ip
- reverse
type: object
get_backup_200_response:
example:
backup:
size: 0
date_created: date_created
description: description
id: id
status: status
properties:
backup:
$ref: '#/components/schemas/backup'
type: object
get_instance_userdata_200_response_user_data:
example:
data: data
properties:
data:
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."
type: string
type: object
get_instance_userdata_200_response:
example:
user_data:
data: data
properties:
user_data:
$ref: '#/components/schemas/get_instance_userdata_200_response_user_data'
type: object
post_instances_instance_id_ipv4_reverse_default_request:
properties:
ip:
type: string
required:
- ip
type: object
get_instance_upgrades_200_response_upgrades:
example:
os:
- ""
- ""
plans:
- ""
- ""
applications:
- ""
- ""
properties:
applications:
items: {}
type: array
plans:
items: {}
type: array
os:
items: {}
type: array
type: object
get_instance_upgrades_200_response:
example:
upgrades:
os:
- ""
- ""
plans:
- ""
- ""
applications:
- ""
- ""
properties:
upgrades:
$ref: '#/components/schemas/get_instance_upgrades_200_response_upgrades'
type: object
get_bare_metals_upgrades_200_response_upgrades:
description: This object will contain the available Bare Metal Upgrades
example:
os:
- ""
- ""
applications:
- ""
- ""
properties:
applications:
items: {}
type: array
os:
items: {}
type: array
type: object
get_bare_metals_upgrades_200_response:
example:
upgrades:
os:
- ""
- ""
applications:
- ""
- ""
properties:
upgrades:
$ref: '#/components/schemas/get_bare_metals_upgrades_200_response_upgrades'
type: object
get_bare_metal_vnc_200_response_vnc:
description: This object will contain the VNC URL for the Bare Metal Instance
example:
url: url
properties:
url:
description: This is the VNC URL for the Bare Metal Instance
type: string
type: object
get_bare_metal_vnc_200_response:
example:
vnc:
url: url
properties:
vnc:
$ref: '#/components/schemas/get_bare_metal_vnc_200_response_vnc'
type: object
attach_baremetals_vpc2_request:
properties:
vpc_id:
description: "The [VPC ID](#operation/list-vpc2) to attach to this Bare\
\ Metal Instance."
type: string
ip_address:
description: 'The IP address to use for this instance on the attached VPC
2.0 network. '
type: string
type: object
detach_baremetal_vpc2_request:
properties:
vpc_id:
description: "The [VPC ID](#operation/list-vpc2) to detach from this Bare\
\ Metal Instance."
type: string
type: object
list_baremetal_vpc2_200_response:
example:
vpcs:
- mac_address: mac_address
id: id
ip_address: ip_address
- mac_address: mac_address
id: id
ip_address: ip_address
properties:
vpcs:
items:
$ref: '#/components/schemas/instance-vpc2'
type: array
type: object
list_kubernetes_clusters_200_response:
example:
vke_clusters:
- firewall_group_id: firewall_group_id
ha_controlplanes: true
date_created: date_created
ip: ip
label: label
version: version
endpoint: endpoint
cluster_subnet: cluster_subnet
service_subnet: service_subnet
node_pools:
- nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
- nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
id: id
region: region
status: status
- firewall_group_id: firewall_group_id
ha_controlplanes: true
date_created: date_created
ip: ip
label: label
version: version
endpoint: endpoint
cluster_subnet: cluster_subnet
service_subnet: service_subnet
node_pools:
- nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
- nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
id: id
region: region
status: status
properties:
vke_clusters:
items:
$ref: '#/components/schemas/vke-cluster'
type: array
type: object
create_kubernetes_cluster_request_node_pools_inner:
properties:
node_quantity:
description: "Number of instances to deploy in this nodepool. Minimum of\
\ 1 node required, but at least 3 is recommended."
type: integer
label:
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.
type: string
plan:
description: "Plan you want this nodepool to use. Note: minimum plan must\
\ be $10"
type: string
tag:
description: Tag for node pool
type: string
auto_scaler:
description: Option to use the auto scaler with your cluster. Default false.
type: boolean
min_nodes:
description: Auto scaler field for minimum nodes you want for your cluster.
Default 1.
type: integer
max_nodes:
description: Auto scaler field for maximum nodes you want for your cluster.
Default 1.
type: integer
required:
- label
- node_quantity
- plan
type: object
create_kubernetes_cluster_request:
properties:
label:
description: The label for your Kubernetes cluster.
type: string
region:
description: "Region you want to deploy VKE in. See [Regions](#tag/region)\
\ for more information."
type: string
version:
description: Version of Kubernetes you want to deploy.
type: string
ha_controlplanes:
description: |-
Whether a highly available control planes configuration should be deployed
* true
* false (default)
type: boolean
enable_firewall:
description: |-
Whether a [Firewall Group](#tag/firewall) should be deployed and managed by this cluster
* true
* false (default)
type: boolean
node_pools:
items:
$ref: '#/components/schemas/create_kubernetes_cluster_request_node_pools_inner'
type: array
required:
- region
- version
type: object
create_kubernetes_cluster_201_response:
example:
vke_cluster:
firewall_group_id: firewall_group_id
ha_controlplanes: true
date_created: date_created
ip: ip
label: label
version: version
endpoint: endpoint
cluster_subnet: cluster_subnet
service_subnet: service_subnet
node_pools:
- nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
- nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
id: id
region: region
status: status
properties:
vke_cluster:
$ref: '#/components/schemas/vke-cluster'
type: object
update_kubernetes_cluster_request:
properties:
label:
description: Label for the Kubernetes cluster
type: string
required:
- label
type: object
get_kubernetes_resources_200_response_resources_block_storage_inner:
example:
date_created: date_created
id: id
label: label
status: status
properties:
id:
description: Unique identifier for the block storage volume
minLength: 1
type: string
label:
description: Label given to the block storage volume
minLength: 1
type: string
date_created:
description: Date the block storage volume was created
minLength: 1
type: string
status:
description: Status of the block storage volume
minLength: 1
type: string
type: object
get_kubernetes_resources_200_response_resources_load_balancer_inner:
example:
date_created: date_created
id: id
label: label
status: status
properties:
id:
description: Unique identifier for the load balancer
minLength: 1
type: string
label:
description: Label given to the load balancer
minLength: 1
type: string
date_created:
description: Date the load balancer was created
minLength: 1
type: string
status:
description: Status of the load balancer
minLength: 1
type: string
type: object
get_kubernetes_resources_200_response_resources:
example:
load_balancer:
- date_created: date_created
id: id
label: label
status: status
- date_created: date_created
id: id
label: label
status: status
block_storage:
- date_created: date_created
id: id
label: label
status: status
- date_created: date_created
id: id
label: label
status: status
properties:
block_storage:
items:
$ref: '#/components/schemas/get_kubernetes_resources_200_response_resources_block_storage_inner'
minItems: 1
type: array
uniqueItems: true
load_balancer:
items:
$ref: '#/components/schemas/get_kubernetes_resources_200_response_resources_load_balancer_inner'
minItems: 1
type: array
uniqueItems: true
type: object
get_kubernetes_resources_200_response:
description: ""
example:
resources:
load_balancer:
- date_created: date_created
id: id
label: label
status: status
- date_created: date_created
id: id
label: label
status: status
block_storage:
- date_created: date_created
id: id
label: label
status: status
- date_created: date_created
id: id
label: label
status: status
properties:
resources:
$ref: '#/components/schemas/get_kubernetes_resources_200_response_resources'
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
get_kubernetes_available_upgrades_200_response:
description: ""
example:
available_upgrades:
- available_upgrades
- available_upgrades
properties:
available_upgrades:
description: Array of available upgrade version strings
items:
type: string
type: array
type: object
x-examples:
example-1:
available_upgrades:
- v1.22.8+3
- v1.21.11+3
start_kubernetes_cluster_upgrade_request:
properties:
upgrade_version:
description: The version you're upgrading to.
type: string
required:
- upgrade_version
type: object
get_nodepools_200_response:
example:
node_pools:
- nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
- nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
properties:
node_pools:
items:
$ref: '#/components/schemas/nodepools'
type: array
type: object
create_nodepools_request:
properties:
node_quantity:
description: Number of instances in this nodepool
type: integer
label:
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.
type: string
plan:
description: Plan that this nodepool will use
type: string
tag:
description: Tag for node pool
type: string
auto_scaler:
description: Option to use the auto scaler with your cluster. Default false.
type: boolean
min_nodes:
description: Auto scaler field for minimum nodes you want for your cluster.
Default 1.
type: integer
max_nodes:
description: Auto scaler field for maximum nodes you want for your cluster.
Default 1.
type: integer
required:
- label
- node_quantity
- plan
type: object
create_nodepools_201_response:
example:
node_pool:
nodes:
- date_created: date_created
id: id
label: label
- date_created: date_created
id: id
label: label
date_updated: date_updated
auto_scaler: true
date_created: date_created
node_quantity: 0
max_nodes: 1
id: id
label: label
tag: tag
plan: plan
min_nodes: 6
status: status
properties:
node_pool:
$ref: '#/components/schemas/nodepools'
type: object
update_nodepool_request:
properties:
node_quantity:
description: "Number of instances in the NodePool. Minimum of 1 is required,\
\ but at least 3 is recommended."
type: integer
tag:
description: Tag for your node pool
type: string
auto_scaler:
description: Option to use the auto scaler for your cluster. Default false.
type: boolean
min_nodes:
description: Auto scaler field for minimum nodes you want for your cluster.
Default 1.
type: integer
max_nodes:
description: Auto scaler field for maximum nodes you want for your cluster.
Default 1.
type: integer
type: object
update_nodepool_request_1:
properties:
node_quantity:
description: "Number of instances in the nodepool. Minimum of 1 is required,\
\ but at least 3 is recommended."
type: integer
required:
- node_quantity
type: object
get_kubernetes_clusters_config_200_response:
example:
kube_config: kube_config
properties:
kube_config:
description: Base64 encoded KubeConfig
type: string
type: object
get_kubernetes_versions_200_response:
example:
versions:
- versions
- versions
properties:
versions:
items:
type: string
type: array
type: object
list_billing_history_200_response:
example:
billing_history:
- date: date
amount: 6.027456183070403
balance: 1.4658129805029452
description: description
id: 0.8008281904610115
type: type
- date: date
amount: 6.027456183070403
balance: 1.4658129805029452
description: description
id: 0.8008281904610115
type: type
meta:
total: 0
links:
next: next
prev: prev
properties:
billing_history:
description: List of all billing history.
items:
$ref: '#/components/schemas/billing'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_invoices_200_response:
description: ""
example:
meta:
total: 0
links:
next: next
prev: prev
billing_invoices:
- date: date
amount: 6.027456183070403
balance: 1.4658129805029452
description: description
id: 0
- date: date
amount: 6.027456183070403
balance: 1.4658129805029452
description: description
id: 0
properties:
billing_invoices:
description: List of billing invoices.
items:
$ref: '#/components/schemas/invoice'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
x-examples:
example-1:
billing_invoice:
- id: 123456
billing_period: 09-01-2021
amount: 5
get_invoice_200_response:
description: ""
example:
billing_invoice:
date: date
amount: 6.027456183070403
balance: 1.4658129805029452
description: description
id: 0
properties:
billing_invoice:
$ref: '#/components/schemas/invoice'
type: object
x-examples:
example-1:
billing_invoice:
id: 123456
description: Account Credit
billing_period: 09-01-2021
amount: 5
get_invoice_items_200_response_invoice_items_inner:
example:
end_date: end_date
product: product
total: 1.4658129805029452
description: description
units: 0.8008281904610115
unit_type: unit_type
unit_price: 6.027456183070403
start_date: start_date
properties:
description:
description: Invoice item description
type: string
product:
description: Product name
type: string
start_date:
description: Start date of item
type: string
end_date:
description: End date of item
type: string
units:
description: Number of units item consumed in billing period
type: number
unit_type:
description: "Unit type. Options include \"hours\", \"overage\", and \"\
discount\""
type: string
unit_price:
description: Price per unit in dollars
type: number
total:
description: Total amount due in dollars
type: number
type: object
get_invoice_items_200_response_meta_links:
example:
next: next
prev: prev
properties:
next:
type: string
prev:
type: string
type: object
get_invoice_items_200_response_meta:
example:
total: 5.962133916683182
links:
next: next
prev: prev
properties:
total:
type: number
links:
$ref: '#/components/schemas/get_invoice_items_200_response_meta_links'
type: object
get_invoice_items_200_response:
description: ""
example:
invoice_items:
- end_date: end_date
product: product
total: 1.4658129805029452
description: description
units: 0.8008281904610115
unit_type: unit_type
unit_price: 6.027456183070403
start_date: start_date
- end_date: end_date
product: product
total: 1.4658129805029452
description: description
units: 0.8008281904610115
unit_type: unit_type
unit_price: 6.027456183070403
start_date: start_date
meta:
total: 5.962133916683182
links:
next: next
prev: prev
properties:
invoice_items:
description: List of invoice items.
items:
$ref: '#/components/schemas/get_invoice_items_200_response_invoice_items_inner'
type: array
meta:
$ref: '#/components/schemas/get_invoice_items_200_response_meta'
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: ""
list_database_plans_200_response:
example:
plans:
- disk: 5
max_connections: "{}"
vcpu_count: 6
monthly_cost: 5
supported_engines: "{}"
locations:
- locations
- locations
id: id
type: type
number_of_nodes: 0
ram: 1
- disk: 5
max_connections: "{}"
vcpu_count: 6
monthly_cost: 5
supported_engines: "{}"
locations:
- locations
- locations
id: id
type: type
number_of_nodes: 0
ram: 1
properties:
plans:
items:
$ref: '#/components/schemas/dbaas-plan'
type: array
type: object
list_databases_200_response:
example:
databases:
- database_engine_version: database_engine_version
vpc_id: vpc_id
read_replicas:
- "{}"
- "{}"
ferretdb_credentials:
password: password
public_ip: public_ip
port: ""
host: host
private_ip: private_ip
username: username
password: password
maintenance_dow: maintenance_dow
host: host
mysql_long_query_time: 5
pg_available_extensions:
- "{}"
- "{}"
id: id
tag: tag
redis_eviction_policy: redis_eviction_policy
plan: plan
latest_backup: latest_backup
mysql_require_primary_key: true
plan_vcpus: 1
public_host: public_host
date_created: date_created
label: label
plan_replicas: 5
database_engine: database_engine
plan_ram: 6
dbname: dbname
mysql_sql_modes:
- mysql_sql_modes
- mysql_sql_modes
port: port
maintenance_time: maintenance_time
mysql_slow_query_log: true
plan_disk: 0
trusted_ips:
- trusted_ips
- trusted_ips
cluster_time_zone: cluster_time_zone
region: region
user: user
status: status
- database_engine_version: database_engine_version
vpc_id: vpc_id
read_replicas:
- "{}"
- "{}"
ferretdb_credentials:
password: password
public_ip: public_ip
port: ""
host: host
private_ip: private_ip
username: username
password: password
maintenance_dow: maintenance_dow
host: host
mysql_long_query_time: 5
pg_available_extensions:
- "{}"
- "{}"
id: id
tag: tag
redis_eviction_policy: redis_eviction_policy
plan: plan
latest_backup: latest_backup
mysql_require_primary_key: true
plan_vcpus: 1
public_host: public_host
date_created: date_created
label: label
plan_replicas: 5
database_engine: database_engine
plan_ram: 6
dbname: dbname
mysql_sql_modes:
- mysql_sql_modes
- mysql_sql_modes
port: port
maintenance_time: maintenance_time
mysql_slow_query_log: true
plan_disk: 0
trusted_ips:
- trusted_ips
- trusted_ips
cluster_time_zone: cluster_time_zone
region: region
user: user
status: status
meta:
total: 2
properties:
databases:
items:
$ref: '#/components/schemas/database'
type: array
meta:
$ref: '#/components/schemas/dbaas-meta'
type: object
create_database_request:
properties:
database_engine:
description: |-
The database engine type for the Managed Database.
* `mysql`
* `pg`
* `ferretpg`
* `redis`
type: string
database_engine_version:
description: |-
The version of the chosen database engine type for the Managed Database.
* MySQL: `8`
* PostgreSQL: `12` - `15`
* FerretDB + PostgreSQL: `12` - `15`
* Redis: `7`
type: string
region:
description: "The [Region id](#operation/list-regions) where the Managed\
\ Database is located."
type: string
plan:
description: "The [Plan id](#operation/list-database-plans) to use when\
\ deploying this Managed Database."
type: string
label:
description: A user-supplied label for this Managed Database.
type: string
tag:
description: The user-supplied tag for this Managed Database.
type: string
vpc_id:
description: "The [VPC id](#operation/list-vpcs) to use when deploying this\
\ Managed Database. It can also be set to `new` to configure a new VPC\
\ network with this deployment."
type: string
maintenance_dow:
description: |-
The day of week for routine maintenance updates.
* `monday`
* `tuesday`
* `wednesday`
* `thursday`
* `friday`
* `saturday`
* `sunday`
type: string
maintenance_time:
description: "The preferred time (UTC) for routine maintenance updates to\
\ occur in 24-hour HH:00 format (e.g. `01:00`, `13:00`, `23:00`, etc.)."
type: string
trusted_ips:
description: A list of IP addresses allowed to access the Managed Database
in CIDR notation (defaults to /32 if excluded).
items:
type: string
type: array
mysql_sql_modes:
description: |-
A list of SQL modes to enable on the Managed Database (MySQL engine type only).
* `ALLOW_INVALID_DATES`
* `ANSI` (Combination Mode)
* `ANSI_QUOTES`
* `ERROR_FOR_DIVISION_BY_ZERO`
* `HIGH_NOT_PRECEDENCE`
* `IGNORE_SPACE`
* `NO_AUTO_VALUE_ON_ZERO`
* `NO_DIR_IN_CREATE`
* `NO_ENGINE_SUBSTITUTION`
* `NO_UNSIGNED_SUBTRACTION`
* `NO_ZERO_DATE`
* `NO_ZERO_IN_DATE`
* `ONLY_FULL_GROUP_BY`
* `PIPES_AS_CONCAT`
* `REAL_AS_FLOAT`
* `STRICT_ALL_TABLES`
* `STRICT_TRANS_TABLES`
* `TIME_TRUNCATE_FRACTIONAL`
* `TRADITIONAL` (Combination Mode)
items:
type: string
type: array
mysql_require_primary_key:
description: Require a primary key for all tables on the Managed Database
(MySQL engine type only).
type: boolean
mysql_slow_query_log:
description: Enable or disable slow query logging on the Managed Database
(MySQL engine type only).
type: boolean
mysql_long_query_time:
description: The number of seconds to denote a slow query when logging is
enabled (MySQL engine type only).
type: integer
redis_eviction_policy:
description: Set the data eviction policy for the Managed Database (Redis
engine type only)
type: string
required:
- database_engine
- database_engine_version
- label
- plan
- region
type: object
create_database_202_response:
example:
database:
database_engine_version: database_engine_version
vpc_id: vpc_id
read_replicas:
- "{}"
- "{}"
ferretdb_credentials:
password: password
public_ip: public_ip
port: ""
host: host
private_ip: private_ip
username: username
password: password
maintenance_dow: maintenance_dow
host: host
mysql_long_query_time: 5
pg_available_extensions:
- "{}"
- "{}"
id: id
tag: tag
redis_eviction_policy: redis_eviction_policy
plan: plan
latest_backup: latest_backup
mysql_require_primary_key: true
plan_vcpus: 1
public_host: public_host
date_created: date_created
label: label
plan_replicas: 5
database_engine: database_engine
plan_ram: 6
dbname: dbname
mysql_sql_modes:
- mysql_sql_modes
- mysql_sql_modes
port: port
maintenance_time: maintenance_time
mysql_slow_query_log: true
plan_disk: 0
trusted_ips:
- trusted_ips
- trusted_ips
cluster_time_zone: cluster_time_zone
region: region
user: user
status: status
properties:
database:
$ref: '#/components/schemas/database'
type: object
update_database_request:
properties:
region:
description: "The [Region id](#operation/list-regions) where the Managed\
\ Database is located."
type: string
plan:
description: "The [Plan id](#operation/list-database-plans) for this Managed\
\ Database."
type: string
label:
description: A user-supplied label for this Managed Database.
type: string
tag:
description: The user-supplied tag for this Managed Database.
type: string
vpc_id:
description: "The [VPC id](#operation/list-vpcs) for this Managed Database."
type: string
maintenance_dow:
description: |-
The day of week for routine maintenance updates.
* `monday`
* `tuesday`
* `wednesday`
* `thursday`
* `friday`
* `saturday`
* `sunday`
type: string
maintenance_time:
description: "The preferred time (UTC) for routine maintenance updates to\
\ occur in 24-hour HH:00 format (e.g. `01:00`, `13:00`, `23:00`, etc.)."
type: string
cluster_time_zone:
description: "The configured time zone for the Managed Database in TZ database\
\ format (e.g. `UTC`, `America/New_York`, `Europe/London`, etc.)."
type: string
trusted_ips:
description: A list of IP addresses allowed to access the Managed Database
in CIDR notation (defaults to /32 if excluded).
items:
type: string
type: array
mysql_sql_modes:
description: |-
A list of SQL modes to enable on the Managed Database (MySQL engine type only).
* `ALLOW_INVALID_DATES`
* `ANSI` (Combination Mode)
* `ANSI_QUOTES`
* `ERROR_FOR_DIVISION_BY_ZERO`
* `HIGH_NOT_PRECEDENCE`
* `IGNORE_SPACE`
* `NO_AUTO_VALUE_ON_ZERO`
* `NO_DIR_IN_CREATE`
* `NO_ENGINE_SUBSTITUTION`
* `NO_UNSIGNED_SUBTRACTION`
* `NO_ZERO_DATE`
* `NO_ZERO_IN_DATE`
* `ONLY_FULL_GROUP_BY`
* `PIPES_AS_CONCAT`
* `REAL_AS_FLOAT`
* `STRICT_ALL_TABLES`
* `STRICT_TRANS_TABLES`
* `TIME_TRUNCATE_FRACTIONAL`
* `TRADITIONAL` (Combination Mode)
items:
type: string
type: array
mysql_require_primary_key:
description: Require a primary key for all tables on the Managed Database
(MySQL engine type only).
type: boolean
mysql_slow_query_log:
description: Enable or disable slow query logging on the Managed Database
(MySQL engine type only).
type: boolean
mysql_long_query_time:
description: The number of seconds to denote a slow query when logging is
enabled (MySQL engine type only).
type: integer
redis_eviction_policy:
description: Set the data eviction policy for the Managed Database (Redis
engine type only)
type: string
type: object
get_database_usage_200_response:
example:
usage:
disk:
current_gb: current_gb
percentage: percentage
max_gb: max_gb
memory:
percentage: percentage
current_mb: current_mb
max_mb: max_mb
cpu:
percentage: percentage
properties:
usage:
$ref: '#/components/schemas/database-usage'
type: object
list_database_users_200_response:
example:
meta:
total: 2
users:
- password: password
encryption: encryption
access_control:
redis_acl_keys:
- redis_acl_keys
- redis_acl_keys
redis_acl_channels:
- redis_acl_channels
- redis_acl_channels
redis_acl_categories:
- redis_acl_categories
- redis_acl_categories
redis_acl_commands:
- redis_acl_commands
- redis_acl_commands
username: username
- password: password
encryption: encryption
access_control:
redis_acl_keys:
- redis_acl_keys
- redis_acl_keys
redis_acl_channels:
- redis_acl_channels
- redis_acl_channels
redis_acl_categories:
- redis_acl_categories
- redis_acl_categories
redis_acl_commands:
- redis_acl_commands
- redis_acl_commands
username: username
properties:
users:
items:
$ref: '#/components/schemas/database-user'
type: array
meta:
$ref: '#/components/schemas/dbaas-meta'
type: object
create_database_user_request:
properties:
username:
description: The username of the database user.
type: string
password:
description: The password for the database user. This can be omitted to
auto-generate a secure password.
type: string
encryption:
description: |-
The password encryption type for the database user (MySQL engine type only).
* `caching_sha2_password` (default if omitted)
* `mysql_native_password`
type: string
required:
- username
type: object
create_database_user_202_response:
example:
user:
password: password
encryption: encryption
access_control:
redis_acl_keys:
- redis_acl_keys
- redis_acl_keys
redis_acl_channels:
- redis_acl_channels
- redis_acl_channels
redis_acl_categories:
- redis_acl_categories
- redis_acl_categories
redis_acl_commands:
- redis_acl_commands
- redis_acl_commands
username: username
properties:
user:
$ref: '#/components/schemas/database-user'
type: object
update_database_user_request:
properties:
password:
description: The password for the database user. This can be empty to auto-generate
a new secure password.
type: string
required:
- password
type: object
set_database_user_acl_request:
properties:
redis_acl_categories:
description: A list of rules for command categories.
items:
type: string
type: array
redis_acl_channels:
description: A list of publish/subscribe channel patterns.
items:
type: string
type: array
redis_acl_commands:
description: A list of rules for individual commands..
items:
type: string
type: array
redis_acl_keys:
description: A list of key access rules..
items:
type: string
type: array
type: object
list_database_dbs_200_response:
example:
dbs:
- name: name
- name: name
meta:
total: 2
properties:
dbs:
items:
$ref: '#/components/schemas/database-db'
type: array
meta:
$ref: '#/components/schemas/dbaas-meta'
type: object
create_database_db_request:
properties:
name:
description: The name of the logical database.
type: string
required:
- name
type: object
create_database_db_202_response:
example:
db:
name: name
properties:
db:
$ref: '#/components/schemas/database-db'
type: object
list_maintenance_updates_200_response:
example:
available_updates:
- available_updates
- available_updates
properties:
available_updates:
description: A list of available maintenance updates for the Managed Database.
items:
type: string
type: array
type: object
start_maintenance_updates_200_response:
example:
message: message
properties:
message:
description: A message indicating whether the maintenance updates were successfully
initialized.
type: string
type: object
list_service_alerts_request:
properties:
period:
description: The time range to list Managed Database service alerts from.
type: string
required:
- period
type: object
list_service_alerts_200_response:
example:
alerts:
maintenance_scheduled: maintenance_scheduled
table_count: 0
resource_type: resource_type
description: description
recommendation: recommendation
message_type: message_type
timestamp: timestamp
properties:
alerts:
$ref: '#/components/schemas/dbaas-alerts'
type: object
view_migration_status_200_response:
example:
migration:
method: method
credentials:
password: password
database: database
port: ""
ignored_databases: ignored_databases
host: host
ssl: true
username: username
error: error
status: status
properties:
migration:
$ref: '#/components/schemas/dbaas-migration'
type: object
database_start_migration_request:
properties:
host:
description: The host name of the source server.
type: string
port:
description: The connection port of the source server.
type: int
username:
description: The username of the source server. Uses `default` for Redis
if left empty or unset.
type: string
password:
description: The password of the source server.
type: string
database:
description: "The database of the source server. Required for MySQL/PostgreSQL\
\ engine types, but excluded for Redis."
type: string
ignored_databases:
description: Comma-separated list of ignored databases on the source server.
Excluded for Redis engine types.
type: string
ssl:
description: The true/false value for whether SSL is needed to connect to
the source server.
type: boolean
required:
- host
- password
- port
- ssl
- username
type: object
database_add_read_replica_request:
properties:
region:
description: "The [Region id](#operation/list-regions) where the Managed\
\ Database is located."
type: string
label:
description: A user-supplied label for this Managed Database.
type: string
required:
- label
- region
type: object
get_backup_information_200_response:
example:
oldest_backup:
date: date
time: time
latest_backup:
date: date
time: time
properties:
latest_backup:
$ref: '#/components/schemas/database-latest-backup'
oldest_backup:
$ref: '#/components/schemas/database-oldest-backup'
type: object
database_restore_from_backup_request:
properties:
label:
description: A user-supplied label for this Managed Database.
type: string
type:
description: |-
The type of backup restoration to use for this Managed Database.
* `pitr`: Point-in-time recovery
* `basebackup`: Latest backup (default if omitted)
type: string
date:
description: "The [backup date](#operation/get-backup-information) to use\
\ when restoring the Managed Database in YYYY-MM-DD date format. Required\
\ for `pitr` type requests."
type: string
time:
description: "The [backup time](#operation/get-backup-information) to use\
\ when restoring the Managed Database in HH-MM-SS time format (24-hour\
\ UTC). Required for `pitr` type requests."
type: string
required:
- label
type: object
database_fork_request:
properties:
label:
description: A user-supplied label for this Managed Database.
type: string
region:
description: "The [Region id](#operation/list-regions) where the Managed\
\ Database is located."
type: string
plan:
description: "The [Plan id](#operation/list-database-plans) to use when\
\ deploying this Managed Database."
type: string
vpc_id:
description: "The [VPC id](#operation/list-vpcs) to use when deploying this\
\ Managed Database. It can also be set to `new` to configure a new VPC\
\ network with this deployment."
type: string
type:
description: |-
The type of backup restoration to use for this Managed Database.
* `pitr`: Point-in-time recovery
* `basebackup`: Latest backup (default if omitted)
type: string
date:
description: "The [backup date](#operation/get-backup-information) to use\
\ when restoring the Managed Database in YYYY-MM-DD date format. Required\
\ for `pitr` type requests."
type: string
time:
description: "The [backup time](#operation/get-backup-information) to use\
\ when restoring the Managed Database in HH-MM-SS time format (24-hour\
\ UTC). Required for `pitr` type requests."
type: string
required:
- label
- plan
- region
type: object
list_connection_pools_200_response:
example:
connection_pools:
- mode: mode
database: database
size: 5
name: name
username: username
- mode: mode
database: database
size: 5
name: name
username: username
meta:
total: 2
connections:
max: 1
available: 6
used: 0
properties:
connections:
$ref: '#/components/schemas/database-connections'
connection_pools:
items:
$ref: '#/components/schemas/connection-pool'
type: array
meta:
$ref: '#/components/schemas/dbaas-meta'
type: object
create_connection_pool_request:
properties:
name:
description: The name of the connection pool.
type: string
database:
description: The logical database associated with the connection pool.
type: string
username:
description: The database user associated with the connection pool.
type: string
mode:
description: |-
The mode for the connection pool.
* `session`
* `transaction`
* `statement`
type: string
size:
description: The size of the connection pool.
type: integer
required:
- database
- mode
- name
- size
- username
type: object
create_connection_pool_202_response:
example:
connection_pool:
mode: mode
database: database
size: 5
name: name
username: username
properties:
connection_pool:
$ref: '#/components/schemas/connection-pool'
type: object
update_connection_pool_request:
properties:
database:
description: The logical database associated with the connection pool.
type: string
username:
description: The database user associated with the connection pool.
type: string
mode:
description: |-
The mode for the connection pool.
* `session`
* `transaction`
* `statement`
type: string
size:
description: The size of the connection pool.
type: integer
type: object
list_advanced_options_200_response:
example:
available_options:
- min_value: ""
enumerals:
- enumerals
- enumerals
name: name
alt_values:
- ""
- ""
units: units
type: type
max_value: ""
- min_value: ""
enumerals:
- enumerals
- enumerals
name: name
alt_values:
- ""
- ""
units: units
type: type
max_value: ""
configured_options: "{}"
properties:
configured_options:
type: object
available_options:
items:
$ref: '#/components/schemas/dbaas-available-options'
type: array
type: object
update_advanced_options_request:
properties:
autovacuum_analyze_scale_factor:
description: "Accepted values: 0 - 1"
type: float
autovacuum_analyze_threshold:
description: "Accepted values: 0 - 2147483647"
type: int
autovacuum_freeze_max_age:
description: "Accepted values: 200000000 - 1500000000"
type: int
autovacuum_max_workers:
description: "Accepted values: 1 - 20"
type: int
autovacuum_naptime:
description: "Accepted values: 1 - 86400"
type: int
autovacuum_vacuum_cost_delay:
description: "Accepted values: -1 - 100"
type: int
autovacuum_vacuum_cost_limit:
description: "Accepted values: -1 - 10000"
type: int
autovacuum_vacuum_scale_factor:
description: "Accepted values: 0 - 1"
type: float
autovacuum_vacuum_threshold:
description: "Accepted values: 0 - 2147483647"
type: int
bgwriter_delay:
description: "Accepted values: 10 - 10000"
type: int
bgwriter_flush_after:
description: "Accepted values: 0 - 2048"
type: int
bgwriter_lru_maxpages:
description: "Accepted values: 0 - 1073741823"
type: int
bgwriter_lru_multiplier:
description: "Accepted values: 0 - 10"
type: float
deadlock_timeout:
description: "Accepted values: 500 - 1800000"
type: int
default_toast_compression:
description: |-
Accepted values:
* `lz4`
* `pglz`
type: enum
idle_in_transaction_session_timeout:
description: "Accepted values: 0 - 604800000"
type: int
jit:
description: |-
Accepted values:
* `true`
* `false`
type: boolean
log_autovacuum_min_duration:
description: "Accepted values: -1 - 2147483647"
type: int
log_error_verbosity:
description: |-
Accepted values:
* `TERSE`
* `DEFAULT`
* `VERBOSE`
type: enum
log_line_prefix:
description: |-
Accepted values:
* `'pid=%p,user=%u,db=%d,app=%a,client=%h '`
* `'%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '`
* `'%m [%p] %q[user=%u,db=%d,app=%a] '`
type: enum
log_min_duration_statement:
description: "Accepted values: -1 - 86400000"
type: int
max_files_per_process:
description: "Accepted values: 1000 - 4096"
type: int
max_locks_per_transaction:
description: "Accepted values: 64 - 6400"
type: int
max_logical_replication_workers:
description: "Accepted values: 4 - 64"
type: int
max_parallel_workers:
description: "Accepted values: 0 - 96"
type: int
max_parallel_workers_per_gather:
description: "Accepted values: 0 - 96"
type: int
max_pred_locks_per_transaction:
description: "Accepted values: 64 - 5120"
type: int
max_prepared_transactions:
description: "Accepted values: 0 - 10000"
type: int
max_replication_slots:
description: "Accepted values: 8 - 64"
type: int
max_stack_depth:
description: "Accepted values: 2097152 - 6291456"
type: int
max_standby_archive_delay:
description: "Accepted values: 1 - 43200000"
type: int
max_standby_streaming_delay:
description: "Accepted values: 1 - 43200000"
type: int
max_wal_senders:
description: "Accepted values: 20 - 64"
type: int
max_worker_processes:
description: "Accepted values: 8 - 96"
type: int
pg_partman_bgw.interval:
description: "Accepted values: 3600 - 604800"
type: int
pg_partman_bgw.role:
description: "Maximum length: 64 characters"
type: string
pg_stat_statements.track:
description: |-
Accepted values:
* `all`
* `top`
* `none`
type: enum
temp_file_limit:
description: "Accepted values: -1 - 2147483647"
type: int
track_activity_query_size:
description: "Accepted values: 1024 - 10240"
type: int
track_commit_timestamp:
description: |-
Accepted values:
* `off`
* `on`
type: enum
track_functions:
description: |-
Accepted values:
* `all`
* `pl`
* `none`
type: enum
track_io_timing:
description: |-
Accepted values:
* `off`
* `on`
type: enum
wal_sender_timeout:
description: "Accepted values: 0, 5000 - 10800000"
type: int
wal_writer_delay:
description: "Accepted values: 10 - 200"
type: int
type: object
list_available_versions_200_response:
example:
available_versions:
- available_versions
- available_versions
properties:
available_versions:
description: A list of available versions greater than the current version
of the Managed Database.
items:
type: string
type: array
type: object
start_version_upgrade_request:
properties:
version:
description: The version number to upgrade the Managed Database to.
type: string
required:
- version
type: object
start_version_upgrade_200_response:
example:
message: message
properties:
message:
description: A message indicating whether the version upgrade was successfully
initialized.
type: string
type: object
list_registries_200_response:
example:
meta:
total: 0
links:
next: next
prev: prev
registries:
- urn: urn
metadata:
subscription:
billing:
monthly_price: ""
pending_charges: ""
region:
urn: urn
added_at: added_at
public: true
updated_at: updated_at
name: name
base_url: base_url
data_center: "{}"
id: 6
public: true
date_created: date_created
name: name
id: id
storage:
allowed:
updated_at: updated_at
mb: ""
bytes: ""
gb: ""
tb: ""
used:
updated_at: updated_at
mb: ""
bytes: ""
gb: ""
tb: ""
root_user:
added_at: added_at
password: password
updated_at: updated_at
root: true
id: 0
username: username
- urn: urn
metadata:
subscription:
billing:
monthly_price: ""
pending_charges: ""
region:
urn: urn
added_at: added_at
public: true
updated_at: updated_at
name: name
base_url: base_url
data_center: "{}"
id: 6
public: true
date_created: date_created
name: name
id: id
storage:
allowed:
updated_at: updated_at
mb: ""
bytes: ""
gb: ""
tb: ""
used:
updated_at: updated_at
mb: ""
bytes: ""
gb: ""
tb: ""
root_user:
added_at: added_at
password: password
updated_at: updated_at
root: true
id: 0
username: username
properties:
registries:
items:
$ref: '#/components/schemas/registry'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
create_registry_request:
properties:
name:
$ref: '#/components/schemas/registry/properties/name'
public:
$ref: '#/components/schemas/registry/properties/public'
region:
description: The name of the region you'd like to deploy this Registry in.
Can get list of regions from /registry/region/list endpoint i.e. sjc
type: string
plan:
description: The key of the plan you'd like to select which dictates how
much storage you're allocated and the monthly cost. Can get list of plans
from /plan/list endpoint i.e. start_up
type: string
required:
- name
- plan
- public
- region
type: object
update_registry_request:
properties:
public:
$ref: '#/components/schemas/registry/properties/public'
plan:
description: The key of the plan you'd like to upgrade to which dictates
how much storage you're allocated and the monthly cost. Can get list of
plans from /plan/list endpoint i.e. business
type: string
type: object
list_registry_repositories_200_response:
example:
repositories:
- image: image
added_at: added_at
updated_at: updated_at
name: name
artifact_count: 6
description: description
pull_count: 0
- image: image
added_at: added_at
updated_at: updated_at
name: name
artifact_count: 6
description: description
pull_count: 0
meta:
total: 0
links:
next: next
prev: prev
properties:
repositories:
items:
$ref: '#/components/schemas/registry-repository'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
update_repository_request:
properties:
description:
$ref: '#/components/schemas/registry-repository/properties/description'
type: object
list_registry_regions_200_response:
example:
regions:
- urn: urn
added_at: added_at
public: true
updated_at: updated_at
name: name
base_url: base_url
data_center: "{}"
id: 6
- urn: urn
added_at: added_at
public: true
updated_at: updated_at
name: name
base_url: base_url
data_center: "{}"
id: 6
meta:
total: 0
links:
next: next
prev: prev
properties:
regions:
items:
$ref: '#/components/schemas/registry-region'
type: array
meta:
$ref: '#/components/schemas/meta'
type: object
list_registry_plans_200_response_plans:
example:
premium:
monthly_price: 6
vanity_name: vanity_name
max_storage_mb: 0
start_up:
monthly_price: 6
vanity_name: vanity_name
max_storage_mb: 0
business:
monthly_price: 6
vanity_name: vanity_name
max_storage_mb: 0
enterprise:
monthly_price: 6
vanity_name: vanity_name
max_storage_mb: 0
properties:
start_up:
$ref: '#/components/schemas/registry-plan'
business:
$ref: '#/components/schemas/registry-plan'
premium:
$ref: '#/components/schemas/registry-plan'
enterprise:
$ref: '#/components/schemas/registry-plan'
type: object
list_registry_plans_200_response:
example:
plans:
premium:
monthly_price: 6
vanity_name: vanity_name
max_storage_mb: 0
start_up:
monthly_price: 6
vanity_name: vanity_name
max_storage_mb: 0
business:
monthly_price: 6
vanity_name: vanity_name
max_storage_mb: 0
enterprise:
monthly_price: 6
vanity_name: vanity_name
max_storage_mb: 0
properties:
plans:
$ref: '#/components/schemas/list_registry_plans_200_response_plans'
type: object
user_user:
description: An array of Users.
example:
password: password
acls:
- acls
- acls
api_enabled: true
name: name
id: id
email: email
properties:
id:
description: The User's id.
type: string
name:
description: The User's name.
type: string
api_enabled:
description: |-
Permit API access for this User.
* true
* false
type: boolean
email:
description: The User's email address.
type: string
password:
description: The User's password.
type: string
acls:
description: |-
An array of permission granted.
* abuse
* alerts
* billing
* dns
* firewall
* loadbalancer
* manage\_users
* objstore
* provisioning
* subscriptions
* subscriptions\_view
* support
* upgrade
items:
type: string
type: array
type: object
loadbalancer_generic_info_sticky_sessions:
description: Array of sticky session cookies.
example:
cookie_name: cookie_name
properties:
cookie_name:
description: "The cookie name to make sticky. See [Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration)."
type: string
type: object
loadbalancer_generic_info:
description: An object containing additional options.
example:
sticky_sessions:
cookie_name: cookie_name
private_network: private_network
ssl_redirect: true
proxy_protocol: true
vpc: vpc
balancing_algorithm: balancing_algorithm
properties:
balancing_algorithm:
description: |-
The balancing algorithm.
* roundrobin (default)
* leastconn
type: string
ssl_redirect:
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.
* true
* false
type: boolean
sticky_sessions:
$ref: '#/components/schemas/loadbalancer_generic_info_sticky_sessions'
proxy_protocol:
description: "\"If `true`, you must configure backend nodes to accept Proxy\
\ protocol. \\n\\n* true\\n* false (Default)\""
type: boolean
private_network:
deprecated: true
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.
type: string
vpc:
description: ID of the VPC you wish to use. If a VPC ID is omitted it will
default to the public network.
type: string
type: object
loadbalancer_health_check:
description: "The health check object configuration. See [Load Balancer documentation](https://www.vultr.com/docs/vultr-load-balancers/#Load_Balancer_Configuration)."
example:
path: path
response_timeout: 1
healthy_threshold: 5
protocol: protocol
check_interval: 6
port: 0
unhealthy_threshold: 5
properties:
protocol:
description: |-
The protocol to use for health checks.
* HTTPS
* HTTP
* TCP
type: string
port:
description: The port to use for health checks.
type: integer
path:
description: HTTP Path to check. Only applies if Protocol is HTTP or HTTPS.
type: string
check_interval:
description: Interval between health checks.
type: integer
response_timeout:
description: Timeout before health check fails.
type: integer
unhealthy_threshold:
description: Number times a check must fail before becoming unhealthy.
type: integer
healthy_threshold:
description: Number of times a check must succeed before returning to healthy
status.
type: integer
type: object
loadbalancer_forward_rules_inner:
description: A forwarding rule object.
example:
backend_portocol: backend_portocol
frontend_protocol: frontend_protocol
id: id
frontend_port: 7
backend_port: 9
properties:
id:
description: A unique ID for the forwarding rule.
type: string
frontend_protocol:
description: |-
The protocol on the Load Balancer to forward to the backend.
* HTTP
* HTTPS
* TCP
type: string
frontend_port:
description: The port number on the Load Balancer to forward to the backend.
type: integer
backend_portocol:
description: |-
The protocol destination on the backend server.
* HTTP
* HTTPS
* TCP
type: string
backend_port:
description: 'The port number destination on the backend server. '
type: integer
type: object
loadbalancer_firewall_rules_inner:
description: ""
example:
port: 3
id: id
source: source
ip_type: ip_type
properties:
id:
description: A unique ID for the firewall rule.
type: string
port:
description: Port for this rule.
type: integer
source:
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.
Possible values:
| | Value | Description |
| - | ------ | ------------- |
| | "192.168.1.1/16" | Ip address with a subnet size. |
| | cloudflare | Allow all of Cloudflare's IP space through the firewall |
type: string
ip_type:
description: |
The type of IP rule.
* v4
* v6
type: string
type: object
instance_v6_networks_inner:
description: An IPv6 object.
example:
network_size: 5
main_ip: main_ip
network: network
properties:
network:
description: The IPv6 subnet.
type: string
main_ip:
description: The main IPv6 network address.
type: string
network_size:
description: The IPv6 network size in bits.
type: integer
type: object
database_ferretdb_credentials:
description: Associated list of FerretDB connection credentials (FerretDB +
PostgreSQL engine type only).
example:
password: password
public_ip: public_ip
port: ""
host: host
private_ip: private_ip
username: username
properties:
host:
description: The public hostname for FerretDB database connections.
type: string
port:
description: The assigned port for connecting to the FerretDB instance.
type: int
username:
description: The username for connecting to the FerretDB instance.
type: string
password:
description: The password for connecting to the FerretDB instance.
type: string
public_ip:
description: The public IP address of the FerretDB instance.
type: string
private_ip:
description: The private IP address of the FerretDB instance when attached
to a VPC network.
type: string
type: object
database_usage_disk:
description: Metrics for the disk storage of the Managed Database.
example:
current_gb: current_gb
percentage: percentage
max_gb: max_gb
properties:
current_gb:
description: The current amount of space used on the Managed Database (in
GB).
type: string
max_gb:
description: The maximum available space on the Managed Database (in GB).
type: string
percentage:
description: The percentage of space used on the Managed Database relative
to its capacity.
type: string
type: object
database_usage_memory:
description: Metrics for the memory of the Managed Database.
example:
percentage: percentage
current_mb: current_mb
max_mb: max_mb
properties:
current_mb:
description: The current amount of memory used on the Managed Database (in
MB).
type: string
max_mb:
description: The maximum available memory on the Managed Database (in MB).
type: string
percentage:
description: The average percent of memory utilization for the Managed Database
over the last hour.
type: string
type: object
database_usage_cpu:
description: Metrics for the vCPU(s) of the Managed Database.
example:
percentage: percentage
properties:
percentage:
description: The average percent of vCPU utilization for the Managed Database
over the last hour.
type: string
type: object
database_user_access_control:
description: Access control settings for the database user (Redis engine type
only).
example:
redis_acl_keys:
- redis_acl_keys
- redis_acl_keys
redis_acl_channels:
- redis_acl_channels
- redis_acl_channels
redis_acl_categories:
- redis_acl_categories
- redis_acl_categories
redis_acl_commands:
- redis_acl_commands
- redis_acl_commands
properties:
redis_acl_categories:
description: List of configured rules for command categories.
items:
type: string
type: array
redis_acl_channels:
description: List of configured publish/subscribe channel patterns.
items:
type: string
type: array
redis_acl_commands:
description: List of configured rules for individual commands.
items:
type: string
type: array
redis_acl_keys:
description: List of configured key access rules.
items:
type: string
type: array
type: object
dbaas_migration_credentials:
description: Associated list of connection details for the source database server.
example:
password: password
database: database
port: ""
ignored_databases: ignored_databases
host: host
ssl: true
username: username
properties:
host:
description: The host name of the source server.
type: string
port:
description: The connection port of the source server.
type: int
username:
description: The username of the source server.
type: string
password:
description: The password of the source server.
type: string
database:
description: The database of the source server. Excluded for Redis engine
types.
type: string
ignored_databases:
description: Comma-separated list of ignored databases on the source server.
Excluded for Redis engine types.
type: string
ssl:
description: The true/false value for whether SSL is needed to connect to
the source server.
type: boolean
type: object
meta_links:
description: Cursor values for pagination.
example:
next: next
prev: prev
properties:
next:
description: Cursor value for the next page.
type: string
prev:
description: Cursor value for the previous page.
type: string
type: object
registry_storage:
description: The allowed and used storage for this registry subscription.
example:
allowed:
updated_at: updated_at
mb: ""
bytes: ""
gb: ""
tb: ""
used:
updated_at: updated_at
mb: ""
bytes: ""
gb: ""
tb: ""
properties:
used:
$ref: '#/components/schemas/registry-storage'
allowed:
$ref: '#/components/schemas/registry-storage'
type: object
registry_metadata_subscription_billing:
description: Billing information
example:
monthly_price: ""
pending_charges: ""
properties:
monthly_price:
description: Monthly Price
type: float
pending_charges:
description: The current charges for this subscription
type: float
type: object
registry_metadata_subscription:
description: Subscription information
example:
billing:
monthly_price: ""
pending_charges: ""
properties:
billing:
$ref: '#/components/schemas/registry_metadata_subscription_billing'
type: object
registry_metadata:
description: The metadata containing subscription information such as the region
where this registry lives and monthly price and pending charges
example:
subscription:
billing:
monthly_price: ""
pending_charges: ""
region:
urn: urn
added_at: added_at
public: true
updated_at: updated_at
name: name
base_url: base_url
data_center: "{}"
id: 6
properties:
region:
$ref: '#/components/schemas/registry-region'
subscription:
$ref: '#/components/schemas/registry_metadata_subscription'
type: object
registry_docker_credentials_auths__registry_region_name__vultrcr_com:
description: This object represents the auth for this region
example:
auth: auth
properties:
auth:
description: "The base64 encoded credentials of the Robot Account {registry-user-username}:{registry-user-password}"
type: string
type: object
registry_docker_credentials_auths:
description: Contains a single object with the key being the URN of the region
example:
'{registry-region-name}.vultrcr.com':
auth: auth
properties:
'{registry-region-name}.vultrcr.com':
$ref: '#/components/schemas/registry_docker_credentials_auths__registry_region_name__vultrcr_com'
type: object
registry_kubernetes_docker_credentials_metadata:
description: ""
properties:
name:
description: Specifies that these are Vultr Container Registry Credentials
type: string
type: object
registry_kubernetes_docker_credentials_data:
description: ""
properties:
".dockerconfigjson":
description: Contains the base64 encoded Docker Credentials Config JSON
type: string
type: object
securitySchemes:
API Key:
description: |-
The Vultr API v2 uses API keys for authentication. You can manage your API keys in the Vultr customer portal. Please do not share API keys 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).
To authenticate a request, send your API Key as a bearer token in the request header.
### Authentication Example
curl "https://api.vultr.com/v2/account" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
Unauthenticated API requests will fail. All requests must use HTTPS encryption for security, and calls made with HTTP will fail.
in: header
scheme: bearer
type: http