Skip to content

Instantly share code, notes, and snippets.

@tarqd
Created June 20, 2018 00:20
Show Gist options
  • Save tarqd/7eb8c7dade51d55a0f8699f690b21b0e to your computer and use it in GitHub Desktop.
Save tarqd/7eb8c7dade51d55a0f8699f690b21b0e to your computer and use it in GitHub Desktop.
openapi: 3.0.1
info:
version: 4.0.1
title: Linode API
x-logo: {
url: '/linode-logo.svg',
backgroundColor: '#fafafa'
}
description: |
# Introduction
The Linode API provides the ability to programmatically manage the full
range of Linode products and services.
This reference is designed to assist application developers and system
administrators. Each endpoint includes descriptions, request syntax, and
examples using standard HTTP requests. Response data is returned in JSON
format.
This document was generated from our OpenAPI Specification. See the
[OpenAPI website](https://www.openapis.org) for more information.
[Download the Linode OpenAPI Specification](/openapi.yaml)
# Changelog
[View our Changelog](/changelog) to see release
notes on all changes made to our API.
# Access
Some endpoints are publicly accessible without requiring authentication.
All endpoints affecting your Account, however, require either a Personal
Access Token or OAuth authentication (when using third-party
applications).
## Personal Access Token
The easiest way to access the API is with a Personal Access Token (PAT)
generated from the
[Linode Cloud Manager](https://cloud.linode.com/profile/tokens).
All scopes for the OAuth security model (defined below) apply to this
security model as well.
## OAuth
The OAuth workflow is a three-step process to authenticate a User before an
application can start making API calls on the User's behalf. If all you need
is a Personal Access Token, feel free to skip ahead to the next section.
First, the User visits the application's website and is directed to log with
Linode. The User is then redirected to Linode's authentication server and
presented the scope levels the application is requesting. Once the User
accepts the request for access, we redirect them back to the application's
specified redirect URI with an access code.
Once the User has logged in to Linode and you have received an exchange code,
you will need to exchange that access code for an Authorization token. You
do this by making an HTTP POST request to the following address:
```
https://login.linode.com/oauth/token
```
Make this request as `application/x-www-form-urlencoded` or as
`multipart/form-data` and include the following parameters in the POST body:
| PARAMETER | DESCRIPTION |
|-----------|-------------|
| client_id | Your app's client ID |
| client_secret | Your app's client secret |
| code | The code you just received from the redirect |
You'll get a reponse like this:
```json
{
"scope": "linodes:create",
"access_token": "03d084436a6c91fbafd5c4b20c82e5056a2e9ce1635920c30dc8d81dc7a6665c"
"token_type": "bearer",
"expires_in": 7200,
}
```
Included in the reponse is `access_token`. With this token, you can proceed to make
authenticated HTTP requests to the API by adding this header to each request:
```
Authorization: Bearer 03d084436a6c91fbafd5c4b20c82e5056a2e9ce1635920c30dc8d81dc7a6665c
```
## Authentication Schema
See our [Authentication Schema](/#section/Authentication) for
information on scopes and authorization/token URLs.
# Requests
Requests must be made over HTTPS to ensure transactions are encrypted. The
following Request methods are supported:
| METHOD | USAGE |
|--------|-------|
| GET | Retrieves data about collections and individual resources. |
| POST | For collections, creates a new resource of that type. Also used to perform actions on action endpoints. |
| PUT | Updates an existing resource. |
| DELETE | Deletes a resource. This is a destructive action. |
# Responses
Actions will return one following HTTP response status codes:
| STATUS | DESCRIPTION |
|---------|-------------|
| 200 OK | The request was successful. |
| 204 No Content | The server successfully fulfilled the request and there is no additional content to send. |
| 400 Bad Request | You submitted an invalid request (missing parameters, etc.). |
| 401 Unauthorized | You failed to authenticate for this resource. |
| 403 Forbidden | You are authenticated, but don't have permission to do this. |
| 404 Not Found | The resource you're requesting does not exist. |
| 429 Too Many Requests | You've hit a rate limit. |
| 500 Internal Server Error | Please [open a Support Ticket](/#operation/createTicket). |
# Errors
Success is indicated via [Standard HTTP status codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes).
`2xx` codes indicate success, `4xx` codes indicate a request error, and
`5xx` errors indicate a server error. A
request error might be an invalid input, a required parameter being omitted,
or a malformed request. A server error means something went wrong processing
your request. If this occurs, please
[open a Support Ticket](/#operation/createTicket)
and let us know. Though errors are logged and we work quickly to resolve issues,
opening a ticket and providing us with reproducable steps and data is always helpful.
The `errors` field is an array of the things that went wrong with your request.
We will try to include as many of the problems in the response as possible,
but it's conceivable that fixing these errors and resubmitting may result in
new errors coming back once we are able to get further along in the process
of handling your request.
Within each error object, the `field` parameter will be included if the error
pertains to a specific field in the JSON you've submitted. This will be
omitted if there is no relevant field. The `reason` is a human-readable
explanation of the error, and will always be included.
# Pagination
Resource lists are always paginated. The response will look similar to this:
```json
{
"data": [ ... ],
"page": 1,
"pages": 3,
"results": 300
}
```
Pages start at 1. You may retrieve a specific page of results by adding
`?page=x` to your URL (for example, `?page=4`). Page sizes default to 100,
and can be set to return between 25 and 100. Page size can be set using
`?page_size=x`.
# Filtering and Sorting
Collections are searchable by fields they include, marked in the spec as
`x-linode-filterable: true`. Filters are passed
in the `X-Filter` header and are formatted as JSON objects. Here is a request
call for Linode Types in our "standard" class:
```Shell
curl "https://api.linode.com/v4/linode/types" \
-H 'X-Filter: { \
"class": "standard"
}'
```
The filter object's keys are the keys of the object you're filtering,
and the values are accepted values. You can add multiple filters by
including more than one key. For example, filtering for "standard" Linode
Types that offer one vcpu:
```Shell
curl "https://api.linode.com/v4/linode/types" \
-H 'X-Filter: { \
"class": "standard",
"vcpus": 1
}'
```
In the above example, both filters are combined with an "and" operation.
However, if you wanted either Types with one vcpu or Types in our "standard"
class, you can add an operator:
```Shell
curl "https://api.linode.com/v4/linode/types" \
-H 'X-Filter: {
"+or": [
{ "vcpus": 1 },
{ "class": "standard" }
]
}'
```
Each filter in the `+or` array is its own filter object, and all conditions
in it are combined with an "and" operation as they were in the previous example.
Other operators are also available. Operators are keys of a Filter JSON
object. Their value must be of the appropriate type, and they are evaluated
as described below:
| OPERATOR | TYPE | DESCRIPTION |
|----------|--------|-----------------------------------|
| +and | array | All conditions must be true. |
| +or | array | One condition must be true. |
| +gt | number | Value must be greater than number. |
| +gte | number | Value must be greater than or equal to number. |
| +lt | number | Value must be less than number. |
| +lte | number | Value must be less than or equal to number. |
| +contains | string | Given string must be in the value. |
| +neq | string | Does not equal the value. |
| +order_by | string | Attribute to order the results by - must be filterable. |
| +order | string | Either "asc" or "desc". Defaults to "asc". Requires `+order_by`. |
For example, filtering for [Linode Types](/#operation/getLinodeTypes)
that offer memory equal to or higher than 61440:
```Shell
curl "https://api.linode.com/v4/linode/types" \
-H 'X-Filter: {
"memory": {
"+gte": 61440
}
}'
```
You can combine and nest operators to construct arbitrarily-complex queries.
For example, give me all [Linode Types](/#operation/getLinodeTypes)
which are either `standard` or `highmem` class, and have between 12 and 20 vcpus:
```Shell
curl "https://api.linode.com/v4/linode/types" \
-H 'X-Filter: {
"+or": [
{
"+or": [
{
"class": "standard"
},
{
"class": "highmem"
}
]
},
{
"+and": [
{
"vcpus": {
"+gte": 12
}
},
{
"vcpus": {
"+lte": 20
}
}
]
}
]
}'
```
# CLI (Command Line Interface)
The [Linode CLI](https://github.com/linode/linode-cli) allows you to easily
work with the API using intuitive and simple syntax. It requires a
[Personal Access Token](/#section/Personal-Access-Token)
for authentication, and gives you access to all of the features and functionality
of the Linode API that are documented here with CLI examples.
Endpoints that do not have CLI examples are currently unavailable through the CLI, but
can be accessed via other methods such as Shell commands and other third-party applications.
contact:
name: Linode
url: /
servers:
- url: https://api.linode.com/v4
paths:
/account:
x-linode-cli-command: account
get:
x-linode-grant: read_only
tags:
- account
summary: View Account
description: >
Returns the contact and billing information related to
your Account.
operationId: getAccount
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: Returns a single Account object.
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account
- lang: CLI
source: >
linode-cli account view
put:
x-linode-grant: read_write
tags:
- account
summary: Update Account
description: >
Updates contact and billing information
related to your Account.
operationId: updateAccount
x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Update contact and billing information.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
responses:
'200':
description: The updated Account.
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"address_1": "123 Main St.",
"address_2": "Suite 101",
"city": "Philadelphia",
"company": "My Company, LLC",
"country": "US",
"email": "jsmith@mycompany.com",
"first_name": "John",
"last_name": "Smith",
"phone": "555-555-1212",
"state": "PA",
"zip": 19102,
}
}' \
https://api.linode.com/v4/account
- lang: CLI
source: >
linode-cli account update \
--first_name John \
--last_name Smith
/account/credit-card:
x-linode-cli-command: account
post:
x-linode-grant: read_write
tags:
- account
summary: Add/Edit Credit Card
description: >
Adds/edit credit card information to your Account.
Only one credit card can be associated with your Account, so using this
endpoint will overwrite your currently active card information with the
new credit card.
operationId: createCreditCard
x-linode-cli-action: update-card
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Update the credit card information associated with your Account.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreditCard'
responses:
'200':
description: Credit Card updated.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"credit_card": 4111111111111111,
"expiry_month": 11,
"expiry_year": 2020
}' \
https://api.linode.com/v4/account/credit-card
- lang: CLI
source: >
linode-cli account update-card \
--card_number 4111111111111111 \
--expiry_month 11 \
--expiry_year 2025
/account/events:
x-linode-cli-command: events
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- account
summary: List Events
description: >
Returns a collection of Event objects representing
actions taken on your Account. The Events returned depends on your
grants.
operationId: getEvents
x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- events:read_only
responses:
'200':
description: Returns a paginated lists of Event objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Event'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/events
- lang: CLI
source: >
linode-cli events list
/account/events/{eventId}:
x-linode-cli-command: events
parameters:
- name: eventId
in: path
description: The ID of the Event.
required: true
schema:
type: integer
get:
x-linode-grant: read_only
tags:
- account
summary: View Event
description: Returns a single Event object.
operationId: getEvent
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- events:read_only
responses:
'200':
description: An Event object
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/events/123
- lang: CLI
source: >
linode-cli events view 123
/account/events/{eventId}/read:
x-linode-cli-command: events
parameters:
- name: eventId
in: path
description: The ID of the Event to designate as read.
required: true
schema:
type: integer
post:
x-linode-grant: read_write
tags:
- account
summary: Mark Event as Read
description: Marks a single Event as read.
operationId: eventRead
x-linode-cli-action: mark-read
security:
- personalAccessToken: []
- oauth:
- events:read_write
responses:
'200':
description: Event read.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/events/123/read
- lang: CLI
source: >
linode-cli events mark-read 123
/account/events/{eventId}/seen:
x-linode-cli-command: events
parameters:
- name: eventId
in: path
description: The ID of the Event to designate as seen.
required: true
schema:
type: integer
post:
x-linode-grant: read_write
tags:
- account
summary: Mark Event as Seen
description: >
Marks all Events up to and including this Event by ID as seen.
operationId: eventSeen
x-linode-cli-action: mark-seen
security:
- personalAccessToken: []
- oauth:
- events:read_only
responses:
'200':
description: Events seen.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/events/123/seen
- lang: CLI
source: >
linode-cli events mark-seen 123
/account/invoices:
x-linode-cli-command: account
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- account
summary: List Invoices
description: >
Returns a paginated list of Invoices against your Account.
operationId: getInvoices
x-linode-cli-action: invoices-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: Returns a paginated list of Invoice objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Invoice'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/invoices
- lang: CLI
source: >
linode-cli account invoices-list
/account/invoices/{invoiceId}:
x-linode-cli-command: account
parameters:
- name: invoiceId
in: path
description: The ID of the Invoice.
required: true
schema:
type: integer
get:
x-linode-grant: read_only
tags:
- account
summary: View Invoice
description: Returns a single Invoice object.
operationId: getInvoice
x-linode-cli-action: invoice-view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: An Invoice object
content:
application/json:
schema:
$ref: '#/components/schemas/Invoice'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/invoices/123
- lang: CLI
source: >
linode-cli account invoice-view 123
/account/invoices/{invoiceId}/items:
x-linode-cli-command: account
parameters:
- name: invoiceId
in: path
description: The ID of the Invoice.
required: true
schema:
type: integer
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- account
summary: List Invoice Items
description: Returns a paginated list of Invoice items.
operationId: getInvoiceItems
x-linode-cli-action: invoice-items
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: A paginated list of InvoiceItem objects
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/InvoiceItem'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/invoices/123/items
- lang: CLI
source: >
linode-cli account invoice-items 123
/account/notifications:
x-linode-cli-command: account
get:
x-linode-grant: read_only
tags:
- account
summary: List Notifications
description: >
Returns a collection of Notification objects representing
important, often time-sensitive items related to your Account.
You cannot interact directly with Notifications, and a Notification will disappear
when the circumstances causing it have been resolved. For
example, if you have an important Ticket open, you must respond to the
Ticket to dismiss the Notification.
operationId: getNotifications
x-linode-cli-action: notifications-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: Returns a paginated list of Notification objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Notification'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/notifications
- lang: CLI
source: >
linode-cli account notifications-list
/account/oauth-clients:
x-linode-cli-command: account
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- account
summary: List OAuth Clients
description: >
Returns a paginated list of OAuth Clients registered to your Account. OAuth
Clients allow users to log into applications you write or host using their
Linode Account, and may allow them to grant some level of access to their
Linodes or other entities to your application.
operationId: getClients
x-linode-cli-action: clients-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: A paginated list of OAuth Clients.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/OAuthClient'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/oauth-clients
- lang: CLI
source: >
linode-cli account clients-list
post:
tags:
- account
summary: Create OAuth Client
description: >
Creates an OAuth Client, which can be used to allow users
(using their Linode account) to log in to your own application, and optionally grant
your application some amount of access to their Linodes or other entities.
operationId: createClient
x-linode-cli-action: client-create
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Information about the OAuth Client to create.
content:
application/json:
schema:
required:
- label
- redirect_uri
allOf:
- $ref: '#/components/schemas/OAuthClient'
- type: object
properties:
public:
type: boolean
description: Whether to create a public or private client.
example: false
responses:
'200':
description: Client created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/OAuthClient'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"redirect_uri": "https://example.org/oauth/callback",
"label": "Test_Client_1",
"public": false
}' \
https://api.linode.com/v4/account/oauth-clients
- lang: CLI
source: >
linode-cli account client-create \
--label Test_Client_1 \
--redirect_uri https://example.org/callback
/account/oauth-clients/{clientId}:
parameters:
- name: clientId
in: path
description: The OAuth Client ID to look up.
required: true
schema:
type: string
x-linode-cli-command: account
get:
tags:
- account
summary: View OAuth Client
description: >
Returns information about a single OAuth client.
operationId: getClient
x-linode-cli-action: client-view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: Information about the requested client.
content:
application/json:
schema:
$ref: '#/components/schemas/OAuthClient'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c
- lang: CLI
source: >
linode-cli account client-view \
edc6790ea9db4d224c5c
put:
tags:
- account
summary: Update OAuth Client
description: >
Update information about an OAuth Client on your Account. This can be
especially useful to update the `redirect_uri` of your client in the event
that the callback url changed in your application.
operationId: updateClient
x-linode-cli-action: client-update
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The fields to update.
content:
application/json:
schema:
$ref: '#/components/schemas/OAuthClient'
responses:
'200':
description: Client updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/OAuthClient'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"redirect_uri": "https://example.org/oauth/callback",
"label": "Test_Client_1"
}
}' \
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c
- lang: CLI
source: >
linode-cli account client-update \
edc6790ea9db4d224c5c \
--label Test_Client_1
delete:
tags:
- account
summary: Delete OAuth Client
description: >
Deletes an OAuth Client registered with Linode. The Client ID and
Client secret will no longer be accepted by https://login.linode.com,
and all tokens issued to this client will be invalidated (meaning that
if your application was using a token, it will no longer work).
operationId: deleteClient
x-linode-cli-action: client-delete
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: Client deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c
- lang: CLI
source: >
linode-cli account client-delete \
edc6790ea9db4d224c5c
/account/oauth-clients/{clientId}/reset-secret:
x-linode-cli-command: account
parameters:
- name: clientId
in: path
description: The OAuth Client ID to look up.
required: true
schema:
type: string
post:
tags:
- account
summary: Reset OAuth Client Secret
description: >
Resets the OAuth Client secret for a client you own, and returns the
OAuth Client with the plaintext secret. This secret is not supposed to
be publicly known or disclosed anywhere. This can be used to generate
a new secret in case the one you have has been leaked, or to get a new
secret if you lost the original. The old secret is expired immediately,
and logins to your client with the old secret will fail.
operationId: resetClientSecret
x-linode-cli-action: client-reset-secret
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: Client secret reset successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/OAuthClient'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c/reset-secret
- lang: CLI
source: >
linode-cli account client-reset-secret \
edc6790ea9db4d224c5c
/account/oauth-clients/{clientId}/thumbnail:
x-linode-cli-command: account
parameters:
- name: clientId
in: path
description: The OAuth Client ID to look up.
required: true
schema:
type: string
get:
tags:
- account
summary: View OAuth Client Thumbnail
description: >
Returns the thumbnail for this OAuth Client. This is a
publicly-viewable endpoint, and can be accessed without authentication.
operationId: getClientThumbnail
x-linode-cli-skip: true
x-linode-cli-action: client-thumbnail
responses:
'200':
description: The client's thumbnail.
content:
image/png:
schema:
type: string
format: binary
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c/thumbnail > thumbnail.png
put:
tags:
- account
summary: Update OAuth Client Thumbnail
description: >
Upload a thumbnail for a client you own. You must upload an image file
that will be returned when the thumbnail is retrieved. This image will
be publicly-viewable.
operationId: setClientThumbnail
x-linode-cli-skip: true
x-linode-cli-action: update-client-thumbnail
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The image to set as the thumbnail.
required: true
content:
image/png:
schema:
type: string
format: binary
responses:
'200':
description: Thumbnail updated successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: image/png" \
-H "Authorization: Bearer $TOKEN" \
-X PUT \
--data-binary "/path/to/image"
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c/thumbnail
/account/payments:
x-linode-cli-command: account
get:
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
x-linode-grant: read_only
tags:
- account
summary: List Payments
description: >
Returns a paginated list of Payments made on this Account.
operationId: getPayments
x-linode-cli-action: payments-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: Returns a paginated list of Payment objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Payment'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/payments
- lang: CLI
source: >
linode-cli account payments-list
post:
x-linode-grant: read_write
tags:
- account
summary: Make Payment
description: >
Makes a Payment to your Account via credit card. This will charge your
credit card the requested amount.
operationId: createPayment
x-linode-cli-action: payment-create
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Information about the Payment you are making.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequest'
responses:
'200':
description: Payment made.
content:
application/json:
schema:
$ref: '#/components/schemas/Payment'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"cvv": "123",
"usd": "120.50"
}' \
https://api.linode.com/v4/account/payments
- lang: CLI
source: >
linode-cli account payment-create \
--cvv 123 \
--usd 120.50
/account/payments/{paymentId}:
x-linode-cli-command: account
parameters:
- name: paymentId
in: path
description: The ID of the Payment to look up.
required: true
schema:
type: integer
get:
x-linode-grant: read_only
tags:
- account
summary: View Payment
description: >
Returns information about a specific Payment.
operationId: getPayment
x-linode-cli-action: payment-view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: A Payment object.
content:
application/json:
schema:
$ref: '#/components/schemas/Payment'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/payments/123
- lang: CLI
source: >
linode-cli account payment-view 123
/account/payments/paypal:
x-linode-cli-command: account
post:
x-linode-grant: read_only
tags:
- account
summary: Stage PayPal Payment
description: >
This begins the process of submitting a Payment via PayPal. After calling
this endpoint, you must take the resulting `payment_id` along with
the `payer_id` from your PayPal account and
[POST /account/payments/paypal-execute](/#operation/executePayPalPayment)
to complete the Payment.
operationId: createPayPalPayment
x-linode-cli-action: paypal-start
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: >
The amount of the Payment to submit via PayPal.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PayPal'
responses:
'200':
description: PayPal Payment staged.
content:
application/json:
schema:
type: object
properties:
payment_id:
type: string
description: >
The paypal-generated ID for this Payment. Used when
authorizing the Payment in PayPal's interface.
example: PAY-1234567890ABCDEFGHIJKLMN
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"usd": "120.50",
"redirect_url": "https://example.org",
"cancel_url": "https://example.org"
}' \
https://api.linode.com/v4/account/payments/paypal
- lang: CLI
source: >
linode-cli account paypal-start \
--cancel_url https://example.org \
--redirect_url https://example.org \
--usd 120.50
/account/payment/paypal/execute:
x-linode-cli-command: account
post:
x-linode-grant: read_write
tags:
- account
summary: Execute Staged/Approved PayPal Payment
description: >
Given a PaymentID and PayerID - as generated by PayPal during the
transaction authorization process - this endpoint executes the Payment
to capture the funds and credit your Linode Account.
operationId: executePayPalPayment
x-linode-cli-action: paypal-execute
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: >
The details of the Payment to execute.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PayPalExecute'
responses:
'200':
description: PayPal Payment executed.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"payment_id": "PAY-1234567890ABCDEFGHIJKLMN",
"payer_id": "ABCDEFGHIJKLM"
}' \
https://api.linode.com/v4/account/payments/paypal
- lang: CLI
source: >
linode-cli account paypal-execute
/account/settings:
x-linode-cli-command: account
get:
x-linode-grant: read_only
tags:
- account
summary: View Account Settings
description: >
Returns information related to
your Account settings: Managed service subscription, Longview
subscription, and network helper.
operationId: getAccountSettings
x-linode-cli-action: settings
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: Returns a single Account settings object.
content:
application/json:
schema:
$ref: '#/components/schemas/AccountSettings'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/settings
- lang: CLI
source: >
linode-cli account settings
put:
x-linode-grant: read_write
tags:
- account
summary: Update Account Settings
description: >
Updates your Account settings.
operationId: updateAccountSettings
x-linode-cli-action: settings-update
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Update Account settings information.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AccountSettings'
responses:
'200':
description: The updated Account settings.
content:
application/json:
schema:
$ref: '#/components/schemas/AccountSettings'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"network_helper": true,
"longview_subscription": "longview-10"
}' \
https://api.linode.com/v4/account/settings
- lang: CLI
source: >
linode-cli account settings-update \
--longview_subscription longview-30 \
--network_helper false
/account/transfer:
x-linode-cli-command: account
get:
x-linode-grant: read_only
tags:
- account
summary: View Network Utilization
description: >
Returns a Transfer object showing your network utilization,
in GB, for the current month.
operationId: getTransfer
x-linode-cli-action: transfer
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: Returns a single Transfer object.
content:
application/json:
schema:
$ref: '#/components/schemas/Transfer'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/transfer
- lang: CLI
source: >
linode-cli account transfer
/account/users:
x-linode-cli-command: users
get:
x-linode-grant: unrestricted only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- account
summary: List Users
description: >
Returns a paginated list of Users on your Account. Users may access all
or part of your Account based on their restricted status and grants. An
unrestricted User may access everything on the account, whereas restricted
User may only access entities or perform actions they've been given specific
grants to.
operationId: getUsers
x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: A paginated list of Users.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/User'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/users
- lang: CLI
source: >
linode-cli users list
post:
x-linode-grant: unrestricted only
tags:
- account
summary: Create User
description: >
Creates a User on your Account. Once created, the User will be
able to log in and access portions of your Account. Access is
determined by whether or not they are restricted, and what grants they
have been given.
operationId: createUser
x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Information about the User to create.
content:
application/json:
schema:
required:
- username
- email
- password
allOf:
- $ref: '#/components/schemas/User'
- type: object
properties:
email:
type: string
format: email
description: >
The new User's email address.
example: example_user@linode.com
responses:
'200':
description: New User created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/User'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"username": "example_user",
"email": "person@place.com",
"restricted": true
}' \
https://api.linode.com/v4/account/users
- lang: CLI
source: >
linode-cli users create \
--username example_user \
--email example_user@linode.com
/account/users/{username}:
x-linode-cli-command: users
parameters:
- name: username
in: path
description: The username to look up.
required: true
schema:
type: string
get:
x-linode-grant: unrestricted only
tags:
- account
summary: View User
description: >
Returns information about a single User on your Account.
operationId: getUser
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: The requested User object
content:
application/json:
schema:
$ref: '#/components/schemas/User'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/users/example_user
- lang: CLI
source: >
linode-cli users view example_user
put:
x-linode-grant: unrestricted only
tags:
- account
summary: Update User
description: >
Update information about a User on your Account. This can be used to
change the restricted status of a User. When making a User restricted,
no grants will be configured by default and you must then set up grants
in order for the User to access anything on the Account.
operationId: updateUser
x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The information to update.
content:
application/json:
schema:
$ref: '#/components/schemas/User'
responses:
'200':
description: User updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/User'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"username": example_user
"restricted": true
}' \
https://api.linode.com/v4/account/users/example_user
- lang: CLI
source: >
linode-cli users update example_user \
--username example_user \
--restricted true
delete:
x-linode-grant: unrestricted only
tags:
- account
summary: Delete User
description: >
Deletes a User. The deleted User will be immediately logged out and
may no longer log in or perform any actions. All of the User's Grants
will be removed.
operationId: deleteUser
x-linode-cli-action: delete
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: User deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/account/users/example_user
- lang: CLI
source: >
linode-cli users delete example_user
/account/users/{username}/grants:
x-linode-cli-command: users
parameters:
- name: username
in: path
description: The username to look up.
required: true
schema:
type: string
get:
x-linode-grant: unrestricted only
tags:
- account
summary: View User's grants
description: >
Returns the full grants structure for this User. This includes all
entities on the Account alongside what level of access this User has
to each of them. Individual users may view their own grants at the
[/profile/grants](/#operation/getProfileGrants)
endpoint, but will not see entities that they have no access to.
operationId: getUserGrants
x-linode-cli-action: grants
x-linode-cli-skip: true
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: The User's grants.
content:
application/json:
schema:
$ref: '#/components/schemas/GrantsResponse'
'204':
description: >
This is an unrestricted User, and therefore has no grants to return.
This User may access everything on the Account and perform all actions.
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/users/example_user/grants
put:
x-linode-grant: unrestricted only
tags:
- account
summary: Update User's grants
description: >
Update the grants a User has. This can be used to give a User access
to new entities or actions, or take access away. You do not need to
include the grant for every entity on the Account in this request; any
that are not included will remain unchanged.
operationId: updateUserGrants
x-linode-cli-action: update-grants
x-linode-cli-skip: true
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The grants to update. Omitted grants will be left unchanged.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GrantsResponse'
responses:
'200':
description: Grants updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/GrantsResponse'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"global": {
"add_linodes": true,
"add_nodebalancers": false,
"add_domains": true,
"add_longview": false,
"add_stackscripts": true,
"longview_subscription": true,
"add_images": true,
"add_volumes": true,
"account_access": "read_only",
"cancel_account": false
},
"domain": [
{
"id": 123,
"permissions": "read_only"
}
],
"image": [
{
"id": 123,
"permissions": "read_only"
}
],
"linode": [
{
"id": 123,
"permissions": "read_only"
},
{
"id": 234,
"permissions": "read_write"
},
{
"id": 345,
"permissions": "read_only"
},
],
"longview": [
{
"id": 123,
"permissions": "read_only"
},
{
"id": 234,
"permissions": "read_write"
}
],
"nodebalancer": [
{
"id": 123,
"permissions": "read_write"
}
],
"stackscript": [
{
"id": 123,
"permissions": "read_only"
},
{
"id": 124,
"permissions": "read_write"
}
],
"volume": [
{
"id": 123,
"permissions": "read_only"
}
]
}' \
https://api.linode.com/v4/account/users/example_user/grants
/domains:
x-linode-cli-command: domains
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- domains
summary: List Domains
description: >
This is a collection of Domains that you have registered in Linode's DNS
Manager. Linode is not a registrar, and in order for these to work you
must own the domains and point your registrar at Linode's nameservers.
operationId: getDomains
x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- domains:read_only
responses:
'200':
description: A paginated list of Domains you have registered.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Domain'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/domains
- lang: CLI
source: >
linode-cli domains list
post:
x-linode-grant: add_domains
tags:
- domains
summary: Create Domain
description: >
Adds a new Domain to Linode's DNS Manager. Linode is not a registrar, and
you must own the domain before adding it here. Be sure to point your
registrar to Linode's nameservers so that the records hosted here are
used.
operationId: createDomain
x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- domains:read_write
requestBody:
description: Information about the domain you are registering.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Domain'
responses:
'200':
description: |
Domain added successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Domain'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"domain": "example.com",
"type": "master",
"soa_email": "admin@example.com",
"description": "Example Description",
"refresh_sec": 14400,
"retry_sec": 3600,
"expire_sec": 604800,
"ttl_sec": 3600,
"status": "active",
"master_ips": ["127.0.0.1","255.255.255.1","123.123.123.7"],
"axfr_ips": ["44.55.66.77"],
"display_group": "Example Display Group"
}' \
https://api.linode.com/v4/domains
- lang: CLI
source: >
linode-cli domains create \
--type master \
--domain example.org \
--soa_email admin@example.org
/domains/{domainId}:
x-linode-cli-command: domains
parameters:
- name: domainId
in: path
description: The ID of the Domain to access.
required: true
schema:
type: integer
get:
x-linode-grant: read_only
tags:
- domains
summary: View Domain
description: >
This is a single Domain that you have registered in Linode's DNS Manager.
Linode is not a registrar, and in order for this Domain record to work you
must own the domain and point your registrar at Linode's nameservers.
operationId: getDomain
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- domains:read_only
responses:
'200':
description: |
A single Domain in Linode's DNS Manager.
content:
application/json:
schema:
$ref: '#/components/schemas/Domain'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/domains/123
- lang: CLI
source: >
linode-cli domains view 123
put:
x-linode-grant: read_write
tags:
- domains
summary: Update Domain
description: |
Update information about a Domain in Linode's DNS Manager.
operationId: updateDomain
x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- domains:read_write
requestBody:
description: The Domain information to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Domain'
responses:
'200':
description: Domain update successful.
content:
application/json:
schema:
$ref: '#/components/schemas/Domain'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"domain": "example.com",
"type": "master",
"soa_email": "admin@example.com",
"description": "Example Description",
"refresh_sec": 14400,
"retry_sec": 3600,
"expire_sec": 604800,
"ttl_sec": 3600,
"status": "active",
"master_ips": ["127.0.0.1","255.255.255.1","123.123.123.7"],
"axfr_ips": ["44.55.66.77"],
"display_group": "Example Display Group"
}' \
https://api.linode.com/v4/domains/123
- lang: CLI
source: >
linode-cli domains update 1234 \
--retry_sec 7200 \
--ttl_sec 300
delete:
x-linode-grant: read_write
tags:
- domains
summary: Delete Domain
description: >
Deletes a Domain from Linode's DNS Manager. The Domain will be removed
from Linode's nameservers shortly after this operation completes. This
also deletes all associated Domain Records.
operationId: deleteDomain
x-linode-cli-action: delete
security:
- personalAccessToken: []
- oauth:
- domains:read_write
responses:
'200':
description: Domain deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/domains/1234
- lang: CLI
source: >
linode-cli domains delete 1234
/domains/{domainId}/records:
x-linode-cli-command: domains
parameters:
- name: domainId
in: path
description: The ID of the Domain we are accessing Records for.
required: true
schema:
type: integer
get:
x-linode-grant: read_only
tags:
- domains
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
security:
- personalAccessToken: []
- oauth:
- domains:read_only
summary: List Domain Records
description: |
Returns a paginated list of Records configured on a Domain in Linode's
DNS Manager.
operationId: getDomainRecords
x-linode-cli-action: records-list
responses:
'200':
description: A list of Domain Records.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/DomainRecord'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/domains/1234/records
- lang: CLI
source: >
linode-cli domains records-list 1234
post:
x-linode-grant: read_write
tags:
- domains
security:
- personalAccessToken: []
- oauth:
- domains:read_write
summary: Create Domain Record
description: >
Adds a new Domain Record to the zonefile this Domain represents.
operationId: createDomainRecord
x-linode-cli-action: records-create
requestBody:
description: >
Information about the new Record to add.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRecord'
responses:
'200':
description: Domain Record created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRecord'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"type": "A",
"name": "test",
"target": "12.34.56.78",
"priority": 50,
"weight": 50,
"port": 80,
"service": null,
"protocol": null,
"ttl_sec": 604800
}' \
https://api.linode.com/v4/domains/123/records
- lang: CLI
source: >
linode-cli domains records-create 123 \
--type A \
--name test \
--target 12.34.56.78 \
--priority 50 \
--weight 50 \
--port 80 \
--ttl_sec 604800
/domains/{domainId}/records/{recordId}:
x-linode-cli-command: domains
parameters:
- name: domainId
in: path
description: The ID of the Domain whose Record you are accessing.
required: true
schema:
type: integer
- name: recordId
in: path
description: The ID of the Record you are accessing.
required: true
schema:
type: integer
get:
x-linode-grant: read_only
tags:
- domains
security:
- personalAccessToken: []
- oauth:
- domains:read_only
summary: View Domain Record
description: >
View a single Record on this Domain.
operationId: getDomainRecord
x-linode-cli-action: records-view
responses:
'200':
description: A Domain Record object.
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRecord'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/domains/123/records/234
- lang: CLI
source: >
linode-cli domains records-view 123 234
put:
x-linode-grant: read_write
tags:
- domains
security:
- personalAccessToken: []
- oauth:
- domains:read_write
summary: Update Domain Record
description: >
Updates a single Record on this Domain.
operationId: updateDomainRecord
x-linode-cli-action: records-update
requestBody:
description: The values to change.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRecord'
responses:
'200':
description: Domain Record updated.
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRecord'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"type": "A",
"name": "test",
"target": "12.34.56.78",
"priority": 50,
"weight": 50,
"port": 80,
"service": null,
"protocol": null,
"ttl_sec": 604800,
"tag": null
}' \
https://api.linode.com/v4/domains/123/records/234
- lang: CLI
source: >
linode-cli domains records-update 123 234 \
--type A \
--name test \
--target 12.34.56.78 \
--priority 50 \
--weight 50 \
--port 80 \
--ttl_sec 604800
delete:
x-linode-grant: read_write
tags:
- domains
security:
- personalAccessToken: []
- oauth:
- domains:read_write
summary: Delete Domain Record
description: >
Deletes a Record on this Domain.
operationId: deleteDomainRecord
x-linode-cli-action: records-delete
responses:
'200':
description: Record deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/domains/123/records/234
- lang: CLI
source: >
linode-cli domains records-delete 123 234
/images:
x-linode-cli-command: images
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- images
summary: List Images
description: >
Returns a paginated list of Images.
* Calling this endpoint without authentication returns all public Images.
* Authentication is required to return a combined paginated list of all public and
your private Images.
x-linode-redoc-load-ids: true
operationId: getImages
x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- images:read_only
responses:
'200':
description: A paginated list of Images.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ImagePublic'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl https://api.linode.com/v4/images
- lang: CLI
source: >
linode-cli images list
post:
x-linode-grant: read_write
tags:
- images
summary: Create Image
description: >
Creates a private gold-master Image from a Linode Disk. There is no
additional charge to store Images for Linode users.
Images are limited to three per Account.
operationId: createImage
x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- images:read_write
requestBody:
description: Information about the Image to create.
content:
application/json:
schema:
required:
- disk_id
allOf:
- $ref: '#/components/schemas/ImagePrivate'
- type: object
properties:
disk_id:
type: integer
description: >
The ID of the Linode Disk that this Image will be
created from.
example: 42
label:
type: string
description: >
A short title of this Image. Defaults to the label of the
Disk it is being created from if not provided.
description:
type: string
description: >
A detailed description of this Image.
responses:
'200':
description: New private Image created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ImagePrivate'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"disk_id": 123,
"label": "this_is_a_label",
"description": "A longer description of the image"
}' \
https://api.linode.com/v4/images
- lang: CLI
source: >
linode-cli images create \
--label this_is_a_label \
--description "A longer description \
of the image" \
--disk_id 123
/images/{imageId}:
x-linode-cli-command: images
parameters:
- name: imageId
in: path
description: ID of the Image to look up.
required: true
schema:
type: string
get:
tags:
- images
summary: View Image
description: >
Get information about a single Image.
operationId: getImage
x-linode-cli-action: view
responses:
'200':
description: A single Image object.
content:
application/json:
schema:
$ref: '#/components/schemas/ImagePrivate'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl https://api.linode.com/v4/images/linode/debian9
- lang: CLI
source: >
linode-cli images view linode/debian9
put:
x-linode-grant: read_write
tags:
- images
summary: Update Image
description: >
Updates a private Image that you have permission to
`read_write`.
operationId: updateImage
x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- images:read_write
requestBody:
description: >
The fields to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImagePrivate'
responses:
'200':
description: The updated image.
content:
application/json:
schema:
$ref: '#/components/schemas/ImagePrivate'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "My gold-master image",
"description": "The detailed description of my Image."
}' \
https://api.linode.com/v4/images/private/67848373
- lang: CLI
source: >
linode-cli images update private/67848373 \
--label "My gold-master image" \
--description "The detailed description \
of my Image."
delete:
x-linode-grant: read_write
tags:
- images
summary: Delete Image
description: |
Deletes a private Image you have permission to `read_write`.
**Deleting an Image is a destructive action and cannot be undone.**
operationId: deleteImage
x-linode-cli-action: delete
security:
- personalAccessToken: []
- oauth:
- images:read_write
responses:
'200':
description: Delete successful
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/images/private/67848373
- lang: CLI
source: >
linode-cli images delete 67848373
/linode/instances:
x-linode-cli-command: linodes
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
summary: List Linodes
description: >
Returns a paginated list of Linodes you have permission to view.
tags:
- Linode Instances
operationId: getLinodeInstances
x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: Returns an array of all Linodes on your Account.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Linode'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances
- lang: CLI
source: >
linode-cli linodes list
post:
x-linode-charge: true
x-linode-grant: add_linodes
summary: Create Linode
description: |
Creates a Linode Instance on your Account. In order for this
request to complete successfully, your User must have the `add_linodes` grant. Creating a
new Linode will incur a charge on your Account.
Linodes can be created using one of the available Types. See
[GET /linode/types](/#operation/getLinodeTypes) to get more
information about each Type's specs and cost.
Linodes can be created in any one of our available
[Regions](/#operation/getRegions) for a list
of available Regions you can deploy your Linode in.
Linodes can be created in a number of ways:
* Using a Linode Linux Distribution image or an Image you created based on another Linode.
* The Linode will be `running` after it completes `provisioning`.
* A default config with two Disks, one being a 512 swap disk, is created.
* `swap_size` can be used to customize the swap disk size.
* Requires a `root_pass` be supplied to use for the root User's Account.
* It is recommended to supply SSH keys for the root User using the `authorized_keys` field.
* Using a StackScript.
* See [/linode/stackscripts](/#operation/getStackScripts) for
a list of available StackScripts.
* The Linode will be `running` after it completes `provisioning`.
* Requires a compatible Image to be supplied.
* See [/linode/stackscript/{stackscriptId}](/#operation/getStackScript) for compatible Images.
* Requires a `root_pass` be supplied to use for the root User's Account.
* It is recommended to supply SSH keys for the root User using the `authorized_keys` field.
* Using one of your other Linode's backups.
* You must create a Linode large enough to accommodate the Backup's size.
* The Disks and Config will match that of the Linode that was backed up.
* The `root_pass` will match that of the Linode that was backed up.
* Create an empty Linode.
* The Linode will remain `offline` and must be manually started.
* See [POST /linode/instances/{linodeId}/boot](/#operation/bootLinodeInstance).
* Disks and Configs must be created manually.
* This is only recommended for advanced use cases.
tags:
- Linode Instances
operationId: createLinodeInstance
x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: The requested initial state of a new Linode.
required: true
content:
application/json:
schema:
type: object
required:
- type
- region
allOf:
- $ref: '#/components/schemas/LinodeRequest'
- $ref: '#/components/schemas/LinodeBase'
- properties:
backup_id:
type: integer
example: 1234
description: |
A Backup ID from another Linode's available backups. Your User must have
`read_write` access to that Linode, the Backup must have a `status` of
`successful`, and the Linode must be deployed to the same `region` as the Backup.
See [/linode/instances/{linodeId}/backups](/#operation/getBackups)
for a Linode's available backups.
This field and the `image` field are mutually exclusive.
backups_enabled:
type: boolean
description: |
If this field is set to `true`, the created Linode will automatically be
enrolled in the Linode Backup service. This will incur an additional charge.
The cost for the Backup service is dependent on the Type of Linode deployed.
Backup pricing is included in the response from [/linodes/types](/#operation/getLinodeTypes)
swap_size:
type: integer
example: 512
description: >
When deploying from an Image, this field is optional, otherwise it is ignored.
This is used to set the swap disk size for the newly-created Linode.
default: 512
type:
type: string
description: >
The type of Linode to deploy.
readOnly: false
region:
type: string
description: >
The Region to deploy this Linode in.
readOnly: false
responses:
'200':
description: >
A new Linode is being created.
content:
application/json:
schema:
$ref: '#/components/schemas/Linode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"backup_id": 1234,
"backups_enabled": true,
"swap_size": 512,
"image": "linode/debian9",
"root_pass": "aComplexP@ssword",
"stackscript_id": 10079,
"stackscript_data": {
"gh_username": "linode"
},
"authorized_keys": [
"ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
],
"booted": true,
"label": "linode123",
"type": "g6-standard-2",
"region": "us-east",
"group": "Linode-Group"
}' \
https://api.linode.com/v4/linode/instances
- lang: CLI
source: >
linode-cli linodes create \
--label linode123 \
--root_pass aComplex@Password \
--booted true \
--stackscript_id 10079 \
--stackscript_data '{"gh_username": "linode"}' \
--region us-east \
--type g6-standard-2 \
--authorized_keys "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
/linode/instances/{linodeId}:
parameters:
- name: linodeId
in: path
description: ID of the Linode to look up
required: true
schema:
type: integer
x-linode-cli-command: linodes
get:
x-linode-grant: read_only
tags:
- Linode Instances
summary: View Linode
description: Get a specific Linode by ID.
operationId: getLinodeInstance
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: Returns a single Linode object.
content:
application/json:
schema:
$ref: '#/components/schemas/Linode'
links:
boot:
$ref: '#/components/links/bootLinode'
reboot:
$ref: '#/components/links/rebootLinode'
shutdown:
$ref: '#/components/links/shutdownLinode'
update:
$ref: '#/components/links/updateLinode'
delete:
$ref: '#/components/links/deleteLinode'
rebuild:
$ref: '#/components/links/rebuildLinode'
mutate:
$ref: '#/components/links/mutateLinode'
resize:
$ref: '#/components/links/resizeLinode'
rescue:
$ref: '#/components/links/rescueLinode'
clone:
$ref: '#/components/links/cloneLinode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances/123
- lang: CLI
source: >
linode-cli linodes view 123
put:
x-linode-grant: read_write
tags:
- Linode Instances
summary: Update Linode
description: >
Updates a Linode that you have permission to `read_write`.
operationId: updateLinodeInstance
x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: >
Any field that is not marked as `readOnly` may be updated. Fields that are marked
`readOnly` will be ignored. If any updated field fails to pass validation, the Linode will
not be updated.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Linode'
responses:
'200':
description: The updated Linode.
content:
application/json:
schema:
$ref: '#/components/schemas/Linode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "linode123",
"group": "Linode-Group",
"alerts": {
"cpu": 90,
"network_in": 10,
"network_out": 10,
"transfer_quota": 80,
"io": 10000
},
"backups": {
"schedule": {
"day": "Saturday",
"window": "W22"
}
}
}' \
https://api.linode.com/v4/linode/instances/123
- lang: CLI
source: >
linode-cli linodes update 7833080 \
--label linode123 \
--backups.schedule.day "Saturday" \
--backups.schedule.window "W22" \
--alerts.cpu 90 \
--alerts.network_in 10 \
--alerts.network_out 10 \
--alerts.transfer_quota 80 \
--alerts.io 10000
delete:
x-linode-grant: read_write
tags:
- Linode Instances
summary: Delete Linode
description: |
Deletes a Linode you have permission to `read_write`.
**Deleting a Linode is a destructive action and cannot be undone.**
Additionally, deleting a Linode:
* Gives up any IP addresses the Linode was assigned.
* Deletes all Disks, Backups, Configs, etc.
* Stops billing for the Linode and its associated services. You will be billed for time used
within the billing period the Linode was active.
operationId: deleteLinodeInstance
x-linode-cli-action: delete
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
responses:
'200':
description: Delete successful
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/linode/instances/123
- lang: CLI
source: >
linode-cli linodes delete 123
/linode/instances/{linodeId}/backups:
parameters:
- name: linodeId
in: path
description: The ID of the Linode the backups belong to.
required: true
schema:
type: integer
x-linode-cli-command: linodes
get:
x-linode-grant: read_only
summary: List Backups
description: >
Returns information about this Linode's available backups.
tags:
- Linode Instances
operationId: getBackups
x-linode-cli-action: backups-list
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: A collection of the specified Linode's available backups.
content:
application/json:
schema:
type: object
properties:
automatic:
type: array
items:
allOf:
- $ref: '#/components/schemas/Backup'
- type: object
properties:
type:
type: string
example: automatic
snapshot:
type: object
properties:
in_progress:
$ref: '#/components/schemas/Backup'
current:
$ref: '#/components/schemas/Backup'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances/123/backups
- lang: CLI
source: >
linode-cli linodes backups-list 123
post:
x-linode-grant: read_write
summary: Create Snapshot
description: >
Creates a snapshot Backup of a Linode.
** If you already have a snapshot of this Linode, this is a destructive
action. The previous snapshot will be deleted.**
tags:
- Linode Instances
operationId: createSnapshot
x-linode-cli-action: snapshot
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: The label for the new snapshot.
required: true
content:
application/json:
schema:
required:
- label
type: object
properties:
label:
type: string
minLength: 1
maxLength: 255
example: SnapshotLabel
responses:
'200':
description: Snapshot was successfully taken.
content:
application/json:
schema:
$ref: '#/components/schemas/Backup'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"label": "MyNewSnapshot"
}' \
https://api.linode.com/v4/linode/instances/123/backups
- lang: CLI
source: >
linode-cli linodes snapshot 123
/linode/instances/{linodeId}/backups/cancel:
parameters:
- name: linodeId
in: path
description: The ID of the Linode to cancel backup service for.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
summary: Cancel Backups
description: >
Cancels the Backup service on the given Linode. Deletes all of this Linode's
existing backups forever.
tags:
- Linode Instances
operationId: cancelBackups
x-linode-cli-action: backups-cancel
security:
- personalAccessToken: []
- oauth:
- linode:read_write
responses:
'200':
description: Backup service was cancelled for the specified Linode.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/linode/instances/123/backups/cancel
- lang: CLI
source: >
linode-cli linodes backups-cancel 123
/linode/instances/{linodeId}/backups/enable:
parameters:
- name: linodeId
in: path
description: The ID of the Linode to enable backup service for.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
summary: Enable Backups
description: >
Enables backups for the specified Linode.
tags:
- Linode Instances
operationId: enableBackups
x-linode-cli-action: backups-enable
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
responses:
'200':
description: Backup service was enabled.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/linode/instances/123/backups/enable
- lang: CLI
source: >
linode-cli linodes backups-enable 123
/linode/instances/{linodeId}/backups/{backupId}:
parameters:
- name: linodeId
in: path
description: The ID of the Linode the Backup belongs to.
required: true
schema:
type: integer
- name: backupId
in: path
description: The ID of the Backup to look up.
required: true
schema:
type: integer
x-linode-cli-command: linodes
get:
x-linode-grant: read_only
summary: View Backup
description: >
Returns information about a Backup.
tags:
- Linode Instances
operationId: getBackup
x-linode-cli-action: backup-view
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: A single Backup.
content:
application/json:
schema:
$ref: '#/components/schemas/Backup'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances/123/backups/123456
- lang: CLI
source: >
linode-cli linodes backup-view 123 123456
/linode/instances/{linodeId}/backups/{backupId}/restore:
parameters:
- name: linodeId
in: path
description: The ID of the Linode that the Backup belongs to.
required: true
schema:
type: integer
- name: backupId
in: path
description: The ID of the Backup to restore.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
summary: Restore Backup
description: >
Restores a Linode's Backup to the specified Linode.
tags:
- Linode Instances
operationId: restoreBackup
x-linode-cli-action: backup-restore
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: Parameters to provide when restoring the Backup.
required: true
content:
application/json:
schema:
type: object
required:
- linode_id
properties:
linode_id:
type: integer
description: >
The ID of the Linode to restore a Backup to.
example: 234
overwrite:
type: boolean
description: >
If True, deletes all Disks and Configs on the target Linode
before restoring.
example: true
responses:
'200':
description: Restore from Backup was initiated.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"linode_id": 234,
"overwrite": true
}' \
https://api.linode.com/v4/linode/instances/123/backups/123456/restore
- lang: CLI
source: >
linode-cli linodes backup-restore 123 123456 \
--linode_id 234 \
--overwrite true
/linode/instances/{linodeId}/boot:
parameters:
- name: linodeId
in: path
description: The ID of the Linode to boot.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
summary: Boot Linode
description: |
Boots a Linode you have permission to modify. If no parameters are given, a Config profile
will be chosen for this boot based on the following criteria:
* If there is only one Config profile for this Linode, it will be used.
* If there is more than one Config profile, the last booted config will be used.
* If there is more than one Config profile and none were the last to be booted (because the
Linode was never booted or the last booted config was deleted) an error will be returned.
tags:
- Linode Instances
operationId: bootLinodeInstance
x-linode-cli-action: boot
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: Optional configuration to boot into (see above).
required: false
content:
application/json:
schema:
type: object
properties:
config_id:
type: integer
description: >
The Linode Config ID to boot into. If omitted, we will attempt to select a
config to use. (This will do the right thing in most cases.)
example: null
responses:
'200':
description: Boot started.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/linode/instances/123/boot
- lang: CLI
source: >
linode-cli linodes boot 123
/linode/instances/{linodeId}/clone:
parameters:
- name: linodeId
in: path
description: ID of the Linode to clone.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-charge: true
x-linode-grant: add_linodes
summary: Clone Linode
description: >
You can clone your Linode's existing Disks or Configuration profiles to
another Linode on your Account. In order for this request to complete
successfully, your User must have the `add_linodes` grant. Cloning to a
new Linode will incur a charge on your Account.
If cloning to an existing Linode, any actions currently running or
queued must be completed first before you can clone to it.
tags:
- Linode Instances
operationId: cloneLinodeInstance
x-linode-cli-action: clone
security:
- personalAccessToken: []
- oauth:
- linodes:create
requestBody:
description: The requested state your Linode will be cloned into.
required: true
content:
application/json:
schema:
type: object
properties:
region:
type: string
description: >
This is the Region where the Linode will be deployed.
To view all available Regions you can deploy to see
[/regions](/#operation/getRegions).
* Region can only be provided when cloning to a new Linode.
example: us-east
type:
type: string
description: |
A Linode's Type determines what resources are available to
it, including disk space, memory, and virtual cpus. The
amounts available to a specific Linode are returned as
`specs` on the Linode object.
To view all available Linode Types you can deploy with
see [/linode/types](/#operation/getLinodeTypes).
* Type can only be provided when cloning to a new Linode.
example: g6-standard-2
linode_id:
type: integer
description: >
If an existing Linode is to be the target for the clone,
the ID of that Linode. The existing Linode must have enough
resources to accept the clone.
example: 124
label:
type: string
description: >
The label to assign this Linode when cloning to a new Linode.
* Can only be provided when cloning to a new Linode.
* Defaults to "linode".
example: cloned-linode
group:
deprecated: true
type: string
description: >
A label used to group Linodes for display. Linodes are not
required to have a group.
example: Linode-Group
backups_enabled:
type: boolean
description: |
If this field is set to `true`, the created Linode will
automatically be enrolled in the Linode Backup service. This
will incur an additional charge. Pricing is included in the
response from
[/linodes/types](/#operation/getLinodeTypes).
* Can only be included when cloning to a new Linode.
example: true
disks:
type: array
description: >
All disks attached to configs will be cloned from the
source Linode if not provided.
items:
type: integer
example: 25674
configs:
type: array
description: >
All configs attached to will be cloned from the source
Linode if not provided.
items:
type: integer
example: 23456
responses:
'200':
description: Clone started.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"region": "us-east",
"type": "g6-standard-2",
"linode_id": 124,
"label": "cloned-linode",
"group": "Linode-Group",
"backups_enabled": true,
"disks": [25674],
"configs": [23456]
}' \
https://api.linode.com/v4/linode/instances/123/clone
- lang: CLI
source: >
linode-cli linodes clone 123 \
--linode_id 124 \
--region us-east \
--type g6-standard-2 \
--label cloned-linode \
--backups_enabled true \
--disks 25674 \
--configs 23456
/linode/instances/{linodeId}/configs:
parameters:
- name: linodeId
in: path
description: ID of the Linode to look up Configuration profiles for.
required: true
schema:
type: integer
x-linode-cli-command: linodes
get:
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- Linode Instances
summary: List Configuration Profiles
description: |
Lists Configuration profiles associated with a Linode.
operationId: getLinodeConfigs
x-linode-cli-action: configs-list
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: >
Returns an array of Configuration profiles associated with this Linode.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/LinodeConfig'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances/123/configs
- lang: CLI
source: >
linode-cli linodes configs-list 123
post:
tags:
- Linode Instances
summary: Create Configuration Profile
description: >
Adds a new Configuration profile to a Linode.
operationId: addLinodeConfig
x-linode-cli-action: config-create
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: >
The parameters to set when creating the Configuration profile.
This determines which kernel, devices, how much memory, etc. a Linode boots with.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeConfig'
responses:
'200':
description: |
A Configuration profile was created.
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeConfig'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"kernel": "linode/latest-64bit",
"comments": "This is my main Config",
"memory_limit": 2048,
"run_level": "default",
"virt_mode": "paravirt",
"helpers": {
"updatedb_disabled": true,
"distro": true,
"modules_dep": true,
"network": true,
"devtmpfs_automount": false
},
"label": "My Config",
"devices": {
"sda": {
"disk_id": 123456,
"volume_id": null
},
"sdb": {
"disk_id": 123457,
"volume_id": null
}
}
}' \
https://api.linode.com/v4/linode/instances/123/configs
- lang: CLI
source: >
linode-cli linodes config-create 7590910 \
--label "My Config" \
--devices.sda.disk_id 123456 \
--devices.sdb.disk_id 123457
/linode/instances/{linodeId}/configs/{configId}:
parameters:
- name: linodeId
in: path
description: The ID of the Linode whose Configuration profile to look up.
required: true
schema:
type: integer
- name: configId
in: path
description: The ID of the Configuration profile to look up.
required: true
schema:
type: integer
x-linode-cli-command: linodes
get:
tags:
- Linode Instances
x-linode-grant: read_only
summary: View Configuration Profile
description: >
Returns information about a specific Configuration profile.
operationId: getLinodeConfig
x-linode-cli-action: config-view
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: A Configuration profile object.
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeConfig'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances/123/configs/23456
- lang: CLI
source: >
linode-cli linodes config-view 123 23456
put:
x-linode-grant: read_write
summary: Update Configuration Profile
description: >
Updates a Configuration profile.
tags:
- Linode Instances
operationId: updateLinodeConfig
x-linode-cli-action: config-update
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: The Configuration profile parameters to modify.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeConfig'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"kernel": "linode/latest-64bit",
"comments": "This is my main Config",
"memory_limit": 2048,
"run_level": "default",
"virt_mode": "paravirt",
"helpers": {
"updatedb_disabled": true,
"distro": true,
"modules_dep": true,
"network": true,
"devtmpfs_automount": false
},
"label": "My Config",
"devices": {
"sda": {
"disk_id": 123456,
"volume_id": null
},
"sdb": {
"disk_id": 123457,
"volume_id": null
}
}
}' \
https://api.linode.com/v4/linode/instances/123/configs/23456
- lang: CLI
source: >
linode-cli linodes config-update 123 23456 \
--kernel "linode/latest-64bit" \
--comments "This is my main Config" \
--memory_limit 2048 \
--run_level default \
--virt_mode paravirt \
--helpers.updatedb_disabled true \
--helpers.distro true \
--helpers.modules_dep true \
--helpers.network true \
--helpers.devtmpfs_automount false \
--label "My Config" \
--devices.sda.disk_id 123456 \
--devices.sdb.disk_id 123457
responses:
'200':
description: Configuration profile successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeConfig'
default:
$ref: '#/components/responses/ErrorResponse'
delete:
summary: Delete Configuration Profile
description: >
Deletes the specified Configuration profile from the specified Linode.
x-linode-grant: read_write
tags:
- Linode Instances
operationId: deleteLinodeConfig
x-linode-cli-action: config-delete
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
responses:
'200':
description: >
Configuration profile successfully deleted.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/linode/instances/123/configs/23456
- lang: CLI
source: >
linode-cli linodes config-delete 123 23456
/linode/instances/{linodeId}/disks:
parameters:
- name: linodeId
in: path
description: ID of the Linode to look up.
required: true
schema:
type: integer
x-linode-cli-command: linodes
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- Linode Instances
summary: List Disks
description: >
View Disk information for Disks associated with this Linode.
operationId: getLinodeDisks
x-linode-cli-action: disks-list
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: Returns a paginated list of disks associated with this Linode.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Disk'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances/123/disks
- lang: CLI
source: >
linode-cli linodes disks-list 123
post:
tags:
- Linode Instances
summary: Create Disk
description: >
Adds a new Disk to a Linode. You can optionally create a Disk
from an Image (see [/images](/#operation/getImages) for a list of available public images,
or use one of your own), and optionally provide a StackScript to deploy
with this Disk.
operationId: addLinodeDisk
x-linode-cli-action: disk-create
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: >
The parameters to set when creating the Disk.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DiskRequest'
responses:
'200':
description: Disk created.
content:
application/json:
schema:
$ref: '#/components/schemas/Disk'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"label": "Debian 9 Disk",
"image": "linode/debian9",
"size": 1300,
"authorized_keys": [
"ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
],
"root_pass": "aComplexP@ssword",
"stackscript_id": 10079,
"stackscript_data": {
"gh_username": "linode"
}
}' \
https://api.linode.com/v4/linode/instances/123/disks
- lang: CLI
source: >
linode-cli linodes disk-create 123 \
--size 1300 \
--authorized_keys "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer" \
--root_pass aComplex@Password \
--image "linode/debian9" \
--stackscript_id 10079 \
--stackscript_data '{"gh_username": "linode"}'
/linode/instances/{linodeId}/disks/{diskId}:
parameters:
- name: linodeId
in: path
description: ID of the Linode to look up.
required: true
schema:
type: integer
- name: diskId
in: path
description: ID of the Disk to look up.
required: true
schema:
type: integer
x-linode-cli-command: linodes
get:
x-linode-grant: read_only
tags:
- Linode Instances
summary: View Disk
description: >
View Disk information for a Disk associated with this Linode.
operationId: getLinodeDisk
x-linode-cli-action: disk-view
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: Returns a single Disk object.
content:
application/json:
schema:
$ref: '#/components/schemas/Disk'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances/123/disks/25674
- lang: CLI
source: >
linode-cli linodes disk-view 123 25674
put:
x-linode-grant: read_write
tags:
- Linode Instances
summary: Update Disk
description: >
Updates a Disk that you have permission to `read_write`.
operationId: updateDisk
x-linode-cli-action: disk-update
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: >
Updates the parameters of a single Disk.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Disk'
responses:
'200':
description: The updated Disk.
content:
application/json:
schema:
$ref: '#/components/schemas/Disk'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "Debian 9 Disk"
}' \
https://api.linode.com/v4/linode/instances/123/disks/25674
- lang: CLI
source: >
linode-cli linodes disk-update 123 25674 \
--label "Debian 9 Disk"
delete:
x-linode-grant: read_write
tags:
- Linode Instances
summary: Delete Disk
description: |
Deletes a Disk you have permission to `read_write`.
**Deleting a Disk is a destructive action and cannot be undone.**
operationId: deleteDisk
x-linode-cli-action: disk-delete
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
responses:
'200':
description: Delete successful
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/linode/instances/123/disks/25674
- lang: CLI
source: >
linode-cli linodes disk-delete 123 24674
/linode/instances/{linodeId}/disks/{diskId}/password:
parameters:
- name: linodeId
in: path
description: ID of the Linode to look up.
required: true
schema:
type: integer
- name: diskId
in: path
description: ID of the Disk to look up.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
tags:
- Linode Instances
summary: Reset Disk Root Password
description: >
Resets the password of a Disk you have permission to `read_write`.
operationId: resetDiskPassword
x-linode-cli-action: disk-reset-password
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: The new password.
required: true
content:
application/json:
schema:
required:
- password
properties:
password:
type: string
description: >
The new root password for the OS installed on this Disk.
The password must contain at least two of these four
character classes:
* lowercase letters
* uppercase letters
* numbers
* punctuation
minLength: 6
maxLength: 128
example: another@complex^Password123
responses:
'200':
description: Returns a single Disk object.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"password": "another@complex^Password123"
}' \
https://api.linode.com/v4/linode/instances/123/disks/25674/password
- lang: CLI
source: >
linode-cli linodes disk-reset-password \
123 25674 \
--password aComplex@Password
/linode/instances/{linodeId}/disks/{diskId}/resize:
parameters:
- name: linodeId
in: path
description: ID of the Linode to look up.
required: true
schema:
type: integer
- name: diskId
in: path
description: ID of the Disk to look up.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
tags:
- Linode Instances
summary: Resize Disk
description: >
Resizes a Disk you have permission to `read_write`.
The Linode this Disk is attached to must be shut down for resizing to
take effect.
If you are resizing the Disk to a smaller size, it cannot be made smaller
than what is required by the total size of the files current on the Disk.
The Disk must not be in use. If the Disk is in use, the request will
succeed but the resize will ultimately fail.
operationId: resizeDisk
x-linode-cli-action: disk-resize
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: The new size of the Disk.
required: true
content:
application/json:
schema:
required:
- password
properties:
size:
type: integer
description: >
The desired size, in MB, of the disk.
minimum: 1
example: 2048
responses:
'200':
description: Returns a single Disk object.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"size": 2048
}' \
https://api.linode.com/v4/linode/instances/123/disks/25674/resize
- lang: CLI
source: >
linode-cli linodes disk-resize 123 25674 \
--size 2048
/linode/instances/{linodeId}/ips:
parameters:
- name: linodeId
in: path
description: ID of the Linode to look up.
required: true
schema:
type: integer
x-linode-cli-command: linodes
get:
x-linode-grant: read_only
tags:
- Linode Instances
summary: List Networking Information
description: >
Returns networking information for a single Linode.
operationId: getLinodeIPs
x-linode-cli-action: ips-list
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: Requested Linode's networking configuration.
content:
application/json:
schema:
properties:
ipv4:
type: object
description: >
Information about this Linode's IPv4 addresses.
readOnly: true
properties:
public:
type: array
items:
$ref: '#/components/schemas/IPAddress'
description: >
A list of public IP Address objects belonging to this Linode.
readOnly: true
private:
type: array
items:
$ref: '#/components/schemas/IPAddressPrivate'
description: >
A list of private IP Address objects belonging to this Linode.
readOnly: true
shared:
type: array
readOnly: true
items:
$ref: '#/components/schemas/IPAddress'
ipv6:
type: object
description: >
Information about this Linode's IPv6 addresses.
readOnly: true
properties:
link_local:
$ref: '#/components/schemas/IPAddressV6LinkLocal'
slaac:
$ref: '#/components/schemas/IPAddressV6Slaac'
global:
$ref: '#/components/schemas/IPv6Pool'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
https://api.linode.com/v4/linode/instances/123/ips
- lang: CLI
source: >
linode-cli linodes 123 ips-list
post:
x-linode-grant: read_write
tags:
- Linode Instances
summary: Allocate IPv4 Address
description: >
Allocates a public or private IPv4 address to a Linode.
Public IP Addresses, after the one included with each Linode,
incur an additional monthly charge. If you need an additional public
IP Address you must request one - please
[open a support ticket](/#operation/createTicket).
You may not add more than one private IPv4 address to a single Linode.
operationId: addLinodeIP
x-linode-cli-action: ip-add
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: Information about the address you are creating.
required: true
content:
application/json:
schema:
required:
- type
- public
properties:
type:
type: string
enum:
- ipv4
description: >
The type of address you are allocating. Only IPv4 addresses
may be allocated through this endpoint.
example: ipv4
public:
type: boolean
description: >
Whether to create a public or private IPv4 address.
example: true
responses:
'200':
description: IP address was successfully allocated.
content:
application/json:
schema:
$ref: '#/components/schemas/IPAddress'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"type": "ipv4",
"public": true
}' \
https://api.linode.com/v4/linode/instances/123/ips
- lang: CLI
source: >
linode-cli linodes ip-add 123 \
--type ipv4 \
--public true
/linode/instances/{linodeId}/ips/{address}:
parameters:
- name: linodeId
in: path
description: The ID of the Linode to look up.
required: true
schema:
type: integer
- name: address
in: path
description: The IP address to look up.
required: true
schema:
type: string
format: ip
x-linode-cli-command: linodes
get:
x-linode-grant: read_only
tags:
- Linode Instances
summary: View IP Address
description: >
View information about the specified IP address associated
with the specified Linode.
operationId: getLinodeIP
x-linode-cli-action: ip-view
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: A single IP address.
content:
application/json:
schema:
$ref: '#/components/schemas/IPAddress'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
https://api.linode.com/v4/linode/instances/123/ips/97.107.143.141
- lang: CLI
source: >
linode-cli linodes ip-view 123 97.107.143.141
put:
x-linode-grant: read_write
tags:
- Linode Instances
summary: Update IP Address
description: >
Updates a particular IP Address associated with this Linode.
Only allows setting/resetting reverse DNS.
operationId: updateLinodeIP
x-linode-cli-action: ip-update
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: The information to update for the IP address.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/IPAddress'
- type: object
properties:
rdns:
type: string
example: linode.com
responses:
'200':
description: The updated IP address record.
content:
application/json:
schema:
$ref: '#/components/schemas/IPAddress'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"rdns": "test.example.org"
}' \
https://api.linode.com/v4/linode/instances/123/ips/97.107.143.141
- lang: CLI
source: >
linode-cli linodes ip-update 123 \
97.107.143.141 \
--rdns test.example.org
delete:
x-linode-grant: read_write
tags:
- Linode Instances
summary: Delete IPv4 Address
description: >
Deletes a public IPv4 address associated with this Linode. This will
fail if it is the Linode's last remaining public IPv4 address. Private
IPv4 addresses cannot be removed via this endpoint.
operationId: removeLinodeIP
x-linode-cli-action: ip-delete
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
responses:
'200':
description: IP address successfully removed.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/linode/instances/123/ips/97.107.143.141
- lang: CLI
source: >
linode-cli linodes ip-delete 97.107.143.141
/linode/kernels:
x-linode-cli-command: kernels
get:
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- Linode Instances
summary: List Kernels
description: |
Lists available Kernels.
operationId: getKernels
x-linode-cli-action: list
responses:
'200':
description: Returns an array of Kernels.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Kernel'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl https://api.linode.com/v4/linode/kernels
- lang: CLI
source: >
linode-cli kernels list
/linode/kernels/{kernelId}:
parameters:
- name: kernelId
in: path
description: ID of the Kernel to look up.
required: true
schema:
type: string
x-linode-cli-command: kernels
get:
tags:
- Linode Instances
summary: View Kernel
description: >
Returns information about a single Kernel.
operationId: getKernel
x-linode-cli-action: view
responses:
'200':
description: A single Kernel object.
content:
application/json:
schema:
$ref: '#/components/schemas/Kernel'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl https://api.linode.com/v4/linode/kernels/linode/latest-64bit
- lang: CLI
source: >
linode-cli kernels view latest-64bit
/linode/instances/{linodeId}/mutate:
parameters:
- name: linodeId
in: path
description: ID of the Linode to mutate.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
summary: Upgrade Linode
description: >
Linodes created with now-deprecated Types are entitled to a free
upgrade to the next generation. A mutating Linode will be allocated any new
resources the upgraded Type provides, and will be subsequently restarted
if it was currently running.
If any actions are currently running or queued, those actions must be
completed first before you can initiate a mutate.
tags:
- Linode Instances
operationId: mutateLinodeInstance
x-linode-cli-action: upgrade
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
responses:
'200':
description: Mutate started.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/linode/instances/123/mutate
- lang: CLI
source: >
linode-cli linodes upgrade 123
/linode/instances/{linodeId}/reboot:
parameters:
- name: linodeId
in: path
description: ID of the linode to reboot.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
summary: Reboot Linode
description: >
Reboots a Linode you have permission to modify. If any actions are currently running or
queued, those actions must be completed first before you can initiate a reboot.
tags:
- Linode Instances
operationId: rebootLinodeInstance
x-linode-cli-action: reboot
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
responses:
'200':
description: Reboot started.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/linode/instances/123/reboot
- lang: CLI
source: >
linode-cli linodes reboot 123
/linode/instances/{linodeId}/rebuild:
parameters:
- name: linodeId
in: path
description: ID of the Linode to rebuild.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
summary: Rebuild Linode
description: >
Rebuilds a Linode you have the `read_write` permission to modify.
A rebuild will first shut down the Linode, delete all disks and configs
on the Linode, and then deploy a new `image` to the Linode with the given
attributes. Additionally:
* Requires an `image` be supplied.
* Requires a `root_pass` be supplied to use for the root User's Account.
* It is recommended to supply SSH keys for the root User using the
`authorized_keys` field.
tags:
- Linode Instances
operationId: rebuildLinodeInstance
x-linode-cli-action: rebuild
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: The requested state your Linode will be rebuilt into.
required: true
content:
application/json:
schema:
type: object
required:
- image
- root_pass
allOf:
- $ref: '#/components/schemas/LinodeRequest'
properties:
image:
type: string
root_pass:
type: string
responses:
'200':
description: Rebuild started.
content:
application/json:
schema:
$ref: '#/components/schemas/Linode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"image": "linode/debian9",
"root_pass": "aComplexP@ssword",
"authorized_keys": [
"ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
],
"booted": true,
"stackscript_id": 10079,
"stackscript_data": {
"gh_username": "linode"
}
}' \
https://api.linode.com/v4/linode/instances/123/rebuild
- lang: CLI
source: >
linode-cli linodes rebuild 123 \
--image "linode/debian9" \
--root_pass aComplex@Password \
--authorized_keys "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer" \
--booted true \
--stackscript_id 10079 \
--stackscript_data '{"gh_username": "linode"}'
/linode/instances/{linodeId}/rescue:
parameters:
- name: linodeId
in: path
description: ID of the Linode to rescue.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
summary: Boot Linode into Rescue Mode
description: >
Rescue Mode is a safe environment for performing many system recovery
and disk management tasks. Rescue Mode is based on the Finnix recovery
distribution, a self-contained and bootable Linux distribution. You can
also use Rescue Mode for tasks other than disaster recovery, such as
formatting disks to use different filesystems, copying data between
disks, and downloading files from a disk via SSH and SFTP.
* Note that "sdh" is reserved and unavailable during rescue.
tags:
- Linode Instances
operationId: rescueLinodeInstance
x-linode-cli-action: rescue
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: Optional object of devices to be mounted.
required: false
content:
application/json:
schema:
type: object
properties:
devices:
$ref: '#/components/schemas/RescueDevices'
responses:
'200':
description: Rescue started.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"devices": {
"sda": {
"disk_id": 124458,
"volume_id": null
},
"sdb": {
"disk_id": null,
"volume_id": null
}
}
}' \
https://api.linode.com/v4/linode/instances/123/rescue
- lang: CLI
source: >
linode-cli linodes rescue 123 \
--devices.sda.disk_id 124458
/linode/instances/{linodeId}/resize:
parameters:
- name: linodeId
in: path
description: ID of the Linode to resize.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
summary: Resize Linode
description: >
Resizes a Linode you have the `read_write` permission to a different
Type. If any actions are currently running or queued, those actions must
be completed first before you can initiate a resize. Additionally, the
following criteria must be met in order to resize a Linode:
* Any pending free upgrades to the Linode's current Type must be performed
before a resize can occur.
* The Linode must not have a pending migration.
* Your Account cannot have an outstanding balance.
* The Linode must not have more disk allocation than the new Type allows.
* In that situation, you must first delete or resize the disk to be smaller.
tags:
- Linode Instances
operationId: resizeLinodeInstance
x-linode-cli-action: resize
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
requestBody:
description: The Type your current Linode will resize to.
required: true
content:
application/json:
schema:
type: object
required:
- type
properties:
type:
type: string
description: The ID representing the Linode Type.
example: g6-standard-2
x-linode-cli-display: 1
responses:
'200':
description: Resize started.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"type": "g6-standard-2"
}' \
https://api.linode.com/v4/linode/instances/123/resize
- lang: CLI
source: >
linode-cli linodes resize 123 \
--type g6-standard-2
/linode/instances/{linodeId}/shutdown:
parameters:
- name: linodeId
in: path
description: ID of the Linode to shutdown.
required: true
schema:
type: integer
x-linode-cli-command: linodes
post:
x-linode-grant: read_write
summary: Shut Down Linode
description: >
Shuts down a Linode you have permission to modify. If any actions are currently running or
queued, those actions must be completed first before you can initiate a shutdown.
tags:
- Linode Instances
operationId: shutdownLinodeInstance
x-linode-cli-action: shutdown
security:
- personalAccessToken: []
- oauth:
- linodes:read_write
responses:
'200':
description: Shutdown started.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/linode/instances/123/shutdown
- lang: CLI
source: >
linode-cli linodes shutdown 123
/linode/instances/{linodeId}/stats:
parameters:
- name: linodeId
in: path
description: ID of the Linode to look up.
required: true
schema:
type: integer
x-linode-cli-command: linodes
get:
tags:
- Linode Instances
summary: View Current Month Statistics
description: >
Returns CPU, IO, IPv4, and IPv6 statistics for your Linode
for the past 24 hours.
operationId: getLinodeStats
x-linode-cli-skip: true
x-linode-cli-action: stats
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
description: The Linode's stats for the past 24 hours.
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeStats'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances/123/stats
/linode/instances/{linodeId}/stats/{year}/{month}:
parameters:
- name: linodeId
in: path
description: ID of the Linode to look up.
required: true
schema:
type: integer
- name: year
in: path
description: Numeric value representing the year to look up.
required: true
schema:
type: integer
- name: month
in: path
description: Numeric value representing the month to look up.
required: true
schema:
type: integer
minimum: 1
maximum: 12
x-linode-cli-command: linodes
get:
tags:
- Linode Instances
summary: View Statistics (year/month)
description: >
Returns statistics for a specific month. The year/month
values must be either a date in the past, or the current month. If the
current month, statistics will be retrieved for the past 30 days.
operationId: getLinodeStatsByYearMonth
x-linode-cli-skip: true
x-linode-cli-action: stats-month
security:
- personalAccessToken: []
- oauth:
- linodes_read_only
responses:
'200':
description: The Linode's statistics for the requested period.
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeStats'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances/123/stats/2018/01
/linode/instances/{linodeId}/volumes:
parameters:
- name: linodeId
in: path
description: ID of the Linode to look up.
required: true
schema:
type: integer
x-linode-cli-command: linodes
get:
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- Linode Instances
summary: List Linode's Volumes
description: >
View Block Storage Volumes attached to this Linode.
operationId: getLinodeVolumes
x-linode-cli-action: volumes
security:
- personalAccessToken: []
- oauth:
- linodes:read
responses:
'200':
description: >
Returns an array of Block Storage Volumes attached to this Linode.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Volume'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/linode/instances/123/volumes
- lang: CLI
source: >
linode-cli linode volumes 123
/linode/stackscripts:
x-linode-cli-command: stackscripts
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- StackScripts
summary: List StackScripts
description: >
If the request is not authenticated, only public StackScripts are returned.
For more information on StackScripts, please read our guide:
[Automate Deployment with StackScripts](https://linode.com/docs/platform/stackscripts/).
operationId: getStackScripts
x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- stackscripts:read_only
responses:
'200':
description: >
A list of StackScripts available to the User, including private
StackScripts owned by the User if the request is authenticated.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/StackScript'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl https://api.linode.com/v4/linode/stackscripts
- lang: CLI
source: >
linode-cli stackscripts list
post:
x-linode-grant: add_stackscripts
tags:
- StackScripts
summary: Create StackScript
description: >
Creates a StackScript in your Account.
operationId: addStackScript
x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- stackscripts:read_write
requestBody:
description: The properties to set for the new StackScript.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StackScript'
responses:
'200':
description: StackScript successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/StackScript'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"label": "a-stackscript",
"description": "This StackScript installs and configures MySQL",
"images": [
"linode/debian9",
"linode/debian8"
],
"is_public": true,
"rev_note": "Set up MySQL",
"script": "#!/bin/bash"
}' \
https://api.linode.com/v4/linode/stackscripts
- lang: CLI
source: >
linode-cli stackscripts create \
--label a-stackscript \
--description "This StackScript install and configures MySQL" \
--images "linode/debian9" \
--images "linode/debian8" \
--is_public true \
--rev_note "Set up MySQL" \
--script '#!/bin/bash'
/linode/stackscripts/{stackscriptId}:
parameters:
- name: stackscriptId
in: path
description: The ID of the StackScript to look up.
required: true
schema:
type: string
x-linode-cli-command: stackscripts
get:
x-linode-grant: read_only
tags:
- StackScripts
summary: View StackScript
description: >
Returns all of the information about a specified
StackScript, including the contents of the script.
operationId: getStackScript
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- stackscripts:read_only
responses:
'200':
description: A single StackScript.
content:
application/json:
schema:
$ref: '#/components/schemas/StackScript'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl https://api.linode.com/v4/linode/stackscripts/10079
- lang: CLI
source: >
linode-cli stackscripts view 10079
put:
x-linode-grant: read_write
tags:
- StackScripts
summary: Update StackScript
description: >
Updates a StackScript.
**Once a StackScript is made public, it cannot be made private.**
operationId: updateStackScript
x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- stackscripts:read_write
requestBody:
description: The fields to update.
content:
application/json:
schema:
$ref: '#/components/schemas/StackScript'
responses:
'200':
description: StackScript was successfully modified.
content:
application/json:
schema:
$ref: '#/components/schemas/StackScript'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "a-stackscript",
"description": "This StackScript installs and configures MySQL",
"images": [
"linode/debian9",
"linode/debian8"
],
"is_public": true,
"rev_note": "Set up MySQL",
"script": "#!/bin/bash"
}' \
https://api.linode.com/v4/linode/stackscripts/10079
- lang: CLI
source: >
linode-cli stackscripts update 10079 \
--label a-stackscript \
--description "This StackScript installs \
and configures MySQL" \
--images "linode/debian9" \
--images "linode/debian8" \
--is_public true \
--rev_note "Set up MySQL" \
--script '#!/bin/bash'
delete:
x-linode-grant: read_write
tags:
- StackScripts
summary: Delete StackScript
description: >
Deletes a private StackScript you have permission to `read_write`. You cannot delete a public StackScript.
operationId: deleteStackScript
x-linode-cli-action: delete
security:
- personalAccessToken: []
- oauth:
- stackscripts:read_write
responses:
'200':
description: StackScript was deleted.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/linode/stackscripts/10079
- lang: CLI
source: >
linode-cli stackscripts delete 10079
/linode/types:
x-linode-cli-command: linodes
get:
tags:
- Linode Types
summary: List Types
description: >
Returns collection of Linode Types, including pricing and
specifications for each Type. These are used when
[creating](/#operation/createLinodeInstance)
or [resizing](/#operation/resizeLinodeInstance)
Linodes.
x-linode-redoc-load-ids: true
operationId: getLinodeTypes
x-linode-cli-action: types
responses:
'200':
description: A collection of Linode Types.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/LinodeType'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl https://api.linode.com/v4/linode/types
- lang: CLI
source: >
linode-cli linodes types
/linode/types/{typeId}:
parameters:
- name: typeId
in: path
description: The ID of the Linode Type to look up.
required: true
schema:
type: string
x-linode-cli-command: linodes
get:
tags:
- Linode Types
summary: View Type
description: >
Returns information about a specific Linode Type, including pricing and
specifications. This is used when
[creating](/#operation/createLinodeInstance)
or [resizing](/#operation/resizeLinodeInstance)
Linodes.
operationId: getLinodeType
x-linode-cli-action: type-view
responses:
'200':
description: A single Linode Type.
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeType'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl https://api.linode.com/v4/linode/types/g6-standard-2
- lang: CLI
source: >
linode-cli linodes type-view g6-standard-2
/longview/clients:
x-linode-cli-command: longview
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- longview
summary: List Longview Clients
description: >
Returns a paginated list of Longview Clients you have access
to. Longview Client is used to monitor stats on your Linode
with the help of the Longview Client application.
operationId: getLongviewClients
x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- longview:read_only
responses:
'200':
description: A paginated list of Longview Clients.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/LongviewClient'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/longview/clients
- lang: CLI
source: >
linode-cli longview list
post:
x-linode-grant: add_longview
tags:
- longview
summary: Create Longview Client
description: >
Creates a Longview Client. This Client will not begin monitoring
the status of your server until you configure the Longview
Client application on your Linode using the returning `install_code`
and `api_key`.
operationId: createLongviewClient
x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- longview:read_write
requestBody:
description: Information about the LongviewClient to create.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LongviewClient'
responses:
'200':
description: Longview Client created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/LongviewClient'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"label": "client789"
}' \
https://api.linode.com/v4/longview/clients
- lang: CLI
source: >
linode-cli longview create \
--label client789
/longview/clients/{clientId}:
parameters:
- name: clientId
in: path
required: true
description: The Longview Client ID to access.
schema:
type: integer
x-linode-cli-command: longview
get:
x-linode-grant: read_only
tags:
- longview
summary: View Longview Client
description: >
Returns a single Longview Client you can access.
operationId: getLongviewClient
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- longview:read_only
responses:
'200':
description: The requested Longview Client.
content:
application/json:
schema:
$ref: '#/components/schemas/LongviewClient'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/longview/clients/789
- lang: CLI
source: >
linode-cli longview view 789
put:
x-linode-grant: read_write
tags:
- longview
summary: Update Longview Client
description: >
Updates a Longview Client. This cannot update how it monitors your
server; use the Longview Client application on your Linode for
monitoring configuration.
operationId: updateLongviewClient
x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- longview:read_write
requestBody:
description: The fields to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LongviewClient'
responses:
'200':
description: Longview Client updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/LongviewClient'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"label": "client789"
}' \
https://api.linode.com/v4/longview/clients/789
- lang: CLI
source: >
linode-cli longview update 789 \
--label client789
delete:
x-linode-grant: read_write
tags:
- longview
summary: Delete Longview Client
description: >
Deletes a Longview Client from your Account.
**All information stored for this client will be lost.**
This _does not_ uninstall the Longview Client application for your
Linode - you must do that manually.
operationId: deleteLongviewClient
x-linode-cli-action: delete
security:
- personalAccessToken: []
- oauth:
- longview:read_write
responses:
'200':
description: Longview Client deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/longview/clients/789
- lang: CLI
source: >
linode-cli longview delete 789
/longview/subscriptions:
x-linode-cli-command: longview
get:
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- longview
summary: List Longview Subscriptions
description: >
Returns a paginated list of available Longview Subscriptions. This is
a public endpoint and requires no authentication.
operationId: getLongviewSubscriptions
x-linode-cli-action: subscriptions-list
responses:
'200':
description: A paginated list of Longview Subscriptions.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/LongviewSubscription'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/longview/subscriptions
- lang: CLI
source: >
linode-cli longview subscriptions-list
/longview/subscriptions/{subscriptionId}:
parameters:
- name: subscriptionId
in: path
required: true
description: The Longview Subscription to look up.
schema:
type: string
x-linode-cli-command: longview
get:
tags:
- longview
summary: View Longview Subscription
description: >
Returns a single LongviewSubscription object. This is a public
endpoint and requires no authentication.
operationId: getLongviewSubscription
x-linode-cli-action: subscription-view
responses:
'200':
description: The requested Longview Subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/LongviewSubscription'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/longview/subscriptions/longview-10
- lang: CLI
source: >
linode-cli longview subscription-view \
longview-10
/managed/contacts:
x-linode-cli-command: managed
get:
x-linode-grant: unrestricted only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- managed
summary: List Managed Contacts
description: >
Returns a paginated list of Managed Contacts on your Account.
operationId: getManagedContacts
x-linode-cli-action: contacts-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: A paginated list of ManagedContacts
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ManagedContact'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/managed/contacts
- lang: CLI
source: >
linode-cli managed contacts-list
post:
x-linode-grant: unrestricted only
tags:
- managed
summary: Create Managed Contact
description: >
Creates a Managed Contact. A Managed Contact is someone Linode
special forces can contact in the course of attempting to resolve an issue
with a Managed Service.
operationId: createManagedContact
x-linode-cli-action: contact-create
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Information about the contact to create.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedContact'
responses:
'200':
description: Contact created.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedContact'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"name": "John Doe",
"email": "john.doe@example.org",
"phone": {
"primary": "123-456-7890",
"secondary": null
},
"group": "on-call"
}' \
https://api.linode.com/v4/managed/contacts
- lang: CLI
source: >
linode-cli managed contact-create \
--name "John Doe" \
--email "john.doe@example.org" \
--phone.primary "123-456-7890"
/managed/contacts/{contactId}:
parameters:
- name: contactId
in: path
required: true
description: The ID of the contact to access.
schema:
type: integer
x-linode-cli-command: managed
get:
x-linode-grant: unrestricted only
tags:
- managed
summary: View Managed Contact
description: >
Returns a single Managed Contact.
operationId: getManagedContact
x-linode-cli-action: contact-view
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: The requested Managed Contact.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedContact'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/managed/contacts/567
- lang: CLI
source: >
linode-cli managed contact-view 567
put:
x-linode-grant: unrestricted only
tags:
- managed
summary: Update Managed Contact
description: >
Updates information about a Managed Contact.
operationId: updateManagedContact
x-linode-cli-action: contact-update
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The fields to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedContact'
responses:
'200':
description: Contact updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedContact'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"name": "John Doe",
"email": "john.doe@example.org",
"phone": {
"primary": "123-456-7890",
"secondary": null
},
"group": "on-call"
}' \
https://api.linode.com/v4/managed/contacts/567
- lang: CLI
source: >
linode-cli managed contact-update 567 \
--name "John Doe" \
--email "john.doe@example.org" \
--phone.primary "123-456-7890"
delete:
x-linode-grant: unrestricted only
tags:
- managed
summary: Delete Managed Contact
description: >
Deletes a Managed Contact.
operationId: deleteManagedContact
x-linode-cli-action: contact-delete
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: Contact deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/managed/contacts/567
- lang: CLI
source: >
linode-cli managed contact-delete 567
/managed/credentials:
x-linode-cli-command: managed
get:
x-linode-grant: unrestricted only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- managed
summary: List Managed Credentials
description: >
Returns a paginated list of Managed Credentials on your Account.
operationId: getManagedCredentials
x-linode-cli-action: credentials-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: A paginated list of ManagedCredentials
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ManagedCredential'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/managed/credentials
- lang: CLI
source: >
linode-cli managed credentials-list
post:
x-linode-grant: unrestricted only
tags:
- managed
summary: Create Managed Credential
description: >
Creates a Managed Credential. A Managed Credential is stored securely
to allow Linode special forces to access your Managed Services and resolve
issues.
operationId: createManagedCredential
x-linode-cli-action: credential-create
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Information about the Credential to create.
content:
application/json:
schema:
required:
- label
allOf:
- $ref: '#/components/schemas/ManagedCredential'
- type: object
properties:
username:
type: string
minLength: 0
maxLength: 5000
description: >
The username to use when accessing the Managed Service.
example: johndoe
password:
type: string
minLength: 0
maxLength: 5000
description: >
The password to use when accessing the Managed Service.
example: s3cur3P@ssw0rd
responses:
'200':
description: Credential created.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedCredential'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"label": "prod-password-1",
"username": "johndoe",
"password": "s3cur3P@ssw0rd"
}' \
https://api.linode.com/v4/managed/credentials
- lang: CLI
source: >
linode-cli managed credential-create \
--label prod-password-1 \
--username johndoe \
--password s3cur3P@ssw0rd
/managed/credentials/{credentialId}:
parameters:
- name: credentialId
in: path
required: true
description: The ID of the Credential to access.
schema:
type: integer
x-linode-cli-command: managed
get:
x-linode-grant: unrestricted only
tags:
- managed
summary: View Managed Credential
description: >
Returns a single Managed Credential.
operationId: getManagedCredential
x-linode-cli-action: credential-view
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: The requested Managed Credential.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedCredential'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/managed/credentials/9991
- lang: CLI
source: >
linode-cli managed credential-view 9991
put:
x-linode-grant: unrestricted only
tags:
- managed
summary: Update Managed Credential
description: >
Updates information about a Managed Credential.
operationId: updateManagedCredential
x-linode-cli-action: credential-update
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The fields to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedCredential'
responses:
'200':
description: Credential updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedCredential'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "prod-password-1"
}' \
https://api.linode.com/v4/managed/credentials/9991
- lang: CLI
source: >
linode-cli managed credential-update 9991 \
--label prod-password-1
/managed/credentials/{credentialId}/revoke:
parameters:
- name: credentialId
in: path
required: true
description: The ID of the Credential to access.
schema:
type: integer
x-linode-cli-command: managed
post:
x-linode-grant: unrestricted only
tags:
- managed
summary: Delete Managed Credential
description: >
Deletes a Managed Credential. Linode special forces will no longer
have access to this Credential when attempting to resolve issues.
operationId: deleteManagedCredential
x-linode-cli-action: credential-revoke
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: Credential deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/managed/credentials/9991
- lang: CLI
source: >
linode-cli managed credential-revoke 9991
/managed/issues:
x-linode-cli-command: managed
get:
x-linode-grant: unrestricted only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- managed
summary: List Managed Issues
description: >
Returns a paginated list of recent and ongoing issues detected on your
Managed Services.
operationId: getManagedIssues
x-linode-cli-action: issues-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: >
A paginated list of open or ongoing Managed Issues.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ManagedIssue'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/managed/issues
- lang: CLI
source: >
linode-cli managed issues-list
/managed/issues/{issueId}:
parameters:
- name: issueId
in: path
required: true
description: The Issue to look up.
schema:
type: integer
x-linode-cli-command: managed
get:
x-linode-grant: unrestricted only
tags:
- managed
summary: View Managed Issue
description: >
Returns a single Issue that is impacting or did impact one of your
Managed Services.
operationId: getManagedIssue
x-linode-cli-action: issue-view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: The requested issue.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedIssue'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/managed/issues/823
- lang: CLI
source: >
linode-cli managed issue-view 823
/managed/linode-settings:
x-linode-cli-command: managed
get:
x-linode-grant: unrestricted only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- managed
summary: List Managed Linode Settings
description: >
Returns a paginated list of Managed Settings for your Linodes. There will
be one entry per Linode on your Account.
operationId: getManagedLinodeSettings
x-linode-cli-action: linode-settings-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: >
A paginated list of Managed settings for your Linodes.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ManagedLinodeSettings'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/managed/linode-settings
- lang: CLI
source: >
linode-cli managed linode-settings-list
/managed/linode-settings/{linodeId}:
parameters:
- name: linodeId
in: path
required: true
description: The Linode ID whose settings we are accessing.
schema:
type: integer
x-linode-cli-command: managed
get:
x-linode-grant: unrestricted only
tags:
- managed
summary: View Linode's Managed Settings
description: >
Returns a single Linode's Managed settings.
operationId: getManagedLinodeSetting
x-linode-cli-action: linode-setting-view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: The requested Linode's Managed settings.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedLinodeSettings'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/managed/linode-settings/123
- lang: CLI
source: >
linode-cli managed linode-setting-view 123
put:
x-linode-grant: unrestricted only
tags:
- managed
summary: Update Linode's Managed Settings
description: >
Updates a single Linode's Managed settings.
operationId: updateManagedLinodeSetting
x-linode-cli-action: linode-setting-update
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The settings to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedLinodeSettings'
responses:
'200':
description: Settings updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedLinodeSettings'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"ssh": {
"access": true,
"user": "linode",
"ip": "12.34.56.78",
"port": 22
}
}' \
https://api.linode.com/v4/managed/linode-settings/123
- lang: CLI
source: >
linode-cli managed linode-setting-update \
7833234 \
--ssh.access true \
--ssh.user linode \
--ssh.port 22 \
--ssh.ip 12.34.56.78
/managed/services:
x-linode-cli-command: managed
get:
x-linode-grant: unrestricted only
tags:
- managed
summary: List Managed Services
description: >
Returns a paginated list of Managed Services on your Account. These
are the services Linode Managed is monitoring and will report and attempt
to resolve issues with.
operationId: getManagedServices
x-linode-cli-action: services-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: A paginated list of Managed Services
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ManagedService'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/managed/services
- lang: CLI
source: >
linode-cli managed services-list
post:
x-linode-grant: unrestricted only
tags:
- managed
summary: Create Managed Service
description: >
Creates a Managed Service. Linode Managed will being monitoring this
service and reporting and attempting to resolve any Issues.
operationId: createManagedService
x-linode-cli-action: service-create
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Information about the service to monitor.
content:
application/json:
schema:
required:
- label
allOf:
- $ref: '#/components/schemas/ManagedService'
responses:
'200':
description: Service created.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedService'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"service_type": "URL",
"label": "prod-1",
"address": "https://example.org",
"timeout": 30,
"body": "it worked",
"consultation_group": "on-call",
"notes": "The service name is my-cool-application",
"credentials": [
9991
]
}' \
https://api.linode.com/v4/managed/services
- lang: CLI
source: >
linode-cli managed service-create \
--service_type url \
--label prod-1 \
--address "https://example.org" \
--timeout 30 \
--body "it worked" \
--consultation_group on-call \
--notes "The service name is \
my-cool-application" \
--credentials 9991
/managed/services/{serviceId}:
parameters:
- name: serviceId
in: path
required: true
description: The ID of the Managed Service to access.
schema:
type: integer
x-linode-cli-command: managed
get:
x-linode-grant: unrestricted only
tags:
- managed
summary: View Managed Service
description: >
Returns information about a single Managed Service on your Account.
operationId: getManagedService
x-linode-cli-action: service-view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: The requested Managed Service.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedService'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/managed/services/9994
- lang: CLI
source: >
linode-cli managed service-view 9994
put:
x-linode-grant: unrestricted only
tags:
- managed
summary: Update Managed Service
description: >
Updates information about a Managed Service.
operationId: updateManagedService
x-linode-cli-action: service-update
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The fields to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedService'
responses:
'200':
description: Service updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedService'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"service_type": "URL",
"label": "prod-1",
"address": "https://example.org",
"timeout": 30,
"body": "it worked",
"consultation_group": "on-call",
"notes": "The service name is my-cool-application",
"credentials": [
9991
]
}' \
https://api.linode.com/v4/managed/services/9994
- lang: CLI
source: >
linode-cli managed service-update 9994 \
--service_type url \
--label prod-1 \
--address "https://example.org" \
--timeout 30 \
--body "it worked" \
--consultation_group on-call \
--notes "The service name is my-cool-application" \
--credentials 9991
delete:
x-linode-grant: unrestricted only
tags:
- managed
summary: Delete Managed Service
description: >
Deletes a Managed Service. This service will no longer be monitored by
Linode Managed.
operationId: deleteManagedService
x-linode-cli-action: service-delete
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: Service deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/managed/services/9994
- lang: CLI
source: >
linode-cli managed service-delete 9994
/managed/services/{serviceId}/disable:
parameters:
- name: serviceId
in: path
required: true
description: The ID of the Managed Service to disable.
schema:
type: integer
x-linode-cli-command: managed
post:
x-linode-grant: unrestricted only
tags:
- managed
summary: Disable Managed Service
description: >
Temporarily disables monitoring of a Managed Service.
operationId: disableManagedService
x-linode-cli-action: service-disable
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: Service disabled.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedService'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/managed/services/9994/disable
- lang: CLI
source: >
linode-cli managed service-disable 9994
/managed/services/{serviceId}/enable:
parameters:
- name: serviceId
in: path
required: true
description: The ID of the Managed Service to enable.
schema:
type: integer
x-linode-cli-command: managed
post:
x-linode-grant: unrestricted only
tags:
- managed
summary: Enable Managed Service
description: >
Enables monitoring of a Managed Service.
operationId: enableManagedService
x-linode-cli-action: service-enable
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: Service enabled.
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedService'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/managed/services/9994/enable
- lang: CLI
source: >
linode-cli managed service-enable 9994
/networking/ips:
description: >
A collection of IP Addresses on your Account. Excludes private addresses.
x-linode-cli-command: networking
get:
x-linode-grant: read_only
tags:
- networking
summary: List IP Addresses
description: >
Returns a paginated list of IP Addresses on your Account, excluding
private addresses.
operationId: getIPs
x-linode-cli-action: ips-list
security:
- personalAccessToken: []
- oauth:
- ips:read_only
responses:
'200':
description: A paginated list of IP Addresses.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/IPAddress'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/networking/ips
- lang: CLI
source: >
linode-cli networking ips-list
post:
x-linode-grant: read_write
tags:
- networking
summary: Allocate IP Address
description: >
Allocates a new IPv4 Address on your Account. The Linode must be
configured to support additional addresses - please
[open a support ticket](/#operation/createTicket) requesting additional
addresses before attempting allocation.
operationId: allocateIP
x-linode-cli-action: ip-add
security:
- personalAccessToken: []
- oauth:
- ips:read_write
- linodes:read_write
requestBody:
description: Information about the address you are creating.
required: true
content:
application/json:
schema:
required:
- type
- public
- linode_id
properties:
type:
type: string
enum:
- ipv4
description: >
The type of address you are requesting. Only
IPv4 addresses may be allocated through this endpoint.
example: ipv4
public:
type: boolean
description: >
Whether to create a public or private IPv4 address.
example: true
linode_id:
type: integer
description: >
The ID of a Linode you you have access to that this address
will be allocated to.
example: 123
responses:
'200':
description: IP Address allocated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/IPAddress'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"type": "ipv4",
"public": true,
"linode_id": 123
}' \
https://api.linode.com/v4/networking/ips
- lang: CLI
source: >
linode-cli networking ip-add \
--type ipv4 \
--public true \
--linode_id 123
/networking/ips/{address}:
parameters:
- name: address
in: path
required: true
description: The address to operate on.
schema:
type: string
format: ip
x-linode-cli-command: networking
get:
x-linode-grant: read_only
tags:
- networking
summary: View IP Address
description: >
Returns information about a single IP Address on your Account.
operationId: getIP
x-linode-cli-action: ip-view
security:
- personalAccessToken: []
- oauth:
- ips:read_only
responses:
'200':
description: The requested IP Address.
content:
application/json:
schema:
$ref: '#/components/schemas/IPAddress'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/networking/ips/97.107.143.141
- lang: CLI
source: >
linode-cli networking ip-view 97.107.143.141
put:
x-linode-grant: read_write
tags:
- networking
summary: Update IP Address RDNS
description: >
Sets RDNS on an IP Address. Forward DNS must already be set up for
reverse DNS to be applied. If you set the RDNS to `null` for public
IPv4 addresses, it will be reset to the default _members.linode.com_
RDNS value.
operationId: updateIP
x-linode-cli-action: ip-update
security:
- personalAccessToken: []
- oauth:
- ips:read_write
requestBody:
description: The information to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/IPAddress'
responses:
'200':
description: RDNS set successfully
content:
application/json:
schema:
$ref: '#/components/schemas/IPAddress'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"rdns": "test.example.org"
}' \
https://api.linode.com/v4/networking/ips/97.107.143.141
- lang: CLI
source: >
linode-cli networking ip-update \
97.107.143.141 \
--rdns "test.example.org"
/networking/ipv4/assign:
description: >
Allows redistribution of IPv4 Addresses within a Region. Any number
of IPs may be assigned in one request, as long as all Linodes end up
with at least one public and no more than one private IP Address at the
end of the assignment.
x-linode-cli-command: networking
post:
x-linode-grant: read_write
tags:
- networking
summary: Assign IPs to Linodes
description: >
Assign multiple IPs to multiple Linodes in one Region. This allows
swapping, shuffling, or otherwise reorganizing IPv4 Addresses to your
Linodes. When the assignment is finished, all Linodes must end up with
at least one public IPv4 and no more than one private IPv4.
operationId: assignIPs
x-linode-cli-action: ip-assign
security:
- personalAccessToken: []
- oauth:
- ips:read_write
- linodes:read_write
requestBody:
description: >
Information about what IPv4 address to assign, and to which Linode.
required: true
content:
application/json:
schema:
required:
- region
- assignments
properties:
region:
type: string
description: >
The ID of the Region in which these assignments are to take
place. All IPs and Linodes must exist in this Region.
example: us-east
assignments:
type: array
description: >
The list of assignments to make. You must have read_write
access to all IPs being assigned and all Linodes being
assigned to in order for the assignments to succeed.
items:
type: object
properties:
address:
type: string
format: ip
description: >
Ths IP Address for this assignment. Must be a IPv4
address you can access in the Region specified. May
be a public or private address.
example: 12.34.56.78
linode_id:
type: integer
description: >
The ID of the Linode to assign this address to. The IP's
previous Linode will lose this address, and must end up
with at least one public address and no more than one
private address once all assignments have been made.
example: 123
responses:
'200':
description: All assignments completed successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"region": "us-east",
"assignments": [
{
"address": "12.34.56.100",
"linode_id": 123
},
{
"address": "23.45.67.200",
"linode_id": 234
}
]
}' \
https://api.linode.com/v4/networking/ipv4/assign
- lang: CLI
source: >
linode-cli networking ip-assign \
--region us-east \
--assignments \
'{"address": "12.34.56.100", "linode_id": 123}' \
--assignments \
'{"23.45.67.200", "linode_id": 234}'
/networking/ipv4/share:
description: >
Configure shared IPs. A shared IP may be brought up on a Linode other
than the one it lists in its response. This can be used to allow one
Linode to begin serving requests should another become unresponsive.
x-linode-cli-command: networking
post:
x-linode-grant: read_write
tags:
- networking
summary: Configure IP Sharing
description: >
Configure shared IPs. A shared IP may be brought up on a Linode other
than the one it lists in its response. This can be used to allow one
Linode to begin serving requests should another become unresponsive.
operationId: shareIPs
x-linode-cli-action: ip-share
security:
- personalAccessToken: []
- oauth:
- ips:read_write
- linodes:read_write
requestBody:
description: Information about what IPs to share with which Linode.
required: true
content:
application/json:
schema:
required:
- linode_id
- ips
properties:
linode_id:
type: integer
description: >
The ID of the Linode that the addresses will be shared with.
example: 123
ips:
type: array
items:
type: string
format: ip
example: 12.34.56.78
description: >
A list of IPs that will be shared with this Linode. When
this is finished, the given Linode will be able to bring up
these addresses in addition to the Linodes that these
addresses belong to. You must have access to all of these
addresses and they must be in the same Region as the
Linode.
responses:
'200':
description: Sharing configured successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"linode_id": 123,
"ips": [
"12.34.56.78"
]
}' \
https://api.linode.com/v4/networking/ipv4/share
- lang: CLI
source: >
linode-cli networking ip-share \
--linode_id 123 \
--ips 12.34.56.78
/networking/ipv6/pools:
x-linode-cli-command: networking
get:
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- networking
summary: List IPv6 Pools
description: >
Displays the IPv6 pools on your Account.
operationId: getIPv6Pools
x-linode-cli-action: v6-pools
security:
- personalAccessToken: []
- oauth:
- ips:read_only
responses:
'200':
description: The IPv6 pools on your Account.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/IPv6Pool'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/networking/ipv6/pools
- lang: CLI
source: >
linode-cli networking v6-pools
/networking/ipv6/ranges:
x-linode-cli-command: networking
get:
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- networking
summary: List IPv6 Ranges
description: >
Displays the IPv6 ranges on your Account.
operationId: getIPv6Ranges
x-linode-cli-action: v6-ranges
security:
- personalAccessToken: []
- oauth:
- ips:read_only
responses:
'200':
description: The IPv6 ranges on your Account.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/IPv6Range'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/networking/ipv6/ranges
- lang: CLI
source: >
linode-cli networking v6-ranges
/nodebalancers:
x-linode-cli-command: nodebalancers
get:
x-linode-grant: read_only
tags:
- NodeBalancers
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
summary: List NodeBalancers
description: >
Returns a paginated list of NodeBalancers you have access to.
operationId: getNodeBalancers
x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_only
responses:
'200':
description: A paginated list of NodeBalancers.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/NodeBalancer'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers
- lang: CLI
source: >
linode-cli nodebalancers list
post:
x-linode-grant: add_nodebalancers
tags:
- NodeBalancers
summary: Create NodeBalancer
description: >
Creates a NodeBalancer in the requested Region. This NodeBalancer
will not start serving requests until it is configured.
operationId: createNodeBalancer
x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_write
requestBody:
description: Information about the NodeBalancer to create.
required: true
content:
application/json:
schema:
required:
- region
properties:
region:
type: string
description: >
The ID of the Region to create this NodeBalancer in.
example: us-east
label:
$ref: '#/components/schemas/NodeBalancer/properties/label'
client_conn_throttle:
$ref: '#/components/schemas/NodeBalancer/properties/client_conn_throttle'
responses:
'200':
description: NodeBalancer created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancer'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"region": "us-east",
"label": "balancer12345",
"client_conn_throttle": 0
}' \
https://api.linode.com/v4/nodebalancers
- lang: CLI
source: >
linode-cli nodebalancers create \
--region us-east \
--label balancer12345 \
--client_conn_throttle 0
/nodebalancers/{nodeBalancerId}:
parameters:
- name: nodeBalancerId
in: path
description: The ID of the NodeBalancer to access.
required: true
schema:
type: integer
x-linode-cli-command: nodebalancers
get:
x-linode-grant: read_only
tags:
- NodeBalancers
summary: View NodeBalancer
description: >
Returns a single NodeBalancer you can access.
operationId: getNodeBalancer
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_only
responses:
'200':
description: The requested NodeBalancer object.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancer'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers/12345
- lang: CLI
source: >
linode-cli nodebalancers view 12345
put:
x-linode-grant: read_write
tags:
- NodeBalancers
summary: Update NodeBalancer
description: >
Updates information about a NodeBalancer you can access.
operationId: updateNodeBalancer
x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_write
requestBody:
description: The information to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancer'
responses:
'200':
description: NodeBalancer updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancer'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "balancer12345",
"client_conn_throttle": 0
}' \
https://api.linode.com/v4/nodebalancers/12345
- lang: CLI
source: >
linode-cli nodebalancers update 12345 \
--label balancer12345 \
--client_conn_throttle 0
delete:
x-linode-grant: read_write
tags:
- NodeBalancers
summary: Delete NodeBalancer
description: >
Deletes a NodeBalancer.
**This is a destructive action and cannot be undone.**
Deleting a NodeBalancer will also delete all associated Configs and Nodes,
although the backend servers represented by the Nodes will not be
changed or removed. Deleting a NodeBalancer will cause you to lose access
to the IP Addresses assigned to this NodeBalancer.
operationId: deleteNodeBalancer
x-linode-cli-action: delete
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_write
responses:
'200':
description: NodeBalancer deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/nodebalancers/12345
- lang: CLI
source: >
linode-cli nodebalancers delete 12345
/nodebalancers/{nodeBalancerId}/configs:
parameters:
- name: nodeBalancerId
in: path
description: The ID of the NodeBalancer to access.
required: true
schema:
type: integer
x-linode-cli-command: nodebalancers
get:
x-linode-grant: read_only
tags:
- NodeBalancers
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
summary: List Configs
description: >
Returns a paginated list of NodeBalancer Configs associated
with this NodeBalancer. NodeBalancer Configs represent
individual ports that this NodeBalancer will accept traffic
on, one Config per port.
For example, if you wanted to accept standard HTTP traffic, you would
need a Config listening on port 80.
operationId: getNodeBalancerConfigs
x-linode-cli-action: configs-list
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_only
responses:
'200':
description: A paginted list of NodeBalancer Configs
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/NodeBalancerConfig'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers/12345/configs
- lang: CLI
source: >
linode-cli nodebalancers configs-list 12345
post:
x-linode-grant: read_write
tags:
- NodeBalancers
summary: Create Config
description: >
Creates a NodeBalancer Config, which allows the NodeBalancer to
accept traffic on a new port. You will need to add NodeBalancer Nodes
to the new Config before it can actually serve requests.
operationId: createNodeBalancerConfig
x-linode-cli-action: config-create
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_write
requestBody:
description: Information about the port to configure.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancerConfig'
responses:
'200':
description: Config created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancerConfig'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"port": 80,
"protocol": "http",
"algorithm": "roundrobin",
"stickiness": "http_cookie",
"check": "http_body",
"check_interval": 90,
"check_timeout": 10,
"check_attempts": 3,
"check_path": "/test",
"check_body": "it works",
"check_passive": true,
"cipher_suite": "recommended"
}' \
https://api.linode.com/v4/nodebalancers/12345/configs
- lang: CLI
source: >
linode-cli nodebalancers config-create 12345 \
--port 80 \
--protocol http \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--cipher_suite recommended
/nodebalancers/{nodeBalancerId}/configs/{configId}:
parameters:
- name: nodeBalancerId
in: path
description: The ID of the NodeBalancer to access.
required: true
schema:
type: integer
- name: configId
in: path
description: The ID of the config to access.
required: true
schema:
type: integer
x-linode-cli-command: nodebalancers
get:
x-linode-grant: read_only
tags:
- NodeBalancers
summary: View Config
description: >
Returns configuration information for a single port of this
NodeBalancer.
operationId: getNodeBalancerConfig
x-linode-cli-action: config-view
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_only
responses:
'200':
description: The requested NodeBalancer config.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancerConfig'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers/12345/configs/4567
- lang: CLI
source: >
linode-cli nodebalancers config-view \
12345 4567
put:
x-linode-grant: read_write
tags:
- NodeBalancers
summary: Update Config
description: >
Updates the configuration for a single port on a NodeBalancer.
operationId: updateNodeBalancerConfig
x-linode-cli-action: config-update
security:
- personlAccessToken: []
- oauth:
- nodebalancers:read_write
requestBody:
description: The fields to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancerConfig'
responses:
'200':
description: Config updated successfully.
content:
applicaiton/json:
schema:
$ref: '#/components/schemas/NodeBalancerConfig'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"port": 80,
"protocol": "http",
"algorithm": "roundrobin",
"stickiness": "http_cookie",
"check": "http_body",
"check_interval": 90,
"check_timeout": 10,
"check_attempts": 3,
"check_path": "/test",
"check_body": "it works",
"check_passive": true,
"cipher_suite": "recommended"
}' \
https://api.linode.com/v4/nodebalancers/12345/configs/4567
- lang: CLI
source: >
linode-cli nodebalancers config-update \
12345 4567 \
--port 80 \
--protocol http \
--algorithm roundrobin \
--stickiness http_cookie \
--check http_body \
--check_interval 90 \
--check_timeout 10 \
--check_attempts 3 \
--check_path "/test" \
--check_body "it works" \
--check_passive true \
--cipher_suite recommended
delete:
x-linode-grant: read_write
tags:
- NodeBalancers
summary: Delete Config
description: >
Deletes the Config for a port of this NodeBalancer.
**This cannot be undone.**
Once completed, this NodeBalancer will no longer
respond to requests on the given port. This also deletes all
associated NodeBalancerNodes, but the Linodes they were routing
traffic to will be unchanged and will not be removed.
operationId: deleteNodeBalancerConfig
x-linode-cli-action: config-delete
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_write
responses:
'200':
description: NodeBalancer Config deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/nodebalancers/12345/configs/4567
- lang: CLI
source: >
linode-cli nodebalancers config-delete \
12345 4567
/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes:
parameters:
- name: nodeBalancerId
in: path
description: The ID of the NodeBalancer to access.
required: true
schema:
type: integer
- name: configId
in: path
description: The ID of the NodeBalancer config to access.
required: true
schema:
type: integer
x-linode-cli-command: nodebalancers
get:
x-linode-grant: read_only
tags:
- NodeBalancers
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
summary: List Nodes
description: >
Returns a paginated list of NodeBalancer nodes associated with
this Config. These are the backends that will be sent traffic
for this port.
operationId: getNodeBalancerConfigNodes
x-linode-cli-action: nodes-list
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_only
responses:
'200':
description: A paginated list of NodeBalancer nodes.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/NodeBalancerNode'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes
- lang: CLI
source: >
linode-cli nodebalancers nodes-list 12345 4567
post:
x-linode-grant: read_write
tags:
- NodeBalancers
summary: Create Node
description: >
Creates a NodeBalancer Node, a backend that can accept
traffic for this NodeBalancer Config. Nodes are routed
requests on the configured port based on their status.
operationId: createNodeBalancerNode
x-linode-cli-action: node-create
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_write
requestBody:
description: Information about the Node to create.
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/NodeBalancerNode'
required:
- label
- address
responses:
'200':
description: Node created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancerNode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"address": "192.168.210.120:80",
"label": "node54321",
"weight": 50,
"mode": "accept"
}' \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes
- lang: CLI
source: >
linode-cli nodebalancers node-create \
12345 4567 \
--address 192.168.210.120:80 \
--label node54321 \
--weight 50 \
--mode accept
/nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId}:
parameters:
- name: nodeBalancerId
in: path
description: The ID of the NodeBalancer to access.
required: true
schema:
type: integer
- name: configId
in: path
description: The ID of the Config to access
required: true
schema:
type: integer
- name: nodeId
in: path
description: The ID of the Node to access
required: true
schema:
type: integer
x-linode-cli-command: nodebalancers
get:
x-linode-grant: read_only
tags:
- NodeBalancers
summary: View Node
description: >
Returns information about a single Node, a backend for this
NodeBalancer's configured port.
operationId: getNodeBalancerNode
x-linode-cli-action: node-view
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_write
responses:
'200':
description: A paginated list of NodeBalancer nodes.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancerNode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
- lang: CLI
source: >
linode-cli nodebalancers node-view 12345 4567 54321
put:
x-linode-grant: read_write
tags:
- NodeBalancers
summary: Update Node
description: >
Updates information about a Node, a backend for this NodeBalancer's
configured port.
operationId: updateNodeBalancerNode
x-linode-cli-action: node-update
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_write
requestBody:
description: The fields to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancerNode'
responses:
'200':
description: Node updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancerNode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"address": "192.168.210.120:80",
"label": "node54321",
"weight": 50,
"mode": "accept"
}' \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
- lang: CLI
source: >
linode-cli nodebalancers node-create \
12345 4567 54321 \
--address 192.168.210.120:80 \
--label node54321 \
--weight 50 \
--mode accept
delete:
x-linode-grant: read_write
tags:
- NodeBalancers
summary: Delete Node
description: >
Deletes a Node from this Config. This backend will no longer
receive traffic for the configured port of this NodeBalancer.
This does not change or remove the Linode whose address was
used in the creation of this Node.
operationId: deleteNodeBalancerConfigNode
x-linode-cli-action: node-delete
security:
- personalAccessToken: []
- oauth:
- nodebalancers:read_write
responses:
'200':
description: Node deleted successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
- lang: CLI
source: >
linode-cli nodebalancers node-delete \
12345 4567 54321
/profile:
x-linode-cli-command: profile
get:
tags:
- profile
summary: View Profile
description: >
Returns information about the current User. This can be used to see
who is acting in applications where more than one token is managed. For
example, in third-party OAuth applications.
This endpoint is always accessible, no matter what OAuth scopes the acting token has.
operationId: getProfile
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth: []
responses:
'200':
description: Profile response.
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/profile
- lang: CLI
source: >
linode-cli profile view
put:
tags:
- profile
summary: Update Profile
description: >
Update information in your Profile. This option is _not_ available to
all third-party clients.
operationId: updateProfile
x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The fields to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
responses:
'200':
description: Profile updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"email": "example-user@gmail.com",
"timezone": "US/Eastern",
"email_notifications": true,
"lish_auth_method": "keys_only",
"authorized_keys": null,
"two_factor_auth": true,
"restricted": false
}' \
https://api.linode.com/v4/profile
- lang: CLI
source: >
linode-cli profile update \
--email example-user@gmail.com \
--timezone US/Eastern \
--email_notifications true \
--list_auth_method keys_only \
--two_factor_auth true \
--restricted false
/profile/apps:
description: >
Returns information about OAuth Apps you have authorized to access your Account.
x-linode-cli-command: profile
get:
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- profile
summary: List Authorized Apps
description: >
This is a collection of OAuth apps that you've given access to your Account, and
includes the level of access granted.
operationId: getProfileApps
x-linode-cli-action: apps-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: |
A paginated list of apps you've authorized.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/AuthorizedApp'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/profile/apps
- lang: CLI
source: >
linode-cli profile apps-list
/profile/apps/{appId}:
parameters:
- name: appId
in: path
required: true
description: The authorized app ID to manage.
schema:
type: integer
x-linode-cli-command: profile
get:
tags:
- profile
summary: View Authorized App
description: >
Returns information about a single app you've authorized to access your
Account.
operationId: getProfileApp
x-linode-cli-action: app-view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: The app requested.
content:
application/json:
schema:
$ref: '#/components/schemas/AuthorizedApp'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/profile/apps/123
- lang: CLI
source: >
linode-cli profile app-view 1234
delete:
tags:
- profile
summary: Revoke App Access
description: >
Expires this app token. This token may no longer be used to
access your Account.
operationId: deleteProfileApp
x-linode-cli-action: app-delete
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: App's authorization has been revoked.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/profile/apps/123
- lang: CLI
source: >
linode-cli profile app-delete 123
/profile/grants:
x-linode-cli-command: profile
get:
tags:
- profile
summary: List Grants
description: >
This returns a GrantsResponse describing what the acting User has been
granted access to. For unrestricted users, this will return a 204 and
no body because unrestricted users have access to everything without
grants. This will not return information about entities you do not have
access to. This endpoint is useful when writing third-party OAuth
applications to see what options you should present to the acting User.
For example, if they do not have `global.add_linodes`, you might not
display a button to deploy a new Linode.
Any client may access this endpoint; no OAuth scopes are required.
operationId: getProfileGrants
x-linode-cli-action: grants
x-linode-cli-skip: true
security:
- personalAccessToken: []
- oauth: []
responses:
'200':
description: GrantsResponse
content:
application/json:
schema:
$ref: '#/components/schemas/GrantsResponse'
'204':
description: >
This is an unrestricted User, who has no grants. This User can access
everything on the Account.
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/profile/grants
/profile/tfa-disable:
x-linode-cli-command: profile
post:
tags:
- profile
summary: Disable Two Factor Authentication
description: >
Disables Two Factor Authentication for your User. Once successful,
login attempts from untrusted computers will only require a password
before being successful. This is less secure, and is discouraged.
operationId: tfaDisable
x-linode-cli-action: tfa-disable
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: TFA disabled.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/profile/tfa-disable
- lang: CLI
source: >
linode-cli profile tfa-disable
/profile/tfa-enable:
x-linode-cli-command: profile
post:
tags:
- profile
summary: Create Two Factor Secret
description: >
Generates a Two Factor secret for your User. TFA will
not be enabled until you have successfully confirmed the code you
were given with [tfa-enable-confirm](/#operation/tfaConfirm) (see below).
Once enabled, logins from untrusted computers will be required to provide
a TFA code before they are successful.
operationId: tfaEnable
x-linode-cli-action: tfa-enable
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: Two Factor secret generated
content:
application/json:
schema:
properties:
secret:
type: string
description: >
Your Two Factor secret. This is used to generate
time-based two factor codes required for logging in. Doing
this will be required to confirm TFA an actually enable it.
example: 5FXX6KLACOC33GTC
expiry:
type: string
format: date-time
description: >
When this Two Factor secret expires.
example: 2018-03-01T00:01:01
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/profile/tfa-enable
- lang: CLI
source: >
linode-cli profile tfa-enable
/profile/tfa-enable-confirm:
x-linode-cli-command: profile
post:
tags:
- profile
summary: Confirm/Enable Two Factor Authentication
description: >
Confirms that you can successfully generate Two Factor codes and
enables TFA on your Account. Once this is complete, login attempts
from untrusted computers will be required to provide a Two Factor code
before they are successful.
operationId: tfaConfirm
x-linode-cli-action: tfa-confirm
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The Two Factor code you generated with your Two Factor secret.
required: true
content:
application/json:
schema:
properties:
tfa_code:
type: string
description: >
The Two Factor code you generated with your Two Factor secret.
These codes are time-based, so be sure it is current.
example: "213456"
responses:
'200':
description: TFA enabled successfully
content:
application/json:
schema:
properties:
scratch:
type: string
description: >
A one-use code that can be used in place of your Two Factor
code, in case you are unable to generate one. Keep this in
a safe place to avoid being locked out of your Account.
example: sample two factor scratch
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"tfa_code": "213456"
}' \
https://api.linode.com/v4/profile/tfa-enable-confirm
- lang: CLI
source: >
linode-cli profile tfa-confirm \
--tfa_code 213456
/profile/tokens:
x-linode-cli-command: profile
description: >
A collection of Personal Access Tokens you've created.
get:
tags:
- profile
summary: List Personal Access Tokens
description: >
Returns a paginated list of Personal Access Tokens currently active for
your User.
operationId: getPersonalAccessTokens
x-linode-cli-action: tokens-list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: A paginated list of active tokens.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PersonalAccessToken'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/profile/tokens
- lang: CLI
source: >
linode-cli profile tokens-list
post:
tags:
- profile
summary: Create Personal Access Token
description: >
Creates a Personal Access Token for your User. The raw token will
be returned in the response, but will never be returned again afterward
so be sure to take note of it. You may create a token with _at most_
the scopes of your current token. The created token will be able to
access your Account until the given expiry, or until it is revoked.
operationId: createPersonalAccessToken
x-linode-cli-action: token-create
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Information about the requested token.
required: true
content:
application/json:
schema:
required:
- label
properties:
scopes:
type: string
format: oauth-scope
description: >
The scopes to create the token with. These cannot be changed
after creation, and may not exceed the scopes of the acting token.
If omitted, the new token will have the same scopes as the acting
token.
example: '*'
expiry:
type: string
format: date-time
description: >
When this token should be valid until. If omitted, the new token
will be valid until it is manually revoked.
example: null
label:
$ref: '#/components/schemas/PersonalAccessToken/properties/label'
responses:
'200':
description: Token created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/PersonalAccessToken'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"scopes": "*",
"expiry": "2018-01-01T13:46:32",
"label": "linode-cli"
}' \
https://api.linode.com/v4/profile/tokens
- lang: CLI
source: >
linode-cli profile token-create \
--scopes '*' \
--expiry '2018-01-01T13:46:32' \
--label linode-cli
/profile/tokens/{tokenId}:
description: View or revoke a single token.
parameters:
- name: tokenId
in: path
description: The ID of the token to access.
required: true
schema:
type: integer
x-linode-cli-command: profile
get:
tags:
- profile
summary: View Personal Access Token
description: >
Returns a single Personal Access Token.
operationId: getPersonalAccessToken
x-linode-cli-action: token-view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: The requested token.
content:
application/json:
schema:
$ref: '#/components/schemas/PersonalAccessToken'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/profile/tokens/123
- lang: CLI
source: >
linode-cli profile token-view 123
put:
tags:
- profile
summary: Update Personal Access Token
description: >
Updates a Personal Access Token.
operationId: updatePersonalAccessToken
x-linode-cli-action: token-update
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: The fields to update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PersonalAccessToken'
responses:
'200':
description: Token updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/PersonalAccessToken'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "linode-cli"
}' \
https://api.linode.com/v4/profile/tokens/123
- lang: CLI
source: >
linode-cli profile token-update 123 \
--label linode-cli
delete:
tags:
- profile
summary: Revoke Personal Access Token
description: >
Revokes a Personal Access Token. The token will be invalidated
immediately, and requests using that token will fail with a 401. It is
possible to revoke access to the token making the request to revoke a token,
but keep in mind that doing so could lose you access to the api and require
you to create a new token through some other means.
operationId: deletePersonalAccessToken
x-linode-cli-action: token-delete
security:
- personalAccessToken: []
- oauth:
- account:read_write
responses:
'200':
description: Token revoked successfully.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/profile/tokens/123
- lang: CLI
source: >
linode-cli profile token-delete 123
/regions:
x-linode-cli-command: regions
get:
tags:
- regions
summary: List Regions
description: |
Lists the Regions available for Linode services. Not all services are guaranteed to be
available in all Regions.
x-linode-redoc-load-ids: true
operationId: getRegions
x-linode-cli-action: list
responses:
'200':
description: Returns an array of Regions.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Region'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl https://api.linode.com/v4/regions
- lang: CLI
source: >
linode-cli regions list
/regions/{regionId}:
x-linode-cli-command: regions
parameters:
- name: regionId
in: path
description: ID of the Region to look up.
required: true
schema:
type: string
get:
tags:
- regions
summary: View Region
description: >
Returns a single Region.
operationId: getRegion
x-linode-cli-action: view
responses:
'200':
description: A single Region object.
content:
application/json:
schema:
$ref: '#/components/schemas/Region'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl https://api.linode.com/v4/regions/us-east
- lang: CLI
source: >
linode-cli regions view us-east
/support/tickets:
x-linode-cli-command: tickets
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- support
summary: List Support Tickets
description: >
Returns a collection of Support Tickets on your
Account. Support Tickets can be both tickets you open with Linode
for support, as well as tickets generated by Linode regarding
your Account.
This collection includes all Support Tickets generated on your Account,
with open tickets returned first.
operationId: getTickets
x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: Returns a paginated list of SupportTicket objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/SupportTicket'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/support/tickets
- lang: CLI
source: >
linode-cli tickets list
post:
x-linode-grant: read_write
tags:
- support
summary: Open Support Ticket
description: >
Open a Support Ticket.
Only one of the ID attributes (`linode_id`, `domain_id`, etc.) can be set
on a single Support Ticket.
operationId: createTicket
x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Open a Support Ticket.
content:
application/json:
schema:
$ref: '#/components/schemas/SupportTicketRequest'
responses:
'200':
description: Support Ticket opened.
content:
application/json:
schema:
$ref: '#/components/schemas/SupportTicket'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"description": "I'm having trouble setting the root password on my Linode. I tried following the instructions but something is not working and I'm not sure what I'm doing wrong. Can you please help me figure out how I can reset it?",
"linode_id": 123,
"summary": "Having trouble resetting root password on my Linode"
}' \
https://api.linode.com/v4/support/tickets
- lang: CLI
source: >
linode-cli tickets create \
--description "I'm having trouble setting the root password on my Linode. I tried following the instructions but something is not working and I'm not sure what I'm doing wrong. Can you please help me figure out how I can reset it?" \
--linode_id 123 \
--summary "Having trouble resetting root password on my Linode"
/support/tickets/{ticketId}:
parameters:
- name: ticketId
in: path
description: The ID of the Support Ticket.
required: true
schema:
type: integer
x-linode-cli-command: tickets
get:
x-linode-grant: read_only
tags:
- support
summary: View Support Ticket
description: >
Returns a Support Ticket under your Account.
operationId: getTicket
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: Returns a single SupportTicket object.
content:
application/json:
schema:
$ref: '#/components/schemas/SupportTicket'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/support/tickets/11223344
- lang: CLI
source: >
linode-cli tickets view 11223344
/support/tickets/{ticketId}/attachments:
parameters:
- name: ticketId
in: path
description: The ID of the Support Ticket.
required: true
schema:
type: integer
x-linode-cli-command: tickets
post:
x-linode-grant: read_write
tags:
- support
summary: Create Ticket Attachment
description: >
Adds a file attachment to an existing Support
Ticket on your Account. File attachments are used to assist our
Support team in resolving your Ticket. Examples of attachments
are screen shots and text files that provide additional information.
operationId: createTicketAttachment
x-linode-cli-skip: true
x-linode-cli-action: upload-attachment
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Add an attachment.
required: true
content:
multipart/form-data:
schema:
required:
- file
properties:
file:
type: string
description: >
The local, absolute path to the file you want to attach to
your Support Ticket.
example: '/Users/LinodeGuy/pictures/screen_shot.jpg'
responses:
'200':
description: Attachment created.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST ' \
-F file=/Users/LinodeGuy/pictures/screen_shot.jpg \
https://api.linode.com/v4/support/tickets/11223344/attachments
/support/tickets/{ticketId}/replies:
parameters:
- name: ticketId
in: path
description: The ID of the Support Ticket.
required: true
schema:
type: integer
x-linode-cli-command: tickets
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- support
summary: List Replies
description: >
Returns a collection of replies to a Support Ticket on
your Account.
operationId: getTicketReplies
x-linode-cli-action: replies
security:
- personalAccessToken: []
- oauth:
- account:read_only
responses:
'200':
description: Returns a paginated list of SupportTicketReply objects.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/SupportTicketReply'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/support/tickets/11223344/replies
- lang: CLI
source: >
linode-cli tickets replies 11223344
post:
x-linode-grant: read_write
tags:
- support
summary: Create Reply
description: >
Adds a reply to an existing Support Ticket.
operationId: createTicketReply
x-linode-cli-action: reply
security:
- personalAccessToken: []
- oauth:
- account:read_write
requestBody:
description: Add a reply.
required: true
content:
application/json:
schema:
required:
- description
properties:
description:
type: string
description: >
The content of your reply.
minLength: 1
maxLength: 65535
example: >
Thank you for your help. I was able to figure out what the
problem was and I successfully reset my password. You guys are
the best!
responses:
'200':
description: Reply created.
content:
application/json:
schema:
$ref: '#/components/schemas/SupportTicketReply'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"description": "Thank you for your help. I was able to figure out what the problem was and I successfully reset my password. You guys are the best!"
}' \
https://api.linode.com/v4/support/tickets/11223344/replies
- lang: CLI
source: >
linode-cli tickets reply 11223344 \
--description "Thank you for your help. I was able to figure out what the problem was and I successfully reset my password. You guys are the best!"
/volumes:
x-linode-cli-command: volumes
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
summary: List Volumes
description: >
Returns a paginated list of Volumes you have permission to view.
tags:
- volumes
operationId: getVolumes
x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- volumes:read_only
responses:
'200':
description: Returns an array of all Volumes on your Account.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Volume'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
$ref: '#/components/schemas/PaginationEnvelope/properties/pages'
results:
$ref: '#/components/schemas/PaginationEnvelope/properties/results'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/volumes
- lang: CLI
source: >
linode-cli volumes list
post:
x-linode-charge: true
x-linode-grant: add_volumes
summary: Create Volume
description: >
Creates a Volume on your Account. In order
for this to complete successfully, your User must have the `add_volumes`
grant. Creating a new Volume will start accruing additional charges
on your account.
Volume service may not be available in all Regions. See
[/regions](/#operation/getRegions)
for a list of available Regions you deploy your Volume in.
tags:
- volumes
operationId: createVolume
x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- volumes:read_write
requestBody:
description: The requested initial state of a new Volume.
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Volume'
- type: object
properties:
region:
type: string
description: >
The Region to deploy this Volume in. This is only required
if a linode_id is not given.
example: null
config_id:
type: integer
description: >
When creating a Volume attached to a Linode, the ID of the
Linode Config to include the new Volume in. This Config
must belong to the Linode referenced by `linode_id`. Must
_not_ be provided if `linode_id` is not sent.
example: 23456
responses:
'200':
description: >
Creating Volume.
content:
application/json:
schema:
$ref: '#/components/schemas/Volume'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"label": "my-volume",
"size": 20,
"linode_id": 12346
}' \
https://api.linode.com/v4/volumes
- lang: CLI
source: >
linode-cli volumes create \
--label my-volume \
--size 20 \
--linode_id 12346 \
--no-defaults
/volumes/{volumeId}:
parameters:
- name: volumeId
in: path
description: ID of the Volume to look up.
required: true
schema:
type: integer
x-linode-cli-command: volumes
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
tags:
- volumes
summary: View Volume
description: >
Get information about a single Volume.
operationId: getVolume
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- volumes:read_only
responses:
'200':
description: Returns a single Volume object.
content:
application/json:
schema:
$ref: '#/components/schemas/Volume'
links:
attach:
$ref: '#/components/links/attachVolume'
clone:
$ref: '#/components/links/cloneVolume'
detach:
$ref: '#/components/links/detachVolume'
resize:
$ref: '#/components/links/resizeVolume'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/volumes/12345
- lang: CLI
source: >
linode-cli volumes view 12345
put:
x-linode-grant: read_write
tags:
- volumes
summary: Update Volume
description: >
Updates a Volume that you have permission to `read_write`.
operationId: updateVolume
x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- volumes:read_write
requestBody:
description: >
If any updated field fails to pass validation, the Volume will not be
updated.
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Volume'
- type: object
properties:
region:
allOf:
- $ref: '#/components/schemas/Volume/properties/region'
readOnly: true
size:
allOf:
- $ref: '#/components/schemas/Volume/properties/size'
readOnly: true
linode_id:
allOf:
- $ref: '#/components/schemas/Volume/properties/linode_id'
readOnly: true
responses:
'200':
description: The updated Volume.
content:
application/json:
schema:
$ref: '#/components/schemas/Volume'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "my-volume"
}' \
https://api.linode.com/v4/volumes/12345
- lang: CLI
source: >
linode-cli volumes update 12345 \
--label my_volume
delete:
x-linode-grant: read_write
tags:
- volumes
summary: Delete Volume
description: |
Deletes a Volume you have permission to `read_write`.
**Deleting a Volume is a destructive action and cannot be undone.**
Deleting stops billing for the Volume. You will be billed for time used within
the billing period the Volume was active.
operationId: deleteVolume
x-linode-cli-action: delete
security:
- personalAccessToken: []
- oauth:
- volumes:read_write
responses:
'200':
description: Volume deletion successful.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/volumes/12345
- lang: CLI
source: >
linode-cli volumes delete 12345
/volumes/{volumeId}/attach:
parameters:
- name: volumeId
in: path
description: ID of the Volume to attach.
required: true
schema:
type: integer
x-linode-cli-command: volumes
post:
summary: Attach Volume
description: >
Attaches a Volume on your Account
to an existing Linode on your Account. In order for this request to
complete successfully, your User must have `read_only` or `read_write`
permission to the Volume and `read_write` permission to the Linode.
Additionally, the Volume and Linode must be located in the same Region.
tags:
- volumes
operationId: attachVolume
x-linode-cli-action: attach
security:
- personalAccessToken: []
- oauth:
- volumes:read_write
- linodes:read_write
requestBody:
description: Volume to attach to a Linode.
required: true
content:
application/json:
schema:
type: object
required:
- linode
properties:
linode_id:
allOf:
- $ref: '#/components/schemas/Volume/properties/linode_id'
readOnly: false
config_id:
type: integer
description: >
The ID of the Linode Config to include this Volume in. Must
belong to the Linode referenced by `linode_id`. If not given,
the last booted Config will be chosen.
example: 23456
responses:
'200':
description: Volume was attached to a Linode.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"linode_id": 12346,
"config_id": 23456
}' \
https://api.linode.com/v4/volumes/12345/attach
- lang: CLI
source: >
linode-cli volumes attach 12345 \
--linode_id 12346 \
--config_id 23456
/volumes/{volumeId}/clone:
parameters:
- name: volumeId
in: path
description: ID of the Volume to clone.
required: true
schema:
type: integer
x-linode-cli-command: volumes
post:
x-linode-charge: true
x-linode-grant: add_volumes
summary: Clone Volume
description: >
Creates a Volume on your Account. In
order for this request to complete successfully, your User must have the
`add_volumes` grant. The new Volume will have the same size and data as
the source Volume. Creating a new Volume will incur a charge on your
Account.
tags:
- volumes
operationId: cloneVolume
x-linode-cli-action: clone
security:
- personalAccessToken: []
- oauth:
- volumes:read_write
requestBody:
description: The requested state your Volume will be cloned into.
required: true
content:
application/json:
schema:
type: object
required:
- label
properties:
label:
$ref: '#/components/schemas/Volume/properties/label'
responses:
'200':
description: Clone started.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"label": "my-volume"
}' \
https://api.linode.com/v4/volumes/12345/clone
- lang: CLI
source: >
linode-cli volumes clone 12345 \
--label my-volume
/volumes/{volumeId}/detach:
parameters:
- name: volumeId
in: path
description: ID of the Volume to detach.
required: true
schema:
type: integer
x-linode-cli-command: volumes
post:
summary: Detach Volume
description: >
Detaches a Volume on your Account
from a Linode on your Account. In order for this request to
complete successfully, your User must have `read_write` access to the
Volume and `read_write` access to the Linode.
tags:
- volumes
operationId: detachVolume
x-linode-cli-action: detach
security:
- personalAccessToken: []
- oauth:
- volumes:read_write
- linodes:read_write
responses:
'200':
description: Volume was detached from a Linode.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/volumes/12345/detach
- lang: CLI
source: >
linode-cli volumes detach 12345
/volumes/{volumeId}/resize:
parameters:
- name: volumeId
in: path
description: ID of the Volume to resize.
required: true
schema:
type: integer
x-linode-cli-command: volumes
post:
x-linode-charge: true
summary: Resize Volume
description: >
Resize an existing Volume on your Account. In
order for this request to complete successfully, your User must have the
`read_write` permissions to the Volume.
* Volumes can only be resized up.
tags:
- volumes
operationId: resizeVolume
x-linode-cli-action: resize
security:
- personalAccessToken: []
- oauth:
- volumes:read_write
requestBody:
description: The requested size to increase your Volume to.
required: true
content:
application/json:
schema:
type: object
required:
- size
properties:
size:
$ref: '#/components/schemas/Volume/properties/size'
responses:
'200':
description: Volume resize started.
content:
application/json:
schema:
type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"size": 30
}' \
https://api.linode.com/v4/volumes/12345/resize
- lang: CLI
source: >
linode-cli volumes resize 12345 \
--size 30
components:
securitySchemes:
personalAccessToken:
type: http
scheme: bearer
oauth:
type: oauth2
flows:
authorizationCode:
authorizationUrl: 'https://login.linode.com/oauth/authorize'
tokenUrl: 'https://login.linode.com/oauth/token'
scopes:
'account:read_only': Allows access to GET information about your Account.
'account:read_write': Allows access to all endpoints related to your Account.
'domains:read_only': Allows access to GET Domains on your Account.
'domains:read_write': Allows access to all Domain endpoints.
'events:read_only': Allows access to GET your Events.
'events:read_write': Allows access to all endpoints related to your Events.
'images:read_only': Allows access to GET your Images.
'images:read_write': Allows access to all endpoints related to your Images.
'ips:read_only': Allows access to GET your ips.
'ips:read_write': Allows access to all endpoints related to your ips.
'linodes:read_only': Allows access to GET Linodes on your Account.
'linodes:read_write': Allow access to all endpoints related to your Linodes.
'longview:read_only': Allows access to GET your Longview Clients.
'longview:read_write': Allows access to all endpoints related to your Longview Clients.
'nodebalancers:read_only': Allows access to GET NodeBalancers on your Account.
'nodebalancers:read_write': Allows access to all NodeBalancer endpoints.
'stackscripts:read_only': Allows access to GET your StackScripts.
'stackscripts:read_write': Allows access to all endpoints related to your StackScripts.
'volumes:read_only': Allows access to GET your Volumes.
'volumes:read_write': Allows access to all endpoints related to your Volumes.
responses:
ErrorResponse:
description: Error
content:
application/json:
schema:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ErrorObject'
parameters:
pageOffset:
name: page
in: query
description: The page of a collection to return.
required: false
schema:
type: integer
minimum: 1
default: 1
pageSize:
name: page_size
in: query
description: The number of items to return per page.
schema:
type: integer
minimum: 25
maximum: 100
default: 100
links:
bootLinode:
operationId: bootLinodeInstance
parameters:
linodeId: '$request.body#/id'
rebootLinode:
operationId: rebootLinodeInstance
parameters:
linodeId: '$request.body#/id'
shutdownLinode:
operationId: shutdownLinodeInstance
parameters:
linodeId: '$request.body#/id'
updateLinode:
operationId: updateLinodeInstance
parameters:
linodeId: '$request.body#/id'
deleteLinode:
operationId: deleteLinodeInstance
parameters:
linodeId: '$request.body#/id'
rebuildLinode:
operationId: rebuildLinodeInstance
parameters:
linodeId: '$request.body#/id'
mutateLinode:
operationId: mutateLinodeInstance
parameters:
linodeId: '$request.body#/id'
resizeLinode:
operationId: resizeLinodeInstance
parameters:
linodeId: '$request.body#/id'
rescueLinode:
operationId: rescueLinodeInstance
parameters:
linodeId: '$request.body#/id'
cloneLinode:
operationId: cloneLinodeInstance
parameters:
linodeId: '$request.body#/id'
attachVolume:
operationId: attachVolume
parameters:
volumeID: '$request.body#/id'
cloneVolume:
operationId: cloneVolume
parameters:
volumeId: '$request.body#/id'
detachVolume:
operationId: detachVolume
parameters:
volumeId: '$request.body#/id'
resizeVolume:
operationId: resizeVolume
parameters:
volumeId: '$request.body#/id'
schemas:
Account:
type: object
description: Account object
properties:
address_1:
type: string
description: First line of this Account's billing address.
maxLength: 64
example: 123 Main Street
address_2:
type: string
description: Second line of this Account's billing address.
maxLength: 64
example: Suite A
balance:
type: number
readOnly: true
description: This Account's balance, in US dollars.
example: 200
x-linode-cli-display: 4
city:
type: string
description: The city for this Account's billing address.
maxLength: 24
example: Philadelphia
credit_card:
type: object
readOnly: true
description: Credit Card information associated with this Account.
properties:
last_four:
type: string
description: >
The last four digits of the credit card associated with this
Account.
example: 1111
expiry:
type: string
description: The expiration month and year of the credit card.
example: 11/2022
company:
type: string
description: The company name associated with this Account.
maxLength: 128
example: Linode LLC
country:
type: string
description: >
The two-letter country code of this Account's billing address.
minLength: 2
maxLength: 2
example: US
email:
type: string
description: The email address of the person associated with this Account.
maxLength: 128
example: john.smith@linode.com
x-linode-cli-display: 3
first_name:
type: string
description: The first name of the person associated with this Account.
maxLength: 50
example: John
x-linode-cli-display: 1
last_name:
type: string
description: The last name of the person associated with this Account.
maxLength: 50
example: Smith
x-linode-cli-display: 2
phone:
type: string
description: The phone number associated with this Account.
maxLength: 32
example: 215-555-1212
state:
type: string
description: >
If billing address is in the United States, this is the State
portion of the Account's billing address. If the address is outside
the US, this is the Province associated with the Account's billing
address.
maxLength: 24
example: Pennsylvania
tax_id:
type: string
description: >
The tax identification number associated with this Account,
for tax calculations in some countries.
If you do not live in a country that collects tax, this should be `null`.
maxLength: 100
example: ATU99999999
zip:
type: string
description: The zip code of this Account's billing address.
maxLength: 16
example: 19102
AccountSettings:
type: object
description: Account Settings object
properties:
managed:
type: boolean
readOnly: true
description: >
Our 24/7 incident response service. This robust, multi-homed
monitoring system distributes monitoring checks to ensure that your
servers remain online and available at all times. Linode Managed can
monitor any service or software stack reachable over TCP or HTTP.
Once you add a service to Linode Managed, we'll monitor it for
connectivity, response, and total request time.
example: true
x-linode-cli-display: 3
longview_subscription:
type: string
description: >
The Longview Pro tier you are currently subscribed to. The value must
a [Longview Subscription](/#operation/getLongviewSubscriptions)
ID or `null`.
example: longview-30
x-linode-cli-display: 2
network_helper:
type: boolean
description: >
Enables network helper across all users by default for
new Linodes and Linode Configs.
example: false
x-linode-cli-display: 1
AuthorizedApp:
type: object
description: >
An application you have authorized access to your Account through OAuth.
properties:
id:
type: integer
description: >
This authorization's ID, used for revoking access.
example: 123
readOnly: true
x-linode-cli-display: 1
label:
type: string
description: >
The name of the application you've authorized.
example: example-app
readOnly: true
x-linode-cli-display: 2
thumbnail_url:
type: string
format: url
description: >
The URL at which this app's thumbnail may be accessed.
example: null
readOnly: true
scopes:
type: string
format: oauth-scopes
description: >
The OAuth scopes this app was authorized with. This defines what parts of your
Account the app is allowed to access.
example: linodes:read_only
readOnly: true
x-linode-cli-display: 3
created:
type: string
format: date-time
description: When this app was authorized.
example: '2018-01-01T00:01:01'
readOnly: true
x-linode-filterable: true
x-linode-cli-display: 5
expiry:
type: string
format: date-time
description: >
When this app's access token expires. Please note that apps may still have active
refresh tokens after this time passes.
example: '2018-01-15T00:01:01'
readOnly: true
x-linode-cli-display: 6
website:
type: string
format: url
description: >
The website where you can get more information about this app.
example: example.org
readOnly: true
x-linode-cli-display: 4
Backup:
type: object
description: >
An object representing a Backup or snapshot for a Linode with Backup service
enabled.
properties:
id:
type: integer
readOnly: true
description: The unique ID of this Backup.
example: 123456
x-linode-cli-display: 1
type:
type: string
enum:
- auto
- snapshot
readOnly: true
description: >
This indicates whether the Backup is an automatic Backup or
manual snapshot taken by the User at a specific point in time.
example: snapshot
x-linode-cli-display: 3
status:
type: string
enum:
- paused
- pending
- running
- needsPostProcessing
- successful
- failed
- userAborted
readOnly: true
description: The current state of a specific Backup.
example: successful
x-linode-cli-display: 2
x-linode-cli-color:
successful: green
failed: red
userAborted: f
default_: yellow
created:
type: string
format: date-time
readOnly: true
description: The date the Backup was taken.
example: '2018-01-15T00:01:01'
x-linode-cli-display: 4
updated:
type: string
format: date-time
readOnly: true
description: The date the Backup was most recently updated.
example: '2018-01-15T00:01:01'
finished:
type: string
format: date-time
readOnly: true
description: The date the Backup completed.
example: '2018-01-15T00:01:01'
label:
type: string
description: A label for Backups that are of type `snapshot`.
example: Webserver-Backup-2018
x-linode-cli-display: 5
configs:
type: array
items:
type: string
example: My Debian 9 Config
readOnly: true
description: >
A list of the labels of the Configuration profiles that are part
of the Backup.
disks:
type: array
items:
type: object
properties:
size:
type: integer
example: 9001
filesystem:
$ref: '#/components/schemas/Disk/properties/filesystem'
label:
type: string
example: My Debian 9 Disk
readOnly: true
description: >
A list of the disks that are part of the Backup.
CreditCard:
type: object
description: >
An object representing the credit card information you have on file with
Linode to make Payments against your Account.
required:
- card_number
- expiry_month
- expiry_year
properties:
card_number:
type: string
description: Your credit card number. No spaces or dashes allowed.
minLength: 16
maxLength: 16
example: 4111111111111111
expiry_month:
type: integer
description: >
A value from 1-12 representing the expiration month of your credit card.
* 1 = January
* 2 = February
* 3 = March
* Etc.
example: 12
expiry_year:
type: integer
description: >
A four-digit integer representing the expiration year of
your credit card.
The combination of `expiry_month` and `expiry_year`
must result in a month/year combination of the current month or in
the future. An expiration date set in the past is invalid.
example: 2020
Device:
type: object
description: >
Device can be either a Disk or Volume identified by `disk_id` or
`volume_id`. Only one type per slot allowed. Can be null.
Devices mapped from _sde_ through _sdh_ are unavailable in `fullvirt` virt_mode.
properties:
disk_id:
type: integer
description: The Disk ID, or `null` if a Volume is assigned to this slot.
example: 124458
volume_id:
type: integer
description: The Volume ID, or `null` if a Disk is assigned to this slot.
example: null
Devices:
type: object
properties:
sda:
$ref: '#/components/schemas/Device'
sdb:
$ref: '#/components/schemas/Device'
sdc:
$ref: '#/components/schemas/Device'
sdd:
$ref: '#/components/schemas/Device'
sde:
$ref: '#/components/schemas/Device'
sdf:
$ref: '#/components/schemas/Device'
sdg:
$ref: '#/components/schemas/Device'
sdh:
$ref: '#/components/schemas/Device'
Disk:
type: object
properties:
id:
type: integer
description: >
This Disk's ID which must be provided for all
operations impacting this Disk.
example: 25674
readOnly: true
x-linode-cli-display: 1
label:
x-linode-filterable: true
type: string
description: >
The Disk's label is for display purposes only.
example: Debian 9 Disk
minLength: 1
maxLength: 48
x-linode-cli-display: 2
status:
type: string
description: >
A brief description of this Disk's current state. This field may change without
direct action from you, as a result of operations performed to the Disk
or the Linode containing the Disk.
example: ready
readOnly: true
enum:
- ready
- not ready
- deleting
x-linode-cli-display: 3
x-linode-cli-color:
ready: green
not ready: red
default_: yellow
size:
x-linode-filterable: true
type: integer
readOnly: true
description: The size of the Disk in MB.
example: 48640
x-linode-cli-display: 4
filesystem:
type: string
description: >
The Disk filesystem can be one of:
* raw - No filesystem, just a raw binary stream.
* swap - Linux swap area.
* ext3 - The ext3 journaling filesystem for Linux.
* ext4 - The ext4 journaling filesystem for Linux.
* initrd - initrd (uncompressed initrd, ext2, max 32 MB).
example: ext4
enum:
- raw
- swap
- ext3
- ext4
- initrd
x-linode-cli-display: 5
created:
type: string
format: date-time
description: When this Linode was created.
example: '2018-01-01T00:01:01'
readOnly: true
updated:
type: string
format: date-time
description: When this Linode was last updated.
example: '2018-01-01T00:01:01'
readOnly: true
DiskRequest:
type: object
description: Disk object request.
required:
- size
- label
properties:
size:
x-linode-filterable: true
type: integer
example: 48640
label:
$ref: '#/components/schemas/Disk/properties/label'
filesystem:
$ref: '#/components/schemas/Disk/properties/filesystem'
read_only:
type: boolean
description: >
If true, this Disk is read-only.
example: false
image:
type: string
description: >
An Image ID to deploy the Disk from. Official Linode Images start with
`linode/ `, while your Images start with `private/`.
See [/images](/#operation/getImages) for more information on the Images available for you to use.
example: linode/debian9
authorized_keys:
type: array
items:
type: string
writeOnly: true
example:
- ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer
description: >
This is an optional list of public SSH keys that will be automatically appended
to the root user's `~/.ssh/authorized_keys` file.
root_pass:
type: string
format: password
writeOnly: true
example: aComplexP@ssword
description: |
This will set the root user's password on the newly-created Linode.
The root password must conform to the following constraints:
* May only use alphanumerics, punctuation, spaces, and tabs.
* Must contain at least two of the following characters classes:
* Upper-case letters
* Lower-case letters
* Digits
* Punctuation
minLength: 6
maxLength: 128
pattern: ^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[!"#$%&'()*+,-.\/:;<=>?@\[\]^_`{|}~\\]))|((?=.*[A-Z])(?=.*[!"#$%&'()*+,-.\/:;<=>?@\[\]^_`{|}~\\]))|((?=.*[0-9])(?=.*[!"#$%&'()*+,-.\/:;<=>?@\[\]^_`{|}~\\])))
stackscript_id:
type: integer
example: 10079
description: |
A StackScript ID that will cause the referenced StackScript to be run during
deployment of this Linode. A compatible `image` is required to use a
StackScript. To get a list of available StackScript and their permitted Images
see [/stackscripts](/#operation/getStackScripts).
This field cannot be used when deploying from a Backup or a private Image.
stackscript_data:
type: object
example:
gh_username: linode
description: |
This field is required only if the StackScript being deployed requires input
data from the User for successful completion. See
[Variables and UDFs](https://www.linode.com/docs/platform/stackscripts/#variables-and-udfs)
for more details. This field is required to be valid JSON.
Domain:
type: object
description: >
A domain zonefile in our DNS system. You must own the domain name and
tell your registrar to use Linode's nameservers in order for a domain
in our system to be treated as authoritative.
required:
- id
- domain
- type
properties:
id:
type: integer
description: This Domain's unique ID
example: 1234
readOnly: true
x-linode-cli-display: 1
type:
type: string
enum:
- master
- slave
description: >
If this Domain represents the authoritative source of information for
the domain it describes, or if it is a read-only copy of a master
(also called a slave).
example: master
x-linode-cli-display: 3
domain:
type: string
pattern: ([a-zA-Z0-9-_]+\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|XN--[a-zA-Z0-9]+)
description: >
The domain this Domain represents. These must be unique in our
system; you cannot have two Domains representing the same domain.
example: example.org
x-linode-filterable: true
x-linode-cli-display: 2
group:
deprecated: true
type: string
description: >
The group this Domain belongs to. This is for display purposes
only.
example: null
minLength: 1
maxLength: 50
x-linode-filterable: true
status:
type: string
enum:
- disabled
- active
- edit_mode
- has_errors
description: >
Used to control whether this Domain is currently being rendered.
example: active
x-linode-cli-display: 4
x-linode-cli-color:
active: green
disabled: yellow
edit_mode: yellow
default_: red
description:
type: string
minLength: 1
maxLength: 255
description: |
A description for this Domain. This is for display purposes only.
example: null
soa_email:
type: string
format: email
description: >
Start of Authority email address. This is required for master
Domains.
example: admin@example.org
x-linode-cli-display: 5
retry_sec:
type: integer
description: >
The interval, in seconds, at which a failed refresh should be retried.
Valid values are 300, 3600, 7200, 14400, 28800, 57600,
86400, 172800, 345600, 604800, 1209600, and 2419200 - any other
value will be rounded to the nearest valid value.
example: 300
master_ips:
type: array
items:
type: string
format: ip
description: >
The IP addresses representing the master DNS for this Domain.
example: []
axfr_ips:
type: array
items:
type: string
format: ip
description: >
The list of IPs that may perform a zone transfer for this Domain.
This is potentially dangerous, and should be set to an empty list
unless you intend to use it.
example: []
expire_sec:
type: integer
description: >
The amount of time in seconds that may pass before this Domain is no longer
authoritative. Valid values are
300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600,
604800, 1209600, and 2419200 - any other value will be rounded to
the nearest valid value.
example: 300
refresh_sec:
type: integer
description: >
The amount of time in seconds before this Domain should be refreshed.
Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600,
604800, 1209600, and 2419200 - any other value will be rounded to
the nearest valid value.
example: 300
ttl_sec:
type: integer
description: >
"Time to Live" - the amount of time in seconds that this Domain's
records may be cached by resolvers or other domain servers. Valid
values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800,
345600, 604800, 1209600, and 2419200 - any other value will be
rounded to the nearest valid value.
example: 300
DomainRecord:
type: object
description: >
A single record on a Domain.
properties:
id:
type: integer
description: This Record's unique ID.
example: 123456
readOnly: true
x-linode-cli-display: 1
type:
type: string
enum:
- A
- AAAA
- NS
- MX
- CNAME
- TXT
- SRV
- PTR
- CAA
description: >
The type of Record this is in the DNS system. For example, A
records associate a domain name with an IPv4 address, and AAAA
records associate a domain name with an IPv6 address.
example: A
x-linode-cli-display: 2
name:
type: string
description: >
The name of this Record. This field's actual usage depends on the
type of record this represents. For A and AAAA records, this is
the subdomain being associated with an IP address.
minLength: 1
maxLength: 100
example: test
x-linode-cli-display: 3
target:
type: string
description: >
The target for this Record. This field's actual usage depends on
the type of record this represents. For A and AAAA records, this
is the address the named Domain should resolve to.
example: 12.34.56.78
x-linode-cli-display: 4
priority:
type: integer
minimum: 0
maximum: 255
description: >
The priority of the target host. Lower values are preferred.
example: 50
x-linode-cli-display: 6
weight:
type: integer
description: >
The relative weight of this Record. Higher values are preferred.
example: 50
x-linode-cli-display: 7
port:
type: integer
description: >
The port this Record points to.
example: 80
service:
type: string
description: >
The service this Record identified. Only valid for SRV records.
example: null
protocol:
type: string
description: >
The protocol this Record's service communicates with. Only valid
for SRV records.
example: null
ttl_sec:
type: integer
description: >
"Time to Live" - the amount of time in seconds that this Domain's
records may be cached by resolvers or other domain servers. Valid
values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800,
345600, 604800, 1209600, and 2419200 - any other value will be
rounded to the nearest valid value.
example: 604800
x-linode-cli-display: 5
tag:
type: string
description: >
The tag portion of a CAA record. It is invalid to set this on
other record types.
example: null
ErrorObject:
type: object
description: >
An object for describing a single error that occurred during the processing of a request.
properties:
reason:
type: string
description: >
What happened to cause this error. In most cases, this can be fixed immediately by
changing the data you sent in the request, but in some cases you will be instructed to
[open a Support Ticket](/#operation/createTicket) or perform some
other action before you can complete the request successfully.
example: fieldname must be a valid value
field:
type: string
description: >
The field in the request that caused this error. This may be a path, separated by
periods in the case of nested fields. In some cases this may come back as "null" if the
error is not specific to any single element of the request.
example: fieldname
Event:
type: object
description: >
A collection of Event objects. An Event is an action taken against an
entity related to your Account. For example, booting a Linode would
create an Event.
The Events returned depends on your grants.
properties:
id:
type: integer
readOnly: true
description: The unique ID of this Event.
example: 123
x-linode-cli-display: 1
action:
type: string
enum:
- backups_enable
- backups_cancel
- backups_restore
- community_question_reply
- credit_card_updated
- disk_create
- disk_delete
- disk_duplicate
- disk_imagize
- disk_resize
- dns_record_create
- dns_record_delete
- dns_zone_create
- dns_zone_delete
- image_delete
- linode_addip
- linode_boot
- linode_clone
- linode_create
- linode_delete
- linode_deleteip
- linode_migrate
- linode_mutate
- linode_reboot
- linode_rebuild
- linode_resize
- linode_shutdown
- linode_snapshot
- longviewclient_create
- longviewclient_delete
- managed_disabled
- managed_enabled
- managed_service_create
- managed_service_delete
- nodebalancer_create
- nodebalancer_delete
- nodebalancer_config_create
- nodebalancer_config_delete
- password_reset
- payment_submitted
- stackscript_create
- stackscript_delete
- stackscript_publicize
- stackscript_revise
- tfa_disabled
- tfa_enabled
- ticket_attachment_upload
- ticket_create
- ticket_reply
- volume_attach
- volume_clone
- volume_create
- volume_delete
- volume_detach
- volume_resize
readOnly: true
description: >
The action that caused this Event. New actions may be added in the future.
example: ticket_create
x-linode-cli-display: 3
created:
type: string
readOnly: true
format: date-time
description: When this Event was created.
example: '2018-01-01T00:01:01'
x-linode-cli-display: 5
entity:
type: object
readOnly: true
description: >
Detailed information about the Event's entity, including ID, type,
label, and URL used to access it.
x-linode-cli-display: 4
properties:
id:
type: integer
description: The unique ID for this Event's Entity.
example: 11111
label:
type: string
description: >
The current label of this object. The label may reflect changes
that occur with this Event.
example: Problem booting my Linode
type:
type: string
description: >
The type of entity this Event is related to.
example: ticket
url:
type: string
description: >
The URL where you can access the object this Event is for. If
a relative URL, it is relative to the domain you retrieved the
Event from.
example: /v4/support/tickets/11111
percent_complete:
type: integer
readOnly: true
description: >
A percentage estimating the amount of time remaining for an Event.
Returns `null` for notification events.
example: null
rate:
type: string
readOnly: true
description: >
The rate of completion of the Event. Only some Events will return
rate; for example, migration and resize Events.
example: null
read:
type: boolean
readOnly: true
description: If this Event has been read.
example: true
x-linode-cli-display: 8
seen:
type: boolean
readOnly: true
description: If this Event has been seen.
example: true
x-linode-cli-display: 7
status:
type: string
readOnly: true
description: The current status of this Event.
enum:
- failed
- finished
- notification
- scheduled
- started
x-linode-cli-display: 6
x-linode-cli-color:
failed: red
finished: green
started: yellow
default_: white
time_remaining:
type: integer
readOnly: true
description: >
The estimated time remaining until the completion of this Event.
This value is only returned for in-progress events.
example: null
username:
type: string
readOnly: true
description: >
The username of the User who caused the Event.
example: exampleUser
x-linode-cli-display: 2
Grant:
type: object
description: >
Represents the level of access a restricted User has to a specific
resource on the Account.
properties:
id:
type: integer
description: >
The ID of the entity this grant applies to.
example: 123
permissions:
type: string
enum:
- null
- read_only
- read_write
description: >
The level of access this User has to this entity. If null, this
User has no access.
example: read_only
label:
type: string
description: >
The current label of the entity this grant applies to, for display
purposes.
example: example-entity
readOnly: true
GrantsResponse:
type: object
description: >
A structure representing all grants a restricted User has on the
Account. Not available for unrestricted users, as they have access to
everything without grants. If retrieved from the `/profile/grants`
endpoint, entities to which a User has no access will be omitted.
properties:
global:
type: object
description: >
A structure containing the Account-level grants a User has.
properties:
add_linodes:
type: boolean
description: If true, this User may create Linodes.
example: true
add_longview:
type: boolean
description: If true, this User may create Longview clients.
example: true
longview_subscription:
type: boolean
description: If true, this User may manage the Account's Longview subscription.
example: true
account_access:
type: string
enum:
- null
- read_only
- read_write
description: >
The level of access this User has to Account-level actions,
like billing information. A restricted User will never be able
to manage users.
example: read_only
cancel_account:
type: boolean
description: If true, this User may cancel the entire Account.
example: false
add_domains:
type: boolean
description: If true, this User may add Domains.
example: true
add_stackscripts:
type: boolean
description: If true, this User may add StackScripts.
example: true
add_nodebalancers:
type: boolean
description: If true, this User may add NodeBalancers.
example: true
add_images:
type: boolean
description: If true, this User may add Images.
example: true
add_volumes:
type: boolean
description: If true, this User may add Volumes.
example: true
linode:
type: array
items:
$ref: '#/components/schemas/Grant'
description: >
The grants this User has pertaining to Linodes on this Account.
There will be one entry per Linode on the Account.
domain:
type: array
items:
$ref: '#/components/schemas/Grant'
description: >
The grants this User has pertaining to Domains on this Account.
There will be one entry per Domain on the Account.
nodebalancer:
type: array
items:
$ref: '#/components/schemas/Grant'
description: >
The grants this User has pertaining to NodeBalancers on this
Account. There will be one entry per NodeBalancer on the Account.
image:
type: array
items:
$ref: '#/components/schemas/Grant'
description: >
The grants this User has pertaining to Images on this Account.
There will be one entry per Image on the Account.
longview:
type: array
items:
$ref: '#/components/schemas/Grant'
description: >
The grants this User has pertaining to Longview Clients on this
Account. There will be one entry per Longview Client on the
Account.
stackscript:
type: array
items:
$ref: '#/components/schemas/Grant'
description: >
The grants this User has pertaining to StackScripts on this
Account. There will be one entry per StackScript on the Account.
volume:
type: array
items:
$ref: '#/components/schemas/Grant'
description: >
The grants this User has pertaining to Volumes on this Account.
There will be one entry per Volume on the Account.
ImagePrivate:
type: object
description: Private Image object
properties:
id:
type: string
description: The unique ID of this Image.
example: private/67848373
readOnly: true
x-linode-cli-display: 1
label:
x-linode-filterable: true
type: string
description: >
A short description of the Image. Labels cannot contain
special characters.
example: My gold-master image
x-linode-cli-display: 2
created:
type: string
format: date-time
description: When this Image was created.
example: '2018-01-01T00:01:01'
readOnly: true
created_by:
type: string
description: >
The name of the User who created this Image.
example: somename
readOnly: true
deprecated:
x-linode-filterable: true
type: boolean
description: >
Whether or not this Image is deprecated. Will only be True for
deprecated public Images.
example: false
readOnly: true
description:
type: string
description: An optional detailed description of this Image.
example: The detailed description of my Image.
x-linode-cli-display: 4
x-linode-cli-color:
None: black
default_: white
is_public:
x-linode-filterable: true
description: True if the Image is public.
type: boolean
example: false
readOnly: true
x-linode-cli-display: 5
size:
x-linode-filterable: true
type: integer
description: >
The minimum size this Image needs to deploy. Size is in MB.
example: 2500
readOnly: true
x-linode-cli-display: 6
type:
type: string
description: >
How the Image was created. "Manual" Images can be created at any time.
"Automatic" images are created automatically from a deleted Linode.
enum:
- manual
- automatic
example: manual
readOnly: true
vendor:
x-linode-filterable: true
type: string
description: >
The upstream distribution vendor. `None` for private Images.
example: null
readOnly: true
x-linode-cli-display: 3
x-linode-cli-color:
None: black
default_: white
ImagePublic:
type: object
description: Public Image object
properties:
id:
type: string
description: The unique ID of this Image.
example: linode/ubuntu17.10
readOnly: true
x-linode-cli-display: 1
label:
x-linode-filterable: true
type: string
description: >
A short description of the Image.
example: Ubuntu 17.10
x-linode-cli-display: 2
created:
type: string
format: date-time
description: When this Image was created.
example: '2018-01-01T00:01:01'
readOnly: true
created_by:
type: string
description: >
The name of the User who created this Image, or "linode" for
official Images.
example: linode
readOnly: true
deprecated:
x-linode-filterable: true
type: boolean
description: >
Whether or not this Image is deprecated. Will only be true for
deprecated public Images.
example: false
readOnly: true
description:
type: string
description: An optional detailed description of this Image.
example: null
x-linode-cli-display: 4
x-linode-cli-color:
None: black
default_: white
is_public:
x-linode-filterable: true
description: True if the Image is public.
type: boolean
example: true
readOnly: true
x-linode-cli-display: 5
size:
x-linode-filterable: true
type: integer
description: >
The minimum size this Image needs to deploy. Size is in MB.
example: 2500
readOnly: true
x-linode-cli-display: 6
type:
type: string
description: >
How the Image was created. Manual Images can be created at any time.
"Automatic" Images are created automatically from a deleted Linode.
enum:
- manual
- automatic
example: manual
readOnly: true
vendor:
x-linode-filterable: true
type: string
description: >
The upstream distribution vendor. `None` for private Images.
example: Ubuntu
readOnly: true
x-linode-cli-display: 3
x-linode-cli-color:
None: black
default_: white
Invoice:
type: object
description: Account Invoice object
properties:
id:
type: integer
readOnly: true
description: The Invoice's unique ID.
example: 123
x-linode-cli-display: 1
date:
type: string
readOnly: true
format: date-time
description: When this Invoice was generated.
example: '2018-01-01T00:01:01'
x-linode-cli-display: 2
label:
type: string
readOnly: true
description: The Invoice's display label.
example: Invoice
x-linode-cli-display: 3
total:
type: integer
readOnly: true
description: The amount of the Invoice in US Dollars.
example: 120
x-linode-cli-display: 4
InvoiceItem:
type: object
description: An InvoiceItem object.
properties:
amount:
type: integer
readOnly: true
description: The price, in US dollars, of unit price multiplied by quantity.
example: 20
x-linode-cli-display: 4
from:
type: string
readOnly: true
format: date-time
description: The date the Invoice Item started, based on month.
example: '2018-01-01T00:01:01'
x-linode-cli-display: 2
label:
type: string
readOnly: true
description: The Invoice Item's display label.
example: Linode 123
x-linode-cli-display: 1
quantity:
type: integer
readOnly: true
description: The quantity of this Item for the specified Invoice.
example: 1
to:
type: string
readOnly: true
format: date-time
description: The date the Invoice Item ended, based on month.
example: '2018-01-31T11:59:59'
x-linode-cli-display: 3
type:
type: string
readOnly: true
description: The type of service, ether `prepay` or `misc`.
enum:
- hourly
- prepay
- misc
unitprice:
type: integer
readOnly: true
description: The monthly service fee in US Dollars for this Item.
example: 10
IPAddress:
type: object
description: >
An IP address that exists in Linode's system, either IPv4 or IPv6.
properties:
address:
type: string
format: ip
description: >
The IP address.
example: 97.107.143.141
readOnly: true
x-linode-cli-display: 1
gateway:
type: string
format: ip
description: >
The default gateway for this address.
example: 97.107.143.1
readOnly: true
subnet_mask:
type: string
format: ip
description: >
The mask that separates host bits from network bits for this address.
example: 255.255.255.0
readOnly: true
prefix:
type: integer
description: >
The number of bits set in the subnet mask.
example: 24
readOnly: true
type:
type: string
enum:
- ipv4
- ipv6
- ipv6/pool
- ipv6/range
description: >
The type of address this is.
example: ipv4
readOnly: true
x-linode-cli-display: 2
public:
type: boolean
description: >
Whether this is a public or private IP address.
example: true
readOnly: true
x-linode-cli-display: 3
rdns:
type: string
description: >
The reverse DNS assigned to this address. For public IPv4 addresses,
this will be set to a default value provided by Linode if not
explicitly set.
x-linode-cli-display: 4
example: test.example.org
linode_id:
type: integer
description: >
The ID of the Linode this address currently belongs to. For IPv4
addresses, this is by default the Linode that this address was
assigned to on creation, and these addresses my be moved using the
[/networking/ipv4/assign](/#operation/assignIPs)
endpoint. For SLAAC and link-local addresses, this value may not be changed.
example: 123
readOnly: true
x-linode-cli-display: 6
region:
type: string
description: >
The Region this IP address resides in.
example: us-east
readOnly: true
x-linode-filterable: true
x-linode-cli-display: 5
IPAddressPrivate:
type: object
description: >
A private IPv4 address that exists in Linode's system.
properties:
address:
type: string
format: ip
description: >
The private IPv4 address.
example: 192.168.133.234
readOnly: true
x-linode-cli-display: 1
gateway:
type: string
format: ip
description: >
The default gateway for this address.
example: null
readOnly: true
subnet_mask:
type: string
format: ip
description: >
The mask that separates host bits from network bits for this address.
example: 255.255.128.0
readOnly: true
prefix:
type: integer
description: >
The number of bits set in the subnet mask.
example: 17
readOnly: true
type:
type: string
description: >
The type of address this is.
example: ipv4
readOnly: true
x-linode-cli-display: 2
public:
type: boolean
description: >
Whether this is a public or private IP address.
example: false
readOnly: true
x-linode-cli-display: 3
rdns:
type: string
description: >
The reverse DNS assigned to this address.
example: null
x-linode-cli-display: 4
linode_id:
type: integer
description: >
The ID of the Linode this address currently belongs to.
example: 123
readOnly: true
x-linode-cli-display: 6
region:
type: string
description: >
The Region this address resides in.
example: us-east
readOnly: true
x-linode-filterable: true
x-linode-cli-display: 5
IPAddressV6LinkLocal:
type: object
description: >
A link-local IPv6 address that exists in Linode's system,.
properties:
address:
type: string
format: ip
description: >
The IPv6 link-local address.
example: fe80::f03c:91ff:fe24:3a2f
readOnly: true
x-linode-cli-display: 1
gateway:
type: string
description: >
The default gateway for this address.
example: fe80::1
readOnly: true
subnet_mask:
type: string
format: ip
description: >
The subnet mask.
example: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
readOnly: true
prefix:
type: integer
description: >
The network prefix.
example: 64
readOnly: true
type:
type: string
description: >
The type of address this is.
example: ipv6
readOnly: true
x-linode-cli-display: 2
public:
type: boolean
description: >
Whether this is a public or private IP address.
example: false
readOnly: true
x-linode-cli-display: 3
rdns:
type: string
description: >
The reverse DNS assigned to this address.
example: null
x-linode-cli-display: 4
linode_id:
type: integer
description: >
The ID of the Linode this address currently belongs to.
example: 123
readOnly: true
x-linode-cli-display: 6
region:
type: string
description: >
The Region this address resides in.
example: us-east
readOnly: true
x-linode-filterable: true
x-linode-cli-display: 5
IPAddressV6Slaac:
type: object
description: >
A SLAAC IPv6 address that exists in Linode's system.
properties:
address:
type: string
format: ip
description: >
The address.
example: 2600:3c03::f03c:91ff:fe24:3a2f
readOnly: true
x-linode-cli-display: 1
gateway:
type: string
description: >
The default gateway for this address.
example: fe80::1
readOnly: true
subnet_mask:
type: string
format: ip
description: >
The subnet mask.
example: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
readOnly: true
prefix:
type: integer
description: >
The network prefix.
example: 64
readOnly: true
type:
type: string
description: >
The type of address this is.
example: ipv6
readOnly: true
x-linode-cli-display: 2
public:
type: boolean
description: >
Whether this is a public or private IP address.
example: true
readOnly: true
x-linode-cli-display: 3
rdns:
type: string
description: >
The reverse DNS assigned to this address.
example: null
x-linode-cli-display: 4
linode_id:
type: integer
description: >
The ID of the Linode this address currently belongs to.
example: 123
readOnly: true
x-linode-cli-display: 6
region:
type: string
description: >
The Region this address resides in.
example: us-east
readOnly: true
x-linode-filterable: true
x-linode-cli-display: 5
IPv6Pool:
type: object
description: >
An object representing an IPv6 pool.
properties:
range:
type: string
description: >
The IPv6 pool
example: '2600:3c01::02:5000::'
readOnly: true
x-linode-cli-display: 1
region:
type: string
description: >
A pool of IPv6 addresses that are routed to all of
your Linodes in a single Region. Any Linode you own may bring up any
address in this pool at any time, with no external configuration
required.
example: us-east
readOnly: true
x-linode-cli-display: 2
IPv6Range:
type: object
description: >
An object representing an IPv6 range.
properties:
range:
type: string
description: >
The IPv6 range.
example: '2600:3c01::02:5000::'
readOnly: true
x-linode-cli-display: 1
region:
type: string
description: >
A range of IPv6 addresses routed to a single Linode in the given
Region. Your Linode is responsible for routing individual addresses
in the range, or handling traffic for all of the addresses in the
range.
example: us-east
readOnly: true
x-linode-cli-display: 2
Kernel:
type: object
description: Linux kernel object
properties:
id:
type: string
description: The unique ID of this Kernel.
example: linode/latest-64bit
readOnly: true
x-linode-cli-display: 1
label:
x-linode-filterable: true
type: string
description: The friendly name of this Kernel.
example: Latest 64 bit (4.15.7-x86_64-linode102)
readOnly: true
x-linode-cli-display: 2
version:
x-linode-filterable: true
type: string
description: Linux Kernel version.
example: 4.15.7
readOnly: true
x-linode-cli-display: 3
kvm:
x-linode-filterable: true
type: boolean
description: If this Kernel is suitable for KVM Linodes.
example: true
readOnly: true
xen:
x-linode-filterable: true
type: boolean
description: If this Kernel is suitable for Xen Linodes.
example: false
readOnly: true
architecture:
x-linode-filterable: true
type: string
description: The architecture of this Kernel.
enum:
- x86_64
- i386
example: x86_64
readOnly: true
x-linode-cli-display: 4
pvops:
x-linode-filterable: true
type: boolean
description: If this Kernel is suitable for paravirtualized operations.
example: false
readOnly: true
Linode:
type: object
allOf:
- $ref: '#/components/schemas/LinodeBase'
properties:
label:
x-linode-filterable: true
x-linode-cli-display: 2
description: >
The Linode's label is for display purposes only. If no label is provided for a Linode,
a default will be assigned.
Linode labels have the following constraints:
* Must start with an alpha character.
* Must consist of alphanumeric characters, dashes (`-`), and underscores (`_`).
* Cannot have two dashes (`--`) or underscores (`__`) in a row.
region:
x-linode-filterable: true
readOnly: true
description: >
This is the location where the Linode was deployed. This cannot be
changed without
[opening a support ticket](/#operation/createTicket).
x-linode-cli-display: 4
image:
x-linode-filterable: true
readOnly: true
allOf:
- $ref: '#/components/schemas/DiskRequest/properties/image'
x-linode-cli-display: 6
type:
readOnly: true
description: >
This is the [Linode Type](/#operation/getLinodeTypes) that this
Linode was deployed with.
To change a Linode's Type, use
[POST /linode/instances/{linodeId}/resize](/#operation/resizeLinodeInstance).
x-linode-cli-display: 5
group:
deprecated: true
type: string
x-linode-filterable: true
description: >
A deprecated property denoting a group label for this Linode.
example: "Linode-Group"
id:
type: integer
description: >
This Linode's ID which must be provided for all operations impacting this Linode.
example: 123
readOnly: true
x-linode-cli-display: 1
status:
type: string
description: >
A brief description of this Linode's current state. This field may change without
direct action from you. For instance, the status will change to "running"
when the boot process completes.
example: running
readOnly: true
enum:
- running
- offline
- booting
- rebooting
- shutting_down
- provisioning
- deleting
- migrating
- rebuilding
- cloning
- restoring
x-linode-cli-display: 7
x-linode-cli-color:
running: green
offline: red
default_: yellow
hypervisor:
type: string
description: >
The virtualization software powering this Linode.
example: kvm
readOnly: true
enum:
- kvm
created:
type: string
format: date-time
description: When this Linode was created.
example: '2018-01-01T00:01:01'
readOnly: true
updated:
type: string
format: date-time
description: When this Linode was last updated.
example: '2018-01-01T00:01:01'
readOnly: true
ipv4:
type: array
items:
type: string
example:
- 123.45.67.890
readOnly: true
description: |
This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address
upon creation, and may get a single private IPv4 address if needed. You may need to
[open a support ticket](/#operation/createTicket)
to get additional IPv4 addresses.
IPv4 addresses may be reassigned between your Linodes, or shared with other Linodes.
See the [/networking](/#tag/networking) endpoints for details.
x-linode-cli-display: 10
ipv6:
type: string
description: >
This Linode's IPv6 SLAAC addresses. This address is specific to a Linode, and may not
be shared.
example: 'c001:d00d::1234'
readOnly: true
specs:
type: object
description: Information about the resources available to this Linode.
readOnly: true
properties:
disk:
type: integer
description: >
The amount of storage space, in GB. this Linode has access to. A typical Linode
will divide this space between a primary disk with an `image` deployed to it, and
a swap disk, usually 512 MB. This is the default configuration created when
deploying a Linode with an `image` through
[POST /linode/instances](/#operation/createLinodeInstance).
While this configuration is suitable for 99% of use cases, if you need finer control over
your Linode's disks, see the
[/linode/instances/{linodeId}/disks](/#operation/getLinodeDisks)
endpoints.
example: 30720
readOnly: true
memory:
type: integer
description: >
The amount of RAM, in MB, this Linode has access to. Typically a Linode will
choose to boot with all of its available RAM, but this can be configured in a
Config profile, see the
[/linode/instances/{linodeId}/configs](/#operation/getLinodeConfigs)
endpoints and the LinodeConfig object for more information.
example: 2048
readOnly: true
vcpus:
type: integer
description: >
The number of vcpus this Linode has access to. Typically a Linode will choose to
boot with all of its available vcpus, but this can be configured in a Config
Profile, see the
[/linode/instances/{linodeId}/configs](/#operation/getLinodeConfigs)
endpoints and the LinodeConfig object for more information.
example: 1
readOnly: true
transfer:
type: integer
description: The amount of network transfer this Linode is allotted each month.
example: 2000
readOnly: true
alerts:
type: object
properties:
cpu:
type: integer
description: >
The percentage of CPU usage required to trigger an alert. If the average CPU
usage over two hours exceeds this value, we'll send you an alert. If this is set
to 0, the alert is disabled.
example: 90
network_in:
type: integer
description: >
The amount of incoming traffic, in Mbit/s, required to trigger an alert. If the
average incoming traffic over two hours exceeds this value, we'll send you an
alert. If this is set to 0 (zero), the alert is disabled.
example: 10
network_out:
type: integer
description: >
The amount of outbound traffic, in Mbit/s, required to trigger an alert. If the
average outbound traffic over two hours exceeds this value, we'll send you an
alert. If this is set to 0 (zero), the alert is disabled.
example: 10
transfer_quota:
type: integer
description: >
The percentage of network transfer that may be used before an alert is triggered.
When this value is exceeded, we'll alert you. If this is set to 0 (zero), the alert is
disabled.
example: 80
io:
type: integer
description: >
The amount of disk IO operation per second required to trigger an alert. If the
average disk IO over two hours exceeds this value, we'll send you an alert. If set
to 0, this alert is disabled.
example: 10000
backups:
type: object
description: >
Information about this Linode's backups status. For information about available
backups, see [/linode/instances/{linodeId}/backups](/#operation/getBackups).
properties:
enabled:
type: boolean
description: >
If this Linode has the Backup service enabled. To enable backups, see
[POST /linode/instances/{linodeId}/backups/enable](/#operation/enableBackups).
example: true
readOnly: true
schedule:
type: object
properties:
day:
type: string
description: |
The day of the week that your Linode's weekly Backup is taken.
If not set manually, a day will be chosen for you. Backups
are taken every day, but backups taken on this day are
preferred when selecting backups to retain for a longer period.
If not set manually, then when backups are initially enabled, this
may come back as `Scheduling` until the `day` is automatically selected.
example: Saturday
enum:
- Scheduling
- Sunday
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
window:
type: string
description: |
The window in which your backups will be taken, in UTC. A
backups window is a two-hour span of time in which the backup
may occur.
For example, `W10` indicates that your backups should be
taken between 10:00 and 12:00. If you do not choose a backup
window, one will be selected for you automatically.
If not set manually, when backups are initially enabled this
may come back as `Scheduling` until the `window` is automatically selected.
example: W22
enum:
- Scheduling
- W0
- W2
- W4
- W8
- W10
- W12
- W14
- W16
- W18
- W20
- W22
LinodeBase:
type: object
description: Common properties for Linode Request and Response objects.
properties:
label:
type: string
description: >
The Linode's label is for display purposes only. If no label is provided for a Linode,
a default will be assigned.
Linode labels have the following constraints:
* Must start with an alpha character.
* Must consist of alphanumeric characters, dashes (`-`), and underscores (`_`).
* Cannot have two dashes (`--`) or underscores (`__`) in a row.
example: linode123
minLength: 3
maxLength: 32
pattern: '^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$'
group:
deprecated: true
type: string
x-linode-filterable: true
description: >
A deprecated property denoting a group label for this Linode.
example: "Linode-Group"
type:
$ref: '#/components/schemas/LinodeType/properties/id'
region:
$ref: '#/components/schemas/Region/properties/id'
LinodeConfig:
type: object
required:
- label
- devices
properties:
id:
type: integer
description: The ID of this Config.
example: 23456
readOnly: true
x-linode-cli-display: 1
kernel:
type: string
description: A Kernel ID to boot a Linode with. Defaults to "linode/latest-64bit".
example: linode/latest-64bit
x-linode-cli-display: 3
comments:
type: string
description: Optional field for arbitrary User comments on this Config.
example: This is my main Config
memory_limit:
type: integer
description: >
Defaults to the total RAM of the Linode.
example: 2048
run_level:
type: string
description: >
Defines the state of your Linode after booting. Defaults to `default`.
enum:
- default
- single
- binbash
example: default
virt_mode:
type: string
description: >
Controls the virtualization mode. Defaults to `paravirt`.
* `paravirt` is suitable for most cases. Linodes running in paravirt mode
share some qualities with the host, ultimately making it run faster since
there is less transition between it and the host.
* `full_virt` affords more customization, but is slower because 100% of the VM
is virtualized.
enum:
- paravirt
- fullvirt
example: paravirt
helpers:
type: object
description: Helpers enabled when booting to this Linode Config.
properties:
updatedb_disabled:
type: boolean
description: Disables updatedb cron job to avoid disk thrashing.
example: true
distro:
type: boolean
description: Helps maintain correct inittab/upstart console device.
example: true
modules_dep:
type: boolean
description: Creates a modules dependency file for the Kernel you run.
example: true
network:
type: boolean
description: Automatically configures static networking.
example: true
devtmpfs_automount:
type: boolean
description: >
Populates the /dev directory early during boot without udev. Defaults to false.
example: false
label:
x-linode-filterable: true
type: string
description: >
The Config's label is for display purposes only.
example: My Config
minLength: 1
maxLength: 48
x-linode-cli-display: 2
devices:
$ref: '#/components/schemas/Devices'
root_device:
type: string
description: >
The root device to boot. The corresponding disk must be attached.
example: /dev/sda
LinodeRequest:
type: object
description: Common properties for creating and rebuilding Linodes.
properties:
image:
$ref: '#/components/schemas/DiskRequest/properties/image'
root_pass:
$ref: '#/components/schemas/DiskRequest/properties/root_pass'
authorized_keys:
$ref: '#/components/schemas/DiskRequest/properties/authorized_keys'
stackscript_id:
$ref: '#/components/schemas/DiskRequest/properties/stackscript_id'
stackscript_data:
$ref: '#/components/schemas/DiskRequest/properties/stackscript_data'
booted:
type: boolean
writeOnly: true
description: >
This field defaults to `true` if the Linode is created with an Image or from a
Backup.
If it is deployed from an Image or a Backup and you wish it to remain `offline`
after deployment, set this to `false`.
LinodeStats:
type: object
description: >
CPU, IO, IPv4, and IPv6 statistics. Graph data, if available,
is in "[timestamp, reading]" array format. Timestamp is a UNIX timestamp
in EST.
readOnly: true
properties:
cpu:
type: array
description: >
Percentage of CPU used.
items:
type: array
items:
type: number
example:
- 1521483600000
- 0.42
io:
type: object
description: Input/Output statistics.
properties:
io:
type: array
description: Block/s written.
items:
type: array
items:
type: number
example:
- 1521484800000
- 0.19
swap:
type: array
description: Block/s written.
items:
type: array
items:
type: number
example:
- 1521484800000
- 0
netv4:
type: object
description: IPv4 statistics.
properties:
in:
type: array
description: Input stats for IPv4, measured in bits/s (bits/second).
items:
type: array
items:
type: number
example:
- 1521484800000
- 2004.36
out:
type: array
description: Output stats for IPv4, measured in bits/s (bits/second).
items:
type: array
items:
type: number
example:
- 1521484800000
- 3928.91
private_in:
type: array
description: Private IPv4 input statistics, measured in bits/s (bits/second).
items:
type: array
items:
type: number
example:
- 1521484800000
- 0
private_out:
type: array
description: Private IPv4 output statistics, measured in bits/s (bits/second).
items:
type: array
items:
type: number
example:
- 1521484800000
- 5.6
netv6:
type: object
description: IPv6 statistics.
properties:
in:
type: array
description: Input stats for IPv6, measured in bits/s (bits/second).
items:
type: array
items:
type: number
example:
- 1521484800000
- 0
out:
type: array
description: Output stats for IPv6, measured in bits/s (bits/second).
items:
type: array
items:
type: number
example:
- 1521484800000
- 0
private_in:
type: array
description: Private IPv6 input statistics, measured in bits/s (bits/second).
items:
type: array
items:
type: number
example:
- 1521484800000
- 195.18
private_out:
type: array
description: Private IPv6 output statistics, measured in bits/s (bits/second).
items:
type: array
items:
type: number
example:
- 1521484800000
- 5.6
title:
type: string
description: The title for this data set.
example: linode.com - my-linode (linode123456) - day (5 min avg)
LinodeType:
type: object
description: >
Returns collection of Linode types, including pricing and specifications
for each type. These are used when
[creating](/#operation/createLinodeInstance)
or [resizing](/#operation/resizeLinodeInstance)
Linodes.
properties:
id:
readOnly: true
type: string
description: The ID representing the Linode Type.
example: g6-standard-2
x-linode-cli-display: 1
label:
x-linode-filterable: true
type: string
readOnly: true
description: >
The Linode Type's label is for display purposes only.
example: Linode 4GB
x-linode-cli-display: 2
disk:
x-linode-filterable: true
type: integer
readOnly: true
description: >
The Disk size, in MB, of the Linode Type.
example: 81920
x-linode-cli-display: 4
class:
x-linode-filterable: true
type: string
readOnly: true
description: >
The class of the Linode Type. We currently offer three classes of Linodes:
* nanode - Our entry-level Linode Type.
* standard - Our flagship Linode Type.
* highmem - A Linode Type featuring high memory availability.
enum:
- nanode
- standard
- himem
example: standard
x-linode-cli-display: 3
price:
type: object
readOnly: true
description: >
Cost in US dollars, broken down into hourly and monthly charges.
x-linode-cli-display: 9
properties:
hourly:
type: integer
description: Cost (in US dollars) per hour.
example: 0.03
monthly:
type: integer
description: Cost (in US dollars) per month.
example: 20
addons:
type: object
readOnly: true
description: >
A list of optional add-on services for Linodes and their associated
costs.
properties:
backups:
type: object
readOnly: true
description: >
Information about the optional Backup service offered for Linodes.
properties:
price:
type: object
description: Cost of enabling Backups for this Linode Type.
properties:
hourly:
type: integer
description: >
The cost (in US dollars) per hour to add Backups service.
example: 0.008
monthly:
type: integer
description: >
The cost (in US dollars) per month to add Backups service.
example: 5
network_out:
x-linode-filterable: true
type: integer
readOnly: true
description: >
The Mbits outbound bandwidth allocation.
example: 1000
x-linode-cli-display: 7
memory:
x-linode-filterable: true
type: integer
readOnly: true
description: >
Amount of RAM included in this Linode Type.
example: 4096
x-linode-cli-display: 5
transfer:
x-linode-filterable: true
type: integer
readOnly: true
description: >
The monthly outbound transfer amount, in MB.
example: 4000
x-linode-cli-display: 8
vcpus:
x-linode-filterable: true
type: integer
readOnly: true
description: >
The number of VCPU cores this Linode Type offers.
example: 2
x-linode-cli-display: 6
LongviewClient:
type: object
description: >
A LongviewClient is a single monitor set up to track statistics about
one of your servers.
properties:
id:
type: integer
description: >
This Client's unique ID.
example: 789
readOnly: true
x-linode-cli-display: 1
label:
x-linode-filterable: true
type: string
minLength: 3
maxLength: 32
pattern: '[a-zA-Z0-9-_]{3,32}'
description: >
This Client's unique label. This is for display purposes only.
example: client789
x-linode-cli-display: 2
api_key:
type: string
description: >
The API key for this Client, used when configuring the Longview
Client application on your Linode.
example: BD1B4B54-D752-A76D-5A9BD8A17F39DB61
readOnly: true
install_code:
type: string
description: >
The install code for this Client, used when configuring the Longview
Client application on your Linode.
example: BD1B5605-BF5E-D385-BA07AD518BE7F321
readOnly: true
x-linode-cli-display: 4
apps:
type: object
description: >
The apps this Client is monitoring on your Linode. This is configured
when you install the Longview Client application, and is present here
for information purposes only.
readOnly: true
properties:
apache:
type: boolean
description: >
If True, the Apache Longview Client module is monitoring Apache on
your server.
example: true
readOnly: true
nginx:
type: boolean
description: >
If True, the Nginx Longview Client module is monitoring Nginx on
your server.
example: false
readOnly: true
mysql:
type: boolean
description: >
If True, the MySQL Longview Client modules is monitoring MySQL on
your server.
example: true
readOnly: true
created:
type: string
format: date-time
description: >
When this Longview Client was created.
example: 2018-01-01T00:01:01
readOnly: true
x-linode-cli-display: 3
updated:
type: string
format: date-time
description: >
When this Longview Client was last updated.
example: 2018-01-01T00:01:01
readOnly: true
LongviewSubscription:
type: object
description: >
A Longview Subscriptions represents a tier of Longview service you
can subscribe to.
properties:
id:
type: string
description: >
The unique ID of this Subscription tier.
example: longview-10
readOnly: true
x-linode-cli-display: 1
price:
type: object
description: >
Pricing information about this Subscription tier.
readOnly: true
x-linode-cli-display: 4
properties:
hourly:
type: number
description: >
The hourly price, in US dollars, for this Subscription tier.
example: 0.06
readOnly: true
monthly:
type: number
description: >
The maximum monthly price in US Dollars for this Subscription tier.
You will never be charged more than this amount per
month for this subscription.
example: 40
readOnly: true
label:
type: string
description: >
A display name for this Subscription tier.
example: Longivew Pro 10 pack
readOnly: true
x-linode-cli-display: 2
clients_included:
type: integer
description: >
The number of Longview Clients that may be created with this Subscription tier.
example: 10
readOnly: true
x-linode-cli-display: 3
ManagedContact:
type: object
description: >
Information about someone Linode's special forces may contact
in case an issue is detected with a manager service.
properties:
id:
type: integer
description: >
This Contact's unique ID.
example: 567
readOnly: true
x-linode-cli-display: 1
name:
type: string
minLength: 2
maxLength: 64
pattern: '[a-zA-Z0-9-_ ]{2,64}'
description: >
The name of this Contact.
example: John Doe
x-linode-cli-display: 2
email:
type: string
format: email
description: >
The address to email this Contact to alert them of issues.
example: john.doe@example.org
x-linode-cli-display: 3
phone:
type: object
description: >
Information about how to reach this Contact by phone.
x-linode-cli-display: 4
properties:
primary:
type: string
format: phone
description: >
This Contact's primary phone number.
example: 123-456-7890
secondary:
type: string
format: phone
description: >
This Contact's secondary phone number.
example: null
group:
x-linode-filterable: true
deprecated: true
type: string
minLength: 2
maxLength: 50
description: >
A grouping for this Contact. This is for display purposes only.
example: on-call
x-linode-cli-display: 5
updated:
type: string
format: date-time
description: >
When this Contact was last updated.
example: '2018-01-01T00:01:01'
readOnly: true
ManagedCredential:
type: object
description: >
A securely-stored Credential that allows Linode's special forces
to access a Managed server to respond to Issues.
properties:
id:
type: integer
description: >
This Credential's unique ID.
example: 9991
readOnly: true
x-linode-cli-display: 1
label:
type: string
minLength: 2
maxLength: 75
pattern: '[a-zA-Z0-9-_ \.]{2,75}'
description: >
The unique label for this Credential. This is for display purposes
only.
example: prod-password-1
x-linode-cli-display: 2
ManagedIssue:
type: object
description: >
An Issue that was detected with a service Linode is managing.
properties:
id:
type: integer
description: >
This Issue's unique ID.
example: 823
readOnly: true
x-linode-cli-display: 1
created:
type: string
format: date-time
description: >
When this Issue was created. Issues are created in response to issues
detected with Managed Services, so this is also when the Issue was
detected.
example: '2018-01-01T00:01:01'
readOnly: true
x-linode-cli-display: 2
services:
type: array
items:
type: integer
example: 654
description: >
An array of Managed Service IDs that were affected by this Issue.
readOnly: true
x-linode-cli-display: 3
entity:
type: object
description: >
The ticket this Managed Issue opened.
readOnly: true
x-linode-cli-display: 4
properties:
id:
type: integer
description: >
This ticket's ID
example: 98765
readOnly: true
type:
type: string
enum:
- ticket
description: >
The type of entity this is. In this case, it is always a Ticket.
example: ticket
readOnly: true
label:
type: string
description: >
The summary for this Ticket.
example: Managed Issue opened!
readOnly: true
url:
type: string
format: url
description: >
The relative URL where you can access this Ticket.
example: /support/tickets/98765
readOnly: true
ManagedLinodeSettings:
type: object
description: >
Settings for a specific Linode related to Managed Services. There is
one ManagedLinodeSettings object for each Linode on your Account.
properties:
id:
type: integer
description: >
The ID of the Linode these Settings are for.
example: 123
readOnly: true
x-linode-cli-display: 1
label:
type: string
description: >
The label of the Linode these Settings are for.
example: linode123
readOnly: true
x-linode-cli-display: 2
group:
deprecated: true
type: string
description: >
The group of the Linode these Settings are for. This is for display
purposes only.
example: linodes
readOnly: true
x-linode-cli-display: 3
ssh:
type: object
description: >
The SSH settings for this Linode.
x-linode-cli-display: 4
properties:
access:
type: boolean
description: >
If true, Linode special forces may access this Linode over
ssh to respond to Issues.
example: true
user:
type: string
minLength: 0
maxLength: 32
description: >
The user Linode's special forces should use when accessing this
Linode to respond to an issue.
example: linode
ip:
type: string
format: ip
description: >
The IP Linode special forces should use to access this Linode
when responding to an Issue.
example: 12.34.56.78
port:
type: integer
minimum: 1
maximum: 65535
description: >
The port Linode special forces should use to access this Linode
over ssh to respond to an Issue.
example: 22
ManagedService:
type: object
description: >
A service that Linode is monitoring as part of your Managed services.
If issues are detected with this service, a ManagedIssue will be opened
and, optionally, Linode special forces will attempt to resolve the Issue.
properties:
id:
type: integer
description: >
This Service's unique ID.
example: 9944
readOnly: true
x-linode-cli-display: 1
status:
type: string
enum:
- disabled
- pending
- ok
- problem
description: >
The current status of this Service.
example: ok
readOnly: true
x-linode-cli-display: 2
x-linode-cli-color:
ok: green
disabled: red
default_: yellow
service_type:
type: string
enum:
- URL
- TCP
description: >
How this Service is monitored.
example: URL
x-linode-cli-display: 3
label:
type: string
minLength: 3
maxLength: 64
pattern: '[a-zA-Z0-9-_ \.]{3,64}'
description: >
The label for this Service. This is for display purposes only.
example: prod-1
x-linode-cli-display: 4
address:
type: string
format: url
minLength: 3
description: >
The URL at which this Service is monitored.
example: https://example.org
x-linode-cli-display: 5
timeout:
type: integer
minimum: 1
maximum: 255
description: >
How long to wait, in seconds, for a response before considering the
Service to be down.
example: 30
body:
type: string
minLength: 0
maxLength: 100
description: >
What to expect to find in the response body for the Service to be
considered up.
example: it worked
consultation_group:
deprecated: true
type: string
minLength: 0
maxLength: 50
description: >
The group of ManagedContacts who should be notified or consulted
with when an Issue is detected.
example: on-call
x-linode-cli-display: 6
notes:
type: string
description: >
Any information relevant to the Service that Linode special forces
should know when attempting to resolve Issues.
example: The service name is my-cool-application
region:
type: string
description: >
The Region in which this Service is located. This is required if
address is a private IP, and may not be set otherwise.
example: null
credentials:
type: array
items:
type: integer
example: 9991
description: >
An array of ManagedCredential IDs that should be used when attempting to
resolve issues with this Service.
created:
type: string
format: date-time
description: When this Managed Service was created.
example: '2018-01-01T00:01:01'
readOnly: true
updated:
type: string
format: date-time
description: When this Managed Service was last updated.
example: '2018-03-01T00:01:01'
readOnly: true
NodeBalancer:
type: object
description: >
Linode's load balancing solution. Can handle multiple ports, SSL termination,
and any number of backends. NodeBalancer ports are configured with
NodeBalancer Configs, and each config is given one or more NodeBalancer Node that
accepts traffic. The traffic should be routed to the NodeBalancer's ip address,
the NodeBalancer will handle routing individual requests to backends.
properties:
id:
type: integer
description: >
This NodeBalancer's unique ID.
example: 12345
readOnly: true
x-linode-cli-display: 1
label:
x-linode-filterable: true
type: string
minLength: 3
maxLength: 32
pattern: '[a-zA-Z0-9-_]{3,32}'
description: >
This NodeBalancer's label. These must be unique on your Account.
example: balancer12345
x-linode-cli-display: 2
region:
x-linode-filterable: true
type: string
description: >
The Region where this NodeBalancer is located. NodeBalancers only
support backends in the same Region.
example: us-east
readOnly: true
x-linode-cli-display: 3
hostname:
type: string
description: >
This NodeBalancer's hostname, ending with _.nodebalancer.linode.com_
example: nb-207-192-68-16.newark.nodebalancer.linode.com
readOnly: true
x-linode-cli-display: 4
ipv4:
type: string
format: ip
description: >
This NodeBalancer's public IPv4 address.
example: 12.34.56.78
readOnly: true
x-linode-cli-display: 5
ipv6:
type: string
format: ip
description: >
This NodeBalancer's public IPv6 address.
example: null
readOnly: true
x-linode-cli-display: 6
created:
type: string
format: date-time
description: >
When this NodeBalancer was created.
example: 2018-01-01T00:01:01
readOnly: true
updated:
type: string
format: date-time
description: >
When this NodeBalancer was last updated.
example: 2018-03-01T00:01:01
readOnly: true
client_conn_throttle:
type: integer
minimum: 0
maximum: 20
description: >
Throttle connections per second. Set to 0 (zero) to disable throttling.
example: 0
x-linode-cli-display: 6
NodeBalancerConfig:
type: object
description: >
A NodeBalancer config represents the configuration of this NodeBalancer
on a single port. For example, a NodeBalancer Config on port 80 would
typically represent how this NodeBalancer response to HTTP requests.
NodeBalancer configs have a list of backends, called "nodes," that they
forward requests between based on their configuration.
properties:
id:
type: integer
description: This config's unique ID
example: 4567
readOnly: true
x-linode-cli-display: 1
port:
type: integer
minimum: 1
maximum: 65535
description: >
The port this Config is for. These values must be unique across configs
on a single NodeBalancer (you can't have two configs for port 80, for
example). While some ports imply some protocols, no enforcement is done
and you may configure your NodeBalancer however is useful to you. For
example, while port 443 is generally used for HTTPS, you do not need
SSL configured to have a NodeBalancer listening on port 443.
example: 80
x-linode-cli-display: 2
protocol:
type: string
enum:
- http
- https
- tcp
description: >
The protocol this port is configured to serve.
* If this is set to `https` you must include an `ssl_cert` and an `ssl_key`.
example: http
x-linode-cli-display: 3
algorithm:
type: string
enum:
- roundrobin
- leastconn
- source
description: >
What algorithm this NodeBalancer should use for routing traffic to backends.
example: roundrobin
x-linode-cli-display: 4
stickiness:
type: string
enum:
- none
- table
- http_cookie
description: >
Controls how session stickiness is handled on this port.
* If set to `none` connections will always be assigned a backend based on the algorithm configured.
* If set to `table` sessions from the same remote address will be routed to the same
backend.
* For HTTP or HTTPS clients, `http_cookie` allows sessions to be
routed to the same backend based on a cookie set by the NodeBalancer.
example: http_cookie
x-linode-cli-display: 5
check:
type: string
enum:
- none
- connection
- http
- http_body
description: >
The type of check to perform against backends to ensure they are serving
requests. This is used to determine if backends are up or down.
* If `none` no check is performed.
* `connection` requires only a connection to the backend to succeed.
* `http` and `http_body` rely on the backend serving HTTP, and that
the response returned matches what is expected.
example: http_body
check_interval:
type: integer
description: >
How often, in seconds, to check that backends are up and serving requests.
example: 90
check_timeout:
type: integer
minimum: 1
maximum: 30
description: >
How long, in seconds, to wait for a check attempt before considering it failed.
example: 10
check_attempts:
type: integer
minimum: 1
maximum: 30
description: >
How many times to attempt a check before considering a backend to be down.
example: 3
check_path:
type: string
description: >
The URL path to check on each backend. If the backend does not respond
to this request it is considered to be down.
example: /test
check_body:
type: string
description: >
This value must be present in the response body of the check in order for
it to pass. If this value is not present in the response body of a check
request, the backend is considered to be down.
example: it works
check_passive:
type: boolean
description: >
If true, any response from this backend with a `5xx` status code will be
enough for it to be considered unhealthy and taken out of rotation.
example: true
x-linode-cli-display: 6
cipher_suite:
type: string
enum:
- recommended
- legacy
description: >
What ciphers to use for SSL connections served by this NodeBalancer.
* `legacy` is considered insecure and should only be used if necessary.
example: recommended
x-linode-cli-display: 7
x-linode-cli-color:
legacy: red
default_: white
nodebalancer_id:
type: integer
description: >
The ID for the NodeBalancer this config belongs to.
example: 12345
readOnly: true
ssl_commonname:
type: string
description: >
The common name for the SSL certification this port is serving
if this port is not configured to use SSL.
example: null
readOnly: true
x-linode-cli-display: 8
ssl_fingerprint:
type: string
description: >
The fingerprint for the SSL certification this port is serving
if this port is not configured to use SSL.
example: null
readOnly: true
x-linode-cli-display: 9
ssl_cert:
type: string
description: >
The certificate this port is serving. This is not returned. If set,
this field will come back as "&lt;REDACTED&gt;".
Please use the `ssl_commonname` and `ssl_fingerprint` to identify the certificate.
example: null
ssl_key:
type: string
description: >
The private key corresponding to this port's certificate. This is not
returned. If set, this field will come back as "&lt;REDACTED&gt;".
Please use the `ssl_commonname` and `ssl_fingerprint` to identify the certificate.
example: null
nodes_status:
type: object
description: >
A structure containing information about the health of the backends
for this port. This information is updated periodically as checks
are performed against backends.
readOnly: true
x-linode-cli-display: 10
properties:
up:
type: integer
description: >
The number of backends considered to be "UP" and healthy, and that
are serving requests.
example: 4
readOnly: true
down:
type: integer
description: >
The number of backends considered to be "DOWN" and unhealthy. These
are not in rotation, and not serving requests.
example: 0
readOnly: true
NodeBalancerNode:
type: object
description: >
A NodeBalancerNode represents a single backend serving requests for a single
port of a NodeBalancer. Nodes are specific to NodeBalancer Configs, and serve
traffic over their private IP. If the same Linode is serving traffic for more
than one port on the same NodeBalancer, one NodeBalancer Node is required for
each config (port) it should serve requests on. For example, if you have
four backends, and each should response to both HTTP and HTTPS requests, you
will need two NodeBalancerConfigs (port 80 and port 443) and four backends
each - one for each of the Linodes serving requests for that port.
properties:
id:
type: integer
description: This node's unique ID.
example: 54321
readOnly: true
x-linode-cli-display: 1
address:
type: string
format: ip
description: >
The private IP Address where this backend can be reached. This _must_
be a private IP address.
example: 192.168.210.120:80
x-linode-cli-display: 3
label:
type: string
minLength: 3
maxLength: 32
description: >
The label for this node. This is for display purposes only.
example: node54321
x-linode-cli-display: 2
status:
type: string
enum:
- unknown
- UP
- DOWN
description: >
The current status of this node, based on the configured checks
of its NodeBalancer Config.
example: UP
readOnly: true
x-linode-cli-display: 4
x-linode-cli-color:
UP: green
unknown: yellow
DOWN: red
default_: white
weight:
type: integer
minimum: 1
maximum: 255
description: >
Used when picking a backend to serve a request and is not pinned to
a single backend yet. Nodes with a higher weight will receive more
traffic.
example: 50
x-linode-cli-display: 5
mode:
type: string
enum:
- accept
- reject
- drain
description: >
The mode this NodeBalancer should use when sending traffic to this backend.
* If set to `accept` this backend is accepting traffic.
* If set to `reject` this backend will not receive traffic.
* If set to `drain` this backend will not receive _new_ traffic, but connections already
pinned to it will continue to be routed to it.
example: accept
x-linode-cli-display: 6
config_id:
type: integer
description: >
The NodeBalancer Config ID that this Node belongs to.
example: 4567
readOnly: true
nodebalancer_id:
type: integer
description: >
The NodeBalancer ID that this Node belongs to.
example: 12345
readOnly: true
Notification:
type: object
description: >
An important, often time-sensitive item related to your Account.
properties:
entity:
type: object
readOnly: true
description: Detailed information about the Notification.
properties:
id:
type: integer
description: >
The unique ID of the Notification's entity, based on the entity
type.
example: 3456
label:
type: string
description: >
The current label for this Notification's entity.
example: Linode not booting.
type:
type: string
description: The type of entity this is related to.
example: ticket
url:
type: string
description: >
The URL where you can access the object this Notification is for.
If a relative URL, it is relative to the domain you retrieved the
Notification from.
example: /support/tickets/3456
label:
type: string
description: >
A short description of this Notification.
example: You have an important ticket open!
readOnly: true
x-linode-cli-display: 1
message:
type: string
readOnly: true
description: A human-readable description of the Notification.
example: You have an important ticket open!
x-linode-cli-display: 2
type:
type: string
enum:
- migration_scheduled
- migration_pending
- reboot_scheduled
- outage
- payment_due
- ticket_important
- ticket_abuse
- notice
readOnly: true
description: The type of Notification this is.
example: ticket_important
severity:
type: string
enum:
- minor
- major
- critical
description: >
The severity of this Notification. This field can be used to
decide how prominently to display the Notification, what color
to make the display text, etc.
example: major
readOnly: true
x-linode-cli-display: 3
x-linode-cli-color:
critical: b
minor: blue
default_: white
when:
type: string
readOnly: true
format: date-time
description: >
If this Notification is of an Event that will happen at a fixed,
future time, this is when the named action will be taken. For
example, if a Linode is to be migrated in response to a
Security Advisory, this field will contain the approximate time the
Linode will be taken offline for migration.
example: null
x-linode-cli-display: 4
x-linode-cli-color:
None: black
default_: white
until:
type: string
format: date-time
description: >
If this Notification has a duration, this will be the ending time
for the Event/action. For example, if there is scheduled
maintenance for one of our systems, `until` would be set to the end
of the maintenance window.
example: null
readOnly: true
x-linode-cli-display: 5
x-linode-cli-color:
None: black
default_: white
OAuthClient:
type: object
description: >
A third-party application registered to Linode that users may log into
with their Linode account through our authentication server at
https://login.linode.com. Using an OAuth Client, a third-party
developer may be given access to some, or all, of a User's account for
the purposes of their application.
properties:
id:
type: string
description: >
The OAuth Client ID. This is used to identify the client, and is a
publicly-known value (it is not a secret).
example: 2737bf16b39ab5d7b4a1
readOnly: true
x-linode-cli-display: 1
redirect_uri:
type: string
format: url
description: >
The location a successful log in from https://login.linode.com should be
redirected to for this client. The receiver of this redirect should be
ready to accept an OAuth exchange code and finish the OAuth exchange.
example: https://example.org/oauth/callback
x-linode-cli-display: 5
label:
x-linode-filterable: true
type: string
minLength: 1
maxLength: 512
description: >
The name of this application. This will be presented to users when they
are asked to grant it access to their Account.
example: Test_Client_1
x-linode-cli-display: 2
status:
type: string
enum:
- active
- disabled
- suspended
description: >
The status of this application. `active` by default.
example: active
readOnly: true
x-linode-cli-display: 3
x-linode-cli-color:
suspended: red
default_: white
secret:
type: string
description: >
The OAuth Client secret, used in the OAuth exchange. This is returned
as `<REDACTED>` except when an OAuth Client is created or its secret
is reset. This is a secret, and should not be shared or disclosed
publicly.
example: <REDACTED>
readOnly: true
thumbnail_url:
type: string
format: url
description: >
The URL where this client's thumbnail may be viewed, or `null` if this client
does not have a thumbnail set.
example: https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail
readOnly: true
public:
x-linode-filterable: true
type: boolean
description: >
If this is a public or private OAuth Client. Public clients have a slightly
different authentication workflow than private clients. See the
[OAuth spec](https://oauth.net/2/) for more details.
example: false
readOnly: true
x-linode-cli-display: 4
PaginationEnvelope:
type: object
description: >
An envelope for paginated response. When accessing a collection through a GET endpoint, the
results are wrapped in this envelope which includes metadata about those results.
required:
- pages
- page
- results
- data
properties:
data:
type: array
readOnly: true
pages:
type: integer
readOnly: true
example: 1
page:
type: integer
readOnly: true
example: 1
results:
type: integer
readOnly: true
example: 1
Payment:
type: object
description: Payment object response.
properties:
id:
type: integer
readOnly: true
description: The unique ID of the Payment.
example: 123
x-linode-cli-display: 1
date:
type: string
readOnly: true
format: date-time
description: When the Payment was made.
example: '2018-01-15T00:01:01'
x-linode-cli-display: 2
usd:
type: integer
readOnly: true
description: The amount, in US dollars, of the Payment.
example: '120.50'
x-linode-cli-display: 3
PaymentRequest:
type: object
description: Payment object request.
required:
- cvv
- usd
properties:
cvv:
type: string
description: >
CVV (Card Verification Value) of the credit card to be used for
the Payment.
example: '123'
usd:
type: string
description: >
The amount in US Dollars of the Payment.
example: '120.50'
PayPal:
type: object
required:
- cancel_url
- redirect_url
- usd
description: >
An object representing the staging of a Payment via PayPal.
properties:
cancel_url:
type: string
description: The URL to have PayPal redirect to when Payment is cancelled.
example: https://example.org
redirect_url:
type: string
description: The URL to have PayPal redirect to when Payment is approved.
example: https://example.org
usd:
type: string
description: The amount, in US dollars, of the Payment.
example: '120.50'
PayPalExecute:
type: object
required:
- payer_id
- payment_id
description: >
An object representing an execution of Payment to PayPal to capture the
funds and credit your Linode Account.
properties:
payer_id:
type: string
description: >
The PayerID returned by PayPal during the transaction authorization
process.
example: ABCDEFGHIJKLM
payment_id:
type: string
description: >
The PaymentID returned from
[POST /account/payments/paypal](/#operation/createPayPalPayment) that has
been approved with PayPal.
example: PAY-1234567890ABCDEFGHIJKLMN
PersonalAccessToken:
type: object
description: >
A Personal Access Token is a token generated manually to access the API
without going through an OAuth login. Personal Access Tokens can have
scopes just like OAuth tokens do, and are commonly used to give access
to command-line tools like the Linode CLI, or when writing your own
integrations.
properties:
id:
type: integer
description: >
This token's unique ID, which can be used to revoke it.
example: 123
readOnly: true
x-linode-cli-display: 1
scopes:
type: string
format: oauth-scopes
description: >
The scopes this token was created with. These define what parts of
the Account the token can be used to access. Many command-line tools,
such as the [Linode CLI](https://github.com/linode/linode-cli),
require tokens with access to `*`. Tokens with more restrictive scopes
are generally more secure.
example: '*'
readOnly: true
x-linode-cli-display: 3
created:
type: string
format: date-time
description: >
The date and time this token was created.
x-linode-filterable: true
example: 2018-01-01T00:01:01
readOnly: true
x-linode-cli-display: 4
label:
type: string
minLength: 1
maxLength: 100
description: >
This token's label. This is for display purposes only, but can be used to
more easily track what you're using each token for.
x-linode-filterable: true
example: linode-cli
x-linode-cli-display: 2
token:
type: string
description: >
The token used to access the API. When the token is created, the full token
is returned here. Otherwise, only the first 16 characters are returned.
example: abcdefghijklmnop
readOnly: true
x-linode-cli-display: 5
expiry:
type: string
format: date-time
description: >
When this token will expire. Personal Access Tokens cannot be renewed, so
after this time the token will be completely unusable and a new token will
need to be generated. Tokens may be created with "null" as their expiry
and will never expire unless revoked.
x-linode-cli-display: 6
example: '2018-01-01T13:46:32'
Profile:
type: object
description: >
A Profile represents your User in our system. This is where you can change
information about your User. This information is available to any OAuth Client
regardless of requested scopes, and can be used to populate User information
in third-party applications.
properties:
uid:
type: integer
description: >
Your unique ID in our system. This value will never change, and can
safely be used to identify your User.
example: 1234
readOnly: true
username:
type: string
description: >
Your username, used for logging in to our system.
example: exampleUser
readOnly: true
x-linode-cli-display: 1
email:
type: string
format: email
description: >
Your email address. This address will be used for communication with Linode
as necessary.
example: example-user@gmail.com
x-linode-cli-display: 2
timezone:
type: string
description: >
The timezone you prefer to see times in. This is not used by the API, and is
for the benefit of clients only. All times the API returns are in UTC.
example: US/Eastern
email_notifications:
type: boolean
description: >
If true, you will receive email notifications about account activity. If false,
you may still receive business-critical communications through email.
example: true
referrals:
type: object
description: >
Information about your status in our referral program.
readOnly: true
properties:
code:
type: string
description: >
Your referral code. If others use this when signing up for Linode, you will
receive account credit.
example: 871be32f49c1411b14f29f618aaf0c14637fb8d3
readOnly: true
url:
type: string
format: url
description: >
Your referral url, used to direct others to sign up for Linode with your referral
code.
example: https://www.linode.com/?r=871be32f49c1411b14f29f618aaf0c14637fb8d3
readOnly: true
total:
type: integer
description: >
The number of users who have signed up with your referral code.
example: 0
readOnly: true
completed:
type: integer
description: >
The number of completed signups with your referral code.
example: 0
readOnly: true
pending:
type: integer
description: >
The number of pending signups with your referral code. You will not receive
credit for these signups until they are completed.
example: 0
readOnly: true
credit:
type: integer
description: >
The amount of account credit in US Dollars issued to you through
the referral program.
example: 0
readOnly: true
ip_whitelist_enabled:
deprecated: true
type: boolean
description: >
If true, logins for your User will only be allowed from whitelisted IPs.
This setting is currently deprecated, and cannot be enabled.
If you disable this setting, you will not be able to re-enable it.
example: false
lish_auth_method:
type: string
enum:
- password_keys
- keys_only
- disabled
description: >
What methods of authentication are allowed when connecting via
Lish. "keys_only" is the most secure if you intend to use Lish,
and "disabled" is recommended if you do not intend to use Lish at
all.
example: keys_only
authorized_keys:
type: array
items:
type: string
format: ssh-key
description: >
The list of SSH Keys authorized to use Lish for your User. This value is ignored if
`lish_auth_method` is "disabled."
example: null
two_factor_auth:
type: boolean
description: >
If true, logins from untrusted computers will require Two Factor
Authentication. See [/profile/tfa-enable](/#operation/tfaEnable) to
enable Two Factor Authentication.
example: true
x-linode-cli-display: 4
restricted:
type: boolean
description: >
If true, your User has restrictions on what can be accessed on your
Account. To get details on what entities/actions you can
access/perform, see [/profile/grants](/#operation/getProfileGrants).
example: false
x-linode-cli-display: 3
Region:
type: object
description: An area where Linode services are available.
properties:
id:
readOnly: true
type: string
description: The unique ID of this Region.
example: us-east
x-linode-cli-display: 1
country:
type: string
description: The country where this Region resides.
example: us
readOnly: true
x-linode-cli-display: 2
RescueDevices:
type: object
properties:
sda:
$ref: '#/components/schemas/Device'
sdb:
$ref: '#/components/schemas/Device'
sdc:
$ref: '#/components/schemas/Device'
sdd:
$ref: '#/components/schemas/Device'
sde:
$ref: '#/components/schemas/Device'
sdf:
$ref: '#/components/schemas/Device'
sdg:
$ref: '#/components/schemas/Device'
StackScript:
type: object
description: >
A StackScript enables you to quickly deploy a
fully-configured application in an automated manner.
properties:
id:
type: integer
description: The unique ID of this StackScript.
example: 10079
readOnly: true
x-linode-cli-display: 1
username:
type: string
description: >
The User who created the StackScript.
example: myuser
readOnly: true
x-linode-cli-display: 2
user_gravatar_id:
type: string
description: >
The Gravatar ID for the User who created the StackScript.
example: a445b305abda30ebc766bc7fda037c37
readOnly: true
label:
x-linode-filterable: true
type: string
description: >
The StackScript's label is for display purposes only.
example: a-stackscript
minLength: 3
maxLength: 128
x-linode-cli-display: 3
description:
x-linode-filterable: true
type: string
description: >
A description for the StackScript.
example: >
This StackScript installs and configures MySQL
images:
type: array
x-linode-filterable: true
description: >
An array of Image IDs representing the Images that this StackScript
is compatible for deploying with.
items:
type: string
example:
- linode/debian9
- linode/debian8
x-linode-cli-display: 4
deployments_total:
type: integer
description: >
The total number of times this StackScript has been deployed.
example: 12
readOnly: true
deployments_active:
type: integer
description: >
Count of currently active, deployed Linodes created from
this StackScript.
example: 1
readOnly: true
is_public:
x-linode-filterable: true
type: boolean
description: >
This determines whether other users can use your StackScript.
**Once a StackScript is made public, it cannot be made private.**
example: true
x-linode-cli-display: 5
created:
type: string
format: date-time
description: >
The date this StackScript was created.
readOnly: true
example: "2018-01-01T00:01:01"
x-linode-cli-display: 6
updated:
type: string
format: date-time
description: >
The date this StackScript was last updated.
readOnly: true
example: "2018-01-01T00:01:01"
x-linode-cli-display: 7
rev_note:
x-linode-filterable: true
type: string
description: >
This field allows you to add notes for the set of revisions made to
this StackScript.
example: Set up MySQL
script:
type: string
description: >
The script to execute when provisioning a new Linode with this Stackscript.
example: >
"#!/bin/bash"
user_defined_fields:
type: array
description: >
This is a list of fields defined with a special syntax inside this StackScript
that allow for supplying customized parameters during deployment. See
[Variables and UDFs](https://www.linode.com/docs/platform/stackscripts/#variables-and-udfs)
for more information.
items:
$ref: '#/components/schemas/UserDefinedField'
readOnly: true
example:
label: Enter the DB password
name: DB_PASSWORD
example: hunter2
SupportTicket:
type: object
description: >
A Support Ticket opened on your Account.
properties:
id:
type: integer
readOnly: true
description: >
The ID of the Support Ticket.
example: 11223344
x-linode-cli-display: 1
attachments:
type: array
description: >
A list of filenames representing attached files associated
with this Ticket.
readOnly: true
items:
type: string
example:
- screenshot.jpg
- screenshot.txt
closed:
x-linode-filterable: true
type: string
format: date-time
readOnly: true
description: >
The date and time this Ticket was closed.
example: '2015-06-04T16:07:03'
description:
type: string
readOnly: true
description: >
The full details of the issue or question.
minLength: 1
maxLength: 65000
example: >
I'm having trouble setting the root password on my Linode.
I tried following the instructions but something is not
working and I'm not sure what I'm doing wrong. Can you please
help me figure out how I can reset it?
x-linode-cli-display: 5
entity:
type: object
readOnly: true
description: >
The entity this Ticket was opened for.
x-linode-cli-display: 6
properties:
id:
type: integer
readOnly: true
description: >
The unique ID for this Ticket's entity.
example: 10400
label:
type: string
readOnly: true
description: >
The current label of this entity.
example: linode123456
type:
type: string
readOnly: true
description: >
The type of entity this is related to.
example: linode
url:
type: string
readOnly: true
description: >
The URL where you can access the object this event is
for. If a relative URL, it is relative to the domain you
retrieved the entity from.
example: /v4/linode/instances/123456
gravatar_id:
type: string
readOnly: true
description: >
The Gravatar ID of the User who opened this Ticket.
example: 474a1b7373ae0be4132649e69c36ce30
opened:
x-linode-filterable: true
type: string
format: date-time
readOnly: true
description: >
The date and time this Ticket was created.
example: '2015-06-04T14:16:44'
x-linode-cli-display: 4
opened_by:
type: string
readOnly: true
description: >
The User who opened this Ticket.
example: some_user
x-linode-cli-display: 3
status:
type: string
readOnly: true
description: The current status of this Ticket.
enum:
- closed
- new
- open
example: open
summary:
type: string
readOnly: true
minLength: 1
maxLength: 64
description: >
The summary or title for this Ticket.
example: >
Having trouble resetting root password on my Linode
x-linode-cli-display: 2
updated:
x-linode-filterable: true
type: string
format: date-time
readOnly: true
description: >
The date and time this Ticket was last updated.
example: '2015-06-04T16:07:03'
updated_by:
type: string
readOnly: true
description: >
The User who last updated this Ticket.
example: some_other_user
SupportTicketReply:
type: object
description: >
An object representing a reply to a Support Ticket.
properties:
created:
type: string
format: date-time
readOnly: true
description: >
The date and time this Ticket reply was created.
example: '2015-06-02T14:31:41'
x-linode-cli-display: 3
created_by:
type: string
readOnly: true
description: >
The User who submitted this reply.
example: John Q. Linode
x-linode-cli-display: 2
description:
type: string
readOnly: true
description: >
The body of this Support Ticket reply.
example: >
Hello,\nI'm sorry to hear that you are having trouble resetting the
root password of your Linode. Just to be sure, have you tried to
follow the instructions in our online documentation? The link is here:\n
\nhttps://linode.com/docs/quick-answers/linode-platform/reset-the-root-password-on-your-linode/
\n\nIf you have, please reply with any additional steps you have also
taken.\n\nRegards, Linode Support Team
from_linode:
type: boolean
readOnly: true
description: >
If set to true, this reply came from a Linode employee.
example: true
gravatar_id:
type: string
readOnly: true
description: >
The Gravatar ID of the User who created this reply.
example: 474a1b7373ae0be4132649e69c36ce30
id:
type: integer
readOnly: true
description: >
The unique ID of this Support Ticket reply.
example: 11223345
x-linode-cli-display: 1
SupportTicketRequest:
type: object
required:
- summary
- description
description: >
An object representing a created Support Ticket - a question or issue
and request for help from the Linode support team.
Only one of the ID attributes (`linode_id`, `domain_id`, etc.) can be set
on a single Support Ticket.
properties:
description:
type: string
description: >
The full details of the issue or question.
minLength: 1
maxLength: 65000
example: >
I'm having trouble setting the root password on my Linode.
I tried following the instructions but something is not
working and I'm not sure what I'm doing wrong. Can you please
help me figure out how I can reset it?
domain_id:
type: integer
description: >
The ID of the Domain this ticket is regarding, if relevant.
example: null
linode_id:
type: integer
description: >
The ID of the Linode this ticket is regarding, if relevant.
example: 123
longviewclient_id:
type: integer
description: >
The ID of the Longview client this ticket is regarding, if relevant.
example: null
nodebalancer_id:
type: integer
description: >
The ID of the NodeBalancer this ticket is regarding, if relevant.
example: null
summary:
type: string
minLength: 1
maxLength: 64
description: >
The summary or title for this SupportTicket.
example: >
Having trouble resetting root password on my Linode
volume_id:
type: integer
description: >
The ID of the Volume this ticket is regarding, if relevant.
example: null
Transfer:
type: object
description: >
An object representing your network utilization for the current month,
in Gigabytes.
properties:
billable:
type: integer
readOnly: true
description: >
The amount of your transfer pool that is billable this billing cycle.
example: 0
x-linode-cli-display: 3
quota:
type: integer
readOnly: true
description: >
The amount of network usage allowed this billing cycle.
example: 9141
x-linode-cli-display: 1
used:
type: integer
readOnly: true
description: >
The amount of network usage you have used this billing cycle.
example: 2
x-linode-cli-display: 2
User:
type: object
description: >
A User on your Account. Unrestricted users can log in and access information about
your Account, while restricted users may only access entities or perform
actions they've been granted access to.
properties:
username:
type: string
pattern: ^[a-zA-Z0-9]((?![_-]{2,})[a-zA-Z0-9-_])+[a-zA-Z0-9]$
minLength: 3
maxLength: 32
description: >
This User's username. This is used for logging in, and may also be
displayed alongside actions the User performs (for example, in Events
or public StackScripts).
x-linode-filterable: true
example: example_user
x-linode-cli-display: 1
email:
type: string
format: email
description: >
The email address for this User, for account management
communications, and may be used for other communications as configured.
example: example_user@linode.com
readOnly: true
x-linode-cli-display: 2
restricted:
type: boolean
description: >
If true, this User must be granted access to perform actions or access
entities on this Account. See
[/account/users/{username}/grants](/#operation/getUserGrants)
for details on how to configure grants for a restricted User.
example: true
x-linode-cli-display: 3
UserDefinedField:
type: object
required:
- label
- name
- example
description: >
A custom field defined by the User with a special syntax within a
StackScript. Derived from the contents of the script.
properties:
label:
type: string
description: >
A human-readable label for the field that will serve as the input
prompt for entering the value during deployment.
example: Enter the password
readOnly: true
name:
type: string
description: >
The name of the field.
example: DB_PASSWORD
readOnly: true
example:
type: string
description: >
An example value for the field.
example: hunter2
readOnly: true
oneOf:
type: string
description: >
A list of acceptable single values for the field.
example: avalue,anothervalue,thirdvalue
readOnly: true
manyOf:
type: string
description: >
A list of acceptable values for the field in any quantity,
combination or order.
example: avalue,anothervalue,thirdvalue
readOnly: true
Volume:
type: object
required:
- label
description: >
A Block Storage Volume associated with your Account.
properties:
id:
type: integer
description: The unique ID of this Volume.
example: 12345
readOnly: true
x-linode-cli-display: 1
label:
x-linode-filterable: true
type: string
description: >
The Volume's label is for display purposes only.
example: my-volume
minLength: 1
maxLength: 32
pattern: '^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$'
x-linode-cli-display: 2
filesystem_path:
type: string
description: >
The full filesystem path for the Volume based on the Volume's label.
Path is /dev/disk/by-id/scsi-0Linode_Volume_ + Volume label.
example: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
readOnly: true
status:
type: string
description: >
Can be one of `creating`, `active`, `resizing`, `deleting`,
`deleted`, and `contact_support`:
* `creating` - the Volume is being created and is not yet available
for use.
* `active` - the Volume is online and available for use.
* `resizing` - the Volume is in the process of upgrading
its current capacity.
* `deleting` - the Volume is being deleted and is unavailable for use.
* `deleted` - the Volume has been deleted.
* `contact_support` - there is a problem with your Volume. Please
[open a Support Ticket](/#operation/createTicket) to resolve the issue.
enum:
- creating
- active
- resizing
- deleting
- deleted
- contact_support
example: active
readOnly: true
x-linode-cli-display: 3
x-linode-cli-color:
active: green
contact_support: red
default_: yellow
size:
type: integer
description: >
The Volume's size, in GiB. Minimum size is 10GiB, maximum size is 10240GiB.
minimum: 10
maximum: 10240
x-linode-cli-display: 4
example: 30
region:
$ref: '#/components/schemas/Region/properties/id'
x-linode-cli-display: 5
linode_id:
type: integer
description: >
If a Volume is attached to a specific Linode, the ID of that Linode
will be displayed here.
example: 12346
x-linode-cli-display: 6
created:
type: string
format: date-time
description: When this Volume was created.
example: '2018-01-01T00:01:01'
readOnly: true
updated:
type: string
format: date-time
description: When this Volume was last updated.
example: '2018-01-01T00:01:01'
readOnly: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment