diff --git a/.gitignore b/.gitignore
index 078de53..a8bc308 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
/linode-cli-5.13.2.tar.gz
/linode-cli-5.15.0.tar.gz
/linode-cli-5.17.1.tar.gz
+/linode-cli-5.23.0.tar.gz
diff --git a/linode-cli.spec b/linode-cli.spec
index 4c0375d..72962db 100644
--- a/linode-cli.spec
+++ b/linode-cli.spec
@@ -1,5 +1,5 @@
Name: linode-cli
-Version: 5.17.1
+Version: 5.23.0
Release: %autorelease
Summary: Official command-line interface to the Linode platform
diff --git a/openapi.yaml b/openapi.yaml
index 8d0cd48..a6ab427 100644
--- a/openapi.yaml
+++ b/openapi.yaml
@@ -1,6 +1,6 @@
openapi: 3.0.1
info:
- version: 4.115.0
+ version: 4.136.0
title: Linode API
description: |
@@ -143,7 +143,7 @@ info:
|-----------------------|--------|
| **Authorization URL** | https://login.linode.com/oauth/authorize |
| **Token URL** | 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.
- `firewall:read_only` - Allows access to GET information about your Firewalls.
- `firewall:read_write` - Allows access to all Firewall endpoints.
- `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.
- `lke:read_only` - Allows access to GET LKE Clusters on your Account.
- `lke:read_write` - Allows access to all endpoints related to LKE Clusters on your Account.
- `longview:read_only` - Allows access to GET your Longview Clients.
- `longview:read_write` - Allows access to all endpoints related to your Longview Clients.
- `maintenance:read_only` - Allows access to GET information about Maintenance on your account.
- `nodebalancers:read_only` - Allows access to GET NodeBalancers on your Account.
- `nodebalancers:read_write` - Allows access to all NodeBalancer endpoints.
- `object_storage:read_only` - Allows access to GET information related to your Object Storage.
- `object_storage:read_write` - Allows access to all Object Storage 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.
|
+ | **Scopes** | - `account:read_only` - Allows access to GET information about your Account.
- `account:read_write` - Allows access to all endpoints related to your Account.
- `databases:read_only` - Allows access to GET Managed Databases on your Account.
- `databases:read_write` - Allows access to all endpoints related to your Managed Databases.
- `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.
- `firewall:read_only` - Allows access to GET information about your Firewalls.
- `firewall:read_write` - Allows access to all Firewall endpoints.
- `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.
- `lke:read_only` - Allows access to GET LKE Clusters on your Account.
- `lke:read_write` - Allows access to all endpoints related to LKE Clusters on your Account.
- `longview:read_only` - Allows access to GET your Longview Clients.
- `longview:read_write` - Allows access to all endpoints related to your Longview Clients.
- `maintenance:read_only` - Allows access to GET information about Maintenance on your account.
- `nodebalancers:read_only` - Allows access to GET NodeBalancers on your Account.
- `nodebalancers:read_write` - Allows access to all NodeBalancer endpoints.
- `object_storage:read_only` - Allows access to GET information related to your Object Storage.
- `object_storage:read_write` - Allows access to all Object Storage 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.
|
## Requests
@@ -335,6 +335,9 @@ info:
]
}'
```
+ ## Time Values
+
+ All times returned by the API are in UTC, regardless of the timezone configured within your user's profile (see `timezone` property within [Profile View](/docs/api/profile/#profile-view__responses)).
## Rate Limiting
@@ -343,6 +346,11 @@ info:
**Note:** There may be rate limiting applied at other levels outside of the API, for example, at the load balancer.
+ Creating Linodes has a dedicated limit of 10 requests per 30 seconds per user.
+ That endpoint is:
+
+ * [Linode Create](/docs/api/linode-instances/#linode-create)
+
`/stats` endpoints have their own dedicated limits of 100 requests per minute per user.
These endpoints are:
@@ -433,7 +441,12 @@ paths:
- oauth:
- account:read_write
requestBody:
- description: Update contact and billing information.
+ description: |
+ Update contact and billing information.
+
+ Account properties that are excluded from a request remain unchanged.
+
+ When updating an Account's `country` to "US", an error is returned if the Account's `zip` is not a valid US zip code.
required: true
content:
application/json:
@@ -464,15 +477,25 @@ paths:
"last_name": "Smith",
"phone": "555-555-1212",
"state": "PA",
- "zip": 19102,
- }
+ "tax_id": "ATU99999999",
+ "zip": "19102"
}' \
https://api.linode.com/v4/account
- lang: CLI
source: >
linode-cli account update \
+ --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
+ --last_name Smith \
+ --phone 555-555-1212 \
+ --state PA \
+ --tax_id ATU99999999 \
+ --zip 19102
/account/cancel:
x-linode-cli-command: account
post:
@@ -2042,13 +2065,7 @@ paths:
- Account
summary: PayPal Payment Stage
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](/docs/api/account/#stagedapproved-paypal-payment-execute)
- to complete the Payment.
-
- **Note**: This endpoint is deprecated and may be removed in a future release. PayPal can now be
+ **Note**: This endpoint is disabled and no longer accessible. PayPal can be
designated as a Payment Method for automated payments using
[Cloud Manager](/docs/guides/manage-billing-in-cloud-manager/#adding-a-new-payment-method).
operationId: createPayPalPayment
@@ -2116,12 +2133,8 @@ paths:
- Account
summary: Staged/Approved PayPal Payment Execute
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.
-
- **Note**: This endpoint is deprecated and may be removed in a future release. PayPal can now be
- designated as a Payment Method for automated or manual payments using
+ **Note**: This endpoint is disabled and no longer accessible. PayPal can be
+ designated as a Payment Method for automated payments using
[Cloud Manager](/docs/guides/manage-billing-in-cloud-manager/#adding-a-new-payment-method).
operationId: executePayPalPayment
x-linode-cli-action: paypal-execute
@@ -2621,7 +2634,7 @@ paths:
email address. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. See
our [Linode Managed guide](/docs/platform/linode-managed/)
to learn more.
- operationId: enableAccountManged
+ operationId: enableAccountManaged
x-linode-cli-action: enable-managed
security:
- personalAccessToken: []
@@ -2992,6 +3005,7 @@ paths:
"global": {
"add_linodes": true,
"add_nodebalancers": false,
+ "add_databases": true;
"add_domains": true,
"add_longview": false,
"add_stackscripts": true,
@@ -3062,187 +3076,399 @@ paths:
]
}' \
https://api.linode.com/v4/account/users/example_user/grants
- /domains:
- x-linode-cli-command: domains
+ /databases/engines:
+ x-linode-cli-command: databases
get:
- x-linode-grant: read_only
+ tags:
+ - Databases
+ summary: Managed Database Engines List
+ operationId: getDatabasesEngines
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: engines
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
+ description: |
+ Display all available Managed Database engine types and versions. Engine IDs are used when creating new Managed Databases.
+ responses:
+ '200':
+ description: Returns a paginated list of all available Managed Database engines and versions.
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/PaginationEnvelope'
+ - type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/DatabaseEngine'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl https://api.linode.com/v4/databases/engines/
+ - lang: CLI
+ source: >
+ linode-cli databases engines
+ /databases/engines/{engineId}:
+ parameters:
+ - name: engineId
+ in: path
+ description: The ID of the Managed Database engine.
+ required: true
+ schema:
+ type: string
+ x-linode-cli-command: databases
+ get:
tags:
- - Domains
- summary: Domains List
- 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
+ - Databases
+ summary: Managed Database Engine View
+ operationId: getDatabasesEngine
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: engine-view
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ description: |
+ Display information for a single Managed Database engine type and version.
+ responses:
+ '200':
+ description: Returns information for a single Managed Database engine type and version.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DatabaseEngine'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl https://api.linode.com/v4/databases/engines/mysql/5.7.30
+ - lang: CLI
+ source: >
+ linode-cli databases engine-view mysql/5.7.30
+ /databases/instances:
+ x-linode-cli-command: databases
+ get:
+ tags:
+ - Databases
+ summary: Managed Databases List All
+ operationId: getDatabasesInstances
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
x-linode-cli-action: list
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ description: |
+ Display all Managed Databases that are accessible by your User, regardless of engine type.
+
+ For more detailed information on a particular Database instance, make a request to its `instance_uri`.
security:
- personalAccessToken: []
- oauth:
- - domains:read_only
+ - databases:read_only
responses:
'200':
- description: A paginated list of Domains you have registered.
+ description: Returns a paginated list of all accessible Managed Databases on your Account.
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'
+ allOf:
+ - $ref: '#/components/schemas/PaginationEnvelope'
+ - type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Database'
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
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/instances
+ - lang: CLI
+ source: >
+ linode-cli databases list
+ /databases/mongodb/instances:
+ x-linode-cli-command: databases
+ get:
tags:
- - Domains
- summary: Domain Create
- 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
+ - Databases
+ summary: Managed MongoDB Databases List
+ operationId: getDatabasesMongoDBInstances
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-list
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ description: |
+ Display all accessible Managed MongoDB Databases.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_write
- requestBody:
- description: Information about the domain you are registering.
- required: true
- content:
- application/json:
- schema:
- required:
- - domain
- - type
- allOf:
- - $ref: '#/components/schemas/Domain'
+ - databases:read_only
responses:
'200':
- description: |
- Domain added successfully.
+ description: Returns a paginated list of all accessible Managed MongoDB Databases on your Account.
content:
application/json:
schema:
- $ref: '#/components/schemas/Domain'
+ allOf:
+ - $ref: '#/components/schemas/PaginationEnvelope'
+ - type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/DatabaseMongoDB'
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"],
- "group": "Example Display Group",
- "tags": ["tag1","tag2"]
- }' \
- 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
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/mongodb/instances/
+ - lang: CLI
+ source: >
+ linode-cli databases mongodb-list
+ # post:
+ # tags:
+ # - Databases
+ # summary: Managed MongoDB Database Create
+ # operationId: postDatabasesMongoDBInstances
+ # servers:
+ # - url: https://api.linode.com/v4
+ # - url: https://api.linode.com/v4beta
+ # x-linode-cli-action: mongodb-create
+ # x-linode-grant: add_databases
+ # description: |
+ # Provision a Managed MongoDB Database.
+
+ # Restricted Users must have the `add_databases` grant to use this command.
+
+ # New instances can take approximately 15 to 30 minutes to provision.
+
+ # The `allow_list` is used to control access to the Managed Database.
+
+ # * IP addresses on this list can access the Managed Database. All other sources are blocked.
+ # * Entering an empty array (`[]`) blocks all connections (both public and private) to the Managed Database.
+
+ # All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.
+
+ # All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed MongoDB Database during configurable maintenance windows.
+
+ # * If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.
+
+ # * **The database software is not updated automatically.** To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.
+
+ # * To modify update the maintenance window for a Database, use the **Managed MongoDB Database Update** ([PUT /databases/mongodb/instances/{instanceId}](/docs/api/databases/#managed-mongodb-database-update)) command.
+
+ # **Note**: Managed MongoDB clusters are currently accessible over public IP addresses. To provide an additional layer of protection, support for private IP addresses is in development.
+ # security:
+ # - personalAccessToken: []
+ # - oauth:
+ # - databases:read_write
+ # requestBody:
+ # description: Information about the Managed MongoDB Database you are creating.
+ # x-linode-cli-allowed-defaults:
+ # - region
+ # - type
+ # required: true
+ # content:
+ # application/json:
+ # schema:
+ # $ref: '#/components/schemas/DatabaseMongoDBRequest'
+ # responses:
+ # '200':
+ # description: A new Managed MongoDB Database is provisioning.
+ # content:
+ # application/json:
+ # schema:
+ # $ref: '#/components/schemas/DatabaseMongoDB'
+ # 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": "example-db",
+ # "region": "us-east",
+ # "type": "g6-dedicated-2",
+ # "cluster_size": 3,
+ # "engine": "mongodb/4.4.10",
+ # "encrypted": false,
+ # "ssl_connection": false,
+ # "replica_set": "example-replica-set",
+ # "compression_type": "none",
+ # "storage_engine": "wiredtiger",
+ # "allow_list": [
+ # "203.0.113.1",
+ # "192.0.1.0/24"
+ # ]
+ # }' \
+ # https://api.linode.com/v4/databases/mongodb/instances
+ # - lang: CLI
+ # source: >
+ # linode-cli databases mongodb-create \
+ # --label example-db \
+ # --region us-east \
+ # --type g6-dedicated-2 \
+ # --cluster_size 3 \
+ # --engine mongodb/4.4.10 \
+ # --encrypted false \
+ # --ssl_connection true \
+ # --replica_set example-replica-set \
+ # --storage_engine wiredtiger \
+ # --compression_type none \
+ # --allow_list 203.0.113.1 \
+ # --allow_list 192.0.1.0/24
+ /databases/mongodb/instances/{instanceId}:
+ x-linode-cli-command: databases
parameters:
- - name: domainId
+ - name: instanceId
in: path
- description: The ID of the Domain to access.
+ description: The ID of the Managed MongoDB Database.
required: true
schema:
type: integer
get:
+ tags:
+ - Databases
+ summary: Managed MongoDB Database View
+ operationId: getDatabasesMongoDBInstance
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-view
x-linode-grant: read_only
+ description: |
+ Display information for a single, accessible Managed MongoDB Database.
+ **Note**: New MongoDB Databases cannot currently be created.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
+ responses:
+ '200':
+ description: Returns information for a single Managed MongoDB Database.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DatabaseMongoDB'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/mongodb/instances/123
+ - lang: CLI
+ source: >
+ linode-cli databases mongodb-view 123
+ delete:
tags:
- - Domains
- summary: Domain View
- 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
+ - Databases
+ summary: Managed MongoDB Database Delete
+ operationId: deleteDatabasesMongoDBInstance
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-delete
+ x-linode-grant: read_write
+ description: |
+ Remove a Managed MongoDB Database from your Account.
+ Requires `read_write` access to the Database.
+ The Database must have an `active`, `failed`, or `degraded` status to perform this command.
+ Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_only
+ - databases:read_write
responses:
'200':
- description: |
- A single Domain in Linode's DNS Manager.
+ description: Managed MongoDB Database successfully deleted.
content:
application/json:
schema:
- $ref: '#/components/schemas/Domain'
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/domains/123
+ -X DELETE \
+ https://api.linode.com/v4/databases/mongodb/instances/123
- lang: CLI
source: >
- linode-cli domains view 123
+ linode-cli databases mongodb-delete 123
put:
- x-linode-grant: read_write
tags:
- - Domains
- summary: Domain Update
+ - Databases
+ summary: Managed MongoDB Database Update
+ operationId: putDatabasesMongoDBInstance
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-update
+ x-linode-grant: read_write
description: |
- Update information about a Domain in Linode's DNS Manager.
- operationId: updateDomain
- x-linode-cli-action: update
+ Update a Managed MongoDB Database.
+ Requires `read_write` access to the Database.
+ The Database must have an `active` status to perform this command.
+ Updating addresses in the `allow_list` overwrites any existing addresses.
+ * IP addresses on this list can access the Managed Database. All other sources are blocked.
+ * Entering an empty array (`[]`) blocks all connections (both public and private) to the Managed Database.
+ * **Note**: Updates to the `allow_list` may take a short period of time to complete, making this command inappropriate for rapid successive updates to this property.
+ All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed MongoDB Database. The maintenance window for these updates is configured with the Managed Database's `updates` property.
+ * If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.
+ * **The database software is not updated automatically.** To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_write
+ - databases:read_write
requestBody:
- description: The Domain information to update.
+ description: Updated information for the Managed MongoDB Database.
required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/Domain'
+ type: object
+ description: Updated information for the Managed MongoDB Database.
+ properties:
+ label:
+ $ref: '#/components/schemas/DatabaseMongoDBRequest/properties/label'
+ allow_list:
+ $ref: '#/components/schemas/DatabaseMongoDBRequest/properties/allow_list'
+ updates:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/updates'
responses:
'200':
- description: Domain update successful.
+ description: Managed Database updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Domain'
+ $ref: '#/components/schemas/DatabaseMongoDB'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -3251,691 +3477,579 @@ paths:
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"],
- "group": "Example Display Group",
- "tags": ["tag1","tag2"]
+ "label": "example-db",
+ "allow_list": [
+ "203.0.113.1",
+ "192.0.1.0/24"
+ ],
+ "updates" = {
+ "frequency": "monthly",
+ "duration": 3,
+ "hour_of_day": 12,
+ "day_of_week": 4,
+ "week_of_month": 3,
+ }
}' \
- https://api.linode.com/v4/domains/123
+ https://api.linode.com/v4/databases/mongodb/instances/123
- lang: CLI
source: >
- linode-cli domains update 1234 \
- --retry_sec 7200 \
- --ttl_sec 300
- delete:
- x-linode-grant: read_write
- tags:
- - Domains
- summary: Domain Delete
- 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}/zone-file:
- x-linode-cli-command: domains
+ linode-cli databases mongodb-update 123 \
+ --label example-db \
+ --allow_list 203.0.113.1 \
+ --allow_list 192.0.1.0/24 \
+ --updates.frequency monthly \
+ --updates.duration 3 \
+ --updates.hour_of_day 12 \
+ --updates.day_of_week 4 \
+ --updates.week_of_month 3
+ /databases/mongodb/instances/{instanceId}/backups:
+ x-linode-cli-command: databases
parameters:
- - name: domainId
- in: path
- description: ID of the Domain.
- required: true
- schema:
- type: string
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MongoDB Database.
+ required: true
+ schema:
+ type: integer
get:
- x-linode-grant: read_only
tags:
- - Domains
- summary: Domain Zone File View
- description: >
- Returns the zone file for the last rendered zone for the specified domain.
- operationId: getDomainZone
- x-linode-cli-action: zone-file
+ - Databases
+ summary: Managed MongoDB Database Backups List
+ operationId: getDatabasesMongoDBInstanceBackups
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-backups-list
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ description: |
+ Display all backups for an accessible Managed MongoDB Database.
+ The Database must not be provisioning to perform this command.
+ Database `auto` type backups are created every 24 hours at 0:00 UTC. Each `auto` backup is retained for 7 days.
+ Database `snapshot` type backups are created by accessing the **Managed MongoDB Database Backup Snapshot Create** ([POST /databases/mongodb/instances/{instanceId}/backups](/docs/api/databases/#managed-mongodb-database-backup-snapshot-create)) command.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_only
+ - databases:read_write
responses:
'200':
- description: |
- An array containing the lines of the domain zone file.
+ description: Returns a paginated list of backups for the Managed MongoDB Database.
content:
application/json:
schema:
- properties:
- zone_file:
- type: array
- items:
- type: string
- example:
- - "; example.com [123]"
- - "$TTL 864000"
- - "@ IN SOA ns1.linode.com. user.example.com. 2021000066 14400 14400 1209600 86400"
- - "@ NS ns1.linode.com."
- - "@ NS ns2.linode.com."
- - "@ NS ns3.linode.com."
- - "@ NS ns4.linode.com."
- - "@ NS ns5.linode.com."
- description: |
- The lines of the zone file for the last rendered zone for this domain.
+ allOf:
+ - $ref: '#/components/schemas/PaginationEnvelope'
+ - type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/DatabaseBackup'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/domains/123/zone-file
+ https://api.linode.com/v4/databases/mongodb/instances/123/backups
- lang: CLI
source: >
- linode-cli domains zone-file 123
- /domains/import:
- x-linode-cli-command: domains
+ linode-cli databases mongodb-backups-list 123
post:
- x-linode-grant: read_write
- x-linode-cli-command: domains
tags:
- - Domains
- summary: Domain Import
- description: >
- Imports a domain zone from a remote nameserver.
-
- Your nameserver must allow zone transfers (AXFR) from the following IPs:
-
- - 96.126.114.97
- - 96.126.114.98
- - 2600:3c00::5e
- - 2600:3c00::5f
- operationId: importDomain
- x-linode-cli-action: import
+ - Databases
+ summary: Managed MongoDB Database Backup Snapshot Create
+ operationId: postDatabasesMongoDBInstanceBackup
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-backup-snapshot
+ x-linode-grant: read_write
+ description: |
+ Creates a snapshot backup of a Managed MongoDB Database.
+ Requires `read_write` access to the Database.
+ Backups generated by this command have the type `snapshot`. Snapshot backups may take several minutes to complete, after which they will be accessible to view or restore.
+ The Database must have an `active` status to perform this command.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_write
+ - databases:read_write
requestBody:
- description: Information about the Domain to import.
+ description: Information about the snapshot backup to create.
content:
application/json:
schema:
required:
- - domain
- - remote_nameserver
+ - label
+ type: object
properties:
- domain:
+ label:
type: string
- description: >
- The domain to import.
- example: example.com
- remote_nameserver:
+ minLength: 3
+ maxLength: 64
+ description: |
+ The label for the Database snapshot backup.
+ * Must use only letters, numbers, underscores, dashes, and periods.
+ * Must begin and end with a letter or number.
+ * Must not include two dashes, underscores, or periods in a row.
+ example: db-snapshot
+ target:
type: string
- description: >
- The remote nameserver that allows zone transfers (AXFR).
- example: examplenameserver.com
+ enum:
+ - primary
+ - secondary
+ default: primary
+ description: |
+ The Database cluster target.
+ If the Database is a high availability cluster, choosing `secondary` creates a snapshot backup of a replica node.
+ example: primary
responses:
'200':
- description: |
- A single Domain in Linode's DNS Manager.
+ description: Database snapshot backup request successful.
content:
application/json:
schema:
- $ref: '#/components/schemas/Domain'
+ 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 '{
- "domain": "example.com",
- "remote_nameserver": "examplenameserver.com"
- }' \
- https://api.linode.com/v4/domains/import
- - lang: CLI
- source: >
- linode-cli domains import --domain example.com --remote_nameserver examplenameserver.com
- /domains/{domainId}/clone:
- x-linode-cli-command: domains
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "label": "db-snapshot",
+ "target": "primary"
+ }' \
+ https://api.linode.com/v4/databases/mongodb/instances/123/backups/
+ - lang: CLI
+ source: >
+ linode-cli databases mongodb-backup-snapshot 123 \
+ --label db-snapshot \
+ --target primary
+ /databases/mongodb/instances/{instanceId}/backups/{backupId}:
+ x-linode-cli-command: databases
parameters:
- - name: domainId
- in: path
- description: ID of the Domain to clone.
- required: true
- schema:
- type: string
- post:
- x-linode-grant: read_write
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MongoDB Database.
+ required: true
+ schema:
+ type: integer
+ - name: backupId
+ in: path
+ description: The ID of the Managed MongoDB Database backup.
+ required: true
+ schema:
+ type: integer
+ get:
tags:
- - Domains
- summary: Domain Clone
- description: >
- Clones a Domain and all associated DNS records from a Domain that is
- registered in Linode's DNS manager.
- operationId: cloneDomain
- x-linode-cli-action: clone
+ - Databases
+ summary: Managed MongoDB Database Backup View
+ operationId: getDatabasesMongoDBInstanceBackup
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-backup-view
+ x-linode-grant: read_only
+ description: |
+ Display information for a single backup for an accessible Managed MongoDB Database.
+ The Database must not be provisioning to perform this command.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_write
- requestBody:
- description: Information about the Domain to clone.
- required: true
- content:
- application/json:
- schema:
- required:
- - domain
- type: object
- properties:
- domain:
- type: string
- pattern: \A(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)\Z
- minLength: 1
- maxLength: 255
- description: >
- The new domain for the clone. Domain labels cannot be longer than
- 63 characters and must conform to [RFC1035](https://tools.ietf.org/html/rfc1035).
- Domains must be unique on Linode's platform, including across different Linode
- accounts; there cannot be two Domains representing the same domain.
- example: example.org
- x-linode-filterable: true
+ - databases:read_write
responses:
'200':
- description: |
- A new Domain in Linode's DNS Manager, based on a cloned Domain.
+ description: Returns a single backup for the Managed MongoDB Database.
content:
application/json:
schema:
- $ref: '#/components/schemas/Domain'
+ $ref: '#/components/schemas/DatabaseBackup'
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"
- }' \
- https://api.linode.com/v4/domains/123/clone
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/mongodb/instances/123/backups/456
- lang: CLI
source: >
- linode-cli domains clone 123 --domain example.com
- /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
+ linode-cli databases mongodb-backup-view 123 456
+ delete:
tags:
- - Domains
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ - Databases
+ summary: Managed MongoDB Database Backup Delete
+ operationId: deleteDatabaseMongoDBInstanceBackup
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-backup-delete
+ x-linode-grant: unrestricted only
+ description: |
+ Delete a single backup for an accessible Managed MongoDB Database.
+ Requires `read_write` access to the Database.
+ The Database must not be provisioning to perform this command.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_only
- summary: Domain Records List
- description: |
- Returns a paginated list of Records configured on a Domain in Linode's
- DNS Manager.
- operationId: getDomainRecords
- x-linode-cli-action: records-list
+ - databases:read_write
responses:
'200':
- description: A list of Domain Records.
+ description: Request to delete Database backup successful.
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'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/domains/1234/records
+ -X DELETE \
+ https://api.linode.com/v4/databases/mongodb/instances/123/backups/456
- lang: CLI
source: >
- linode-cli domains records-list 1234
+ linode-cli databases mongodb-backup-delete 123 456
+ /databases/mongodb/instances/{instanceId}/backups/{backupId}/restore:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MongoDB Database.
+ required: true
+ schema:
+ type: integer
+ - name: backupId
+ in: path
+ description: The ID of the Managed MongoDB Database backup.
+ required: true
+ schema:
+ type: integer
post:
- x-linode-grant: read_write
tags:
- - Domains
+ - Databases
+ summary: Managed MongoDB Database Backup Restore
+ operationId: postDatabasesMongoDBInstanceBackupRestore
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-backup-restore
+ x-linode-grant: read_write
+ description: |
+ Restore a backup to a Managed MongoDB Database on your Account.
+ Requires `read_write` access to the Database.
+ The Database must have an `active` status to perform this command.
+ **Note**: Restoring from a backup will erase all existing data on the database instance and replace it with backup data.
+ **Note**: Currently, restoring a backup after resetting Managed Database credentials results in a failed cluster. Please contact Customer Support if this occurs.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_write
- summary: Domain Record Create
- 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:
- required:
- - type
- allOf:
- - $ref: '#/components/schemas/DomainRecord'
+ - databases:read_write
responses:
'200':
- description: Domain Record created successfully.
+ description: Request to restore backup successful.
content:
application/json:
schema:
- $ref: '#/components/schemas/DomainRecord'
+ 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": "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
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X POST https://api.linode.com/v4/databases/mongodb/instances/123/backups/456/restore
- 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
+ linode-cli databases mongodb-backup-restore 123 456
+ /databases/mongodb/instances/{instanceId}/credentials:
+ x-linode-cli-command: databases
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
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MongoDB Database.
+ required: true
+ schema:
+ type: integer
get:
- x-linode-grant: read_only
tags:
- - Domains
+ - Databases
+ summary: Managed MongoDB Database Credentials View
+ operationId: getDatabasesMongoDBInstanceCredentials
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-creds-view
+ x-linode-grant: read_only
+ description: |
+ Display the root username and password for an accessible Managed MongoDB Database.
+ The Database must have an `active` status to perform this command.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_only
- summary: Domain Record View
- description: >
- View a single Record on this Domain.
- operationId: getDomainRecord
- x-linode-cli-action: records-view
+ - databases:read_only
responses:
'200':
- description: A Domain Record object.
+ description: Managed Database root username and password.
content:
application/json:
schema:
- $ref: '#/components/schemas/DomainRecord'
+ $ref: '#/components/schemas/DatabaseCredentials'
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
+ https://api.linode.com/v4/databases/mongodb/instances/123/credentials/
- lang: CLI
source: >
- linode-cli domains records-view 123 234
- put:
- x-linode-grant: read_write
+ linode-cli databases mongodb-creds-view 123
+ /databases/mongodb/instances/{instanceId}/credentials/reset:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MongoDB Database.
+ required: true
+ schema:
+ type: integer
+ post:
tags:
- - Domains
+ - Databases
+ summary: Managed MongoDB Database Credentials Reset
+ operationId: postDatabasesMongoDBInstanceCredentialsReset
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-creds-reset
+ x-linode-grant: read_write
+ description: |
+ Reset the root password for a Managed MongoDB Database.
+ Requires `read_write` access to the Database.
+ A new root password is randomly generated and accessible with the **Managed MongoDB Database Credentials View** ([GET /databases/mongodb/instances/{instanceId}/credentials](/docs/api/databases/#managed-mongodb-database-credentials-view)) command.
+ Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.
+ **Note**: Note that it may take several seconds for credentials to reset.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_write
- summary: Domain Record Update
- 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'
+ - databases:read_write
responses:
'200':
- description: Domain Record updated.
+ description: Managed Database instance credentials successfully reset.
content:
application/json:
schema:
- $ref: '#/components/schemas/DomainRecord'
+ 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 '{
- "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
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X POST https://api.linode.com/v4/databases/mongodb/instances/123/credentials/reset
- 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
+ linode-cli databases mongodb-creds-reset 123
+ /databases/mongodb/instances/{instanceId}/ssl:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MongoDB Database.
+ required: true
+ schema:
+ type: integer
+ get:
tags:
- - Domains
+ - Databases
+ summary: Managed MongoDB Database SSL Certificate View
+ operationId: getDatabasesMongoDBInstanceSSL
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-ssl-cert
+ x-linode-grant: read_only
+ description: |
+ Display the SSL CA certificate for an accessible Managed MongoDB Database.
+ The Database must have an `active` status to perform this command.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - domains:read_write
- summary: Domain Record Delete
- description: >
- Deletes a Record on this Domain.
- operationId: deleteDomainRecord
- x-linode-cli-action: records-delete
+ - databases:read_only
responses:
'200':
- description: Record deleted successfully.
+ description: Returns the SSL CA certificate of a single Managed MongoDB Database.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/DatabaseSSL'
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
+ https://api.linode.com/v4/databases/mongodb/instances/123/ssl
- lang: CLI
source: >
- linode-cli domains records-delete 123 234
- /images:
- x-linode-cli-command: images
- get:
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ linode-cli databases mongodb-ssl-cert 123
+ /databases/mongodb/instances/{instanceId}/patch:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MongoDB Database.
+ required: true
+ schema:
+ type: integer
+ post:
tags:
- - Images
- summary: Images List
+ - Databases
+ summary: Managed MongoDB Database Patch
+ operationId: postDatabasesMongoDBInstancePatch
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mongodb-patch
+ x-linode-grant: read_write
description: |
- Returns a paginated list of Images.
-
- * **Public** Images have IDs that begin with "linode/". These distribution images are generally available to
- all users.
-
- * **Private** Images have IDs that begin with "private/". These Images are Account-specific and only
- accessible to Users with appropriate [Grants](/docs/api/account/#users-grants-view).
-
- * To view only public Images, call this endpoint with or without authentication. To view private Images as well, call this endpoint with authentication.
- x-linode-redoc-load-ids: true
- operationId: getImages
- x-linode-cli-action: list
+ Apply security patches and updates to the underlying operating system of the Managed MongoDB Database. This function runs during regular maintenance windows, which are configurable with the **Managed MongoDB Database Update** ([PUT /databases/mongodb/instances/{instanceId}](/docs/api/databases/#managed-mongodb-database-update)) command.
+ Requires `read_write` access to the Database.
+ The Database must have an `active` status to perform this command.
+ **Note**
+ * If your database cluster is configured with a single node, you will experience downtime during this maintenance. Consider upgrading to a high availability plan to avoid any downtime due to maintenance.
+ * **The database software is not updated automatically.** To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.
+ **Note**: New MongoDB Databases cannot currently be created.
security:
- personalAccessToken: []
- oauth:
- - images:read_only
+ - databases:read_write
responses:
'200':
- description: A paginated list of Images.
+ description: Managed Database instance patch request successful.
content:
application/json:
schema:
type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/Image'
- 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: |
- # Returns public Images only
- curl https://api.linode.com/v4/images
-
- # Returns private and public Images
+ source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/images
+ -X POST https://api.linode.com/v4/databases/mongodb/instances/123/patch
- lang: CLI
source: >
- linode-cli images list
- post:
- x-linode-grant: add_images
+ linode-cli databases mongodb-patch 123
+ /databases/mysql/instances:
+ x-linode-cli-command: databases
+ get:
tags:
- - Images
- summary: Image Create
+ - Databases
+ summary: Managed MySQL Databases List
+ operationId: getDatabasesMySQLInstances
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-list
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
description: |
- Captures a private gold-master Image from a Linode Disk.
- operationId: createImage
- x-linode-cli-action: create
+ Display all accessible Managed MySQL Databases.
security:
- personalAccessToken: []
- oauth:
- - images:read_write
- - linodes:read_only
- requestBody:
- description: Information about the Image to create.
- content:
- application/json:
- schema:
- required:
- - disk_id
- 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.
+ - databases:read_only
responses:
'200':
- description: New private Image created successfully.
+ description: Returns a paginated list of all accessible Managed MySQL Databases on your Account.
content:
application/json:
schema:
- $ref: '#/components/schemas/Image'
+ allOf:
+ - $ref: '#/components/schemas/PaginationEnvelope'
+ - type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/DatabaseMySQL'
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
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/mysql/instances/
- lang: CLI
source: >
- linode-cli images create \
- --label this_is_a_label \
- --description "A longer description \
- of the image" \
- --disk_id 123
- /images/upload:
- x-linode-cli-command: images
+ linode-cli databases mysql-list
post:
- x-linode-grant: add_images
+ tags:
+ - Databases
+ summary: Managed MySQL Database Create
+ operationId: postDatabasesMySQLInstances
servers:
- url: https://api.linode.com/v4
- url: https://api.linode.com/v4beta
- tags:
- - Images
- summary: Image Upload
+ x-linode-cli-action: mysql-create
+ x-linode-grant: add_databases
description: |
- Initiates an Image upload.
+ Provision a Managed MySQL Database.
- This endpoint creates a new private Image object and returns it along
- with the URL to which image data can be uploaded.
+ Restricted Users must have the `add_databases` grant to use this command.
- - Image data must be uploaded within 24 hours of creation or the
- upload will be cancelled and the image deleted.
+ New instances can take approximately 15 to 30 minutes to provision.
- - Image uploads should be made as an HTTP PUT request to the URL returned in the `upload_to`
- response parameter, with a `Content-type: application/octet-stream` header included in the
- request. For example:
+ The `allow_list` is used to control access to the Managed Database.
- curl -v \
- -H "Content-Type: application/octet-stream" \
- --upload-file example.img.gz \
- $UPLOAD_URL \
- --progress-bar \
- --output /dev/null
+ * IP addresses on this list can access the Managed Database. All other sources are blocked.
+ * Entering an empty array (`[]`) blocks all connections (both public and private) to the Managed Database.
- - Uploaded image data should be compressed in gzip (`.gz`) format. The uncompressed disk should be in raw
- disk image (`.img`) format. A maximum compressed file size of 5GB is supported for upload at this time.
+ All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.
- **Note:** To initiate and complete an Image upload in a single step, see our guide on how to [Upload an Image](/docs/products/tools/images/guides/upload-an-image/) using Cloud Manager or the Linode CLI `image-upload` plugin.
- x-linode-cli-action: upload
+ All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed MySQL Database during configurable maintenance windows.
+
+ * If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.
+
+ * **The database software is not updated automatically.** To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then [migrate your databases](/docs/products/databases/managed-databases/guides/migrate-mysql/) from the original Managed Database cluster to the new one.
+
+ * To modify update the maintenance window for a Database, use the **Managed MySQL Database Update** ([PUT /databases/mysql/instances/{instanceId}](/docs/api/databases/#managed-mysql-database-update)) command.
security:
- personalAccessToken: []
- oauth:
- - images:read_write
+ - databases:read_write
requestBody:
- description: The uploaded Image details.
+ description: Information about the Managed MySQL Database you are creating.
x-linode-cli-allowed-defaults:
- region
+ - type
+ required: true
content:
application/json:
schema:
- type: object
- required:
- - label
- - region
- properties:
- region:
- type: string
- description: >
- The region to upload to. Once uploaded, the Image can be used in any region.
- example: eu-central
- label:
- type: string
- description: Label for the uploaded Image.
- example: my-image-label
- description:
- type: string
- description: Description for the uploaded Image.
- example: This is an example image in the docs.
+ $ref: '#/components/schemas/DatabaseMySQLRequest'
responses:
'200':
- description: Image Upload object including the upload URL and Image object.
+ description: A new Managed MySQL Database is provisioning.
content:
application/json:
schema:
- type: object
- properties:
- upload_to:
- type: string
- description: The URL to upload the Image to.
- x-linode-cli-display: 1
- image:
- $ref: '#/components/schemas/Image'
+ $ref: '#/components/schemas/DatabaseMySQL'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -3944,104 +4058,169 @@ paths:
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
- "description": "Optional details about the Image",
- "label": "Example Image",
- "region": "us-east"
+ "label": "example-db",
+ "region": "us-east",
+ "type": "g6-dedicated-2",
+ "cluster_size": 3,
+ "engine": "mysql/8.0.26",
+ "encrypted": false,
+ "ssl_connection": true,
+ "replication_type": "semi_synch",
+ "allow_list": [
+ "203.0.113.1",
+ "192.0.1.0/24"
+ ]
}' \
- https://api.linode.com/v4/images/upload
+ https://api.linode.com/v4/databases/mysql/instances
- lang: CLI
- source: |
- # Upload the Image file in a single step
- linode-cli image-upload \
- --description "Optional details about the Image" \
- --label "Example Image" \
+ source: >
+ linode-cli databases mysql-create \
+ --label example-db1 \
--region us-east \
- /path/to/image-file.img.gz
-
- # Returns the upload_to URL
- linode-cli images upload \
- --description "Optional details about the Image" \
- --label "Example Image" \
- --region us-east
- /images/{imageId}:
- x-linode-cli-command: images
+ --type g6-dedicated-2 \
+ --cluster_size 3 \
+ --engine mysql/8.0.26 \
+ --encrypted false \
+ --ssl_connection false \
+ --replication_type semi_synch \
+ --allow_list 203.0.113.1 \
+ --allow_list 192.0.1.0/24
+ /databases/mysql/instances/{instanceId}:
+ x-linode-cli-command: databases
parameters:
- - name: imageId
- in: path
- description: ID of the Image to look up.
- required: true
- schema:
- type: string
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MySQL Database.
+ required: true
+ schema:
+ type: integer
get:
tags:
- - Images
- summary: Image View
+ - Databases
+ summary: Managed MySQL Database View
+ operationId: getDatabasesMySQLInstance
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-view
+ x-linode-grant: read_only
description: |
- Get information about a single Image.
+ Display information for a single, accessible Managed MySQL Database.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
+ responses:
+ '200':
+ description: Returns information for a single Managed MySQL Database.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DatabaseMySQL'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/mysql/instances/123
+ - lang: CLI
+ source: >
+ linode-cli databases mysql-view 123
+ delete:
+ tags:
+ - Databases
+ summary: Managed MySQL Database Delete
+ operationId: deleteDatabasesMySQLInstance
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-delete
+ x-linode-grant: read_write
+ description: |
+ Remove a Managed MySQL Database from your Account.
- * **Public** Images have IDs that begin with "linode/". These distribution images are generally available to
- all users.
+ Requires `read_write` access to the Database.
- * **Private** Images have IDs that begin with "private/". These Images are Account-specific and only
- accessible to Users with appropriate [Grants](/docs/api/account/#users-grants-view).
+ The Database must have an `active`, `failed`, or `degraded` status to perform this command.
- * To view a public Image, call this endpoint with or without authentication. To view a private Image, call this endpoint with authentication.
- operationId: getImage
- x-linode-cli-action: view
+ Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.
security:
- personalAccessToken: []
- oauth:
- - images:read_only
+ - databases:read_write
responses:
'200':
- description: A single Image object.
+ description: Managed MySQL Database successfully deleted.
content:
application/json:
schema:
- $ref: '#/components/schemas/Image'
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
- source: |
- # Public Image
- curl https://api.linode.com/v4/images/linode/debian11
-
- # Private Image
+ source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/images/private/12345
+ -X DELETE \
+ https://api.linode.com/v4/databases/mysql/instances/123
- lang: CLI
source: >
- linode-cli images view linode/debian9
+ linode-cli databases mysql-delete 123
put:
- x-linode-grant: read_write
tags:
- - Images
- summary: Image Update
- description: >
- Updates a private Image that you have permission to
- `read_write`.
- operationId: updateImage
- x-linode-cli-action: update
+ - Databases
+ summary: Managed MySQL Database Update
+ operationId: putDatabasesMySQLInstance
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-update
+ x-linode-grant: read_write
+ description: |
+ Update a Managed MySQL Database.
+
+ Requires `read_write` access to the Database.
+
+ The Database must have an `active` status to perform this command.
+
+ Updating addresses in the `allow_list` overwrites any existing addresses.
+
+ * IP addresses on this list can access the Managed Database. All other sources are blocked.
+ * Entering an empty array (`[]`) blocks all connections (both public and private) to the Managed Database.
+ * **Note**: Updates to the `allow_list` may take a short period of time to complete, making this command inappropriate for rapid successive updates to this property.
+
+ All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed MySQL Database. The maintenance window for these updates is configured with the Managed Database's `updates` property.
+
+ * If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.
+
+ * **The database software is not updated automatically.** To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then [migrate your databases](/docs/products/databases/managed-databases/guides/migrate-mysql/) from the original Managed Database cluster to the new one.
security:
- personalAccessToken: []
- oauth:
- - images:read_write
+ - databases:read_write
requestBody:
- description: >
- The fields to update.
+ description: Updated information for the Managed MySQL Database.
required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/Image'
+ type: object
+ description: Updated information for the Managed MySQL Database.
+ properties:
+ label:
+ $ref: '#/components/schemas/DatabaseMySQLRequest/properties/label'
+ allow_list:
+ $ref: '#/components/schemas/DatabaseMySQLRequest/properties/allow_list'
+ updates:
+ $ref: '#/components/schemas/DatabaseMySQL/properties/updates'
responses:
'200':
- description: The updated image.
+ description: Managed Database updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Image'
+ $ref: '#/components/schemas/DatabaseMySQL'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -4050,455 +4229,389 @@ paths:
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."
+ "label": "example-db",
+ "allow_list": [
+ "203.0.113.1",
+ "192.0.1.0/24"
+ ],
+ "updates" = {
+ "frequency": "monthly",
+ "duration": 3,
+ "hour_of_day": 12,
+ "day_of_week": 4,
+ "week_of_month": 3,
+ }
}' \
- https://api.linode.com/v4/images/private/12345
+ https://api.linode.com/v4/databases/mysql/instances/123
- lang: CLI
source: >
- linode-cli images update private/12345 \
- --label "My gold-master image" \
- --description "The detailed description \
- of my Image."
- delete:
- x-linode-grant: read_write
+ linode-cli databases mysql-update 123 \
+ --label example-db \
+ --allow_list 203.0.113.1 \
+ --allow_list 192.0.1.0/24 \
+ --updates.frequency monthly \
+ --updates.duration 3 \
+ --updates.hour_of_day 12 \
+ --updates.day_of_week 4 \
+ --updates.week_of_month 3
+ /databases/mysql/instances/{instanceId}/backups:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MySQL Database.
+ required: true
+ schema:
+ type: integer
+ get:
tags:
- - Images
- summary: Image Delete
+ - Databases
+ summary: Managed MySQL Database Backups List
+ operationId: getDatabasesMySQLInstanceBackups
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-backups-list
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
description: |
- Deletes a private Image you have permission to `read_write`.
+ Display all backups for an accessible Managed MySQL Database.
+ The Database must not be provisioning to perform this command.
- **Deleting an Image is a destructive action and cannot be undone.**
- operationId: deleteImage
- x-linode-cli-action: delete
+ Database `auto` type backups are created every 24 hours at 0:00 UTC. Each `auto` backup is retained for 7 days.
+
+ Database `snapshot` type backups are created by accessing the **Managed MySQL Database Backup Snapshot Create** ([POST /databases/mysql/instances/{instanceId}/backups](/docs/api/databases/#managed-mysql-database-backup-snapshot-create)) command.
security:
- personalAccessToken: []
- oauth:
- - images:read_write
+ - databases:read_write
responses:
'200':
- description: Delete successful
+ description: Returns a paginated list of backups for the Managed MySQL Database.
content:
application/json:
schema:
- type: object
+ allOf:
+ - $ref: '#/components/schemas/PaginationEnvelope'
+ - type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/DatabaseBackup'
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/12345
+ https://api.linode.com/v4/databases/mysql/instances/123/backups
- lang: CLI
source: >
- linode-cli images delete 12345
- /linode/instances:
- x-linode-cli-command: linodes
- get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- summary: Linodes List
- description: >
- Returns a paginated list of Linodes you have permission to view.
+ linode-cli databases mysql-backups-list 123
+ post:
tags:
- - Linode Instances
- operationId: getLinodeInstances
- x-linode-cli-action: list
+ - Databases
+ summary: Managed MySQL Database Backup Snapshot Create
+ operationId: postDatabasesMySQLInstanceBackup
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-backup-snapshot
+ x-linode-grant: read_write
+ description: |
+ Creates a snapshot backup of a Managed MySQL Database.
+
+ Requires `read_write` access to the Database.
+
+ Backups generated by this command have the type `snapshot`. Snapshot backups may take several minutes to complete, after which they will be accessible to view or restore.
+
+ The Database must have an `active` status to perform this command.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - databases:read_write
+ requestBody:
+ description: Information about the snapshot backup to create.
+ content:
+ application/json:
+ schema:
+ required:
+ - label
+ type: object
+ properties:
+ label:
+ type: string
+ minLength: 3
+ maxLength: 64
+ description: |
+ The label for the Database snapshot backup.
+
+ * Must use only letters, numbers, underscores, dashes, and periods.
+ * Must begin and end with a letter or number.
+ * Must not include two dashes, underscores, or periods in a row.
+ example: db-snapshot
+ target:
+ type: string
+ enum:
+ - primary
+ - secondary
+ default: primary
+ description: |
+ The Database cluster target.
+
+ If the Database is a high availability cluster, choosing `secondary` creates a snapshot backup of a replica node.
+ example: primary
responses:
'200':
- description: Returns an array of all Linodes on your Account.
+ description: Database snapshot backup request successful.
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
+ -X POST -d '{
+ "label": "db-snapshot",
+ "target": "primary"
+ }' \
+ https://api.linode.com/v4/databases/mysql/instances/123/backups/
- lang: CLI
source: >
- linode-cli linodes list
- post:
- x-linode-charge: true
- x-linode-grant: add_linodes
- summary: Linode Create
+ linode-cli databases mysql-backup-snapshot 123 \
+ --label db-snapshot \
+ --target primary
+ /databases/mysql/instances/{instanceId}/backups/{backupId}:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MySQL Database.
+ required: true
+ schema:
+ type: integer
+ - name: backupId
+ in: path
+ description: The ID of the Managed MySQL Database backup.
+ required: true
+ schema:
+ type: integer
+ get:
+ tags:
+ - Databases
+ summary: Managed MySQL Database Backup View
+ operationId: getDatabasesMySQLInstanceBackup
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-backup-view
+ x-linode-grant: read_only
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
- Types List ([GET /linode/types](/docs/api/linode-types/#types-list)) to get more
- information about each Type's specs and cost.
-
- Linodes can be created in any one of our available Regions, which are accessible from the
- Regions List ([GET /regions](/docs/api/regions/#regions-list)) endpoint.
-
- In an effort to fight spam, Linode restricts outbound connections on ports 25, 465, and 587
- on all Linodes for new accounts created after November 5th, 2019. For more information,
- see [Sending Email on Linode](/docs/email/running-a-mail-server/#sending-email-on-linode).
-
- Linodes can be created in a number of ways:
-
- * Using a Linode Public Image distribution or a Private Image you created based on another Linode.
- * Access the Images List ([GET /images](/docs/api/images/#images-list)) endpoint with authentication to view
- all available Images.
- * 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.
- * You may also supply a list of usernames via the `authorized_users` field.
- * These users must have an SSH Key associated with your Profile first. See SSH Key Add ([POST /profile/sshkeys](/docs/api/profile/#ssh-key-add)) for more information.
-
- * Using a StackScript.
- * See StackScripts List ([GET /linode/stackscripts](/docs/api/stackscripts/#stackscripts-list)) for
- a list of available StackScripts.
- * The Linode will be `running` after it completes `provisioning`.
- * Requires a compatible Image to be supplied.
- * See StackScript View ([GET /linode/stackscript/{stackscriptId}](/docs/api/stackscripts/#stackscript-view)) 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.
- * You may also supply a list of usernames via the `authorized_users` field.
- * These users must have an SSH Key associated with your Profile first. See SSH Key Add ([POST /profile/sshkeys](/docs/api/profile/#ssh-key-add)) for more information.
-
- * 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.
-
- * Attached to a private VLAN.
- * Review the `interfaces` property of the [Request Body Schema](/docs/api/linode-instances/#linode-create__request-body-schema) for details.
- * For more information, see our guide on [Getting Started with VLANs](/docs/guides/getting-started-with-vlans/).
-
- * Create an empty Linode.
- * The Linode will remain `offline` and must be manually started.
- * See Linode Boot ([POST /linode/instances/{linodeId}/boot](/docs/api/linode-instances/#linode-boot)).
- * Disks and Configs must be created manually.
- * This is only recommended for advanced use cases.
+ Display information for a single backup for an accessible Managed MySQL Database.
- **Important**: You must be an unrestricted User in order to add or modify
- tags on Linodes.
- tags:
- - Linode Instances
- operationId: createLinodeInstance
- x-linode-cli-action: create
+ The Database must not be provisioning to perform this command.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
- requestBody:
- description: The requested initial state of a new Linode.
- required: true
- x-linode-cli-allowed-defaults:
- - region
- - image
- - type
- content:
- application/json:
- schema:
- required:
- - type
- - region
- type: object
- allOf:
- - $ref: '#/components/schemas/LinodeRequest'
- - 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 [GET /linode/instances/{linodeId}/backups](/docs/api/linode-instances/#backups-list)
- 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.
-
- This option is always treated as `true` if the account-wide `backups_enabled`
- setting is `true`. See [account settings](/docs/api/account/#account-settings-view)
- for more information.
-
- Backup pricing is included in the response from [/linodes/types](/docs/api/linode-types/#types-list)
- 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 [Linode Type](/docs/api/linode-types/#types-list) of the Linode
- you are creating.
- example: g6-standard-2
- region:
- type: string
- description: >
- The [Region](/docs/api/regions/#regions-list) where the Linode
- will be located.
- example: us-east
- label:
- $ref: '#/components/schemas/Linode/properties/label'
- tags:
- $ref: '#/components/schemas/Linode/properties/tags'
- group:
- $ref: '#/components/schemas/Linode/properties/group'
- private_ip:
- type: boolean
- description: >
- If true, the created Linode will have private networking enabled and assigned a private IPv4 address.
- example: true
- interfaces:
- $ref: '#/components/schemas/LinodeConfigInterfaces'
+ - databases:read_write
responses:
'200':
- description: >
- A new Linode is being created.
+ description: Returns a single backup for the Managed MySQL Database.
content:
application/json:
schema:
- $ref: '#/components/schemas/Linode'
+ $ref: '#/components/schemas/DatabaseBackup'
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"
- },
- "interfaces": [
- {
- "purpose": "public",
- "label": "",
- "ipam_address": ""
- },
- {
- "purpose": "vlan",
- "label": "vlan-1",
- "ipam_address": "10.0.0.1/24"
- }
- ],
- "authorized_keys": [
- "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
- ],
- "authorized_users": [
- "myUser",
- "secondaryUser"
- ],
- "booted": true,
- "label": "linode123",
- "type": "g6-standard-2",
- "region": "us-east",
- "group": "Linode-Group"
- }' \
- https://api.linode.com/v4/linode/instances
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/mysql/instances/123/backups/456
- 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"
- --authorized_users "myUser"
- --authorized_users "secondaryUser"
- /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
+ linode-cli databases mysql-backup-view 123 456
+ delete:
tags:
- - Linode Instances
- summary: Linode View
- description: Get a specific Linode by ID.
- operationId: getLinodeInstance
- x-linode-cli-action: view
+ - Databases
+ summary: Managed MySQL Database Backup Delete
+ operationId: deleteDatabaseMySQLInstanceBackup
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-backup-delete
+ x-linode-grant: unrestricted only
+ description: |
+ Delete a single backup for an accessible Managed MySQL Database.
+
+ Requires `read_write` access to the Database.
+
+ The Database must not be provisioning to perform this command.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - databases:read_write
responses:
'200':
- description: Returns a single Linode object.
+ description: Request to delete Database backup successful.
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'
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123
+ -X DELETE \
+ https://api.linode.com/v4/databases/mysql/instances/123/backups/456
- lang: CLI
source: >
- linode-cli linodes view 123
- put:
- x-linode-grant: read_write
+ linode-cli databases mysql-backup-delete 123 456
+ /databases/mysql/instances/{instanceId}/backups/{backupId}/restore:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MySQL Database.
+ required: true
+ schema:
+ type: integer
+ - name: backupId
+ in: path
+ description: The ID of the Managed MySQL Database backup.
+ required: true
+ schema:
+ type: integer
+ post:
tags:
- - Linode Instances
- summary: Linode Update
- description: >
- Updates a Linode that you have permission to `read_write`.
+ - Databases
+ summary: Managed MySQL Database Backup Restore
+ operationId: postDatabasesMySQLInstanceBackupRestore
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-backup-restore
+ x-linode-grant: read_write
+ description: |
+ Restore a backup to a Managed MySQL Database on your Account.
+ Requires `read_write` access to the Database.
- **Important**: You must be an unrestricted User in order to add or modify
- tags on Linodes.
- operationId: updateLinodeInstance
- x-linode-cli-action: update
+ The Database must have an `active` status to perform this command.
+
+ **Note**: Restoring from a backup will erase all existing data on the database instance and replace it with backup data.
+
+ **Note**: Currently, restoring a backup after resetting Managed Database credentials results in a failed cluster. Please contact Customer Support if this occurs.
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.
+ - databases:read_write
+ responses:
+ '200':
+ description: Request to restore backup successful.
+ content:
+ application/json:
+ schema:
+ type: object
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X POST https://api.linode.com/v4/databases/mysql/instances/123/backups/456/restore
+ - lang: CLI
+ source: >
+ linode-cli databases mysql-backup-restore 123 456
+ /databases/mysql/instances/{instanceId}/credentials:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MySQL Database.
required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Linode'
+ schema:
+ type: integer
+ get:
+ tags:
+ - Databases
+ summary: Managed MySQL Database Credentials View
+ operationId: getDatabasesMySQLInstanceCredentials
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-creds-view
+ x-linode-grant: read_only
+ description: |
+ Display the root username and password for an accessible Managed MySQL Database.
+
+ The Database must have an `active` status to perform this command.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_only
responses:
'200':
- description: The updated Linode.
+ description: Managed Database root username and password.
content:
application/json:
schema:
- $ref: '#/components/schemas/Linode'
+ $ref: '#/components/schemas/DatabaseCredentials'
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": 180,
- "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
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/mysql/instances/123/credentials/
- lang: CLI
source: >
- linode-cli linodes update 7833080 \
- --label linode123 \
- --backups.schedule.day "Saturday" \
- --backups.schedule.window "W22" \
- --alerts.cpu 180 \
- --alerts.network_in 10 \
- --alerts.network_out 10 \
- --alerts.transfer_quota 80 \
- --alerts.io 10000
- delete:
- x-linode-grant: read_write
+ linode-cli databases mysql-creds-view 123
+ /databases/mysql/instances/{instanceId}/credentials/reset:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MySQL Database.
+ required: true
+ schema:
+ type: integer
+ post:
tags:
- - Linode Instances
- summary: Linode Delete
+ - Databases
+ summary: Managed MySQL Database Credentials Reset
+ operationId: postDatabasesMySQLInstanceCredentialsReset
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-creds-reset
+ x-linode-grant: read_write
description: |
- Deletes a Linode you have permission to `read_write`.
+ Reset the root password for a Managed MySQL Database.
- **Deleting a Linode is a destructive action and cannot be undone.**
+ Requires `read_write` access to the Database.
- Additionally, deleting a Linode:
+ A new root password is randomly generated and accessible with the **Managed MySQL Database Credentials View** ([GET /databases/mysql/instances/{instanceId}/credentials](/docs/api/databases/#managed-mysql-database-credentials-view)) command.
- * 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
+ Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.
+
+ **Note**: Note that it may take several seconds for credentials to reset.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - databases:read_write
responses:
'200':
- description: Delete successful
+ description: Managed Database instance credentials successfully reset.
content:
application/json:
schema:
@@ -4509,313 +4622,376 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/linode/instances/123
+ -X POST https://api.linode.com/v4/databases/mysql/instances/123/credentials/reset
- lang: CLI
source: >
- linode-cli linodes delete 123
- /linode/instances/{linodeId}/backups:
+ linode-cli databases mysql-creds-reset 123
+ /databases/mysql/instances/{instanceId}/ssl:
+ x-linode-cli-command: databases
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
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MySQL Database.
+ required: true
+ schema:
+ type: integer
get:
- x-linode-grant: read_only
- summary: Backups List
- description: >
- Returns information about this Linode's available backups.
tags:
- - Linode Instances
- operationId: getBackups
- x-linode-cli-action: backups-list
+ - Databases
+ summary: Managed MySQL Database SSL Certificate View
+ operationId: getDatabasesMySQLInstanceSSL
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-ssl-cert
+ x-linode-grant: read_only
+ description: |
+ Display the SSL CA certificate for an accessible Managed MySQL Database.
+
+ The Database must have an `active` status to perform this command.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - databases:read_only
responses:
'200':
- description: A collection of the specified Linode's available backups.
+ description: Returns the SSL CA certificate of a single Managed MySQL Database.
content:
application/json:
- x-linode-cli-rows:
- - automatic
- - snapshot.current
- - snapshot.in_progress
- x-linode-cli-use-schema:
- $ref: '#/components/schemas/Backup'
schema:
- type: object
- properties:
- automatic:
- type: array
- items:
- allOf:
- - $ref: '#/components/schemas/Backup'
- - properties:
- type:
- type: string
- example: automatic
- snapshot:
- type: object
- properties:
- in_progress:
- $ref: '#/components/schemas/Backup'
- current:
- $ref: '#/components/schemas/Backup'
+ $ref: '#/components/schemas/DatabaseSSL'
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
+ https://api.linode.com/v4/databases/mysql/instances/123/ssl
- lang: CLI
source: >
- linode-cli linodes backups-list 123
+ linode-cli databases mysql-ssl-cert 123
+ /databases/mysql/instances/{instanceId}/patch:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed MySQL Database.
+ required: true
+ schema:
+ type: integer
post:
+ tags:
+ - Databases
+ summary: Managed MySQL Database Patch
+ operationId: postDatabasesMySQLInstancePatch
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: mysql-patch
x-linode-grant: read_write
- summary: Snapshot Create
description: |
- Creates a snapshot Backup of a Linode.
+ Apply security patches and updates to the underlying operating system of the Managed MySQL Database. This function runs during regular maintenance windows, which are configurable with the **Managed MySQL Database Update** ([PUT /databases/mysql/instances/{instanceId}](/docs/api/databases/#managed-mysql-database-update)) command.
- **Important:** 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
+ Requires `read_write` access to the Database.
+
+ The Database must have an `active` status to perform this command.
+
+ **Note**
+
+ * If your database cluster is configured with a single node, you will experience downtime during this maintenance. Consider upgrading to a high availability plan to avoid any downtime due to maintenance.
+
+ * **The database software is not updated automatically.** To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then [migrate your databases](/docs/products/databases/managed-databases/guides/migrate-mysql/) from the original Managed Database cluster to the new one.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
- requestBody:
- required: true
- content:
- application/json:
- schema:
- required:
- - label
- type: object
- properties:
- label:
- type: string
- minLength: 1
- maxLength: 255
- description: The label for the new snapshot.
- example: SnapshotLabel
+ - databases:read_write
responses:
'200':
- description: Snapshot request successful.
+ description: Managed Database instance patch request successful.
content:
application/json:
schema:
- $ref: '#/components/schemas/Backup'
+ 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 '{
- "label": "MyNewSnapshot"
- }' \
- https://api.linode.com/v4/linode/instances/123/backups
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X POST https://api.linode.com/v4/databases/mysql/instances/123/patch
- 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: Backups Cancel
- description: >
- Cancels the Backup service on the given Linode. Deletes all of this Linode's
- existing backups forever.
+ linode-cli databases mysql-patch 123
+ /databases/postgresql/instances:
+ x-linode-cli-command: databases
+ get:
tags:
- - Linode Instances
- operationId: cancelBackups
- x-linode-cli-action: backups-cancel
+ - Databases
+ summary: Managed PostgreSQL Databases List
+ operationId: getDatabasesPostgreSQLInstances
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-list
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ description: |
+ Display all accessible Managed PostgreSQL Databases.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - databases:read_only
responses:
'200':
- description: Backup service was cancelled for the specified Linode.
+ description: Returns a paginated list of all accessible Managed PostgreSQL Databases on your Account.
content:
application/json:
schema:
- type: object
+ allOf:
+ - $ref: '#/components/schemas/PaginationEnvelope'
+ - type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/DatabasePostgreSQL'
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
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/postgresql/instances/
- 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
+ linode-cli databases postgresql-list
post:
- x-linode-grant: read_write
- summary: Backups Enable
- description: >
- Enables backups for the specified Linode.
tags:
- - Linode Instances
- operationId: enableBackups
- x-linode-cli-action: backups-enable
+ - Databases
+ summary: Managed PostgreSQL Database Create
+ operationId: postDatabasesPostgreSQLInstances
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-create
+ x-linode-grant: add_databases
+ description: |
+ Provision a Managed PostgreSQL Database.
+
+ Restricted Users must have the `add_databases` grant to use this command.
+
+ New instances can take approximately 15 to 30 minutes to provision.
+
+ The `allow_list` is used to control access to the Managed Database.
+
+ * IP addresses on this list can access the Managed Database. All other sources are blocked.
+ * Entering an empty array (`[]`) blocks all connections (both public and private) to the Managed Database.
+
+ All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.
+
+ All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed PostgreSQL Database during configurable maintenance windows.
+
+ * If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.
+
+ * **The database software is not updated automatically.** To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.
+
+ * To modify update the maintenance window for a Database, use the **Managed PostgreSQL Database Update** ([PUT /databases/postgresql/instances/{instanceId}](/docs/api/databases/#managed-postgresql-database-update)) command.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - databases:read_write
+ requestBody:
+ description: Information about the Managed PostgreSQL Database you are creating.
+ x-linode-cli-allowed-defaults:
+ - region
+ - type
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DatabasePostgreSQLRequest'
responses:
'200':
- description: Backup service was enabled.
+ description: A new Managed PostgreSQL Database is provisioning.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/DatabasePostgreSQL'
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
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "label": "example-db",
+ "region": "us-east",
+ "type": "g6-dedicated-2",
+ "cluster_size": 3,
+ "engine": "postgresql/13.2",
+ "encrypted": false,
+ "ssl_connection": false,
+ "replication_type": "asynch",
+ "replication_commit_type": "local",
+ "allow_list": [
+ "203.0.113.1",
+ "192.0.1.0/24"
+ ]
+ }' \
+ https://api.linode.com/v4/databases/postgresql/instances
- lang: CLI
source: >
- linode-cli linodes backups-enable 123
- /linode/instances/{linodeId}/backups/{backupId}:
+ linode-cli databases postgresql-create \
+ --label example-db \
+ --region us-east \
+ --type g6-dedicated-2 \
+ --cluster_size 3 \
+ --engine postgresql/13.2 \
+ --encrypted false \
+ --ssl_connection false \
+ --replication_type asynch \
+ --replication_commit_type local \
+ --allow_list 203.0.113.1 \
+ --allow_list 192.0.1.0/24
+ /databases/postgresql/instances/{instanceId}:
+ x-linode-cli-command: databases
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
+ - name: instanceId
+ in: path
+ description: The ID of the Managed PostgreSQL Database.
+ required: true
+ schema:
+ type: integer
get:
- x-linode-grant: read_only
- summary: Backup View
- description: >
- Returns information about a Backup.
tags:
- - Linode Instances
- operationId: getBackup
- x-linode-cli-action: backup-view
+ - Databases
+ summary: Managed PostgreSQL Database View
+ operationId: getDatabasesPostgreSQLInstance
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-view
+ x-linode-grant: read_only
+ description: |
+ Display information for a single, accessible Managed PostgreSQL Database.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - databases:read_only
responses:
'200':
- description: A single Backup.
+ description: Returns information for a single Managed PostgreSQL Database.
content:
application/json:
schema:
- $ref: '#/components/schemas/Backup'
+ $ref: '#/components/schemas/DatabasePostgreSQL'
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
+ https://api.linode.com/v4/databases/postgresql/instances/123
- 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:
+ linode-cli databases postgresql-view 123
+ delete:
+ tags:
+ - Databases
+ summary: Managed PostgreSQL Database Delete
+ operationId: deleteDatabasesPostgreSQLInstance
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-delete
x-linode-grant: read_write
- summary: Backup Restore
- description: >
- Restores a Linode's Backup to the specified Linode.
+ description: |
+ Remove a Managed PostgreSQL Database from your Account.
+
+ Requires `read_write` access to the Database.
+
+ The Database must have an `active`, `failed`, or `degraded` status to perform this command.
+
+ Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - databases:read_write
+ responses:
+ '200':
+ description: Managed PostgreSQL Database 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/databases/postgresql/instances/123
+ - lang: CLI
+ source: >
+ linode-cli databases postgresql-delete 123
+ put:
tags:
- - Linode Instances
- operationId: restoreBackup
- x-linode-cli-action: backup-restore
+ - Databases
+ summary: Managed PostgreSQL Database Update
+ operationId: putDatabasesPostgreSQLInstance
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-update
+ x-linode-grant: read_write
+ description: |
+ Update a Managed PostgreSQL Database.
+
+ Requires `read_write` access to the Database.
+
+ The Database must have an `active` status to perform this command.
+
+ Updating addresses in the `allow_list` overwrites any existing addresses.
+
+ * IP addresses on this list can access the Managed Database. All other sources are blocked.
+ * Entering an empty array (`[]`) blocks all connections (both public and private) to the Managed Database.
+ * **Note**: Updates to the `allow_list` may take a short period of time to complete, making this command inappropriate for rapid successive updates to this property.
+
+ All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed PostgreSQL Database. The maintenance window for these updates is configured with the Managed Database's `updates` property.
+
+ * If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.
+
+ * **The database software is not updated automatically.** To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - databases:read_write
requestBody:
- description: Parameters to provide when restoring the Backup.
+ description: Updated information for the Managed PostgreSQL Database.
required: true
content:
application/json:
schema:
type: object
- required:
- - linode_id
+ description: Updated information for the Managed PostgreSQL Database.
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.
-
- If False, and the Disk image size is larger than the available
- space on the Linode, an error message indicating insufficient
- space is returned.
- example: true
+ label:
+ $ref: '#/components/schemas/DatabasePostgreSQLRequest/properties/label'
+ allow_list:
+ $ref: '#/components/schemas/DatabasePostgreSQLRequest/properties/allow_list'
+ updates:
+ $ref: '#/components/schemas/DatabasePostgreSQL/properties/updates'
responses:
'200':
- description: Restore from Backup was initiated.
+ description: Managed Database updated successfully.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/DatabasePostgreSQL'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -4823,543 +4999,390 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "linode_id": 234,
- "overwrite": true
+ -X PUT -d '{
+ "label": "example-db",
+ "allow_list": [
+ "203.0.113.1",
+ "192.0.1.0/24"
+ ],
+ "updates" = {
+ "frequency": "monthly",
+ "duration": 3,
+ "hour_of_day": 12,
+ "day_of_week": 4,
+ "week_of_month": 3,
+ }
}' \
- https://api.linode.com/v4/linode/instances/123/backups/123456/restore
+ https://api.linode.com/v4/databases/postgresql/instances/123
- lang: CLI
source: >
- linode-cli linodes backup-restore 123 123456 \
- --linode_id 234 \
- --overwrite true
- /linode/instances/{linodeId}/boot:
+ linode-cli databases postgresql-update 123 \
+ --label example-db \
+ --allow_list 203.0.113.1 \
+ --allow_list 192.0.1.0/24 \
+ --updates.frequency monthly \
+ --updates.duration 3 \
+ --updates.hour_of_day 12 \
+ --updates.day_of_week 4 \
+ --updates.week_of_month 3
+ /databases/postgresql/instances/{instanceId}/backups:
+ x-linode-cli-command: databases
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: Linode Boot
+ - name: instanceId
+ in: path
+ description: The ID of the Managed PostgreSQL Database.
+ required: true
+ schema:
+ type: integer
+ get:
+ tags:
+ - Databases
+ summary: Managed PostgreSQL Database Backups List
+ operationId: getDatabasesPostgreSQLInstanceBackups
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-backups-list
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
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:
+ Display all backups for an accessible Managed PostgreSQL Database.
- * 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
+ The Database must not be provisioning to perform this command.
+
+ Database `auto` type backups are created every 24 hours at 0:00 UTC. Each `auto` backup is retained for 7 days.
+
+ Database `snapshot` type backups are created by accessing the **Managed PostgreSQL Database Backup Snapshot Create** ([POST /databases/postgresql/instances/{instanceId}/backups](/docs/api/databases/#managed-postgresql-database-backup-snapshot-create)) command.
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.
- example: null
+ - databases:read_write
responses:
'200':
- description: Boot started.
+ description: Returns a paginated list of backups for the Managed PostgreSQL Database.
content:
application/json:
schema:
- type: object
+ allOf:
+ - $ref: '#/components/schemas/PaginationEnvelope'
+ - type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/DatabaseBackup'
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
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/postgresql/instances/123/backups
- 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
+ linode-cli databases postgresql-backups-list 123
post:
- x-linode-charge: true
- x-linode-grant: add_linodes
- summary: Linode Clone
+ tags:
+ - Databases
+ summary: Managed PostgreSQL Database Backup Snapshot Create
+ operationId: postDatabasesPostgreSQLInstanceBackup
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-backup-snapshot
+ x-linode-grant: read_write
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.
+ Creates a snapshot backup of a Managed PostgreSQL Database.
- If cloning to an existing Linode, any actions currently running or
- queued must be completed first before you can clone to it.
+ Requires `read_write` access to the Database.
- Up to five clone operations from any given source Linode can be run concurrently.
- If more concurrent clones are attempted, an HTTP 400 error will be
- returned by this endpoint.
+ Backups generated by this command have the type `snapshot`. Snapshot backups may take several minutes to complete, after which they will be accessible to view or restore.
- Any [tags](/docs/api/tags/#tags-list) existing on the source Linode will be cloned to the target Linode.
- tags:
- - Linode Instances
- operationId: cloneLinodeInstance
- x-linode-cli-action: clone
+ The Database must have an `active` status to perform this command.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - databases:read_write
requestBody:
- description: The requested state your Linode will be cloned into.
- required: true
- x-linode-cli-allowed-defaults:
- - region
- - type
+ description: Information about the snapshot backup to create.
content:
application/json:
schema:
+ required:
+ - label
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](/docs/api/regions/#regions-list).
-
- * Region can only be provided and is required 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](/docs/api/linode-types/#types-list).
-
- * Type can only be provided and is required when cloning to a new Linode.
- example: g6-standard-2
- linode_id:
- type: integer
- description: >
- If an existing Linode is 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
minLength: 3
maxLength: 64
- description: >
- The label to assign this Linode when cloning to a new Linode.
+ description: |
+ The label for the Database snapshot backup.
- * Can only be provided when cloning to a new Linode.
- * Defaults to "linode".
- example: cloned-linode
- group:
- deprecated: true
+ * Must use only letters, numbers, underscores, dashes, and periods.
+ * Must begin and end with a letter or number.
+ * Must not include two dashes, underscores, or periods in a row.
+ example: db-snapshot
+ target:
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
+ enum:
+ - primary
+ - secondary
+ default: primary
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](/docs/api/linode-types/#types-list).
-
- * Can only be included when cloning to a new Linode.
- example: true
- disks:
- type: array
- description: >
- An array of disk IDs.
-
- * If the `disks` parameter **is not provided**, then **no extra disks
- will be cloned** from the source Linode. All disks associated
- with the configuration profiles specified by the `configs`
- parameter will still be cloned.
+ The Database cluster target.
- * **If an empty array is provided** for the `disks` parameter, then **no extra disks
- will be cloned** from the source Linode. All disks associated
- with the configuration profiles specified by the `configs`
- parameter will still be cloned.
-
- * **If a non-empty array is provided** for the `disks` parameter, then **the disks
- specified in the array will be cloned** from the source Linode, in addition to
- any disks associated with the configuration profiles specified by the `configs`
- parameter.
- items:
- type: integer
- example: 25674
- configs:
- type: array
- description: >
- An array of configuration profile IDs.
-
- * If the `configs` parameter **is not provided**, then **all configuration profiles and their associated disks
- will be cloned** from the source Linode. Any disks specified by the `disks`
- parameter will also be cloned.
-
- * **If an empty array is provided** for the `configs` parameter, then **no
- configuration profiles (nor their associated disks) will be cloned** from
- the source Linode. Any disks specified by the `disks`
- parameter will still be cloned.
-
- * **If a non-empty array is provided** for the `configs` parameter, then **the configuration profiles
- specified in the array (and their associated disks) will be cloned** from the source Linode.
- Any disks specified by the `disks` parameter will also be cloned.
- items:
- type: integer
- example: 23456
+ If the Database is a high availability cluster, choosing `secondary` creates a snapshot backup of a replica node.
+ example: primary
responses:
'200':
- description: Clone started.
+ description: Database snapshot backup request successful.
content:
application/json:
schema:
- $ref: '#/components/schemas/Linode'
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
+ curl -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]
+ "label": "db-snapshot",
+ "target": "primary"
}' \
- https://api.linode.com/v4/linode/instances/123/clone
+ https://api.linode.com/v4/databases/postgresql/instances/123/backups/
- 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:
+ linode-cli databases postgresql-backup-snapshot 123 \
+ --label db-snapshot \
+ --target primary
+ /databases/postgresql/instances/{instanceId}/backups/{backupId}:
+ x-linode-cli-command: databases
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
+ - name: instanceId
+ in: path
+ description: The ID of the Managed PostgreSQL Database.
+ required: true
+ schema:
+ type: integer
+ - name: backupId
+ in: path
+ description: The ID of the Managed PostgreSQL Database backup.
+ required: true
+ schema:
+ type: integer
get:
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
tags:
- - Linode Instances
- summary: Configuration Profiles List
+ - Databases
+ summary: Managed PostgreSQL Database Backup View
+ operationId: getDatabasesPostgreSQLInstanceBackup
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-backup-view
+ x-linode-grant: read_only
description: |
- Lists Configuration profiles associated with a Linode.
- operationId: getLinodeConfigs
- x-linode-cli-action: configs-list
+ Display information for a single backup for an accessible Managed PostgreSQL Database.
+
+ The Database must not be provisioning to perform this command.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - databases:read_write
responses:
'200':
- description: >
- Returns an array of Configuration profiles associated with this Linode.
+ description: Returns a single backup for the Managed PostgreSQL Database.
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'
+ $ref: '#/components/schemas/DatabaseBackup'
+ 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
+ https://api.linode.com/v4/databases/postgresql/instances/123/backups/456
- lang: CLI
source: >
- linode-cli linodes configs-list 123
- post:
+ linode-cli databases postgresql-backup-view 123 456
+ delete:
tags:
- - Linode Instances
- summary: Configuration Profile Create
- description: >
- Adds a new Configuration profile to a Linode.
- operationId: addLinodeConfig
- x-linode-cli-action: config-create
+ - Databases
+ summary: Managed PostgreSQL Database Backup Delete
+ operationId: deleteDatabasePostgreSQLInstanceBackup
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-backup-delete
+ x-linode-grant: unrestricted only
+ description: |
+ Delete a single backup for an accessible Managed PostgreSQL Database.
+
+ Requires `read_write` access to the Database.
+
+ The Database must not be provisioning to perform this command.
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:
- required:
- - label
- - devices
- allOf:
- - $ref: '#/components/schemas/LinodeConfig'
+ - databases:read_write
responses:
'200':
- description: |
- A Configuration profile was created.
+ description: Request to delete Database backup successful.
content:
application/json:
schema:
- $ref: '#/components/schemas/LinodeConfig'
+ 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 '{
- "kernel": "linode/latest-64bit",
- "comments": "This is my main Config",
- "memory_limit": 2048,
- "run_level": "default",
- "virt_mode": "paravirt",
- "interfaces": [
- {
- "purpose": "public",
- "label": "",
- "ipam_address": ""
- },
- {
- "purpose": "vlan",
- "label": "vlan-1",
- "ipam_address": "10.0.0.1/24"
- }
- ],
- "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
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/databases/postgresql/instances/123/backups/456
- 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}:
+ linode-cli databases postgresql-backup-delete 123 456
+ /databases/postgresql/instances/{instanceId}/backups/{backupId}/restore:
+ x-linode-cli-command: databases
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:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed PostgreSQL Database.
+ required: true
+ schema:
+ type: integer
+ - name: backupId
+ in: path
+ description: The ID of the Managed PostgreSQL Database backup.
+ required: true
+ schema:
+ type: integer
+ post:
tags:
- - Linode Instances
- x-linode-grant: read_only
- summary: Configuration Profile View
- description: >
- Returns information about a specific Configuration profile.
- operationId: getLinodeConfig
- x-linode-cli-action: config-view
+ - Databases
+ summary: Managed PostgreSQL Database Backup Restore
+ operationId: postDatabasesPostgreSQLInstanceBackupRestore
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-backup-restore
+ x-linode-grant: read_write
+ description: |
+ Restore a backup to a Managed PostgreSQL Database on your Account.
+
+ Requires `read_write` access to the Database.
+
+ The Database must have an `active` status to perform this command.
+
+ **Note**: Restoring from a backup will erase all existing data on the database instance and replace it with backup data.
+
+ **Note**: Currently, restoring a backup after resetting Managed Database credentials results in a failed cluster. Please contact Customer Support if this occurs.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - databases:read_write
responses:
'200':
- description: A Configuration profile object.
+ description: Request to restore backup successful.
content:
application/json:
schema:
- $ref: '#/components/schemas/LinodeConfig'
+ type: object
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
+ -X POST https://api.linode.com/v4/databases/postgresql/instances/123/backups/456/restore
- lang: CLI
source: >
- linode-cli linodes config-view 123 23456
- put:
- x-linode-grant: read_write
- summary: Configuration Profile Update
- description: >
- Updates a Configuration profile.
+ linode-cli databases postgresql-backup-restore 123 456
+ /databases/postgresql/instances/{instanceId}/credentials:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed PostgreSQL Database.
+ required: true
+ schema:
+ type: integer
+ get:
tags:
- - Linode Instances
- operationId: updateLinodeConfig
- x-linode-cli-action: config-update
+ - Databases
+ summary: Managed PostgreSQL Database Credentials View
+ operationId: getDatabasesPostgreSQLInstanceCredentials
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-creds-view
+ x-linode-grant: read_only
+ description: |
+ Display the root username and password for an accessible Managed PostgreSQL Database.
+
+ The Database must have an `active` status to perform this command.
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",
- "interfaces": [
- {
- "purpose": "public",
- "label": "",
- "ipam_address": ""
- },
- {
- "purpose": "vlan",
- "label": "vlan-1",
- "ipam_address": "10.0.0.1/24"
- }
- ],
- "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
+ - databases:read_only
responses:
'200':
- description: Configuration profile successfully updated.
+ description: Managed Database root username and password.
content:
application/json:
schema:
- $ref: '#/components/schemas/LinodeConfig'
+ $ref: '#/components/schemas/DatabaseCredentials'
default:
$ref: '#/components/responses/ErrorResponse'
- delete:
- summary: Configuration Profile Delete
- description: >
- Deletes the specified Configuration profile from the specified Linode.
- x-linode-grant: read_write
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/databases/postgresql/instances/123/credentials/
+ - lang: CLI
+ source: >
+ linode-cli databases postgresql-creds-view 123
+ /databases/postgresql/instances/{instanceId}/credentials/reset:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed PostgreSQL Database.
+ required: true
+ schema:
+ type: integer
+ post:
tags:
- - Linode Instances
- operationId: deleteLinodeConfig
- x-linode-cli-action: config-delete
+ - Databases
+ summary: Managed PostgreSQL Database Credentials Reset
+ operationId: postDatabasesPostgreSQLInstanceCredentialsReset
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-creds-reset
+ x-linode-grant: read_write
+ description: |
+ Reset the root password for a Managed PostgreSQL Database.
+
+ Requires `read_write` access to the Database.
+
+ A new root password is randomly generated and accessible with the **Managed PostgreSQL Database Credentials View** ([GET /databases/postgresql/instances/{instanceId}/credentials](/docs/api/databases/#managed-postgresql-database-credentials-view)) command.
+
+ Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.
+
+ **Note**: Note that it may take several seconds for credentials to reset.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - databases:read_write
responses:
'200':
- description: >
- Configuration profile successfully deleted.
+ description: Managed Database instance credentials successfully reset.
content:
application/json:
schema:
@@ -5370,435 +5393,407 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/linode/instances/123/configs/23456
+ -X POST https://api.linode.com/v4/databases/postgresql/instances/123/credentials/reset
- lang: CLI
source: >
- linode-cli linodes config-delete 123 23456
- /linode/instances/{linodeId}/disks:
+ linode-cli databases postgresql-creds-reset 123
+ /databases/postgresql/instances/{instanceId}/ssl:
+ x-linode-cli-command: databases
parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up.
- required: true
- schema:
- type: integer
- x-linode-cli-command: linodes
+ - name: instanceId
+ in: path
+ description: The ID of the Managed PostgreSQL Database.
+ required: true
+ schema:
+ type: integer
get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
tags:
- - Linode Instances
- summary: Disks List
- description: >
- View Disk information for Disks associated with this Linode.
- operationId: getLinodeDisks
- x-linode-cli-action: disks-list
+ - Databases
+ summary: Managed PostgreSQL Database SSL Certificate View
+ operationId: getDatabasesPostgreSQLInstanceSSL
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-ssl-cert
+ x-linode-grant: read_only
+ description: |
+ Display the SSL CA certificate for an accessible Managed PostgreSQL Database.
+
+ The Database must have an `active` status to perform this command.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - databases:read_only
responses:
'200':
- description: Returns a paginated list of disks associated with this Linode.
+ description: Returns the SSL CA certificate of a single Managed PostgreSQL Database.
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'
+ $ref: '#/components/schemas/DatabaseSSL'
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
+ https://api.linode.com/v4/databases/postgresql/instances/123/ssl
- lang: CLI
source: >
- linode-cli linodes disks-list 123
+ linode-cli databases postgresql-ssl-cert 123
+ /databases/postgresql/instances/{instanceId}/patch:
+ x-linode-cli-command: databases
+ parameters:
+ - name: instanceId
+ in: path
+ description: The ID of the Managed PostgreSQL Database.
+ required: true
+ schema:
+ type: integer
post:
tags:
- - Linode Instances
- summary: Disk Create
+ - Databases
+ summary: Managed PostgreSQL Database Patch
+ operationId: postDatabasesPostgreSQLInstancePatch
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: postgresql-patch
+ x-linode-grant: read_write
description: |
- Adds a new Disk to a Linode.
-
- * You can optionally create a Disk from an Image or an Empty Disk if no Image is provided with a request.
+ Apply security patches and updates to the underlying operating system of the Managed PostgreSQL Database. This function runs during regular maintenance windows, which are configurable with the **Managed PostgreSQL Database Update** ([PUT /databases/postgresql/instances/{instanceId}](/docs/api/databases/#managed-postgresql-database-update)) command.
- * When creating an Empty Disk, providing a `label` is required.
+ Requires `read_write` access to the Database.
- * If no `label` is provided, an `image` is required instead.
+ The Database must have an `active` status to perform this command.
- * When creating a Disk from an Image, `root_pass` is required.
+ **Note**
- * The default filesystem for new Disks is `ext4`. If creating a Disk from an Image, the filesystem
- of the Image is used unless otherwise specified.
+ * If your database cluster is configured with a single node, you will experience downtime during this maintenance. Consider upgrading to a high availability plan to avoid any downtime due to maintenance.
- * When deploying a StackScript on a Disk:
- * See StackScripts List ([GET /linode/stackscripts](/docs/api/stackscripts/#stackscripts-list)) for
- a list of available StackScripts.
- * Requires a compatible Image to be supplied.
- * See StackScript View ([GET /linode/stackscript/{stackscriptId}](/docs/api/stackscripts/#stackscript-view)) for compatible Images.
- * It is recommended to supply SSH keys for the root User using the `authorized_keys` field.
- * You may also supply a list of usernames via the `authorized_users` field.
- * These users must have an SSH Key associated with their Profiles first. See SSH Key Add ([POST /profile/sshkeys](/docs/api/profile/#ssh-key-add)) for more information.
- operationId: addLinodeDisk
- x-linode-cli-action: disk-create
+ * **The database software is not updated automatically.** To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
- requestBody:
- description: >
- The parameters to set when creating the Disk.
- required: true
- content:
- application/json:
- schema:
- required:
- - size
- allOf:
- - $ref: '#/components/schemas/DiskRequest'
+ - databases:read_write
responses:
'200':
- description: Disk created.
+ description: Managed Database instance patch request successful.
content:
application/json:
schema:
- $ref: '#/components/schemas/Disk'
+ 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 '{
- "label": "Debian 9 Disk",
- "image": "linode/debian9",
- "size": 1300,
- "authorized_keys": [
- "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
- ],
- "authorized_users": [
- "myUser",
- "secondaryUser"
- ],
- "root_pass": "aComplexP@ssword",
- "stackscript_id": 10079,
- "stackscript_data": {
- "gh_username": "linode"
- }
- }' \
- https://api.linode.com/v4/linode/instances/123/disks
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X POST https://api.linode.com/v4/databases/postgresql/instances/123/patch
- lang: CLI
source: >
- linode-cli linodes disk-create 123 \
- --size 1300 \
- --authorized_keys "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer" \
- --authorized_users "myUser" \
- --authorized_users "secondaryUser" \
- --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
+ linode-cli databases postgresql-patch 123
+ /databases/types:
+ x-linode-cli-command: databases
get:
- x-linode-grant: read_only
tags:
- - Linode Instances
- summary: Disk View
- 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
+ - Databases
+ summary: Managed Database Types List
+ operationId: getDatabasesTypes
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: types
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ description: |
+ Display all Managed Database node types. The type and number of nodes determine the resources and price of a Managed Database instance.
+
+ Each Managed Database can have one node type. In the case of a high availabilty Database, all nodes are provisioned according to the chosen type.
responses:
'200':
- description: Returns a single Disk object.
+ description: Returns a paginated list of all Managed Database types.
content:
application/json:
+ x-linode-cli-nested-list: engines.mysql, engines.postgresql, engines.mongodb
+ x-linode-cli-use-schema:
+ type: object
+ properties:
+ id:
+ x-linode-cli-display: 1
+ label:
+ x-linode-cli-display: 2
+ _split:
+ x-linode-cli-display: 2.5
+ engines:
+ properties:
+ quantity:
+ x-linode-cli-display: 3
+ price:
+ properties:
+ hourly:
+ x-linode-cli-display: 4
+ monthly:
+ x-linode-cli-display: 5
schema:
- $ref: '#/components/schemas/Disk'
+ allOf:
+ - $ref: '#/components/schemas/PaginationEnvelope'
+ - type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/DatabaseType'
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
+ curl https://api.linode.com/v4/databases/types
- lang: CLI
source: >
- linode-cli linodes disk-view 123 25674
- put:
- x-linode-grant: read_write
- tags:
- - Linode Instances
- summary: Disk Update
- 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.
+ linode-cli databases types
+ /databases/types/{typeId}:
+ parameters:
+ - name: typeId
+ in: path
+ description: The ID of the Managed Database type.
required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/Disk'
+ schema:
+ type: string
+ x-linode-cli-command: databases
+ get:
+ tags:
+ - Databases
+ summary: Managed Database Type View
+ operationId: getDatabasesType
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
+ x-linode-cli-action: type-view
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ description: |
+ Display the details of a single Managed Database type. The type and number of nodes determine the resources and price of a Managed Database instance.
responses:
'200':
- description: The updated Disk.
+ description: Returns a single Managed Database type.
content:
application/json:
+ x-linode-cli-nested-list: engines.mysql, engines.postgresql, engines.mongodb
+ x-linode-cli-use-schema:
+ type: object
+ properties:
+ id:
+ x-linode-cli-display: 1
+ label:
+ x-linode-cli-display: 2
+ _split:
+ x-linode-cli-display: 2.5
+ engines:
+ properties:
+ quantity:
+ x-linode-cli-display: 3
+ price:
+ properties:
+ hourly:
+ x-linode-cli-display: 4
+ monthly:
+ x-linode-cli-display: 5
schema:
- $ref: '#/components/schemas/Disk'
+ $ref: '#/components/schemas/DatabaseType'
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
+ curl https://api.linode.com/v4/databases/types/g6-nanode-1
- lang: CLI
source: >
- linode-cli linodes disk-update 123 25674 \
- --label "Debian 9 Disk"
- delete:
- x-linode-grant: read_write
+ linode-cli databases type-view g6-nanode-1
+ /domains:
+ x-linode-cli-command: domains
+ get:
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
tags:
- - Linode Instances
- summary: Disk Delete
- 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
+ - Domains
+ summary: Domains List
+ 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:
- - linodes:read_write
+ - domains:read_only
responses:
'200':
- description: Delete successful
+ description: A paginated list of Domains you have registered.
content:
application/json:
schema:
type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
+ 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" \
- -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}/clone:
- 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 clone.
- required: true
- schema:
- type: integer
- x-linode-cli-command: linodes
+ - 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: read_write
+ x-linode-grant: add_domains
tags:
- - Linode Instances
- summary: Disk Clone
+ - Domains
+ summary: Domain Create
description: >
- Copies a disk, byte-for-byte, into a new Disk belonging to the same Linode.
- The Linode must have enough storage space available to accept a new Disk
- of the same size as this one or this operation will fail.
- operationId: cloneLinodeDisk
- x-linode-cli-action: disk-clone
+ 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:
- - linodes:read_write
+ - domains:read_write
+ requestBody:
+ description: Information about the domain you are registering.
+ required: true
+ content:
+ application/json:
+ schema:
+ required:
+ - domain
+ - type
+ allOf:
+ - $ref: '#/components/schemas/Domain'
responses:
'200':
- description: Disk clone initiated.
+ description: |
+ Domain added successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Disk'
+ $ref: '#/components/schemas/Domain'
default:
$ref: '#/components/responses/ErrorResponse'
- /linode/instances/{linodeId}/disks/{diskId}/password:
+ 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"],
+ "group": "Example Display Group",
+ "tags": ["tag1","tag2"]
+ }' \
+ 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: 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
+ - name: domainId
+ in: path
+ description: The ID of the Domain to access.
+ required: true
+ schema:
+ type: integer
+ get:
+ x-linode-grant: read_only
tags:
- - Linode Instances
- summary: Disk Root Password Reset
+ - Domains
+ summary: Domain View
description: >
- Resets the password of a Disk you have permission to `read_write`.
- operationId: resetDiskPassword
- x-linode-cli-action: disk-reset-password
+ 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:
- - 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 meet the complexity strength validation requirements for a strong password.
- example: another@complex^Password123
+ - domains:read_only
responses:
'200':
- description: Returns a single Disk object.
+ description: |
+ A single Domain in Linode's DNS Manager.
content:
application/json:
schema:
- type: object
+ $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 '{
- "password": "another@complex^Password123"
- }' \
- https://api.linode.com/v4/linode/instances/123/disks/25674/password
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/domains/123
- 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:
+ linode-cli domains view 123
+ put:
x-linode-grant: read_write
tags:
- - Linode Instances
- summary: Disk Resize
+ - Domains
+ summary: Domain Update
description: |
- Resizes a Disk you have permission to `read_write`.
-
- The Disk must not be in use. If the Disk is in use, the request will
- succeed but the resize will ultimately fail. For a request to succeed,
- the Linode must be shut down prior to resizing the Disk, or the Disk
- must not be assigned to the Linode's active Configuration Profile.
-
- 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.
- operationId: resizeDisk
- x-linode-cli-action: disk-resize
+ Update information about a Domain in Linode's DNS Manager.
+ operationId: updateDomain
+ x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - domains:read_write
requestBody:
- description: The new size of the Disk.
+ description: The Domain information to update.
required: true
content:
application/json:
schema:
- required:
- - size
- properties:
- size:
- type: integer
- description: >
- The desired size, in MB, of the disk.
- minimum: 1
- example: 2048
+ $ref: '#/components/schemas/Domain'
responses:
'200':
- description: Resize started.
+ description: Domain update successful.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/Domain'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -5806,330 +5801,330 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "size": 2048
+ -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"],
+ "group": "Example Display Group",
+ "tags": ["tag1","tag2"]
}' \
- https://api.linode.com/v4/linode/instances/123/disks/25674/resize
+ https://api.linode.com/v4/domains/123
- lang: CLI
source: >
- linode-cli linodes disk-resize 123 25674 \
- --size 2048
- /linode/instances/{linodeId}/firewalls:
- 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'
+ linode-cli domains update 1234 \
+ --retry_sec 7200 \
+ --ttl_sec 300
+ delete:
+ x-linode-grant: read_write
tags:
- - Linode Instances
- summary: Firewalls List
+ - Domains
+ summary: Domain Delete
description: >
- View Firewall information for Firewalls associated with this Linode.
- operationId: getLinodeFirewalls
- x-linode-cli-action: firewalls-list
+ 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:
- - linodes:read_only
+ - domains:read_write
responses:
'200':
- description: Returns a paginated list of Firewalls associated with this Linode.
+ description: Domain deleted successfully.
content:
application/json:
schema:
type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/Firewall'
- 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/firewalls
- - lang: CLI
- source: >
- linode-cli linodes firewalls-list 123
- /linode/instances/{linodeId}/ips:
+ - 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}/zone-file:
+ x-linode-cli-command: domains
parameters:
- - name: linodeId
+ - name: domainId
in: path
- description: ID of the Linode to look up.
+ description: ID of the Domain.
required: true
schema:
- type: integer
- x-linode-cli-command: linodes
+ type: string
get:
x-linode-grant: read_only
tags:
- - Linode Instances
- summary: Networking Information List
+ - Domains
+ summary: Domain Zone File View
description: >
- Returns networking information for a single Linode.
- operationId: getLinodeIPs
- x-linode-cli-action: ips-list
+ Returns the zone file for the last rendered zone for the specified domain.
+ operationId: getDomainZone
+ x-linode-cli-action: zone-file
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - domains:read_only
responses:
'200':
- description: Requested Linode's networking configuration.
+ description: |
+ An array containing the lines of the domain zone file.
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'
- description: >
- A list of shared IP Address objects assigned to this Linode.
- reserved:
- type: array
- readOnly: true
- items:
- $ref: '#/components/schemas/IPAddress'
- description: >
- A list of reserved IP Address objects belonging to this Linode.
- 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'
+ zone_file:
+ type: array
+ items:
+ type: string
+ example:
+ - "; example.com [123]"
+ - "$TTL 864000"
+ - "@ IN SOA ns1.linode.com. user.example.com. 2021000066 14400 14400 1209600 86400"
+ - "@ NS ns1.linode.com."
+ - "@ NS ns2.linode.com."
+ - "@ NS ns3.linode.com."
+ - "@ NS ns4.linode.com."
+ - "@ NS ns5.linode.com."
+ description: |
+ The lines of the zone file for the last rendered zone for this domain.
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
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/domains/123/zone-file
- lang: CLI
source: >
- linode-cli linodes 123 ips-list
+ linode-cli domains zone-file 123
+ /domains/import:
+ x-linode-cli-command: domains
post:
x-linode-grant: read_write
+ x-linode-cli-command: domains
tags:
- - Linode Instances
- summary: IPv4 Address Allocate
+ - Domains
+ summary: Domain Import
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](/docs/api/support/#support-ticket-open).
- You may not add more than one private IPv4 address to a single Linode.
- operationId: addLinodeIP
- x-linode-cli-action: ip-add
+ Imports a domain zone from a remote nameserver.
+
+ Your nameserver must allow zone transfers (AXFR) from the following IPs:
+
+ - 96.126.114.97
+ - 96.126.114.98
+ - 2600:3c00::5e
+ - 2600:3c00::5f
+ operationId: importDomain
+ x-linode-cli-action: import
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - domains:read_write
requestBody:
- description: Information about the address you are creating.
- required: true
+ description: Information about the Domain to import.
content:
application/json:
schema:
required:
- - type
- - public
+ - domain
+ - remote_nameserver
properties:
- type:
+ domain:
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
+ The domain to import.
+ example: example.com
+ remote_nameserver:
+ type: string
description: >
- Whether to create a public or private IPv4 address.
- example: true
+ The remote nameserver that allows zone transfers (AXFR).
+ example: examplenameserver.com
responses:
'200':
- description: IP address was successfully allocated.
+ description: |
+ A single Domain in Linode's DNS Manager.
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAddress'
+ $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 '{
- "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}:
+ - lang: Shell
+ source: >
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "domain": "example.com",
+ "remote_nameserver": "examplenameserver.com"
+ }' \
+ https://api.linode.com/v4/domains/import
+ - lang: CLI
+ source: >
+ linode-cli domains import --domain example.com --remote_nameserver examplenameserver.com
+ /domains/{domainId}/clone:
+ x-linode-cli-command: domains
parameters:
- - name: linodeId
- in: path
- description: The ID of the Linode to look up.
- required: true
- schema:
- type: integer
- - name: address
+ - name: domainId
in: path
- description: The IP address to look up.
+ description: ID of the Domain to clone.
required: true
schema:
type: string
- format: ip
- x-linode-cli-command: linodes
- get:
- x-linode-grant: read_only
+ post:
+ x-linode-grant: read_write
tags:
- - Linode Instances
- summary: IP Address View
+ - Domains
+ summary: Domain Clone
description: >
- View information about the specified IP address associated
- with the specified Linode.
- operationId: getLinodeIP
- x-linode-cli-action: ip-view
+ Clones a Domain and all associated DNS records from a Domain that is
+ registered in Linode's DNS manager.
+ operationId: cloneDomain
+ x-linode-cli-action: clone
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - domains:read_write
+ requestBody:
+ description: Information about the Domain to clone.
+ required: true
+ content:
+ application/json:
+ schema:
+ required:
+ - domain
+ type: object
+ properties:
+ domain:
+ type: string
+ pattern: \A(\*\.)?([a-zA-Z0-9-_]{1,63}\.)+([a-zA-Z]{2,3}\.)?([a-zA-Z]{2,16}|xn--[a-zA-Z0-9]+)\Z
+ minLength: 1
+ maxLength: 255
+ description: >
+ The new domain for the clone. Domain labels cannot be longer than
+ 63 characters and must conform to [RFC1035](https://tools.ietf.org/html/rfc1035).
+ Domains must be unique on Linode's platform, including across different Linode
+ accounts; there cannot be two Domains representing the same domain.
+ example: example.org
+ x-linode-filterable: true
responses:
'200':
- description: A single IP address.
+ description: |
+ A new Domain in Linode's DNS Manager, based on a cloned Domain.
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAddress'
+ $ref: '#/components/schemas/Domain'
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
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "domain": "example.com"
+ }' \
+ https://api.linode.com/v4/domains/123/clone
- lang: CLI
source: >
- linode-cli linodes ip-view 123 97.107.143.141
- put:
- x-linode-grant: read_write
+ linode-cli domains clone 123 --domain example.com
+ /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:
- - Linode Instances
- summary: IP Address Update
- description: >
- Updates a particular IP Address associated with this Linode.
- Only allows setting/resetting reverse DNS.
- operationId: updateLinodeIP
- x-linode-cli-action: ip-update
+ - Domains
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
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'
+ - domains:read_only
+ summary: Domain Records List
+ 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: The updated IP address record.
+ description: A list of Domain Records.
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAddress'
- default:
- $ref: '#/components/responses/ErrorResponse'
+ 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 "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
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/domains/1234/records
- lang: CLI
source: >
- linode-cli linodes ip-update 123 \
- 97.107.143.141 \
- --rdns test.example.org
- delete:
+ linode-cli domains records-list 1234
+ post:
x-linode-grant: read_write
tags:
- - Linode Instances
- summary: IPv4 Address Delete
- 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
+ - Domains
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - domains:read_write
+ summary: Domain Record Create
+ 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:
+ required:
+ - type
+ allOf:
+ - $ref: '#/components/schemas/DomainRecord'
responses:
'200':
- description: IP address successfully removed.
+ description: Domain Record created successfully.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/DomainRecord'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -6137,225 +6132,146 @@ paths:
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
+ -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 linodes ip-delete 97.107.143.141
- /linode/kernels:
- x-linode-cli-command: kernels
+ 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:
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ x-linode-grant: read_only
tags:
- - Linode Instances
- summary: Kernels List
- description: |
- Lists available Kernels.
- operationId: getKernels
- x-linode-cli-action: list
+ - Domains
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - domains:read_only
+ summary: Domain Record View
+ description: >
+ View a single Record on this Domain.
+ operationId: getDomainRecord
+ x-linode-cli-action: records-view
responses:
'200':
- description: Returns an array of Kernels.
+ description: A Domain Record object.
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'
+ $ref: '#/components/schemas/DomainRecord'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl https://api.linode.com/v4/linode/kernels
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/domains/123/records/234
- 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:
+ linode-cli domains records-view 123 234
+ put:
+ x-linode-grant: read_write
tags:
- - Linode Instances
- summary: Kernel View
+ - Domains
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - domains:read_write
+ summary: Domain Record Update
description: >
- Returns information about a single Kernel.
- operationId: getKernel
- x-linode-cli-action: view
+ 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: A single Kernel object.
+ description: Domain Record updated.
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}/migrate:
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to migrate.
- required: true
- schema:
- type: integer
- x-linode-cli-command: linodes
- post:
- x-linode-grant: read_write
- summary: DC Migration/Pending Host Migration Initiate
- description: >
- Initiate a pending host migration that has been scheduled by Linode or
- initiate a cross data center (DC) migration. A list of pending migrations,
- if any, can be accessed from [GET /account/notifications](/docs/api/account/#notifications-list).
- When the migration begins, your Linode will be shutdown if not already off.
- If the migration initiated the shutdown, it will reboot the Linode when completed.
-
-
- To initiate a cross DC migration, you must pass a `region` parameter to the
- request body specifying the target data center region.
- You can view a list of all available regions and their feature capabilities
- from [GET /regions](/docs/api/regions/#regions-list). If your Linode has a DC migration already queued
- or you have initiated a previously scheduled migration, you will not be able to initiate
- a DC migration until it has completed.
-
-
- **Note:** Next Generation Network (NGN) data centers do not support IPv6 `/116` pools or IP Failover.
- If you have these features enabled on your Linode and attempt to migrate to an NGN data center,
- the migration will not initiate. If a Linode cannot be migrated because of an incompatibility,
- you will be prompted to select a different data center or contact support.
- tags:
- - Linode Instances
- operationId: migrateLinodeInstance
- x-linode-cli-action: migrate
- security:
- - personalAccessToken: []
- - oauth:
- - linodes:read_write
- requestBody:
- content:
- 'application/json':
- schema:
- properties:
- region:
- type: string
- description: >
- The region to which the Linode will be migrated.
- Must be a valid region slug. A list of regions can be viewed
- by using the [GET /regions](/docs/api/regions/#regions-list) endpoint.
- A cross data center migration will cancel a pending migration
- that has not yet been initiated.
-
- A cross data center migration will initiate a `linode_migrate_datacenter_create` event.
- example: us-east
- upgrade:
- type: boolean
- description: >
- When initiating a cross DC migration, setting this value to
- true will also ensure that the Linode is upgraded to the latest
- generation of hardware that corresponds to your Linode's Type, if
- any free upgrades are available for it.
-
- If no free upgrades are available, and this value is set to true,
- then the endpoint will return a 400 error code and the migration
- will not be performed.
-
- If the data center set in the `region` field does not allow upgrades,
- then the endpoint will return a 400 error code and the migration
- will not be performed.
- example: false
- default: false
- responses:
- '200':
- description: Scheduled migration started
- content:
- 'application/json':
- schema:
- type: object
+ $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 '{
- "region": "us-central"
+ -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/linode/instances/123/migrate
+ https://api.linode.com/v4/domains/123/records/234
- lang: CLI
source: >
- linode-cli linodes migrate 123 --region us-central
- /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:
+ 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
- summary: Linode Upgrade
- 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
+ - Domains
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
- requestBody:
- description: Whether to automatically resize disks or not.
- required: false
- content:
- application/json:
- schema:
- type: object
- properties:
- allow_auto_disk_resize:
- type: boolean
- description: >
- Automatically resize disks when resizing a Linode.
- When resizing down to a smaller plan your Linode's
- data must fit within the smaller disk size.
- example: true
- default: true
+ - domains:read_write
+ summary: Domain Record Delete
+ description: >
+ Deletes a Record on this Domain.
+ operationId: deleteDomainRecord
+ x-linode-cli-action: records-delete
responses:
'200':
- description: Mutate started.
+ description: Record deleted successfully.
content:
application/json:
schema:
@@ -6365,41 +6281,41 @@ paths:
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
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/domains/123/records/234
- lang: CLI
source: >
- linode-cli linodes upgrade 123
- /linode/instances/{linodeId}/nodebalancers:
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up
- required: true
- schema:
- type: integer
- x-linode-cli-command: linodes
+ 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:
- - Linode Instances
- summary: Linode NodeBalancers View
+ - Images
+ summary: Images List
description: |
- Returns a list of NodeBalancers that are assigned to this Linode and readable by the requesting User.
+ Returns a paginated list of Images.
- Read permission to a NodeBalancer can be given to a User by accessing the User's Grants Update
- ([PUT /account/users/{username}/grants](/docs/api/account/#users-grants-update)) endpoint.
- operationId: getLinodeNodeBalancers
- x-linode-cli-action: nodebalancers
+ * **Public** Images have IDs that begin with "linode/". These distribution images are generally available to
+ all users.
+
+ * **Private** Images have IDs that begin with "private/". These Images are Account-specific and only
+ accessible to Users with appropriate [Grants](/docs/api/account/#users-grants-view).
+
+ * To view only public Images, call this endpoint with or without authentication. To view private Images as well, call this endpoint with authentication.
+ x-linode-redoc-load-ids: true
+ operationId: getImages
+ x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - images:read_only
responses:
'200':
- description: Returns a paginated list of NodeBalancers.
+ description: A paginated list of Images.
content:
application/json:
schema:
@@ -6408,132 +6324,169 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/NodeBalancer'
+ $ref: '#/components/schemas/Image'
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: >
+ source: |
+ # Returns public Images only
+ curl https://api.linode.com/v4/images
+
+ # Returns private and public Images
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/nodebalancers
+ https://api.linode.com/v4/images
- lang: CLI
source: >
- linode-cli linodes nodebalancers 123
- /linode/instances/{linodeId}/password:
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode for which to reset its root password.
- required: true
- schema:
- type: integer
- x-linode-cli-command: linodes
+ linode-cli images list
post:
- x-linode-grant: read_write
- summary: Linode Root Password Reset
- description: >
- Resets the root password for this Linode.
-
- * Your Linode must be [shut down](/docs/api/linode-instances/#linode-shut-down) for a password reset to complete.
-
- * If your Linode has more than one disk (not counting its swap disk), use the
- [Reset Disk Root Password](/docs/api/linode-instances/#disk-root-password-reset) endpoint to update a specific disk's root password.
-
- * A `password_reset` event is generated when a root password reset is successful.
+ x-linode-grant: add_images
tags:
- - Linode Instances
- operationId: resetLinodePassword
- x-linode-cli-action: linode-reset-password
- security:
- - personalAccessToken: []
- - oauth:
- - linodes:read_write
- requestBody:
- description: This Linode's new root password.
+ - Images
+ summary: Image Create
+ description: |
+ Captures a private gold-master Image from a Linode Disk.
+ operationId: createImage
+ x-linode-cli-action: create
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - images:read_write
+ - linodes:read_only
+ requestBody:
+ description: Information about the Image to create.
content:
- 'application/json':
+ application/json:
schema:
required:
- - root_pass
+ - disk_id
properties:
- root_pass:
+ disk_id:
+ type: integer
+ description: >
+ The ID of the Linode Disk that this Image will be
+ created from.
+ example: 42
+ label:
type: string
description: >
- The root user's password on this Linode. Linode passwords
- must meet a password strength score requirement that is calculated internally
- by the API. If the strength requirement is not met, you will receive a
- Password does not meet strength requirement error.
- example: a$eCure4assw0rd!43v51
+ 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: Password Reset.
+ description: New private Image created successfully.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/Image'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
+ -H "Authorization: Bearer $TOKEN" \
-X POST -d '{
- "root_pass": "a$eCure4assw0rd!43v51"
+ "disk_id": 123,
+ "label": "this_is_a_label",
+ "description": "A longer description of the image"
}' \
- https://api.linode.com/v4/linode/instances/123/password
+ https://api.linode.com/v4/images
- lang: CLI
source: >
- linode-cli linodes linode-reset-password 123 a$eCure4assw0rd!43v51
- /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
+ linode-cli images create \
+ --label this_is_a_label \
+ --description "A longer description \
+ of the image" \
+ --disk_id 123
+ /images/upload:
+ x-linode-cli-command: images
post:
- x-linode-grant: read_write
- summary: Linode Reboot
- 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.
+ x-linode-grant: add_images
+ servers:
+ - url: https://api.linode.com/v4
+ - url: https://api.linode.com/v4beta
tags:
- - Linode Instances
- operationId: rebootLinodeInstance
- x-linode-cli-action: reboot
+ - Images
+ summary: Image Upload
+ description: |
+ Initiates an Image upload.
+
+ This endpoint creates a new private Image object and returns it along
+ with the URL to which image data can be uploaded.
+
+ - Image data must be uploaded within 24 hours of creation or the
+ upload will be cancelled and the image deleted.
+
+ - Image uploads should be made as an HTTP PUT request to the URL returned in the `upload_to`
+ response parameter, with a `Content-type: application/octet-stream` header included in the
+ request. For example:
+
+ curl -v \
+ -H "Content-Type: application/octet-stream" \
+ --upload-file example.img.gz \
+ $UPLOAD_URL \
+ --progress-bar \
+ --output /dev/null
+
+ - Uploaded image data should be compressed in gzip (`.gz`) format. The uncompressed disk should be in raw
+ disk image (`.img`) format. A maximum compressed file size of 5GB is supported for upload at this time.
+
+ **Note:** To initiate and complete an Image upload in a single step, see our guide on how to [Upload an Image](/docs/products/tools/images/guides/upload-an-image/) using Cloud Manager or the Linode CLI `image-upload` plugin.
+ x-linode-cli-action: upload
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - images:read_write
requestBody:
- description: Optional reboot parameters.
+ description: The uploaded Image details.
+ x-linode-cli-allowed-defaults:
+ - region
content:
- 'application/json':
+ application/json:
schema:
+ type: object
+ required:
+ - label
+ - region
properties:
- config_id:
- type: integer
+ region:
+ type: string
description: >
- The Linode Config ID to reboot into. If null or omitted,
- the last booted config will be used. If there was no last
- booted config and this Linode only has one config, it will
- be used. If a config cannot be determined, an error will
- be returned.
- example: null
+ The region to upload to. Once uploaded, the Image can be used in any region.
+ example: eu-central
+ label:
+ type: string
+ description: Label for the uploaded Image.
+ example: my-image-label
+ description:
+ type: string
+ description: Description for the uploaded Image.
+ example: This is an example image in the docs.
responses:
'200':
- description: Reboot started.
+ description: Image Upload object including the upload URL and Image object.
content:
application/json:
schema:
type: object
+ properties:
+ upload_to:
+ type: string
+ description: The URL to upload the Image to.
+ x-linode-cli-display: 1
+ image:
+ $ref: '#/components/schemas/Image'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -6541,228 +6494,105 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/linode/instances/123/reboot
+ -X POST -d '{
+ "description": "Optional details about the Image",
+ "label": "Example Image",
+ "region": "us-east"
+ }' \
+ https://api.linode.com/v4/images/upload
- lang: CLI
- source: >
- linode-cli linodes reboot 123
- /linode/instances/{linodeId}/rebuild:
+ source: |
+ # Upload the Image file in a single step
+ linode-cli image-upload \
+ --description "Optional details about the Image" \
+ --label "Example Image" \
+ --region us-east \
+ /path/to/image-file.img.gz
+
+ # Returns the upload_to URL
+ linode-cli images upload \
+ --description "Optional details about the Image" \
+ --label "Example Image" \
+ --region us-east
+ /images/{imageId}:
+ x-linode-cli-command: images
parameters:
- - name: linodeId
+ - name: imageId
in: path
- description: ID of the Linode to rebuild.
+ description: ID of the Image to look up.
required: true
schema:
- type: integer
- x-linode-cli-command: linodes
- post:
- x-linode-grant: read_write
- summary: Linode Rebuild
- description: >
- Rebuilds a Linode you have the `read_write` permission to modify.
+ type: string
+ get:
+ tags:
+ - Images
+ summary: Image View
+ description: |
+ Get information about a single Image.
- 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:
+ * **Public** Images have IDs that begin with "linode/". These distribution images are generally available to
+ all users.
- * 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
+ * **Private** Images have IDs that begin with "private/". These Images are Account-specific and only
+ accessible to Users with appropriate [Grants](/docs/api/account/#users-grants-view).
+
+ * To view a public Image, call this endpoint with or without authentication. To view a private Image, call this endpoint with authentication.
+ operationId: getImage
+ x-linode-cli-action: view
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'
+ - images:read_only
responses:
'200':
- description: Rebuild started.
+ description: A single Image object.
content:
application/json:
schema:
- $ref: '#/components/schemas/Linode'
+ $ref: '#/components/schemas/Image'
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"
- ],
- "authorized_users": [
- "myUsername",
- "secondaryUsername"
- ],
- "booted": true,
- "stackscript_id": 10079,
- "stackscript_data": {
- "gh_username": "linode"
- }
- }' \
- https://api.linode.com/v4/linode/instances/123/rebuild
+ source: |
+ # Public Image
+ curl https://api.linode.com/v4/images/linode/debian11
+
+ # Private Image
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/images/private/12345
- 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" \
- --authorized_users "myUsername" \
- --authorized_users "secondaryUsername" \
- --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:
+ linode-cli images view linode/debian9
+ put:
x-linode-grant: read_write
- summary: Linode Boot 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: Linode Resize
+ - Images
+ summary: Image Update
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:
-
- * 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
+ Updates a private Image that you have permission to
+ `read_write`.
+ operationId: updateImage
+ x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- - linodes:read_write
+ - images:read_write
requestBody:
description: >
- The Type your current Linode will resize to, and whether to attempt
- to automatically resize the Linode's disks.
+ The fields to update.
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
- allow_auto_disk_resize:
- type: boolean
- description: >
- Automatically resize disks when resizing a Linode.
- When resizing down to a smaller plan your Linode's
- data must fit within the smaller disk size.
- example: true
- default: true
+ $ref: '#/components/schemas/Image'
responses:
'200':
- description: Resize started.
+ description: The updated image.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/Image'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -6770,40 +6600,36 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "type": "g6-standard-2"
+ -X PUT -d '{
+ "label": "My gold-master image",
+ "description": "The detailed description of my Image."
}' \
- https://api.linode.com/v4/linode/instances/123/resize
+ https://api.linode.com/v4/images/private/12345
- 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:
+ linode-cli images update private/12345 \
+ --label "My gold-master image" \
+ --description "The detailed description \
+ of my Image."
+ delete:
x-linode-grant: read_write
- summary: Linode Shut Down
- 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
+ - Images
+ summary: Image Delete
+ 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:
- - linodes:read_write
+ - images:read_write
responses:
'200':
- description: Shutdown started.
+ description: Delete successful
content:
application/json:
schema:
@@ -6813,371 +6639,534 @@ paths:
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
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/images/private/12345
- lang: CLI
source: >
- linode-cli linodes shutdown 123
- /linode/instances/{linodeId}/transfer:
- parameters:
- - name: linodeId
- in: path
- description: ID of the Linode to look up.
- required: true
- schema:
- type: integer
+ linode-cli images delete 12345
+ /linode/instances:
x-linode-cli-command: linodes
get:
x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ summary: Linodes List
+ description: >
+ Returns a paginated list of Linodes you have permission to view.
tags:
- Linode Instances
- summary: Network Transfer View
- description: >
- Returns a Linode's network transfer pool statistics for the current month.
- operationId: getLinodeTransfer
- x-linode-cli-action: transfer-view
+ operationId: getLinodeInstances
+ x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
- description: A collection of the specified Linode's network transfer statistics.
+ description: Returns an array of all Linodes on your Account.
content:
application/json:
schema:
+ type: object
properties:
- used:
- type: integer
- description: >
- The amount of network transfer used by this Linode, in bytes, for the current month's billing cycle.
- example: 22956600198
- readOnly: true
- quota:
- type: integer
- description: >
- The amount of network transfer this Linode adds to your transfer pool, in GB, for the current month's billing cycle.
- example: 2000
- readOnly: true
- billable:
- type: integer
- description: >
- The amount of network transfer this Linode has used, in GB, past your monthly quota.
- example: 0
- readOnly: true
+ 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/123/transfer
+ https://api.linode.com/v4/linode/instances
- lang: CLI
source: >
- linode-cli linodes transfer-view 123
- /linode/instances/{linodeId}/transfer/{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
- minimum: 2000
- maximum: 2037
- - 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:
- x-linode-grant: read_only
+ linode-cli linodes list
+ post:
+ x-linode-charge: true
+ x-linode-grant: add_linodes
+ summary: Linode Create
+ 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
+ Types List ([GET /linode/types](/docs/api/linode-types/#types-list)) to get more
+ information about each Type's specs and cost.
+
+ Linodes can be created in any one of our available Regions, which are accessible from the
+ Regions List ([GET /regions](/docs/api/regions/#regions-list)) endpoint.
+
+ In an effort to fight spam, Linode restricts outbound connections on ports 25, 465, and 587
+ on all Linodes for new accounts created after November 5th, 2019. For more information,
+ see [Sending Email on Linode](/docs/email/running-a-mail-server/#sending-email-on-linode).
+
+ Linodes can be created in a number of ways:
+
+ * Using a Linode Public Image distribution or a Private Image you created based on another Linode.
+ * Access the Images List ([GET /images](/docs/api/images/#images-list)) endpoint with authentication to view
+ all available Images.
+ * 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.
+ * You may also supply a list of usernames via the `authorized_users` field.
+ * These users must have an SSH Key associated with your Profile first. See SSH Key Add ([POST /profile/sshkeys](/docs/api/profile/#ssh-key-add)) for more information.
+
+ * Using a StackScript.
+ * See StackScripts List ([GET /linode/stackscripts](/docs/api/stackscripts/#stackscripts-list)) for
+ a list of available StackScripts.
+ * The Linode will be `running` after it completes `provisioning`.
+ * Requires a compatible Image to be supplied.
+ * See StackScript View ([GET /linode/stackscript/{stackscriptId}](/docs/api/stackscripts/#stackscript-view)) 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.
+ * You may also supply a list of usernames via the `authorized_users` field.
+ * These users must have an SSH Key associated with your Profile first. See SSH Key Add ([POST /profile/sshkeys](/docs/api/profile/#ssh-key-add)) for more information.
+
+ * 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.
+
+ * Attached to a private VLAN.
+ * Review the `interfaces` property of the [Request Body Schema](/docs/api/linode-instances/#linode-create__request-body-schema) for details.
+ * For more information, see our guide on [Getting Started with VLANs](/docs/guides/getting-started-with-vlans/).
+
+ * Create an empty Linode.
+ * The Linode will remain `offline` and must be manually started.
+ * See Linode Boot ([POST /linode/instances/{linodeId}/boot](/docs/api/linode-instances/#linode-boot)).
+ * Disks and Configs must be created manually.
+ * This is only recommended for advanced use cases.
+
+ **Important**: You must be an unrestricted User in order to add or modify
+ tags on Linodes.
tags:
- Linode Instances
- summary: Network Transfer View (year/month)
- description: >
- Returns a Linode's network transfer statistics for a specific month. The year/month
- values must be either a date in the past, or the current month.
- operationId: getLinodeTransferByYearMonth
- x-linode-cli-skip: true
- x-linode-cli-action: transfer-month
+ operationId: createLinodeInstance
+ x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - linodes:read_write
+ requestBody:
+ description: The requested initial state of a new Linode.
+ required: true
+ x-linode-cli-allowed-defaults:
+ - region
+ - image
+ - type
+ content:
+ application/json:
+ schema:
+ required:
+ - type
+ - region
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/LinodeRequest'
+ - 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 [GET /linode/instances/{linodeId}/backups](/docs/api/linode-instances/#backups-list)
+ 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.
+
+ This option is always treated as `true` if the account-wide `backups_enabled`
+ setting is `true`. See [account settings](/docs/api/account/#account-settings-view)
+ for more information.
+
+ Backup pricing is included in the response from [/linodes/types](/docs/api/linode-types/#types-list)
+ 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 [Linode Type](/docs/api/linode-types/#types-list) of the Linode
+ you are creating.
+ example: g6-standard-2
+ region:
+ type: string
+ description: >
+ The [Region](/docs/api/regions/#regions-list) where the Linode
+ will be located.
+ example: us-east
+ label:
+ $ref: '#/components/schemas/Linode/properties/label'
+ tags:
+ $ref: '#/components/schemas/Linode/properties/tags'
+ group:
+ $ref: '#/components/schemas/Linode/properties/group'
+ private_ip:
+ type: boolean
+ description: >
+ If true, the created Linode will have private networking enabled and assigned a private IPv4 address.
+ example: true
+ interfaces:
+ $ref: '#/components/schemas/LinodeConfigInterfaces'
responses:
'200':
description: >
- A collection of the specified Linode's network transfer statistics for the requested
- month.
+ A new Linode is being created.
content:
application/json:
schema:
- properties:
- bytes_in:
- type: integer
- description: >
- The amount of inbound public network traffic received by this Linode, in
- bytes, for a specific year/month.
- example: 30471077120
- readOnly: true
- bytes_out:
- type: integer
- description: >
- The amount of outbound public network traffic sent by this Linode, in bytes,
- for a specific year/month.
- example: 22956600198
- readOnly: true
- bytes_total:
- type: integer
- description: >
- The total amount of public network traffic sent and received by this Linode,
- in bytes, for a specific year/month.
- example: 53427677318
- readOnly: true
+ $ref: '#/components/schemas/Linode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/linode/instances/123/transfer/2018/01
- /linode/instances/{linodeId}/stats:
+ 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"
+ },
+ "interfaces": [
+ {
+ "purpose": "public",
+ "label": "",
+ "ipam_address": ""
+ },
+ {
+ "purpose": "vlan",
+ "label": "vlan-1",
+ "ipam_address": "10.0.0.1/24"
+ }
+ ],
+ "authorized_keys": [
+ "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
+ ],
+ "authorized_users": [
+ "myUser",
+ "secondaryUser"
+ ],
+ "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"
+ --authorized_users "myUser"
+ --authorized_users "secondaryUser"
+ /linode/instances/{linodeId}:
parameters:
- name: linodeId
in: path
- description: ID of the Linode to look up.
+ 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: Linode Statistics View
- 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
+ summary: Linode View
+ description: Get a specific Linode by ID.
+ operationId: getLinodeInstance
+ x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- linodes:read_only
responses:
'200':
- description: The Linode's stats for the past 24 hours.
+ description: Returns a single Linode object.
content:
application/json:
schema:
- $ref: '#/components/schemas/LinodeStats'
+ $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/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:
+ 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: Statistics View (year/month)
+ summary: Linode Update
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
+ Updates a Linode that you have permission to `read_write`.
+
+
+ **Important**: You must be an unrestricted User in order to add or modify
+ tags on Linodes.
+ operationId: updateLinodeInstance
+ x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - 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 Linode's statistics for the requested period.
+ description: The updated Linode.
content:
application/json:
schema:
- $ref: '#/components/schemas/LinodeStats'
+ $ref: '#/components/schemas/Linode'
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'
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X PUT -d '{
+ "label": "linode123",
+ "group": "Linode-Group",
+ "alerts": {
+ "cpu": 180,
+ "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 180 \
+ --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: Linode's Volumes List
- description: >
- View Block Storage Volumes attached to this Linode.
- operationId: getLinodeVolumes
- x-linode-cli-action: volumes
+ summary: Linode Delete
+ 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.
+
+ Linodes that are in the process of [cloning](/docs/api/linode-instances/#linode-clone) or [backup restoration](/docs/api/linode-instances/#backup-restore) cannot be deleted.
+ operationId: deleteLinodeInstance
+ x-linode-cli-action: delete
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - linodes:read_write
responses:
'200':
- description: >
- Returns an array of Block Storage Volumes attached to this Linode.
+ description: Delete successful
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
+ -X DELETE \
+ https://api.linode.com/v4/linode/instances/123
- lang: CLI
source: >
- linode-cli linode volumes 123
- /linode/stackscripts:
- x-linode-cli-command: stackscripts
+ 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
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - StackScripts
- summary: StackScripts List
+ summary: Backups List
description: >
- If the request is not authenticated, only public StackScripts are returned.
-
-
- For more information on StackScripts, please read our [StackScripts guides](/docs/platform/stackscripts/).
- operationId: getStackScripts
- x-linode-cli-action: list
+ Returns information about this Linode's available backups.
+ tags:
+ - Linode Instances
+ operationId: getBackups
+ x-linode-cli-action: backups-list
security:
- personalAccessToken: []
- oauth:
- - stackscripts:read_only
+ - linodes: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.
+ description: A collection of the specified Linode's available backups.
content:
application/json:
+ x-linode-cli-rows:
+ - automatic
+ - snapshot.current
+ - snapshot.in_progress
+ x-linode-cli-use-schema:
+ $ref: '#/components/schemas/Backup'
schema:
type: object
properties:
- data:
+ automatic:
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'
+ allOf:
+ - $ref: '#/components/schemas/Backup'
+ - 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 https://api.linode.com/v4/linode/stackscripts
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/linode/instances/123/backups
- lang: CLI
source: >
- linode-cli stackscripts list
+ linode-cli linodes backups-list 123
post:
- x-linode-grant: add_stackscripts
+ x-linode-grant: read_write
+ summary: Snapshot Create
+ description: |
+ Creates a snapshot Backup of a Linode.
+
+ **Important:** If you already have a snapshot of this Linode, this is a destructive
+ action. The previous snapshot will be deleted.
tags:
- - StackScripts
- summary: StackScript Create
- description: >
- Creates a StackScript in your Account.
- operationId: addStackScript
- x-linode-cli-action: create
+ - Linode Instances
+ operationId: createSnapshot
+ x-linode-cli-action: snapshot
security:
- personalAccessToken: []
- oauth:
- - stackscripts:read_write
+ - linodes:read_write
requestBody:
- description: The properties to set for the new StackScript.
required: true
content:
application/json:
schema:
required:
- - script
- label
- - images
- allOf:
- - $ref: '#/components/schemas/StackScript'
+ type: object
+ properties:
+ label:
+ type: string
+ minLength: 1
+ maxLength: 255
+ description: The label for the new snapshot.
+ example: SnapshotLabel
responses:
'200':
- description: StackScript successfully created.
+ description: Snapshot request successful.
content:
application/json:
schema:
- $ref: '#/components/schemas/StackScript'
+ $ref: '#/components/schemas/Backup'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -7186,95 +7175,83 @@ paths:
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"
+ "label": "MyNewSnapshot"
}' \
- https://api.linode.com/v4/linode/stackscripts
+ https://api.linode.com/v4/linode/instances/123/backups
- 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}:
+ linode-cli linodes snapshot 123
+ /linode/instances/{linodeId}/backups/cancel:
parameters:
- - name: stackscriptId
+ - name: linodeId
in: path
- description: The ID of the StackScript to look up.
+ description: The ID of the Linode to cancel backup service for.
required: true
schema:
- type: string
- x-linode-cli-command: stackscripts
- get:
- x-linode-grant: read_only
- tags:
- - StackScripts
- summary: StackScript View
+ type: integer
+ x-linode-cli-command: linodes
+ post:
+ x-linode-grant: read_write
+ summary: Backups Cancel
description: >
- Returns all of the information about a specified
- StackScript, including the contents of the script.
- operationId: getStackScript
- x-linode-cli-action: view
+ 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:
- - stackscripts:read_only
+ - linodes:read_write
responses:
'200':
- description: A single StackScript.
+ description: Backup service was cancelled for the specified Linode.
content:
application/json:
schema:
- $ref: '#/components/schemas/StackScript'
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl https://api.linode.com/v4/linode/stackscripts/10079
+ 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 stackscripts view 10079
- put:
+ 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
- tags:
- - StackScripts
- summary: StackScript Update
+ summary: Backups Enable
description: >
- Updates a StackScript.
-
-
- **Once a StackScript is made public, it cannot be made private.**
- operationId: updateStackScript
- x-linode-cli-action: update
+ Enables backups for the specified Linode.
+ tags:
+ - Linode Instances
+ operationId: enableBackups
+ x-linode-cli-action: backups-enable
security:
- personalAccessToken: []
- oauth:
- - stackscripts:read_write
- requestBody:
- description: The fields to update.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/StackScript'
+ - linodes:read_write
responses:
'200':
- description: StackScript was successfully modified.
+ description: Backup service was enabled.
content:
application/json:
schema:
- $ref: '#/components/schemas/StackScript'
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -7282,629 +7259,660 @@ paths:
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
+ -X POST \
+ https://api.linode.com/v4/linode/instances/123/backups/enable
- 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: StackScript Delete
+ 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: Backup View
description: >
- Deletes a private StackScript you have permission to `read_write`. You cannot delete a public StackScript.
- operationId: deleteStackScript
- x-linode-cli-action: delete
+ Returns information about a Backup.
+ tags:
+ - Linode Instances
+ operationId: getBackup
+ x-linode-cli-action: backup-view
security:
- personalAccessToken: []
- oauth:
- - stackscripts:read_write
+ - linodes:read_only
responses:
'200':
- description: StackScript was deleted.
+ description: A single Backup.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/Backup'
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
+ https://api.linode.com/v4/linode/instances/123/backups/123456
- lang: CLI
source: >
- linode-cli stackscripts delete 10079
- /linode/types:
+ 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
- get:
- tags:
- - Linode Types
- summary: Types List
+ post:
+ x-linode-grant: read_write
+ summary: Backup Restore
description: >
- Returns collection of Linode Types, including pricing and
- specifications for each Type. These are used when
- [creating](/docs/api/linode-instances/#linode-create)
- or [resizing](/docs/api/linode-instances/#linode-resize)
- Linodes.
- x-linode-redoc-load-ids: true
- operationId: getLinodeTypes
- x-linode-cli-action: types
+ 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.
+
+ If False, and the Disk image size is larger than the available
+ space on the Linode, an error message indicating insufficient
+ space is returned.
+ example: true
responses:
'200':
- description: A collection of Linode Types.
+ description: Restore from Backup was initiated.
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
+ 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 types
- /linode/types/{typeId}:
+ linode-cli linodes backup-restore 123 123456 \
+ --linode_id 234 \
+ --overwrite true
+ /linode/instances/{linodeId}/boot:
parameters:
- - name: typeId
+ - name: linodeId
in: path
- description: The ID of the Linode Type to look up.
+ description: The ID of the Linode to boot.
required: true
schema:
- type: string
+ type: integer
x-linode-cli-command: linodes
- get:
+ post:
+ x-linode-grant: read_write
+ summary: Linode Boot
+ 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 Types
- summary: Type View
- description: >
- Returns information about a specific Linode Type, including pricing and
- specifications. This is used when
- [creating](/docs/api/linode-instances/#linode-create)
- or [resizing](/docs/api/linode-instances/#linode-resize)
- 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
- /lke/clusters:
- x-linode-cli-command: lke
- get:
- operationId: getLKEClusters
- x-linode-cli-action: clusters-list
- x-linode-grant: read_only
+ - Linode Instances
+ operationId: bootLinodeInstance
+ x-linode-cli-action: boot
security:
- personalAccessToken: []
- oauth:
- - lke:read_only
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Clusters List
- description: >
- Lists current Kubernetes clusters available on your account.
+ - 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.
+ example: null
responses:
'200':
- description: Returns an array of all Kubernetes clusters on your Account.
+ description: Boot started.
content:
application/json:
schema:
type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/LKECluster'
- 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/lke/clusters
+ 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 lke clusters-list
+ 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:
- operationId: createLKECluster
- x-linode-cli-action: cluster-create
x-linode-charge: true
- x-linode-grant: add_clusters
+ x-linode-grant: add_linodes
+ summary: Linode Clone
+ 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.
+
+ Up to five clone operations from any given source Linode can be run concurrently.
+ If more concurrent clones are attempted, an HTTP 400 error will be
+ returned by this endpoint.
+
+ Any [tags](/docs/api/tags/#tags-list) existing on the source Linode will be cloned to the target Linode.
+ tags:
+ - Linode Instances
+ operationId: cloneLinodeInstance
+ x-linode-cli-action: clone
security:
- personalAccessToken: []
- oauth:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Cluster Create
- description: |
- Creates a Kubernetes cluster. The Kubernetes cluster will be created
- asynchronously. You can use the events system to determine when the
- Kubernetes cluster is ready to use. Please note that it often takes 2-5 minutes before the
- [Kubernetes API server endpoint](/docs/api/linode-kubernetes-engine-lke/#kubernetes-api-endpoints-list) and
- the [Kubeconfig file](/docs/api/linode-kubernetes-engine-lke/#kubeconfig-view) for the new cluster
- are ready.
+ - linodes:read_write
requestBody:
- description: Configuration for the Kubernetes cluster
+ description: The requested state your Linode will be cloned into.
+ required: true
x-linode-cli-allowed-defaults:
- region
+ - type
content:
application/json:
schema:
type: object
- required:
- - label
- - region
- - k8s_version
- - node_pools
properties:
- label:
- $ref: '#/components/schemas/LKECluster/properties/label'
region:
- $ref: '#/components/schemas/LKECluster/properties/region'
- k8s_version:
- $ref: '#/components/schemas/LKECluster/properties/k8s_version'
- tags:
- $ref: '#/components/schemas/LKECluster/properties/tags'
- node_pools:
+ type: string
+ description: >
+ This is the Region where the Linode will be deployed.
+
+ To view all available Regions you can deploy to see
+ [/regions](/docs/api/regions/#regions-list).
+
+ * Region can only be provided and is required 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](/docs/api/linode-types/#types-list).
+
+ * Type can only be provided and is required when cloning to a new Linode.
+ example: g6-standard-2
+ linode_id:
+ type: integer
+ description: >
+ If an existing Linode is 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
+ minLength: 3
+ maxLength: 64
+ 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](/docs/api/linode-types/#types-list).
+
+ * Can only be included when cloning to a new Linode.
+ example: true
+ disks:
type: array
- required:
- - type
- - count
- items:
- $ref: '#/components/schemas/LKENodePoolRequestBody'
- control_plane:
- type: object
description: >
- Defines settings for the Kubernetes Control Plane. Allows for the enabling of High Availability (HA) for Control Plane Components. Enabling High Availability for LKE is an **irreversible** change.
- properties:
- high_availability:
- type: boolean
- description: >
- Defines whether High Availability is enabled for the Control Plane Components of the cluster. Defaults to `false`.
- example: true
- responses:
- '200':
- description: Kubernetes cluster creation has started.
- content:
- application/json:
+ An array of disk IDs.
+
+ * If the `disks` parameter **is not provided**, then **no extra disks
+ will be cloned** from the source Linode. All disks associated
+ with the configuration profiles specified by the `configs`
+ parameter will still be cloned.
+
+ * **If an empty array is provided** for the `disks` parameter, then **no extra disks
+ will be cloned** from the source Linode. All disks associated
+ with the configuration profiles specified by the `configs`
+ parameter will still be cloned.
+
+ * **If a non-empty array is provided** for the `disks` parameter, then **the disks
+ specified in the array will be cloned** from the source Linode, in addition to
+ any disks associated with the configuration profiles specified by the `configs`
+ parameter.
+ items:
+ type: integer
+ example: 25674
+ configs:
+ type: array
+ description: >
+ An array of configuration profile IDs.
+
+ * If the `configs` parameter **is not provided**, then **all configuration profiles and their associated disks
+ will be cloned** from the source Linode. Any disks specified by the `disks`
+ parameter will also be cloned.
+
+ * **If an empty array is provided** for the `configs` parameter, then **no
+ configuration profiles (nor their associated disks) will be cloned** from
+ the source Linode. Any disks specified by the `disks`
+ parameter will still be cloned.
+
+ * **If a non-empty array is provided** for the `configs` parameter, then **the configuration profiles
+ specified in the array (and their associated disks) will be cloned** from the source Linode.
+ Any disks specified by the `disks` parameter will also be cloned.
+ items:
+ type: integer
+ example: 23456
+ responses:
+ '200':
+ description: Clone started.
+ content:
+ application/json:
schema:
- $ref: '#/components/schemas/LKECluster'
+ $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 '{
- "label": "cluster12345",
- "region": "us-central",
- "k8s_version": "1.21",
- "tags": ["ecomm", "blogs"],
- "control_plane": {
- "high_availability": true
- },
- "node_pools": [
- {
- "type": "g6-standard-4",
- "count": 6,
- "autoscaler": {
- "enabled": true,
- "max": 12,
- "min": 3
- }
- },
- {
- "type": "g6-standard-8",
- "count": 3
- }
- ]
- }' \
- https://api.linode.com/v4/lke/clusters
+ -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 lke cluster-create \
- --label cluster12345 \
- --region us-central \
- --k8s_version 1.21 \
- --node_pools.type g6-standard-4 --node_pools.count 6 \
- --node_pools.type g6-standard-8 --node_pools.count 3 \
- --tags ecomm
- /lke/clusters/{clusterId}:
+ 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: clusterId
+ - name: linodeId
in: path
- description: ID of the Kubernetes cluster to look up.
+ description: ID of the Linode to look up Configuration profiles for.
required: true
schema:
type: integer
- x-linode-cli-command: lke
+ x-linode-cli-command: linodes
get:
- operationId: getLKECluster
- x-linode-cli-action: cluster-view
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ tags:
+ - Linode Instances
+ summary: Configuration Profiles List
+ description: |
+ Lists Configuration profiles associated with a Linode.
+ operationId: getLinodeConfigs
+ x-linode-cli-action: configs-list
security:
- personalAccessToken: []
- oauth:
- - lke:read_only
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Cluster View
- description: >
- Get a specific Cluster by ID.
+ - linodes:read_only
responses:
'200':
- description: Returns a single Kubernetes cluster.
+ description: >
+ Returns an array of Configuration profiles associated with this Linode.
content:
application/json:
schema:
- $ref: '#/components/schemas/LKECluster'
- default:
- $ref: '#/components/responses/ErrorResponse'
+ 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/lke/clusters/12345
+ https://api.linode.com/v4/linode/instances/123/configs
- lang: CLI
- source:
- linode-cli lke cluster-view 12345
- put:
- operationId: putLKECluster
- x-linode-cli-action: cluster-update
+ source: >
+ linode-cli linodes configs-list 123
+ post:
+ tags:
+ - Linode Instances
+ summary: Configuration Profile Create
+ description: >
+ Adds a new Configuration profile to a Linode.
+ operationId: addLinodeConfig
+ x-linode-cli-action: config-create
security:
- personalAccessToken: []
- oauth:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Cluster Update
- description: >
- Updates a Kubernetes cluster.
+ - linodes:read_write
requestBody:
- description: The fields to update the Kubernetes cluster.
+ 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:
- properties:
- label:
- $ref: '#/components/schemas/LKECluster/properties/label'
- tags:
- type: array
- items:
- type: string
- example:
- - prod
- - monitoring
- - ecomm
- - blog
- description: >
- An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.
- To delete a tag, exclude it from your `tags` array.
- k8s_version:
- type: string
- description: >
- The desired Kubernetes version for this Kubernetes cluster in the format of
- <major>.<minor>. New and recycled Nodes in this cluster will be installed with the
- latest available patch for the Cluster's Kubernetes version.
-
-
- When upgrading the Kubernetes version, only the next latest minor version following the current
- version can be deployed. For example, a cluster with Kubernetes version 1.19 can be upgraded to
- version 1.20, but not directly to 1.21.
-
-
- The Kubernetes version of a cluster can not be downgraded.
- control_plane:
- type: object
- description: |
- Defines settings for the Kubernetes Control Plane. Allows for the enabling of High Availability (HA) for Control Plane Components.
-
- Enabling High Availability for LKE is an **irreversible** change.
-
- When upgrading pre-existing LKE clusters to use the HA Control Plane, the following changes will additionally occur:
-
- - All nodes will be deleted and new nodes will be created to replace them.
-
- - Any local storage (such as `hostPath` volumes) will be erased.
-
- - The upgrade process may take several minutes to complete, as nodes will be replaced on a rolling basis.
- properties:
- high_availability:
- type: boolean
- description: >
- Defines whether High Availability is enabled for the Control Plane Components of the cluster. Defaults to `false`.
- example: true
+ required:
+ - label
+ - devices
+ allOf:
+ - $ref: '#/components/schemas/LinodeConfig'
responses:
'200':
- description: Returns a single Kubernetes cluster.
+ description: |
+ A Configuration profile was created.
content:
application/json:
schema:
- properties:
- label:
- $ref: '#/components/schemas/LKECluster/properties/label'
- tags:
- type: array
- items:
- type: string
- example:
- - prod
- - monitoring
- - ecomm
- - blog
- description: >
- An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.
- To delete a tag, exclude it from your `tags` array.
- created:
- $ref: '#/components/schemas/LKECluster/properties/created'
- updated:
- $ref: '#/components/schemas/LKECluster/properties/updated'
- region:
- $ref: '#/components/schemas/LKECluster/properties/region'
- k8s_version:
- $ref: '#/components/schemas/LKECluster/properties/k8s_version'
+ $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 PUT -d '{
- "label": "lkecluster54321"
- "tags" : ["ecomm", "blog", "prod", "monitoring"]
- "control_plane": {
- "high_availability": true
- },
- "k8s_version": "1.17"
- }' \
- https://api.linode.com/v4/lke/clusters/12345
- - lang: CLI
- source: >
- linode-cli lke cluster-update 12345 \
- --label lkecluster54321 \
- --tags ecomm \
- --tags blog \
- --tags prod \
- --tags monitoring
- delete:
- operationId: deleteLKECluster
- x-linode-cli-action: cluster-delete
- security:
- - personalAccessToken: []
- - oauth:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Cluster Delete
- description: |
- Deletes a Cluster you have permission to `read_write`.
-
- **Deleting a Cluster is a destructive action and cannot be undone.**
-
- Deleting a Cluster:
- - Deletes all Linodes in all pools within this Kubernetes cluster
- - Deletes all supporting Kubernetes services for this Kubernetes
- cluster (API server, etcd, etc)
- - Deletes all NodeBalancers created by this Kubernetes cluster
- - Does not delete any of the volumes created by this Kubernetes
- cluster
- 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/lke/clusters/12345
+ -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",
+ "interfaces": [
+ {
+ "purpose": "public",
+ "label": "",
+ "ipam_address": ""
+ },
+ {
+ "purpose": "vlan",
+ "label": "vlan-1",
+ "ipam_address": "10.0.0.1/24"
+ }
+ ],
+ "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 lke cluster-delete 12345
- /lke/clusters/{clusterId}/pools:
+ 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: clusterId
+ - name: linodeId
in: path
- description: ID of the Kubernetes cluster to look up.
+ description: The ID of the Linode whose Configuration profile to look up.
required: true
schema:
type: integer
- x-linode-cli-command: lke
+ - 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:
- operationId: getLKEClusterPools
- x-linode-cli-action: pools-list
+ tags:
+ - Linode Instances
+ x-linode-grant: read_only
+ summary: Configuration Profile View
+ description: >
+ Returns information about a specific Configuration profile.
+ operationId: getLinodeConfig
+ x-linode-cli-action: config-view
security:
- personalAccessToken: []
- oauth:
- - lke:read_only
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node Pools List
- description: >
- Returns all active Node Pools on a Kubernetes cluster.
+ - linodes:read_only
responses:
'200':
- description: Returns an array of all Pools in this Kubernetes cluster.
+ description: A Configuration profile object.
content:
application/json:
- x-linode-cli-nested-list: nodes
- x-linode-cli-use-schema:
- type: object
- properties:
- id:
- x-linode-cli-display: 1
- type:
- x-linode-cli-display: 2
- nodes.id:
- x-linode-cli-display: 3
- nodes.instance_id:
- x-linode-cli-display: 4
- nodes.status:
- x-linode-cli-display: 5
schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/LKENodePool'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ $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/lke/clusters/12345/pools
+ https://api.linode.com/v4/linode/instances/123/configs/23456
- lang: CLI
source: >
- linode-cli lke pools-list 12345
- post:
- operationId: postLKEClusterPools
- x-linode-cli-action: pool-create
+ linode-cli linodes config-view 123 23456
+ put:
+ x-linode-grant: read_write
+ summary: Configuration Profile Update
+ description: >
+ Updates a Configuration profile.
+ tags:
+ - Linode Instances
+ operationId: updateLinodeConfig
+ x-linode-cli-action: config-update
security:
- personalAccessToken: []
- oauth:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node Pool Create
- description: >
- Creates a new Node Pool for the designated Kubernetes cluster.
+ - linodes:read_write
requestBody:
- description: Configuration for the Node Pool
+ description: The Configuration profile parameters to modify.
required: true
content:
application/json:
schema:
- type: object
- required:
- - type
- - count
- allOf:
- - $ref: '#/components/schemas/LKENodePoolRequestBody'
- responses:
- '200':
- description: Node Pool has been created.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LKENodePool'
- default:
- $ref: '#/components/responses/ErrorResponse'
+ $ref: '#/components/schemas/LinodeConfig'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "type": "g6-standard-4",
- "count": 6,
- "tags": ["example-tag"],
- "autoscaler": {
- "enabled": true,
- "max": 12,
- "min": 3
+ -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",
+ "interfaces": [
+ {
+ "purpose": "public",
+ "label": "",
+ "ipam_address": ""
+ },
+ {
+ "purpose": "vlan",
+ "label": "vlan-1",
+ "ipam_address": "10.0.0.1/24"
}
- }' \
- https://api.linode.com/v4/lke/clusters/12345/pools
+ ],
+ "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 lke pool-create 12345 \
- --type g6-standard-4 \
- --count 6 \
- --tags example-tag
- /lke/clusters/{clusterId}/recycle:
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster which contains nodes to be recycled.
- required: true
- schema:
- type: integer
- x-linode-cli-command: lke
- post:
- operationId: postLKEClusterRecycle
- x-linode-cli-action: cluster-nodes-recycle
+ 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: Configuration Profile Delete
+ 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:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Cluster Nodes Recycle
- description: |
- Recycles all nodes in all pools of a designated Kubernetes Cluster. All Linodes within the Cluster will be deleted
- and replaced with new Linodes on a rolling basis, which may take several minutes. Replacement Nodes are
- installed with the latest available [patch version](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/release/versioning.md#kubernetes-release-versioning) for the Cluster's current Kubernetes minor release.
-
- **Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.**
+ - linodes:read_write
responses:
'200':
- description: Recycle request succeeded and is in progress.
+ description: >
+ Configuration profile successfully deleted.
content:
application/json:
schema:
@@ -7914,368 +7922,479 @@ paths:
x-code-samples:
- lang: Shell
source: >
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/lke/clusters/12345/recycle
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/linode/instances/123/configs/23456
- lang: CLI
source: >
- linode-cli lke cluster-nodes-recycle 12345
- /lke/clusters/{clusterId}/pools/{poolId}:
+ linode-cli linodes config-delete 123 23456
+ /linode/instances/{linodeId}/disks:
parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster to look up.
- required: true
- schema:
- type: integer
- - name: poolId
+ - name: linodeId
in: path
- description: ID of the Pool to look up
+ description: ID of the Linode to look up.
required: true
schema:
type: integer
- x-linode-cli-command: lke
+ x-linode-cli-command: linodes
get:
- operationId: getLKENodePool
- x-linode-cli-action: pool-view
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ tags:
+ - Linode Instances
+ summary: Disks List
+ description: >
+ View Disk information for Disks associated with this Linode.
+ operationId: getLinodeDisks
+ x-linode-cli-action: disks-list
security:
- personalAccessToken: []
- oauth:
- - lke:read_only
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node Pool View
- description: >
- Get a specific Node Pool by ID.
+ - linodes:read_only
responses:
'200':
- description: Returns the requested Node Pool.
+ description: Returns a paginated list of disks associated with this Linode.
content:
application/json:
schema:
- $ref: '#/components/schemas/LKENodePool'
+ 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/lke/clusters/12345/pools/456
+ https://api.linode.com/v4/linode/instances/123/disks
- lang: CLI
source: >
- linode-cli lke pool-view 12345 456
- put:
- operationId: putLKENodePool
- x-linode-cli-action: pool-update
- security:
- - personalAccessToken: []
- - oauth:
- - lke:read_write
+ linode-cli linodes disks-list 123
+ post:
tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node Pool Update
+ - Linode Instances
+ summary: Disk Create
description: |
- Updates a Node Pool's count.
+ Adds a new Disk to a Linode.
- Linodes will be created or deleted to match changes to the Node Pool's count.
+ * You can optionally create a Disk from an Image or an Empty Disk if no Image is provided with a request.
- **Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.**
+ * When creating an Empty Disk, providing a `label` is required.
+
+ * If no `label` is provided, an `image` is required instead.
+
+ * When creating a Disk from an Image, `root_pass` is required.
+
+ * The default filesystem for new Disks is `ext4`. If creating a Disk from an Image, the filesystem
+ of the Image is used unless otherwise specified.
+
+ * When deploying a StackScript on a Disk:
+ * See StackScripts List ([GET /linode/stackscripts](/docs/api/stackscripts/#stackscripts-list)) for
+ a list of available StackScripts.
+ * Requires a compatible Image to be supplied.
+ * See StackScript View ([GET /linode/stackscript/{stackscriptId}](/docs/api/stackscripts/#stackscript-view)) for compatible Images.
+ * It is recommended to supply SSH keys for the root User using the `authorized_keys` field.
+ * You may also supply a list of usernames via the `authorized_users` field.
+ * These users must have an SSH Key associated with their Profiles first. See SSH Key Add ([POST /profile/sshkeys](/docs/api/profile/#ssh-key-add)) for more information.
+ operationId: addLinodeDisk
+ x-linode-cli-action: disk-create
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_write
requestBody:
- description: The fields to update
+ description: >
+ The parameters to set when creating the Disk.
+ required: true
content:
application/json:
schema:
- properties:
- count:
- $ref: '#/components/schemas/LKENodePoolRequestBody/properties/count'
+ required:
+ - size
+ allOf:
+ - $ref: '#/components/schemas/DiskRequest'
responses:
'200':
- description: Node Pool was successfully modified.
+ description: Disk created.
content:
application/json:
schema:
- $ref: '#/components/schemas/LKENodePool'
+ $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 '{
- "count": 6
- }' \
- https://api.linode.com/v4/lke/clusters/12345/pools/456
+ -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"
+ ],
+ "authorized_users": [
+ "myUser",
+ "secondaryUser"
+ ],
+ "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 lke pool-update 12345 456 \
- --count 6 \
- delete:
- operationId: deleteLKENodePool
- x-linode-cli-action: pool-delete
+ linode-cli linodes disk-create 123 \
+ --size 1300 \
+ --authorized_keys "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer" \
+ --authorized_users "myUser" \
+ --authorized_users "secondaryUser" \
+ --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: Disk View
+ description: >
+ View Disk information for a Disk associated with this Linode.
+ operationId: getLinodeDisk
+ x-linode-cli-action: disk-view
security:
- personalAccessToken: []
- oauth:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node Pool Delete
- description: |
- Delete a specific Node Pool from a Kubernetes cluster.
-
- **Deleting a Node Pool is a destructive action and cannot be undone.**
-
- Deleting a Node Pool will delete all Linodes within that Pool.
+ - linodes:read_only
responses:
'200':
- description: Delete successful
+ description: Returns a single Disk object.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/Disk'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/lke/clusters/12345/pools/456
+ https://api.linode.com/v4/linode/instances/123/disks/25674
- lang: CLI
source: >
- linode-cli lke pool-delete 12345 456
- /lke/clusters/{clusterId}/pools/{poolId}/recycle:
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster this Node Pool is attached to.
- required: true
- schema:
- type: integer
- - name: poolId
- in: path
- description: ID of the Node Pool to be recycled.
- required: true
- schema:
- type: integer
- x-linode-cli-command: lke
- post:
- operationId: postLKEClusterPoolRecycle
- x-linode-cli-action: pool-recycle
+ linode-cli linodes disk-view 123 25674
+ put:
+ x-linode-grant: read_write
+ tags:
+ - Linode Instances
+ summary: Disk Update
+ description: >
+ Updates a Disk that you have permission to `read_write`.
+ operationId: updateDisk
+ x-linode-cli-action: disk-update
security:
- personalAccessToken: []
- oauth:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node Pool Recycle
- description: |
- Recycles a Node Pool for the designated Kubernetes Cluster. All Linodes within the Node Pool will be deleted
- and replaced with new Linodes on a rolling basis, which may take several minutes. Replacement Nodes are
- installed with the latest available patch for the Cluster's Kubernetes Version.
-
- **Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.**
+ - 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: Recycle request succeeded and is in progress.
+ description: The updated Disk.
content:
application/json:
schema:
- type: object
+ $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 \
- https://api.linode.com/v4/lke/clusters/12345/pools/456/recycle
+ -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 lke pool-recycle 12345 456
- /lke/clusters/{clusterId}/nodes/{nodeId}:
- parameters:
- - name: clusterId
- in: path
- description: ID of the Kubernetes cluster containing the Node.
- required: true
- schema:
- type: integer
- - name: nodeId
- in: path
- description: ID of the Node to look up.
- required: true
- schema:
- type: string
- x-linode-cli-command: lke
- get:
- operationId: getLKEClusterNode
- x-linode-cli-action: node-view
+ linode-cli linodes disk-update 123 25674 \
+ --label "Debian 9 Disk"
+ delete:
+ x-linode-grant: read_write
+ tags:
+ - Linode Instances
+ summary: Disk Delete
+ 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:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node View
- description: >
- Returns the values for a specified node object.
+ - linodes:read_write
responses:
'200':
- description: Returns the values of a node object in the form that it appears currently in the node pool array.
+ description: Delete successful
content:
application/json:
schema:
type: object
- properties:
- data:
- type: object
- description: >
- The selected node in the cluster.
- properties:
- id:
- type: string
- readOnly: true
- description: >
- The Node's ID.
- example: "12345-6aa78910bc"
- instance_id:
- type: integer
- description: >
- The Linode's ID. If no Linode is currently provisioned for this Node, this is `null`.
- example: 123456
- status:
- type: string
- description: >
- The creation status of this Node. This status is distinct from this Node's readiness as a
- Kubernetes Node Object as determined by the command `kubectl get nodes`.
-
-
- `not_ready` indicates that the Linode is still being created.
-
-
- `ready` indicates that the Linode has successfully been created and is running Kubernetes software.
- enum:
- - ready
- - not_ready
- example: ready
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/clusters/12345/nodes/12345-6aa78910bc
+ -X DELETE \
+ https://api.linode.com/v4/linode/instances/123/disks/25674
- lang: CLI
source: >
- linode-cli lke node-view 123456 12345-6aa78910bc
- delete:
- operationId: deleteLKEClusterNode
- x-linode-cli-action: node-delete
+ linode-cli linodes disk-delete 123 24674
+ /linode/instances/{linodeId}/disks/{diskId}/clone:
+ 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 clone.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: linodes
+ post:
+ x-linode-grant: read_write
+ tags:
+ - Linode Instances
+ summary: Disk Clone
+ description: >
+ Copies a disk, byte-for-byte, into a new Disk belonging to the same Linode.
+ The Linode must have enough storage space available to accept a new Disk
+ of the same size as this one or this operation will fail.
+ operationId: cloneLinodeDisk
+ x-linode-cli-action: disk-clone
security:
- personalAccessToken: []
- oauth:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node Delete
- description: |
- Deletes a specific Node from a Node Pool.
-
- **Deleting a Node is a destructive action and cannot be undone.**
-
- Deleting a Node will reduce the size of the Node Pool it belongs to.
+ - linodes:read_write
responses:
'200':
- description: Delete successful
+ description: Disk clone initiated.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/Disk'
default:
$ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: >
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/lke/clusters/12345/nodes/12345-6aa78910bc
- - lang: CLI
- source: >
- linode-cli lke node-delete 12345 12345-6aa78910bc
- /lke/clusters/{clusterId}/nodes/{nodeId}/recycle:
+ /linode/instances/{linodeId}/disks/{diskId}/password:
parameters:
- - name: clusterId
+ - name: linodeId
in: path
- description: ID of the Kubernetes cluster containing the Node.
+ description: ID of the Linode to look up.
required: true
schema:
type: integer
- - name: nodeId
+ - name: diskId
in: path
- description: ID of the Node to be recycled.
+ description: ID of the Disk to look up.
required: true
schema:
- type: string
- x-linode-cli-command: lke
+ type: integer
+ x-linode-cli-command: linodes
post:
- operationId: postLKEClusterNodeRecycle
- x-linode-cli-action: node-recycle
+ x-linode-grant: read_write
+ tags:
+ - Linode Instances
+ summary: Disk Root Password Reset
+ 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:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Node Recycle
- description: |
- Recycles an individual Node in the designated Kubernetes Cluster. The Node will be deleted
- and replaced with a new Linode, which may take a few minutes. Replacement Nodes are
- installed with the latest available patch for the Cluster's Kubernetes Version.
+ - 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.
- **Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.**
+ The password must meet the complexity strength validation requirements for a strong password.
+ example: another@complex^Password123
responses:
'200':
- description: Recycle request succeeded and is in progress.
+ description: Returns a single Disk object.
content:
application/json:
schema:
- type: object
+ 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/lke/clusters/12345/nodes/12345-6aa78910bc/recycle
+ -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 lke node-recycle 12345 12345-6aa78910bc
- /lke/clusters/{clusterId}/api-endpoints:
+ linode-cli linodes disk-reset-password \
+ 123 25674 \
+ --password aComplex@Password
+ /linode/instances/{linodeId}/disks/{diskId}/resize:
parameters:
- - name: clusterId
+ - name: linodeId
in: path
- description: ID of the Kubernetes cluster to look up.
+ description: ID of the Linode to look up.
required: true
schema:
type: integer
- x-linode-cli-command: lke
- get:
- operationId: getLKEClusterAPIEndpoints
- x-linode-cli-action: api-endpoints-list
+ - 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: Disk Resize
+ description: |
+ Resizes a Disk you have permission to `read_write`.
+
+ The Disk must not be in use. If the Disk is in use, the request will
+ succeed but the resize will ultimately fail. For a request to succeed,
+ the Linode must be shut down prior to resizing the Disk, or the Disk
+ must not be assigned to the Linode's active Configuration Profile.
+
+ 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.
+ operationId: resizeDisk
+ x-linode-cli-action: disk-resize
security:
- personalAccessToken: []
- oauth:
- - lke:read_only
+ - linodes:read_write
+ requestBody:
+ description: The new size of the Disk.
+ required: true
+ content:
+ application/json:
+ schema:
+ required:
+ - size
+ properties:
+ size:
+ type: integer
+ description: >
+ The desired size, in MB, of the disk.
+ minimum: 1
+ example: 2048
+ 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 '{
+ "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}/firewalls:
+ 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 Kubernetes Engine (LKE)
- summary: Kubernetes API Endpoints List
+ - Linode Instances
+ summary: Firewalls List
description: >
- List the Kubernetes API server endpoints for this cluster. Please note that it often takes
- 2-5 minutes before the endpoint is ready after first [creating a new cluster](/docs/api/linode-kubernetes-engine-lke/#kubernetes-cluster-create).
+ View Firewall information for Firewalls associated with this Linode.
+ operationId: getLinodeFirewalls
+ x-linode-cli-action: firewalls-list
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - linodes:read_only
responses:
'200':
- description: Returns the Kubernetes API server endpoints for this cluster.
+ description: Returns a paginated list of Firewalls associated with this Linode.
content:
application/json:
schema:
@@ -8284,16 +8403,7 @@ paths:
data:
type: array
items:
- type: object
- description: >
- The Kubernetes API server endpoints for this cluster.
- properties:
- endpoint:
- type: string
- readOnly: true
- description: >
- A Kubernetes API server endpoint for this cluster.
- example: "https://192.0.2.1:6443"
+ $ref: '#/components/schemas/Firewall'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -8306,372 +8416,497 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/clusters/12345/api-endpoints
+ https://api.linode.com/v4/linode/instances/123/firewalls
- lang: CLI
source: >
- linode-cli lke api-endpoints-list 12345
- /lke/clusters/{clusterId}/kubeconfig:
+ linode-cli linodes firewalls-list 123
+ /linode/instances/{linodeId}/ips:
parameters:
- - name: clusterId
+ - name: linodeId
in: path
- description: ID of the Kubernetes cluster to look up.
+ description: ID of the Linode to look up.
required: true
schema:
type: integer
- x-linode-cli-command: lke
+ x-linode-cli-command: linodes
get:
- operationId: getLKEClusterKubeconfig
- x-linode-cli-action: kubeconfig-view
+ x-linode-grant: read_only
+ tags:
+ - Linode Instances
+ summary: Networking Information List
+ description: >
+ Returns networking information for a single Linode.
+ operationId: getLinodeIPs
+ x-linode-cli-action: ips-list
security:
- personalAccessToken: []
- oauth:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubeconfig View
- description: |
- Get the Kubeconfig file for a Cluster. Please note that it often takes 2-5 minutes before
- the Kubeconfig file is ready after first [creating a new cluster](/docs/api/linode-kubernetes-engine-lke/#kubernetes-cluster-create).
+ - linodes:read_only
responses:
'200':
- description: Returns the Base64-encoded Kubeconfig file for this Kubernetes cluster.
+ description: Requested Linode's networking configuration.
content:
application/json:
schema:
- type: object
properties:
- kubeconfig:
- type: string
+ 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'
+ description: >
+ A list of shared IP Address objects assigned to this Linode.
+ reserved:
+ type: array
+ readOnly: true
+ items:
+ $ref: '#/components/schemas/IPAddress'
+ description: >
+ A list of reserved IP Address objects belonging to this Linode.
+ ipv6:
+ type: object
description: >
- The Base64-encoded Kubeconfig file for this Cluster.
+ 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 "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/clusters/12345/kubeconfig
+ curl -H "Content-Type: application/json" \
+ https://api.linode.com/v4/linode/instances/123/ips
- lang: CLI
source: >
- linode-cli lke kubeconfig-view 12345
- delete:
- operationId: deleteLKEClusterKubeconfig
- x-linode-cli-action: kubeconfig-delete
+ linode-cli linodes 123 ips-list
+ post:
+ x-linode-grant: read_write
+ tags:
+ - Linode Instances
+ summary: IPv4 Address Allocate
+ 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](/docs/api/support/#support-ticket-open).
+ 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:
- - lke:read_write
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubeconfig Delete
- description: |
- Delete and regenerate the Kubeconfig file for a Cluster.
+ - 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: Kubeconfig file deleted and regenerated successfully.
+ description: IP address was successfully allocated.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/IPAddress'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/lke/clusters/12345/kubeconfig
+ 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 lke kubeconfig-delete 12345
- /lke/versions:
- x-linode-cli-command: lke
+ 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:
- operationId: getLKEVersions
- x-linode-cli-action: versions-list
x-linode-grant: read_only
+ tags:
+ - Linode Instances
+ summary: IP Address View
+ description: >
+ View information about the specified IP address associated
+ with the specified Linode.
+ operationId: getLinodeIP
+ x-linode-cli-action: ip-view
security:
- personalAccessToken: []
- oauth:
- - lke:read_only
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Versions List
- description: >
- List the Kubernetes versions available for deployment
- to a Kubernetes cluster.
+ - linodes:read_only
responses:
'200':
- description: >
- Returns a list of Kubernetes versions available for deployment
- to a Kubernetes cluster.
+ description: A single IP address.
content:
application/json:
schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/LKEVersion'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ $ref: '#/components/schemas/IPAddress'
default:
- $ref: '#/components/responses/ErrorResponse'
+ $ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/versions
+ curl -H "Content-Type: application/json" \
+ https://api.linode.com/v4/linode/instances/123/ips/97.107.143.141
- lang: CLI
source: >
- linode-cli lke versions-list
- /lke/versions/{version}:
- parameters:
- - name: version
- in: path
- required: true
- description: The LKE version to view.
- schema:
- type: string
- x-linode-cli-command: lke
- get:
- operationId: getLKEVersion
- x-linode-cli-action: version-view
- x-linode-grant: read_only
+ linode-cli linodes ip-view 123 97.107.143.141
+ put:
+ x-linode-grant: read_write
+ tags:
+ - Linode Instances
+ summary: IP Address Update
+ 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:
- - lke:read_only
- tags:
- - Linode Kubernetes Engine (LKE)
- summary: Kubernetes Version View
- description: >
- View a Kubernetes version available for deployment
- to a Kubernetes cluster.
+ - linodes:read_write
+ requestBody:
+ description: The information to update for the IP address.
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/IPAddress'
responses:
'200':
- description: >
- Returns a Kubernetes version object that is available for deployment
- to a Kubernetes cluster.
+ description: The updated IP address record.
content:
application/json:
schema:
- $ref: '#/components/schemas/LKEVersion'
+ $ref: '#/components/schemas/IPAddress'
default:
- $ref: '#/components/responses/ErrorResponse'
+ $ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/lke/versions/1.21
+ 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 lke version-view 1.21
- /longview/clients:
- x-linode-cli-command: longview
- get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ linode-cli linodes ip-update 123 \
+ 97.107.143.141 \
+ --rdns test.example.org
+ delete:
+ x-linode-grant: read_write
tags:
- - Longview
- summary: Longview Clients List
+ - Linode Instances
+ summary: IPv4 Address Delete
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
+ Deletes a public or private IPv4 address associated with this Linode. This will fail if it is the Linode's last remaining public IPv4 address.
+ operationId: removeLinodeIP
+ x-linode-cli-action: ip-delete
security:
- personalAccessToken: []
- oauth:
- - longview:read_only
+ - linodes:read_write
responses:
'200':
- description: A paginated list of Longview Clients.
+ description: IP address successfully removed.
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
+ 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 longview list
- post:
- x-linode-grant: add_longview
+ 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:
- - Longview
- summary: Longview Client Create
- 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'
+ - Linode Instances
+ summary: Kernels List
+ description: |
+ Lists available Kernels.
+ operationId: getKernels
+ x-linode-cli-action: list
responses:
'200':
- description: Longview Client created successfully.
+ description: Returns an array of Kernels.
content:
application/json:
schema:
- $ref: '#/components/schemas/LongviewClient'
+ 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 -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "label": "client789"
- }' \
- https://api.linode.com/v4/longview/clients
+ curl https://api.linode.com/v4/linode/kernels
- lang: CLI
source: >
- linode-cli longview create \
- --label client789
- /longview/clients/{clientId}:
+ linode-cli kernels list
+ /linode/kernels/{kernelId}:
parameters:
- - name: clientId
+ - name: kernelId
in: path
+ description: ID of the Kernel to look up.
required: true
- description: The Longview Client ID to access.
schema:
- type: integer
- x-linode-cli-command: longview
+ type: string
+ x-linode-cli-command: kernels
get:
- x-linode-grant: read_only
tags:
- - Longview
- summary: Longview Client View
+ - Linode Instances
+ summary: Kernel View
description: >
- Returns a single Longview Client you can access.
- operationId: getLongviewClient
+ Returns information about a single Kernel.
+ operationId: getKernel
x-linode-cli-action: view
- security:
- - personalAccessToken: []
- - oauth:
- - longview:read_only
responses:
'200':
- description: The requested Longview Client.
+ description: A single Kernel object.
content:
application/json:
schema:
- $ref: '#/components/schemas/LongviewClient'
+ $ref: '#/components/schemas/Kernel'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/longview/clients/789
+ curl https://api.linode.com/v4/linode/kernels/linode/latest-64bit
- lang: CLI
source: >
- linode-cli longview view 789
- put:
- x-linode-grant: read_write
- tags:
- - Longview
- summary: Longview Client Update
+ linode-cli kernels view latest-64bit
+ /linode/instances/{linodeId}/migrate:
+ parameters:
+ - name: linodeId
+ in: path
+ description: ID of the Linode to migrate.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: linodes
+ post:
+ x-linode-grant: read_write
+ summary: DC Migration/Pending Host Migration Initiate
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
+ Initiate a pending host migration that has been scheduled by Linode or
+ initiate a cross data center (DC) migration. A list of pending migrations,
+ if any, can be accessed from [GET /account/notifications](/docs/api/account/#notifications-list).
+ When the migration begins, your Linode will be shutdown if not already off.
+ If the migration initiated the shutdown, it will reboot the Linode when completed.
+
+
+ To initiate a cross DC migration, you must pass a `region` parameter to the
+ request body specifying the target data center region.
+ You can view a list of all available regions and their feature capabilities
+ from [GET /regions](/docs/api/regions/#regions-list). If your Linode has a DC migration already queued
+ or you have initiated a previously scheduled migration, you will not be able to initiate
+ a DC migration until it has completed.
+
+
+ **Note:** Next Generation Network (NGN) data centers do not support IPv6 `/116` pools or IP Failover.
+ If you have these features enabled on your Linode and attempt to migrate to an NGN data center,
+ the migration will not initiate. If a Linode cannot be migrated because of an incompatibility,
+ you will be prompted to select a different data center or contact support.
+ tags:
+ - Linode Instances
+ operationId: migrateLinodeInstance
+ x-linode-cli-action: migrate
security:
- personalAccessToken: []
- oauth:
- - longview:read_write
+ - linodes:read_write
requestBody:
- description: The fields to update.
- required: true
content:
- application/json:
+ 'application/json':
schema:
- $ref: '#/components/schemas/LongviewClient'
+ properties:
+ region:
+ type: string
+ description: >
+ The region to which the Linode will be migrated.
+ Must be a valid region slug. A list of regions can be viewed
+ by using the [GET /regions](/docs/api/regions/#regions-list) endpoint.
+ A cross data center migration will cancel a pending migration
+ that has not yet been initiated.
+
+ A cross data center migration will initiate a `linode_migrate_datacenter_create` event.
+ example: us-east
+ upgrade:
+ type: boolean
+ description: >
+ When initiating a cross DC migration, setting this value to
+ true will also ensure that the Linode is upgraded to the latest
+ generation of hardware that corresponds to your Linode's Type, if
+ any free upgrades are available for it.
+
+ If no free upgrades are available, and this value is set to true,
+ then the endpoint will return a 400 error code and the migration
+ will not be performed.
+
+ If the data center set in the `region` field does not allow upgrades,
+ then the endpoint will return a 400 error code and the migration
+ will not be performed.
+ example: false
+ default: false
responses:
'200':
- description: Longview Client updated successfully.
+ description: Scheduled migration started
content:
- application/json:
+ 'application/json':
schema:
- $ref: '#/components/schemas/LongviewClient'
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
+ -H "Authorization: Bearer $TOKEN" \
-X POST -d '{
- "label": "client789"
+ "region": "us-central"
}' \
- https://api.linode.com/v4/longview/clients/789
+ https://api.linode.com/v4/linode/instances/123/migrate
- lang: CLI
source: >
- linode-cli longview update 789 \
- --label client789
- delete:
+ linode-cli linodes migrate 123 --region us-central
+ /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
- tags:
- - Longview
- summary: Longview Client Delete
+ summary: Linode Upgrade
description: >
- Deletes a Longview Client from your Account.
-
-
- **All information stored for this client will be lost.**
-
+ 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.
- This _does not_ uninstall the Longview Client application for your
- Linode - you must do that manually.
- operationId: deleteLongviewClient
- x-linode-cli-action: delete
+ 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:
- - longview:read_write
+ - linodes:read_write
+ requestBody:
+ description: Whether to automatically resize disks or not.
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ allow_auto_disk_resize:
+ type: boolean
+ description: >
+ Automatically resize disks when resizing a Linode.
+ When resizing down to a smaller plan your Linode's
+ data must fit within the smaller disk size.
+ example: true
+ default: true
responses:
'200':
- description: Longview Client deleted successfully.
+ description: Mutate started.
content:
application/json:
schema:
@@ -8681,257 +8916,237 @@ paths:
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/longview/clients/789
+ 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 longview delete 789
- /longview/plan:
- x-linode-cli-command: longview
+ linode-cli linodes upgrade 123
+ /linode/instances/{linodeId}/nodebalancers:
+ 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:
- - Longview
- summary: Longview Plan View
- description: >
- Get the details of your current Longview plan. This returns a `LongviewSubscription` object
- for your current Longview Pro plan, or an empty set `{}` if your current plan is Longview Free.
-
-
- You must have at least one of the following `global` [User Grants](/docs/api/account/#users-grants-view)
- in order to access this endpoint:
-
- - `"account_access": read_write`
- - `"account_access": read_only`
- - `"longview_subscription": true`
- - `"add_longview": true`
-
+ - Linode Instances
+ summary: Linode NodeBalancers View
+ description: |
+ Returns a list of NodeBalancers that are assigned to this Linode and readable by the requesting User.
- To update your subscription plan, send a request to [Update Longview Plan](/docs/api/longview/#longview-plan-update).
- operationId: getLongviewPlan
- x-linode-cli-action: plan-view
+ Read permission to a NodeBalancer can be given to a User by accessing the User's Grants Update
+ ([PUT /account/users/{username}/grants](/docs/api/account/#users-grants-update)) endpoint.
+ operationId: getLinodeNodeBalancers
+ x-linode-cli-action: nodebalancers
security:
- personalAccessToken: []
- oauth:
- - longview:read_only
+ - linodes:read_only
responses:
'200':
- description: The Longview plan details for this account.
+ description: Returns a paginated list of NodeBalancers.
content:
application/json:
schema:
- $ref: '#/components/schemas/LongviewSubscription'
- default:
- $ref: '#/components/responses/ErrorResponse'
+ 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'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/longview/plan
+ https://api.linode.com/v4/linode/instances/123/nodebalancers
- lang: CLI
source: >
- linode-cli longview plan-view
- put:
- tags:
- - Longview
- summary: Longview Plan Update
+ linode-cli linodes nodebalancers 123
+ /linode/instances/{linodeId}/password:
+ parameters:
+ - name: linodeId
+ in: path
+ description: ID of the Linode for which to reset its root password.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: linodes
+ post:
+ x-linode-grant: read_write
+ summary: Linode Root Password Reset
description: >
- Update your Longview plan to that of the given subcription ID. This returns a `LongviewSubscription` object for
- the updated Longview Pro plan, or an empty set `{}` if the updated plan is Longview Free.
-
+ Resets the root password for this Linode.
- You must have `"longview_subscription": true` configured as a `global`
- [User Grant](/docs/api/account/#users-grants-view) in order to access this endpoint.
+ * Your Linode must be [shut down](/docs/api/linode-instances/#linode-shut-down) for a password reset to complete.
+ * If your Linode has more than one disk (not counting its swap disk), use the
+ [Reset Disk Root Password](/docs/api/linode-instances/#disk-root-password-reset) endpoint to update a specific disk's root password.
- You can send a request to the [List Longview Subscriptions](/docs/api/longview/#longview-subscriptions-list)
- endpoint to receive the details, including `id`'s, of each plan.
- operationId: updateLongviewPlan
- x-linode-cli-action: plan-update
+ * A `password_reset` event is generated when a root password reset is successful.
+ tags:
+ - Linode Instances
+ operationId: resetLinodePassword
+ x-linode-cli-action: linode-reset-password
security:
- personalAccessToken: []
- oauth:
- - longview:read_write
+ - linodes:read_write
requestBody:
- description: Update your Longview subscription plan.
- required: true
+ description: This Linode's new root password.
content:
- application/json:
+ 'application/json':
schema:
- $ref: '#/components/schemas/LongviewPlan'
- responses:
- '200':
- description: The updated Longview plan details for this account.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/LongviewSubscription'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: >
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "longview_subscription": "longview-10"
- }' \
- https://api.linode.com/v4/longview/plan
- - lang: CLI
- source: >
- linode-cli longview plan-update --longview_subscription longview-10
- /longview/subscriptions:
- x-linode-cli-command: longview
- get:
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Longview
- summary: Longview Subscriptions List
- 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
+ required:
+ - root_pass
+ properties:
+ root_pass:
+ type: string
+ description: >
+ The root user's password on this Linode. Linode passwords
+ must meet a password strength score requirement that is calculated internally
+ by the API. If the strength requirement is not met, you will receive a
+ Password does not meet strength requirement error.
+ example: a$eCure4assw0rd!43v51
responses:
'200':
- description: A paginated list of Longview Subscriptions.
+ description: Password Reset.
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
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "root_pass": "a$eCure4assw0rd!43v51"
+ }' \
+ https://api.linode.com/v4/linode/instances/123/password
- lang: CLI
source: >
- linode-cli longview subscriptions-list
- /longview/subscriptions/{subscriptionId}:
+ linode-cli linodes linode-reset-password 123 a$eCure4assw0rd!43v51
+ /linode/instances/{linodeId}/reboot:
parameters:
- - name: subscriptionId
+ - name: linodeId
in: path
+ description: ID of the linode to reboot.
required: true
- description: The Longview Subscription to look up.
schema:
- type: string
- x-linode-cli-command: longview
- get:
- tags:
- - Longview
- summary: Longview Subscription View
+ type: integer
+ x-linode-cli-command: linodes
+ post:
+ x-linode-grant: read_write
+ summary: Linode Reboot
description: >
- Get the Longview plan details as a single `LongviewSubscription` object for the provided subscription ID. This is a public endpoint
- and requires no authentication.
- operationId: getLongviewSubscription
- x-linode-cli-action: subscription-view
- responses:
- '200':
- description: The requested Longview Subscription details.
- 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'
+ 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:
- - Managed
- summary: Managed Contacts List
- description: >
- Returns a paginated list of Managed Contacts on your Account.
- operationId: getManagedContacts
- x-linode-cli-action: contacts-list
+ - Linode Instances
+ operationId: rebootLinodeInstance
+ x-linode-cli-action: reboot
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - linodes:read_write
+ requestBody:
+ description: Optional reboot parameters.
+ content:
+ 'application/json':
+ schema:
+ properties:
+ config_id:
+ type: integer
+ description: >
+ The Linode Config ID to reboot into. If null or omitted,
+ the last booted config will be used. If there was no last
+ booted config and this Linode only has one config, it will
+ be used. If a config cannot be determined, an error will
+ be returned.
+ example: null
responses:
'200':
- description: A paginated list of ManagedContacts
+ description: Reboot started.
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
+ 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 managed contacts-list
+ 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: unrestricted only
- tags:
- - Managed
- summary: Managed Contact Create
+ x-linode-grant: read_write
+ summary: Linode Rebuild
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
+ 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:
- - account:read_write
+ - linodes:read_write
requestBody:
- description: Information about the contact to create.
+ description: The requested state your Linode will be rebuilt into.
+ required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedContact'
+ type: object
+ required:
+ - image
+ - root_pass
+ allOf:
+ - $ref: '#/components/schemas/LinodeRequest'
responses:
'200':
- description: Contact created.
+ description: Rebuild started.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedContact'
+ $ref: '#/components/schemas/Linode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -8940,87 +9155,165 @@ paths:
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"
+ "image": "linode/debian9",
+ "root_pass": "aComplexP@ssword",
+ "authorized_keys": [
+ "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
+ ],
+ "authorized_users": [
+ "myUsername",
+ "secondaryUsername"
+ ],
+ "booted": true,
+ "stackscript_id": 10079,
+ "stackscript_data": {
+ "gh_username": "linode"
+ }
}' \
- https://api.linode.com/v4/managed/contacts
+ https://api.linode.com/v4/linode/instances/123/rebuild
- 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: Managed Contact View
+ 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" \
+ --authorized_users "myUsername" \
+ --authorized_users "secondaryUsername" \
+ --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: Linode Boot into Rescue Mode
description: >
- Returns a single Managed Contact.
- operationId: getManagedContact
- x-linode-cli-action: contact-view
+ 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:
- - account:read_write
+ - 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: The requested Managed Contact.
+ description: Rescue started.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedContact'
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/contacts/567
+ 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 managed contact-view 567
- put:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Contact Update
+ 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: Linode Resize
description: >
- Updates information about a Managed Contact.
- operationId: updateManagedContact
- x-linode-cli-action: contact-update
+ 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:
+
+ * 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:
- - account:read_write
+ - linodes:read_write
requestBody:
- description: The fields to update.
+ description: >
+ The Type your current Linode will resize to, and whether to attempt
+ to automatically resize the Linode's disks.
required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedContact'
+ type: object
+ required:
+ - type
+ properties:
+ type:
+ type: string
+ description: The ID representing the Linode Type.
+ example: g6-standard-2
+ x-linode-cli-display: 1
+ allow_auto_disk_resize:
+ type: boolean
+ description: >
+ Automatically resize disks when resizing a Linode.
+ When resizing down to a smaller plan your Linode's
+ data must fit within the smaller disk size.
+ example: true
+ default: true
responses:
'200':
- description: Contact updated successfully.
+ description: Resize started.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedContact'
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -9028,38 +9321,40 @@ paths:
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"
+ -X POST -d '{
+ "type": "g6-standard-2"
}' \
- https://api.linode.com/v4/managed/contacts/567
+ https://api.linode.com/v4/linode/instances/123/resize
- 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: Managed Contact Delete
+ 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: Linode Shut Down
description: >
- Deletes a Managed Contact.
- operationId: deleteManagedContact
- x-linode-cli-action: contact-delete
+ 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:
- - account:read_write
+ - linodes:read_write
responses:
'200':
- description: Contact deleted successfully.
+ description: Shutdown started.
content:
application/json:
schema:
@@ -9069,609 +9364,626 @@ paths:
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/managed/contacts/567
+ 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 managed contact-delete 567
- /managed/credentials:
- x-linode-cli-command: managed
+ linode-cli linodes shutdown 123
+ /linode/instances/{linodeId}/transfer:
+ 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: unrestricted only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ x-linode-grant: read_only
tags:
- - Managed
- summary: Managed Credentials List
+ - Linode Instances
+ summary: Network Transfer View
description: >
- Returns a paginated list of Managed Credentials on your Account.
- operationId: getManagedCredentials
- x-linode-cli-action: credentials-list
+ Returns a Linode's network transfer pool statistics for the current month.
+ operationId: getLinodeTransfer
+ x-linode-cli-action: transfer-view
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - linodes:read_only
responses:
'200':
- description: A paginated list of ManagedCredentials
+ description: A collection of the specified Linode's network transfer statistics.
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'
+ used:
+ type: integer
+ description: >
+ The amount of network transfer used by this Linode, in bytes, for the current month's billing cycle.
+ example: 22956600198
+ readOnly: true
+ quota:
+ type: integer
+ description: >
+ The amount of network transfer this Linode adds to your transfer pool, in GB, for the current month's billing cycle.
+ example: 2000
+ readOnly: true
+ billable:
+ type: integer
+ description: >
+ The amount of network transfer this Linode has used, in GB, past your monthly quota.
+ example: 0
+ readOnly: true
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/credentials
+ https://api.linode.com/v4/linode/instances/123/transfer
- lang: CLI
source: >
- linode-cli managed credentials-list
- post:
- x-linode-grant: unrestricted only
+ linode-cli linodes transfer-view 123
+ /linode/instances/{linodeId}/transfer/{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
+ minimum: 2000
+ maximum: 2037
+ - 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:
+ x-linode-grant: read_only
tags:
- - Managed
- summary: Managed Credential Create
+ - Linode Instances
+ summary: Network Transfer View (year/month)
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
+ Returns a Linode's network transfer statistics for a specific month. The year/month
+ values must be either a date in the past, or the current month.
+ operationId: getLinodeTransferByYearMonth
+ x-linode-cli-skip: true
+ x-linode-cli-action: transfer-month
security:
- personalAccessToken: []
- oauth:
- - account:read_write
- requestBody:
- description: Information about the Credential to create.
- content:
- application/json:
- schema:
- required:
- - label
- - password
- 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
- description: >
- The password to use when accessing the Managed Service.
- example: s3cur3P@ssw0rd
+ - linodes:read_only
responses:
'200':
- description: Credential created.
+ description: >
+ A collection of the specified Linode's network transfer statistics for the requested
+ month.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedCredential'
+ properties:
+ bytes_in:
+ type: integer
+ description: >
+ The amount of inbound public network traffic received by this Linode, in
+ bytes, for a specific year/month.
+ example: 30471077120
+ readOnly: true
+ bytes_out:
+ type: integer
+ description: >
+ The amount of outbound public network traffic sent by this Linode, in bytes,
+ for a specific year/month.
+ example: 22956600198
+ readOnly: true
+ bytes_total:
+ type: integer
+ description: >
+ The total amount of public network traffic sent and received by this Linode,
+ in bytes, for a specific year/month.
+ example: 53427677318
+ readOnly: true
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}:
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/linode/instances/123/transfer/2018/01
+ /linode/instances/{linodeId}/stats:
parameters:
- - name: credentialId
+ - name: linodeId
in: path
+ description: ID of the Linode to look up.
required: true
- description: The ID of the Credential to access.
schema:
type: integer
- x-linode-cli-command: managed
+ x-linode-cli-command: linodes
get:
- x-linode-grant: unrestricted only
tags:
- - Managed
- summary: Managed Credential View
+ - Linode Instances
+ summary: Linode Statistics View
description: >
- Returns a single Managed Credential.
- operationId: getManagedCredential
- x-linode-cli-action: credential-view
+ 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:
- - account:read_write
+ - linodes:read_only
responses:
'200':
- description: The requested Managed Credential.
+ description: The Linode's stats for the past 24 hours.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedCredential'
+ $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/managed/credentials/9991
- - lang: CLI
- source: >
- linode-cli managed credential-view 9991
- put:
- x-linode-grant: unrestricted only
+ 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:
- - Managed
- summary: Managed Credential Update
+ - Linode Instances
+ summary: Statistics View (year/month)
description: >
- Updates the label of a Managed Credential. This endpoint
- does not update the username and password for a Managed Credential.
- To do this, use the Managed Credential Username and Password Update
- ([POST /managed/credentials/{credentialId}/update](/docs/api/managed/#managed-credential-username-and-password-update))
- endpoint instead.
- operationId: updateManagedCredential
- x-linode-cli-action: credential-update
+ 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:
- - account:read_write
- requestBody:
- description: The fields to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ManagedCredential'
+ - linodes:read_only
responses:
'200':
- description: Credential updated successfully.
+ description: The Linode's statistics for the requested period.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedCredential'
+ $ref: '#/components/schemas/LinodeStats'
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}/update:
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/linode/instances/123/stats/2018/01
+ /linode/instances/{linodeId}/volumes:
parameters:
- - name: credentialId
+ - name: linodeId
in: path
+ description: ID of the Linode to look up.
required: true
- description: The ID of the Credential to update.
schema:
type: integer
- x-linode-cli-command: managed
- post:
- x-linode-grant: unrestricted only
+ x-linode-cli-command: linodes
+ get:
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
tags:
- - Managed
- summary: Managed Credential Username and Password Update
+ - Linode Instances
+ summary: Linode's Volumes List
description: >
- Updates the username and password for a Managed Credential.
- operationId: updateManagedCredentialUsernamePassword
- x-linode-cli-action: credential-update-username-password
+ View Block Storage Volumes attached to this Linode.
+ operationId: getLinodeVolumes
+ x-linode-cli-action: volumes
security:
- personalAccessToken: []
- oauth:
- - account:read_write
- requestBody:
- description: >
- The new username and password to assign to the
- Managed Credential.
- content:
- application/json:
- schema:
- required:
- - password
- properties:
- username:
- type: string
- minLength: 0
- maxLength: 5000
- description: >
- The username to use when accessing the Managed Service.
- example: johndoe
- password:
- type: string
- description: >
- The password to use when accessing the Managed Service.
- example: s3cur3P@ssw0rd
+ - linodes:read_only
responses:
'200':
- description: Credential username and password updated.
+ 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 "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "username": "johndoe",
- "password": "s3cur3P@ssw0rd"
- }' \
- https://api.linode.com/v4/managed/credentials/9991/update
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/linode/instances/123/volumes
- lang: CLI
source: >
- linode-cli managed credential-update-username-password 9991 \
- --username johndoe \
- --password s3cur3P@ssw0rd
- /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
+ 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:
- - Managed
- summary: Managed Credential Delete
+ - StackScripts
+ summary: StackScripts List
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
+ If the request is not authenticated, only public StackScripts are returned.
+
+
+ For more information on StackScripts, please read our [StackScripts guides](/docs/platform/stackscripts/).
+ operationId: getStackScripts
+ x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - stackscripts:read_only
responses:
'200':
- description: Credential deleted successfully.
+ 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 -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/managed/credentials/9991
+ curl https://api.linode.com/v4/linode/stackscripts
- lang: CLI
source: >
- linode-cli managed credential-revoke 9991
- /managed/credentials/sshkey:
- x-linode-cli-command: managed
- get:
- x-linode-grant: unrestricted only
+ linode-cli stackscripts list
+ post:
+ x-linode-grant: add_stackscripts
tags:
- - Managed
- summary: Managed SSH Key View
+ - StackScripts
+ summary: StackScript Create
description: >
- Returns the unique SSH public key assigned to your Linode account's
- Managed service. If you [add this public key](/docs/platform/linode-managed/#adding-the-public-key) to a Linode on your account,
- Linode special forces will be able to log in to the Linode with this key
- when attempting to resolve issues.
- operationId: viewManagedSSHKey
- x-linode-cli-action: credential-sshkey-view
+ Creates a StackScript in your Account.
+ operationId: addStackScript
+ x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - stackscripts:read_write
+ requestBody:
+ description: The properties to set for the new StackScript.
+ required: true
+ content:
+ application/json:
+ schema:
+ required:
+ - script
+ - label
+ - images
+ allOf:
+ - $ref: '#/components/schemas/StackScript'
responses:
'200':
- description: The requested Managed SSH public key.
+ description: StackScript successfully created.
content:
application/json:
schema:
- type: object
- description: >
- A unique SSH public key that allows Linode's special forces
- to access a Managed server to respond to Issues.
- properties:
- ssh_key:
- type: string
- description: >
- The unique SSH public key assigned to your Linode account's Managed service.
- example: ssh-rsa AAAAB...oD2ZQ== managedservices@linode
- readOnly: true
- x-linode-cli-display: 1
+ $ref: '#/components/schemas/StackScript'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/credentials/sshkey
+ 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 managed credential-sshkey-view
- /managed/issues:
- x-linode-cli-command: managed
+ 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: unrestricted only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ x-linode-grant: read_only
tags:
- - Managed
- summary: Managed Issues List
+ - StackScripts
+ summary: StackScript View
description: >
- Returns a paginated list of recent and ongoing issues detected on your
- Managed Services.
- operationId: getManagedIssues
- x-linode-cli-action: issues-list
+ 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:
- - account:read_only
+ - stackscripts:read_only
responses:
'200':
- description: >
- A paginated list of open or ongoing Managed Issues.
+ description: A single StackScript.
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'
+ $ref: '#/components/schemas/StackScript'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/issues
+ curl https://api.linode.com/v4/linode/stackscripts/10079
- 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
+ linode-cli stackscripts view 10079
+ put:
+ x-linode-grant: read_write
tags:
- - Managed
- summary: Managed Issue View
+ - StackScripts
+ summary: StackScript Update
description: >
- Returns a single Issue that is impacting or did impact one of your
- Managed Services.
- operationId: getManagedIssue
- x-linode-cli-action: issue-view
+ Updates a StackScript.
+
+
+ **Once a StackScript is made public, it cannot be made private.**
+ operationId: updateStackScript
+ x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - stackscripts:read_write
+ requestBody:
+ description: The fields to update.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/StackScript'
responses:
'200':
- description: The requested issue.
+ description: StackScript was successfully modified.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedIssue'
+ $ref: '#/components/schemas/StackScript'
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'
+ 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:
- - Managed
- summary: Managed Linode Settings List
+ - StackScripts
+ summary: StackScript Delete
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
+ 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:
- - account:read_only
+ - stackscripts:read_write
responses:
'200':
- description: >
- A paginated list of Managed settings for your Linodes.
+ description: StackScript was deleted.
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
+ -X DELETE \
+ https://api.linode.com/v4/linode/stackscripts/10079
- 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
+ linode-cli stackscripts delete 10079
+ /linode/types:
+ x-linode-cli-command: linodes
get:
- x-linode-grant: unrestricted only
tags:
- - Managed
- summary: Linode's Managed Settings View
+ - Linode Types
+ summary: Types List
description: >
- Returns a single Linode's Managed settings.
- operationId: getManagedLinodeSetting
- x-linode-cli-action: linode-setting-view
- security:
- - personalAccessToken: []
- - oauth:
- - account:read_only
+ Returns collection of Linode Types, including pricing and
+ specifications for each Type. These are used when
+ [creating](/docs/api/linode-instances/#linode-create)
+ or [resizing](/docs/api/linode-instances/#linode-resize)
+ Linodes.
+ x-linode-redoc-load-ids: true
+ operationId: getLinodeTypes
+ x-linode-cli-action: types
responses:
'200':
- description: The requested Linode's Managed settings.
+ description: A collection of Linode Types.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedLinodeSettings'
+ 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 -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/linode-settings/123
+ curl https://api.linode.com/v4/linode/types
- lang: CLI
source: >
- linode-cli managed linode-setting-view 123
- put:
- x-linode-grant: unrestricted only
+ 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:
- - Managed
- summary: Linode's Managed Settings Update
+ - Linode Types
+ summary: Type View
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'
+ Returns information about a specific Linode Type, including pricing and
+ specifications. This is used when
+ [creating](/docs/api/linode-instances/#linode-create)
+ or [resizing](/docs/api/linode-instances/#linode-resize)
+ Linodes.
+ operationId: getLinodeType
+ x-linode-cli-action: type-view
responses:
'200':
- description: Settings updated successfully.
+ description: A single Linode Type.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedLinodeSettings'
+ $ref: '#/components/schemas/LinodeType'
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
+ curl https://api.linode.com/v4/linode/types/g6-standard-2
- 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
+ linode-cli linodes type-view g6-standard-2
+ /lke/clusters:
+ x-linode-cli-command: lke
get:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Services List
- 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
+ operationId: getLKEClusters
+ x-linode-cli-action: clusters-list
+ x-linode-grant: read_only
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - lke:read_only
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubernetes Clusters List
+ description: >
+ Lists current Kubernetes clusters available on your account.
responses:
'200':
- description: A paginated list of Managed Services
+ description: Returns an array of all Kubernetes clusters on your Account.
content:
application/json:
schema:
@@ -9680,7 +9992,7 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/ManagedService'
+ $ref: '#/components/schemas/LKECluster'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -9693,189 +10005,302 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/services
+ https://api.linode.com/v4/lke/clusters
- lang: CLI
source: >
- linode-cli managed services-list
+ linode-cli lke clusters-list
post:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Service Create
- description: >
- Creates a Managed Service. Linode Managed will begin monitoring this
- service and reporting and attempting to resolve any Issues.
- operationId: createManagedService
- x-linode-cli-action: service-create
+ operationId: createLKECluster
+ x-linode-cli-action: cluster-create
+ x-linode-charge: true
+ x-linode-grant: add_clusters
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubernetes Cluster Create
+ description: |
+ Creates a Kubernetes cluster. The Kubernetes cluster will be created
+ asynchronously. You can use the events system to determine when the
+ Kubernetes cluster is ready to use. Please note that it often takes 2-5 minutes before the
+ [Kubernetes API server endpoint](/docs/api/linode-kubernetes-engine-lke/#kubernetes-api-endpoints-list) and
+ the [Kubeconfig file](/docs/api/linode-kubernetes-engine-lke/#kubeconfig-view) for the new cluster
+ are ready.
requestBody:
- description: Information about the service to monitor.
+ description: Configuration for the Kubernetes cluster
+ x-linode-cli-allowed-defaults:
+ - region
content:
application/json:
schema:
+ type: object
required:
- label
- - service_type
- - address
- - timeout
- 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
+ - region
+ - k8s_version
+ - node_pools
+ properties:
+ label:
+ $ref: '#/components/schemas/LKECluster/properties/label'
+ region:
+ $ref: '#/components/schemas/LKECluster/properties/region'
+ k8s_version:
+ $ref: '#/components/schemas/LKECluster/properties/k8s_version'
+ tags:
+ $ref: '#/components/schemas/LKECluster/properties/tags'
+ node_pools:
+ type: array
+ required:
+ - type
+ - count
+ items:
+ $ref: '#/components/schemas/LKENodePoolRequestBody'
+ control_plane:
+ type: object
+ description: >
+ Defines settings for the Kubernetes Control Plane. Allows for the enabling of High Availability (HA) for Control Plane Components. Enabling High Availability for LKE is an **irreversible** change.
+ properties:
+ high_availability:
+ type: boolean
+ description: >
+ Defines whether High Availability is enabled for the Control Plane Components of the cluster. Defaults to `false`.
+ example: true
+ responses:
+ '200':
+ description: Kubernetes cluster creation has started.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LKECluster'
+ 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": "cluster12345",
+ "region": "us-central",
+ "k8s_version": "1.23",
+ "tags": ["ecomm", "blogs"],
+ "control_plane": {
+ "high_availability": true
+ },
+ "node_pools": [
+ {
+ "type": "g6-standard-4",
+ "count": 6,
+ "autoscaler": {
+ "enabled": true,
+ "max": 12,
+ "min": 3
+ }
+ },
+ {
+ "type": "g6-standard-8",
+ "count": 3
+ }
+ ]
+ }' \
+ https://api.linode.com/v4/lke/clusters
- 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}:
+ linode-cli lke cluster-create \
+ --label cluster12345 \
+ --region us-central \
+ --k8s_version 1.23 \
+ --control_plane.high_availability true \
+ --node_pools.type g6-standard-4 --node_pools.count 6 \
+ --node_pools.type g6-standard-8 --node_pools.count 3 \
+ --node_pools.autoscaler.enabled true \
+ --node_pools.autoscaler.max 12 \
+ --node_pools.autoscaler.min 3 \
+ --tags ecomm
+ /lke/clusters/{clusterId}:
parameters:
- - name: serviceId
+ - name: clusterId
in: path
+ description: ID of the Kubernetes cluster to look up.
required: true
- description: The ID of the Managed Service to access.
schema:
type: integer
- x-linode-cli-command: managed
+ x-linode-cli-command: lke
get:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Service View
- description: >
- Returns information about a single Managed Service on your Account.
- operationId: getManagedService
- x-linode-cli-action: service-view
+ operationId: getLKECluster
+ x-linode-cli-action: cluster-view
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - lke:read_only
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubernetes Cluster View
+ description: >
+ Get a specific Cluster by ID.
responses:
'200':
- description: The requested Managed Service.
+ description: Returns a single Kubernetes cluster.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedService'
+ $ref: '#/components/schemas/LKECluster'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/services/9994
+ https://api.linode.com/v4/lke/clusters/12345
- lang: CLI
- source: >
- linode-cli managed service-view 9994
+ source:
+ linode-cli lke cluster-view 12345
put:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Service Update
- description: >
- Updates information about a Managed Service.
- operationId: updateManagedService
- x-linode-cli-action: service-update
+ operationId: putLKECluster
+ x-linode-cli-action: cluster-update
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubernetes Cluster Update
+ description: >
+ Updates a Kubernetes cluster.
requestBody:
- description: The fields to update.
- required: true
+ description: The fields to update the Kubernetes cluster.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedService'
+ properties:
+ label:
+ $ref: '#/components/schemas/LKECluster/properties/label'
+ tags:
+ type: array
+ items:
+ type: string
+ example:
+ - prod
+ - monitoring
+ - ecomm
+ - blog
+ description: >
+ An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.
+ To delete a tag, exclude it from your `tags` array.
+ k8s_version:
+ type: string
+ description: >
+ The desired Kubernetes version for this Kubernetes cluster in the format of
+ <major>.<minor>. New and recycled Nodes in this cluster will be installed with the
+ latest available patch for the Cluster's Kubernetes version.
+
+
+ When upgrading the Kubernetes version, only the next latest minor version following the current
+ version can be deployed. For example, a cluster with Kubernetes version 1.19 can be upgraded to
+ version 1.20, but not directly to 1.21.
+
+
+ The Kubernetes version of a cluster can not be downgraded.
+ control_plane:
+ type: object
+ description: |
+ Defines settings for the Kubernetes Control Plane. Allows for the enabling of High Availability (HA) for Control Plane Components.
+
+ Enabling High Availability for LKE is an **irreversible** change.
+
+ When upgrading pre-existing LKE clusters to use the HA Control Plane, the following changes will additionally occur:
+
+ - All nodes will be deleted and new nodes will be created to replace them.
+
+ - Any local storage (such as `hostPath` volumes) will be erased.
+
+ - The upgrade process may take several minutes to complete, as nodes will be replaced on a rolling basis.
+ properties:
+ high_availability:
+ type: boolean
+ description: >
+ Defines whether High Availability is enabled for the Control Plane Components of the cluster. Defaults to `false`.
+ example: true
responses:
'200':
- description: Service updated successfully.
+ description: Returns a single Kubernetes cluster.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedService'
- default:
- $ref: '#/components/responses/ErrorResponse'
+ properties:
+ label:
+ $ref: '#/components/schemas/LKECluster/properties/label'
+ tags:
+ type: array
+ items:
+ type: string
+ example:
+ - prod
+ - monitoring
+ - ecomm
+ - blog
+ description: >
+ An array of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.
+ To delete a tag, exclude it from your `tags` array.
+ created:
+ $ref: '#/components/schemas/LKECluster/properties/created'
+ updated:
+ $ref: '#/components/schemas/LKECluster/properties/updated'
+ region:
+ $ref: '#/components/schemas/LKECluster/properties/region'
+ k8s_version:
+ $ref: '#/components/schemas/LKECluster/properties/k8s_version'
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
+ -H "Authorization: Bearer $TOKEN" \
+ -X PUT -d '{
+ "label": "lkecluster54321"
+ "tags" : ["ecomm", "blog", "prod", "monitoring"]
+ "control_plane": {
+ "high_availability": true
+ },
+ "k8s_version": "1.17"
+ }' \
+ https://api.linode.com/v4/lke/clusters/12345
- 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
+ linode-cli lke cluster-update 12345 \
+ --label lkecluster54321 \
+ --control_plane.high_availability true \
+ --k8s_version 1.23 \
+ --tags ecomm \
+ --tags blog \
+ --tags prod \
+ --tags monitoring
delete:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Service Delete
- description: >
- Deletes a Managed Service. This service will no longer be monitored by
- Linode Managed.
- operationId: deleteManagedService
- x-linode-cli-action: service-delete
+ operationId: deleteLKECluster
+ x-linode-cli-action: cluster-delete
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubernetes Cluster Delete
+ description: |
+ Deletes a Cluster you have permission to `read_write`.
+
+ **Deleting a Cluster is a destructive action and cannot be undone.**
+
+ Deleting a Cluster:
+ - Deletes all Linodes in all pools within this Kubernetes cluster
+ - Deletes all supporting Kubernetes services for this Kubernetes
+ cluster (API server, etcd, etc)
+ - Deletes all NodeBalancers created by this Kubernetes cluster
+ - Does not delete any of the volumes created by this Kubernetes
+ cluster
responses:
'200':
- description: Service deleted successfully.
+ description: Delete successful
content:
application/json:
schema:
@@ -9886,421 +10311,450 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/managed/services/9994
+ -X DELETE \
+ https://api.linode.com/v4/lke/clusters/12345
- lang: CLI
source: >
- linode-cli managed service-delete 9994
- /managed/services/{serviceId}/disable:
+ linode-cli lke cluster-delete 12345
+ /lke/clusters/{clusterId}/pools:
parameters:
- - name: serviceId
+ - name: clusterId
in: path
+ description: ID of the Kubernetes cluster to look up.
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: Managed Service Disable
- description: >
- Temporarily disables monitoring of a Managed Service.
- operationId: disableManagedService
- x-linode-cli-action: service-disable
+ x-linode-cli-command: lke
+ get:
+ operationId: getLKEClusterPools
+ x-linode-cli-action: pools-list
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - lke:read_only
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Node Pools List
+ description: >
+ Returns all active Node Pools on a Kubernetes cluster.
responses:
'200':
- description: Service disabled.
+ description: Returns an array of all Pools in this Kubernetes cluster.
content:
application/json:
+ x-linode-cli-nested-list: nodes
+ x-linode-cli-use-schema:
+ type: object
+ properties:
+ id:
+ x-linode-cli-display: 1
+ type:
+ x-linode-cli-display: 2
+ nodes.id:
+ x-linode-cli-display: 3
+ nodes.instance_id:
+ x-linode-cli-display: 4
+ nodes.status:
+ x-linode-cli-display: 5
schema:
- $ref: '#/components/schemas/ManagedService'
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/LKENodePool'
+ 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 "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/managed/services/9994/disable
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/lke/clusters/12345/pools
- 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
+ linode-cli lke pools-list 12345
post:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Service Enable
- description: >
- Enables monitoring of a Managed Service.
- operationId: enableManagedService
- x-linode-cli-action: service-enable
+ operationId: postLKEClusterPools
+ x-linode-cli-action: pool-create
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Node Pool Create
+ description: >
+ Creates a new Node Pool for the designated Kubernetes cluster.
+ requestBody:
+ description: Configuration for the Node Pool
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - type
+ - count
+ allOf:
+ - $ref: '#/components/schemas/LKENodePoolRequestBody'
responses:
'200':
- description: Service enabled.
+ description: Node Pool has been created.
content:
application/json:
schema:
- $ref: '#/components/schemas/ManagedService'
+ $ref: '#/components/schemas/LKENodePool'
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
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "type": "g6-standard-4",
+ "count": 6,
+ "tags": ["example-tag"],
+ "autoscaler": {
+ "enabled": true,
+ "max": 12,
+ "min": 3
+ }
+ }' \
+ https://api.linode.com/v4/lke/clusters/12345/pools
- lang: CLI
source: >
- linode-cli managed service-enable 9994
- /managed/stats:
- x-linode-cli-command: managed
- get:
- x-linode-grant: unrestricted only
- tags:
- - Managed
- summary: Managed Stats List
- description: |
- Returns a list of Managed Stats on your Account in the form of x and y data points.
- You can use these data points to plot your own graph visualizations. These stats
- reflect the last 24 hours of combined usage across all managed Linodes on your account
- giving you a high-level snapshot of data for the following:
-
-
- * cpu
- * disk
- * swap
- * network in
- * network out
- operationId: getManagedStats
- x-linode-cli-action: stats-list
+ linode-cli lke pool-create 12345 \
+ --type g6-standard-4 \
+ --count 6 \
+ --tags example-tag \
+ --autoscaler.enabled true \
+ --autoscaler.max 12 \
+ --autoscaler.min 3
+ /lke/clusters/{clusterId}/recycle:
+ parameters:
+ - name: clusterId
+ in: path
+ description: ID of the Kubernetes cluster which contains nodes to be recycled.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: lke
+ post:
+ operationId: postLKEClusterRecycle
+ x-linode-cli-action: cluster-nodes-recycle
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Cluster Nodes Recycle
+ description: |
+ Recycles all nodes in all pools of a designated Kubernetes Cluster. All Linodes within the Cluster will be deleted
+ and replaced with new Linodes on a rolling basis, which may take several minutes. Replacement Nodes are
+ installed with the latest available [patch version](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/release/versioning.md#kubernetes-release-versioning) for the Cluster's current Kubernetes minor release.
+
+ **Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.**
responses:
'200':
- description: A list of Managed Stats from the last 24 hours.
+ description: Recycle request succeeded and is in progress.
content:
application/json:
schema:
type: object
- properties:
- data:
- type: object
- oneOf:
- - x-linode-ref-name: "Stats Available"
- $ref: '#/components/schemas/StatsDataAvailable'
- - x-linode-ref-name: "Stats Unavailable"
- $ref: '#/components/schemas/StatsDataUnavailable'
- discriminator:
- propertyName: x-linode-ref-name
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/managed/stats
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST \
+ https://api.linode.com/v4/lke/clusters/12345/recycle
- lang: CLI
source: >
- linode-cli managed stats-list
- /networking/ips:
- x-linode-cli-command: networking
+ linode-cli lke cluster-nodes-recycle 12345
+ /lke/clusters/{clusterId}/pools/{poolId}:
+ parameters:
+ - name: clusterId
+ in: path
+ description: ID of the Kubernetes cluster to look up.
+ required: true
+ schema:
+ type: integer
+ - name: poolId
+ in: path
+ description: ID of the Pool to look up
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: lke
get:
- x-linode-grant: read_only
- tags:
- - Networking
- summary: IP Addresses List
- description: >
- Returns a paginated list of IP Addresses on your Account, excluding
- private addresses.
- operationId: getIPs
- x-linode-cli-action: ips-list
+ operationId: getLKENodePool
+ x-linode-cli-action: pool-view
security:
- personalAccessToken: []
- oauth:
- - ips:read_only
+ - lke:read_only
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Node Pool View
+ description: >
+ Get a specific Node Pool by ID.
responses:
'200':
- description: A paginated list of IP Addresses.
+ description: Returns the requested Node Pool.
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'
+ $ref: '#/components/schemas/LKENodePool'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/networking/ips
+ https://api.linode.com/v4/lke/clusters/12345/pools/456
- lang: CLI
source: >
- linode-cli networking ips-list
- post:
- x-linode-grant: read_write
- tags:
- - Networking
- summary: IP Address Allocate
- description: >
- Allocates a new IPv4 Address on your Account. The Linode must be
- configured to support additional addresses - please
- [open a support ticket](/docs/api/support/#support-ticket-open) requesting additional
- addresses before attempting allocation.
- operationId: allocateIP
- x-linode-cli-action: ip-add
+ linode-cli lke pool-view 12345 456
+ put:
+ operationId: putLKENodePool
+ x-linode-cli-action: pool-update
security:
- personalAccessToken: []
- oauth:
- - ips:read_write
- - linodes:read_write
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Node Pool Update
+ description: |
+ Updates a Node Pool's count and autoscaler configuration.
+
+ Linodes will be created or deleted to match changes to the Node Pool's count.
+
+ **Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.**
requestBody:
- description: Information about the address you are creating.
- required: true
+ description: The fields to update
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
+ count:
+ $ref: '#/components/schemas/LKENodePoolRequestBody/properties/count'
+ autoscaler:
+ $ref: '#/components/schemas/LKENodePoolRequestBody/properties/autoscaler'
responses:
'200':
- description: IP Address allocated successfully.
+ description: Node Pool was successfully modified.
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAddress'
- default:
- $ref: '#/components/responses/ErrorResponse'
+ $ref: '#/components/schemas/LKENodePool'
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
+ -H "Authorization: Bearer $TOKEN" \
+ -X PUT -d '{
+ "count": 6,
+ "autoscaler": {
+ "enabled": true,
+ "max": 12,
+ "min": 3
+ }' \
+ https://api.linode.com/v4/lke/clusters/12345/pools/456
- 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: IP Address View
- description: >
- Returns information about a single IP Address on your Account.
- operationId: getIP
- x-linode-cli-action: ip-view
+ linode-cli lke pool-update 12345 456 \
+ --count 6 \
+ --autoscaler.enabled true \
+ --autoscaler.max 12 \
+ --autoscaler.min 3
+ delete:
+ operationId: deleteLKENodePool
+ x-linode-cli-action: pool-delete
security:
- personalAccessToken: []
- oauth:
- - ips:read_only
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Node Pool Delete
+ description: |
+ Delete a specific Node Pool from a Kubernetes cluster.
+
+ **Deleting a Node Pool is a destructive action and cannot be undone.**
+
+ Deleting a Node Pool will delete all Linodes within that Pool.
responses:
'200':
- description: The requested IP Address.
+ description: Delete successful
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAddress'
+ type: object
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
+ -X DELETE \
+ https://api.linode.com/v4/lke/clusters/12345/pools/456
- lang: CLI
source: >
- linode-cli networking ip-view 97.107.143.141
- put:
- x-linode-grant: read_write
- tags:
- - Networking
- summary: IP Address RDNS Update
- 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 _ip.linodeusercontent.com_
- RDNS value.
- operationId: updateIP
- x-linode-cli-action: ip-update
+ linode-cli lke pool-delete 12345 456
+ /lke/clusters/{clusterId}/pools/{poolId}/recycle:
+ parameters:
+ - name: clusterId
+ in: path
+ description: ID of the Kubernetes cluster this Node Pool is attached to.
+ required: true
+ schema:
+ type: integer
+ - name: poolId
+ in: path
+ description: ID of the Node Pool to be recycled.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: lke
+ post:
+ operationId: postLKEClusterPoolRecycle
+ x-linode-cli-action: pool-recycle
security:
- personalAccessToken: []
- oauth:
- - ips:read_write
- requestBody:
- description: The information to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/IPAddress'
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Node Pool Recycle
+ description: |
+ Recycles a Node Pool for the designated Kubernetes Cluster. All Linodes within the Node Pool will be deleted
+ and replaced with new Linodes on a rolling basis, which may take several minutes. Replacement Nodes are
+ installed with the latest available patch for the Cluster's Kubernetes Version.
+
+ **Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.**
responses:
'200':
- description: RDNS set successfully
+ description: Recycle request succeeded and is in progress.
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAddress'
+ 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 '{
- "rdns": "test.example.org"
- }' \
- https://api.linode.com/v4/networking/ips/97.107.143.141
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST \
+ https://api.linode.com/v4/lke/clusters/12345/pools/456/recycle
- lang: CLI
source: >
- linode-cli networking ip-update \
- 97.107.143.141 \
- --rdns "test.example.org"
- /networking/ips/assign:
- x-linode-cli-command: networking
- post:
- x-linode-grant: read_write
+ linode-cli lke pool-recycle 12345 456
+ /lke/clusters/{clusterId}/nodes/{nodeId}:
+ parameters:
+ - name: clusterId
+ in: path
+ description: ID of the Kubernetes cluster containing the Node.
+ required: true
+ schema:
+ type: integer
+ - name: nodeId
+ in: path
+ description: ID of the Node to look up.
+ required: true
+ schema:
+ type: string
+ x-linode-cli-command: lke
+ get:
+ operationId: getLKEClusterNode
+ x-linode-cli-action: node-view
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
tags:
- - Networking
- summary: Linodes Assign IPs
- description: |
- Assign multiple IPv4 addresses and/or IPv6 ranges to multiple Linodes in one Region. This allows
- swapping, shuffling, or otherwise reorganizing IPs to your Linodes.
-
- The following restrictions apply:
- * All Linodes involved must have at least one public IPv4 address after assignment.
- * Linodes may have no more than one assigned private IPv4 address.
- * Linodes may have no more than one assigned IPv6 range.
- * [Open a Support Ticket](/docs/api/support/#support-ticket-open) to request additional IPv4 addresses or IPv6 ranges.
- operationId: assignIPs
- x-linode-cli-action: ip-assign
- security:
- - personalAccessToken: []
- - oauth:
- - ips:read_write
- - linodes:read_write
- requestBody:
- description: >
- Information about what IPv4 address or IPv6 range 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.
- required:
- - address
- - linode_id
- items:
+ - Linode Kubernetes Engine (LKE)
+ summary: Node View
+ description: >
+ Returns the values for a specified node object.
+ responses:
+ '200':
+ description: Returns the values of a node object in the form that it appears currently in the node pool array.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ data:
type: object
+ description: >
+ The selected node in the cluster.
properties:
- address:
+ id:
type: string
- format: ipv4|ipv6/prefix_length
- description: |
- The IPv4 address or IPv6 range for this assignment.
- * Must be an IPv4 address or an IPv6 range you can access in the Region specified.
- * IPv6 ranges must include a prefix length of `/56` or `/64`, for example: `2001:db8:3c4d:15::/64`.
- * Assignment of an IPv6 range to a Linode updates the route target of the range to the assigned Linode's SLAAC address.
- * May be a public or private address.
- example: 12.34.56.78
- linode_id:
+ readOnly: true
+ description: >
+ The Node's ID.
+ example: "12345-6aa78910bc"
+ instance_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
+ The Linode's ID. If no Linode is currently provisioned for this Node, this is `null`.
+ example: 123456
+ status:
+ type: string
+ description: >
+ The creation status of this Node. This status is distinct from this Node's readiness as a
+ Kubernetes Node Object as determined by the command `kubectl get nodes`.
+
+
+ `not_ready` indicates that the Linode is still being created.
+
+
+ `ready` indicates that the Linode has successfully been created and is running Kubernetes software.
+ enum:
+ - ready
+ - not_ready
+ example: ready
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/lke/clusters/12345/nodes/12345-6aa78910bc
+ - lang: CLI
+ source: >
+ linode-cli lke node-view 123456 12345-6aa78910bc
+ delete:
+ operationId: deleteLKEClusterNode
+ x-linode-cli-action: node-delete
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Node Delete
+ description: |
+ Deletes a specific Node from a Node Pool.
+
+ **Deleting a Node is a destructive action and cannot be undone.**
+
+ Deleting a Node will reduce the size of the Node Pool it belongs to.
responses:
'200':
- description: All assignments completed successfully.
+ description: Delete successful
content:
application/json:
schema:
@@ -10310,87 +10764,46 @@ paths:
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": "2001:db8:3c4d:15::/64",
- "linode_id": 234
- }
- ]
- }' \
- https://api.linode.com/v4/networking/ipvs/assign
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/lke/clusters/12345/nodes/12345-6aa78910bc
- lang: CLI
source: >
- linode-cli networking ip-assign \
- --region us-east \
- --assignments.address 2001:db8:3c4d:15::/64 \
- --assignments.linode_id 123
- /networking/ips/share:
- x-linode-cli-command: networking
+ linode-cli lke node-delete 12345 12345-6aa78910bc
+ /lke/clusters/{clusterId}/nodes/{nodeId}/recycle:
+ parameters:
+ - name: clusterId
+ in: path
+ description: ID of the Kubernetes cluster containing the Node.
+ required: true
+ schema:
+ type: integer
+ - name: nodeId
+ in: path
+ description: ID of the Node to be recycled.
+ required: true
+ schema:
+ type: string
+ x-linode-cli-command: lke
post:
- servers:
- - url: https://api.linode.com/v4beta
- - url: https://api.linode.com/v4
- x-linode-grant: read_write
- tags:
- - Networking
- summary: IP Addresses Share
- description: |
- Configure shared IPs.
-
- IP sharing allows IP address reassignment (also referred to as IP failover) from one Linode to another if
- the primary Linode becomes unresponsive. This means that requests to the primary Linode's IP address can be
- automatically rerouted to secondary Linodes at the configured shared IP addresses.
-
- IP failover requires configuration of a failover service (such as [Keepalived](/docs/guides/ip-failover-keepalived))
- within the internal system of the primary Linode.
-
- **Note**: IPv6 range sharing has limited availability in certain regions. Please contact customer support for
- assistance in enabling IPv6 range sharing for your Linodes.
- operationId: shareIPs
- x-linode-cli-action: ip-share
+ operationId: postLKEClusterNodeRecycle
+ x-linode-cli-action: node-recycle
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 primary Linode that the addresses will be shared with.
- example: 123
- ips:
- type: array
- items:
- type: string
- format: ip
- description: |
- A list of secondary Linode IPs to share with the primary Linode.
- * Can include both IPv4 addresses and IPv6 ranges (omit /56 and /64 prefix lengths)
- * Can include both private and public IPv4 addresses.
- * You must have access to all of these addresses and they must be in the same Region as the primary
- Linode.
- * Enter an empty array to remove all shared IP addresses.
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Node Recycle
+ description: |
+ Recycles an individual Node in the designated Kubernetes Cluster. The Node will be deleted
+ and replaced with a new Linode, which may take a few minutes. Replacement Nodes are
+ installed with the latest available patch for the Cluster's Kubernetes Version.
+
+ **Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.**
responses:
'200':
- description: IP Address sharing successful.
+ description: Recycle request succeeded and is in progress.
content:
application/json:
schema:
@@ -10401,479 +10814,306 @@ paths:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "linode_id": 123,
- "ips": [
- "192.0.2.1",
- "2001:db8:3c4d:15::"
- ]
- }' \
- https://api.linode.com/v4beta2/networking/ips/share
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST \
+ https://api.linode.com/v4/lke/clusters/12345/nodes/12345-6aa78910bc/recycle
- lang: CLI
source: >
- linode-cli networking ip-share \
- --linode_id 123 \
- --ips 192.0.2.1 \
- --ips 2001:db8:3c4d:15::
- /networking/ipv4/assign:
- x-linode-cli-command: networking
- post:
- x-linode-grant: read_write
- tags:
- - Networking
- summary: Linodes Assign IPv4s
- description: >
- Assign multiple IPv4s 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.
-
- To assign IPv6 ranges or to use the CLI, see the Linodes Assign IPs ([POST /networking/ips/assign](/docs/api/networking/#linodes-assign-ips)) command.
- operationId: assignIPv4s
- x-linode-cli-skip: true
+ linode-cli lke node-recycle 12345 12345-6aa78910bc
+ /lke/clusters/{clusterId}/api-endpoints:
+ parameters:
+ - name: clusterId
+ in: path
+ description: ID of the Kubernetes cluster to look up.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: lke
+ get:
+ operationId: getLKEClusterAPIEndpoints
+ x-linode-cli-action: api-endpoints-list
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.
- required:
- - address
- - linode_id
- 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
+ - lke:read_only
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubernetes API Endpoints List
+ description: >
+ List the Kubernetes API server endpoints for this cluster. Please note that it often takes
+ 2-5 minutes before the endpoint is ready after first [creating a new cluster](/docs/api/linode-kubernetes-engine-lke/#kubernetes-cluster-create).
responses:
'200':
- description: All assignments completed successfully.
+ description: Returns the Kubernetes API server endpoints for this cluster.
content:
application/json:
schema:
type: object
+ properties:
+ data:
+ type: array
+ items:
+ type: object
+ description: >
+ The Kubernetes API server endpoints for this cluster.
+ properties:
+ endpoint:
+ type: string
+ readOnly: true
+ description: >
+ A Kubernetes API server endpoint for this cluster.
+ example: "https://192.0.2.1:6443"
+ 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 "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
- /networking/ipv4/share:
- x-linode-cli-command: networking
- post:
- x-linode-grant: read_write
- tags:
- - Networking
- summary: IPv4 Sharing Configure
- 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: shareIPv4s
- x-linode-cli-skip: true
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/lke/clusters/12345/api-endpoints
+ - lang: CLI
+ source: >
+ linode-cli lke api-endpoints-list 12345
+ /lke/clusters/{clusterId}/dashboard:
+ parameters:
+ - name: clusterId
+ in: path
+ description: ID of the Kubernetes cluster to look up.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: lke
+ get:
+ operationId: getLKEClusterDashboard
+ x-linode-cli-action: cluster-dashboard-url
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.
+ - lke:read_only
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubernetes Cluster Dashboard URL View
+ description: |
+ Get a [Kubernetes Dashboard](https://github.com/kubernetes/dashboard) access URL for this Cluster, which enables performance of administrative tasks through a web interface.
+
+ Dashboards are installed for Clusters by default.
+
+ To access the Cluster Dashboard login prompt, enter the URL in a web browser. Select either **Token** or **Kubeconfig** authentication, then select **Sign in**.
+
+ For additional guidance on using the Cluster Dashboard, see the [Navigating the Cluster Dashboard](/docs/guides/using-the-kubernetes-dashboard-on-lke/#navigating-the-cluster-dashboard) section of our guide on [Using the Kubernetes Dashboard on LKE](/docs/guides/using-the-kubernetes-dashboard-on-lke/).
responses:
'200':
- description: Sharing configured successfully.
+ description: Returns a Kubernetes Cluster Dashboard URL.
content:
application/json:
schema:
type: object
+ properties:
+ url:
+ type: string
+ example: https://example.dashboard.linodelke.net
+ description: The Cluster Dashboard access URL.
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
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/lke/clusters/12345/dashboard
- lang: CLI
- source: >
- linode-cli networking ip-share \
- --linode_id 123 \
- --ips 12.34.56.78
- /networking/ipv6/pools:
- x-linode-cli-command: networking
+ source:
+ linode-cli lke cluster-dashboard-url 12345
+ /lke/clusters/{clusterId}/kubeconfig:
+ parameters:
+ - name: clusterId
+ in: path
+ description: ID of the Kubernetes cluster to look up.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: lke
get:
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- tags:
- - Networking
- summary: IPv6 Pools List
- description: >
- Displays the IPv6 pools on your Account. A pool of IPv6 addresses are routed to all of your
- Linodes in a single [Region](/docs/api/regions/#regions-list). Any Linode on your Account may bring up any address in this
- pool at any time, with no external configuration required.
- operationId: getIPv6Pools
- x-linode-cli-action: v6-pools
+ operationId: getLKEClusterKubeconfig
+ x-linode-cli-action: kubeconfig-view
security:
- personalAccessToken: []
- oauth:
- - ips:read_only
+ - lke:read_write
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubeconfig View
+ description: |
+ Get the Kubeconfig file for a Cluster. Please note that it often takes 2-5 minutes before
+ the Kubeconfig file is ready after first [creating a new cluster](/docs/api/linode-kubernetes-engine-lke/#kubernetes-cluster-create).
responses:
'200':
- description: The IPv6 pools on your Account.
+ description: Returns the Base64-encoded Kubeconfig file for this Kubernetes cluster.
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'
+ kubeconfig:
+ type: string
+ readOnly: true
+ description: >
+ The Base64-encoded Kubeconfig file for this Cluster.
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/networking/ipv6/pools
+ https://api.linode.com/v4/lke/clusters/12345/kubeconfig
- 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'
+ linode-cli lke kubeconfig-view 12345
+ delete:
+ operationId: deleteLKEClusterKubeconfig
+ x-linode-cli-action: kubeconfig-delete
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - lke:read_write
tags:
- - Networking
- summary: IPv6 Ranges List
- description: >
- Displays the IPv6 ranges on your Account.
-
-
- * An IPv6 range is a `/64` or `/54` block of IPv6 addresses routed to a single Linode in a given [Region](/docs/api/regions/#regions-list).
-
- * Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.
-
- * Access the IPv6 Range Create ([POST /networking/ipv6/ranges](/docs/api/networking/#ipv6-range-create)) endpoint to add a `/64` or `/56` block of IPv6 addresses to your account.
- operationId: getIPv6Ranges
- x-linode-cli-action: v6-ranges
- security:
- - personalAccessToken: []
- - oauth:
- - ips:read_only
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubeconfig Delete
+ description: |
+ Delete and regenerate the Kubeconfig file for a Cluster.
responses:
'200':
- description: The IPv6 ranges on your Account.
+ description: Kubeconfig file deleted and regenerated successfully.
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
+ -X DELETE \
+ https://api.linode.com/v4/lke/clusters/12345/kubeconfig
- lang: CLI
source: >
- linode-cli networking v6-ranges
- post:
- tags:
- - Networking
- summary: IPv6 Range Create
- description: |
- Creates an IPv6 Range and assigns it based on the provided Linode or route target IPv6 SLAAC address. See the `ipv6` property when accessing the Linode View ([GET /linode/instances/{linodeId}](/docs/api/linode-instances/#linode-view)) endpoint to view a Linode's IPv6 SLAAC address.
- * Either `linode_id` or `route_target` is required in a request.
- * `linode_id` and `route_target` are mutually exclusive. Submitting values for both properties in a request results in an error.
- * Upon a successful request, an IPv6 range is created in the [Region](/docs/api/regions/#regions-list) that corresponds to the provided `linode_id` or `route_target`.
- * Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.
- * Access the Linodes Assign IPs ([POST /networking/ips/assign](/docs/api/networking/#linodes-assign-ips)) endpoint to re-assign IPv6 Ranges to your Linodes.
-
- **Note**: The following restrictions apply:
- * A Linode can only have one IPv6 range targeting its SLAAC address.
- * An account can only have one IPv6 range in each [Region](/docs/api/regions/#regions-list).
- * [Open a Support Ticket](/docs/api/support/#support-ticket-open) to request expansion of these restrictions.
- operationId: postIPv6Range
- x-linode-cli-action: v6-range-create
+ linode-cli lke kubeconfig-delete 12345
+ /lke/versions:
+ x-linode-cli-command: lke
+ get:
+ operationId: getLKEVersions
+ x-linode-cli-action: versions-list
+ x-linode-grant: read_only
security:
- personalAccessToken: []
- oauth:
- - ips:read_write
- - linodes:read_write
- requestBody:
- description: >
- Information about the IPv6 range to create.
- required: true
- content:
- application/json:
- schema:
- required:
- - prefix_length
- properties:
- linode_id:
- type: integer
- description: |
- The ID of the Linode to assign this range to. The SLAAC address for the provided Linode is used as the range's `route_target`.
-
- * **Required** if `route_target` is omitted from the request.
-
- * Mutually exclusive with `route_target`. Submitting values for both properties in a request results in an error.
- example: 123
- prefix_length:
- type: integer
- enum:
- - 56
- - 64
- description: >
- The prefix length of the IPv6 range.
- route_target:
- type: string
- format: ipv6
- description: |
- The IPv6 SLAAC address to assign this range to.
-
- * **Required** if `linode_id` is omitted from the request.
-
- * Mutually exclusive with `linode_id`. Submitting values for both properties in a request results in an error.
-
- * **Note**: Omit the `/128` prefix length of the SLAAC address when using this property.
- example: 2001:0db8::1
+ - lke:read_only
+ tags:
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubernetes Versions List
+ description: >
+ List the Kubernetes versions available for deployment
+ to a Kubernetes cluster.
responses:
'200':
- description: IPv6 range created successfully.
+ description: >
+ Returns a list of Kubernetes versions available for deployment
+ to a Kubernetes cluster.
content:
application/json:
schema:
type: object
properties:
- range:
- type: string
- format: ipv6/prefix_length
- description: >
- The IPv6 network range, including subnet and prefix length.
- example: 2001:0db8::/64
- route_target:
- type: string
- format: ipv6
- description: >
- The route target IPV6 SLAAC address for this range. Does not include the prefix length.
- example: 2001:0db8::1
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/LKEVersion'
+ 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'
+ $ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "linode_id": 123,
- "prefix_length": 64
- }' \
- https://api.linode.com/v4/networking/ipv6/ranges
+ https://api.linode.com/v4/lke/versions
- lang: CLI
source: >
- linode-cli networking v6-range-create \
- --linode_id 123 \
- --prefix_length 64
- /networking/ipv6/ranges/{range}:
+ linode-cli lke versions-list
+ /lke/versions/{version}:
parameters:
- - name: range
- in: path
- description: |
- The IPv6 range to access. Corresponds to the `range` property of objects returned from the IPv6 Ranges List ([GET /networking/ipv6/ranges](/docs/api/networking/#ipv6-ranges-list)) command.
-
- **Note**: Omit the prefix length of the IPv6 range.
- required: true
- schema:
- type: string
- format: ipv6
- x-linode-cli-command: networking
+ - name: version
+ in: path
+ required: true
+ description: The LKE version to view.
+ schema:
+ type: string
+ x-linode-cli-command: lke
get:
- tags:
- - Networking
- summary: IPv6 Range View
- description: |
- View IPv6 range information.
- operationId: getIPv6Range
- x-linode-cli-action: v6-range-view
+ operationId: getLKEVersion
+ x-linode-cli-action: version-view
+ x-linode-grant: read_only
security:
- personalAccessToken: []
- oauth:
- - ips:read
- responses:
- '200':
- description: Returns IPv6 range information.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/IPv6RangeBGP'
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: >
- curl -H "Authorization: Bearer $TOKEN" https://api.linode.com/v4/networking/ipv6/ranges/2001:0db8::
- - lang: CLI
- source: >
- linode-cli networking v6-range-view 2001:0db8::
- delete:
+ - lke:read_only
tags:
- - Networking
- summary: IPv6 Range Delete
- description: |
- Removes this IPv6 range from your account and disconnects the range from any assigned Linodes.
-
- **Note:** Shared IPv6 ranges cannot be deleted at this time. Please contact Customer Support for assistance.
- operationId: deleteIPv6Range
- x-linode-cli-action: v6-range-delete
- security:
- - personalAccessToken: []
- - oauth:
- - ips:read_write
+ - Linode Kubernetes Engine (LKE)
+ summary: Kubernetes Version View
+ description: >
+ View a Kubernetes version available for deployment
+ to a Kubernetes cluster.
responses:
'200':
- description: IPv6 Range deleted.
+ description: >
+ Returns a Kubernetes version object that is available for deployment
+ to a Kubernetes cluster.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/LKEVersion'
default:
- $ref: '#/components/responses/ErrorResponse'
+ $ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/networking/ipv6/ranges/2001:0db8::
+ https://api.linode.com/v4/lke/versions/1.23
- lang: CLI
source: >
- linode-cli networking v6-range-delete 2001:0db8::
- /networking/firewalls:
- x-linode-cli-command: firewalls
+ linode-cli lke version-view 1.23
+ /longview/clients:
+ x-linode-cli-command: longview
get:
x-linode-grant: read_only
parameters:
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/pageSize'
- servers:
- - url: https://api.linode.com/v4
tags:
- - Networking
- summary: Firewalls List
- description: |
- Returns a paginated list of accessible Firewalls.
- operationId: getFirewalls
+ - Longview
+ summary: Longview Clients List
+ 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:
- - firewall:read_only
+ - longview:read_only
responses:
'200':
- description: Returns an array of Firewalls.
+ description: A paginated list of Longview Clients.
content:
application/json:
schema:
@@ -10882,7 +11122,7 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/Firewall'
+ $ref: '#/components/schemas/LongviewClient'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -10895,86 +11135,40 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/networking/firewalls
+ https://api.linode.com/v4/longview/clients
- lang: CLI
source: >
- linode-cli firewalls list
+ linode-cli longview list
post:
- x-linode-grant: read_write
- servers:
- - url: https://api.linode.com/v4
+ x-linode-grant: add_longview
tags:
- - Networking
- summary: Firewall Create
- description: |
- Creates a Firewall to filter network traffic.
-
- * Use the `rules` property to create inbound and outbound access rules.
-
- * Use the `devices` property to assign the Firewall to a service and apply its Rules to the device. Requires `read_write` [User's Grants](/docs/api/account/#users-grants-view) to the device.
- Currently, Firewalls can only be assigned to Linode instances.
-
- * A Firewall can be assigned to multiple Linode instances at a time.
-
- * A Linode instance can have one active, assigned Firewall at a time.
- Additional disabled Firewalls can be assigned to a service, but they cannot be enabled if another active Firewall is already assigned to the same service.
-
- * A `firewall_create` Event is generated when this endpoint returns successfully.
- operationId: createFirewalls
+ - Longview
+ summary: Longview Client Create
+ 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:
- - firewall:read_write
+ - longview:read_write
requestBody:
- description: Creates a Firewall object that can be applied to a Linode service to filter the service's network traffic.
+ description: Information about the LongviewClient to create.
+ required: true
content:
application/json:
schema:
- allOf:
- - $ref: '#/components/schemas/Firewall'
- required:
- - label
- - rules
- properties:
- devices:
- type: object
- description: |
- Devices to create for this Firewall.
- When a Device is created, the Firewall is assigned to its associated service.
- Currently, Devices can only be created for Linode instances.
- properties:
- linodes:
- description: >
- An array of Linode IDs. A Firewall Device is created for each ID.
- type: array
- items:
- type: integer
- example:
- - 123
- - 456
- rules:
- required:
- - inbound_policy
- - outbound_policy
- properties:
- inbound:
- required:
- - action
- - addresses
- - protocol
- outbound:
- required:
- - action
- - addresses
- - protocol
+ $ref: '#/components/schemas/LongviewClient'
responses:
'200':
- description: Returns information about the created Firewall.
+ description: Longview Client created successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Firewall'
+ $ref: '#/components/schemas/LongviewClient'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -10983,163 +11177,81 @@ paths:
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
- "label": "firewall123",
- "rules": {
- "inbound_policy": "DROP",
- "inbound": [
- {
- "protocol": "TCP",
- "ports": "22, 80, 443",
- "addresses": {
- "ipv4": [
- "192.0.2.0/24"
- ],
- "ipv6": [
- "2001:DB8::/32"
- ]
- },
- "action": "ACCEPT",
- "label": "inbound-rule123",
- "description": "An example inbound rule description."
- }
- ],
- "outbound_policy": "DROP",
- "outbound": [
- {
- "protocol": "TCP",
- "ports": "49152-65535",
- "addresses": {
- "ipv4": [
- "192.0.2.0/24"
- ],
- "ipv6": [
- "2001:DB8::/32"
- ]
- },
- "action": "ACCEPT",
- "label": "outbound-rule123",
- "description": "An example outbound rule description."
- }
- ]
- },
- "devices": {
- "linodes": [
- 123
- ]
- },
- "tags": [
- "example tag",
- "another example"
- ]
+ "label": "client789"
}' \
- https://api.linode.com/v4/networking/firewalls
+ https://api.linode.com/v4/longview/clients
- lang: CLI
source: >
- linode-cli firewalls create \
- --label example-firewall \
- --rules.outbound_policy ACCEPT \
- --rules.inbound_policy DROP \
- --rules.inbound '[{"protocol": "TCP", "ports": "22, 80, 8080, 443", "addresses": {"ipv4": ["192.0.2.1", "192.0.2.0/24"], "ipv6": ["2001:DB8::/32"]}, "action": "ACCEPT"}]' \
- --rules.outbound '[{"protocol": "TCP", "ports": "49152-65535", "addresses": {"ipv4": ["192.0.2.0/24"],"ipv6": ["2001:DB8::/32"]}, "action": "DROP", "label": "outbound-rule123", "description": "An example outbound rule description."}]'
- /networking/firewalls/{firewallId}:
+ linode-cli longview create \
+ --label client789
+ /longview/clients/{clientId}:
parameters:
- - name: firewallId
- in: path
- description: >
- ID of the Firewall to access.
- required: true
- schema:
- type: integer
- x-linode-cli-command: firewalls
+ - 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
- servers:
- - url: https://api.linode.com/v4
tags:
- - Networking
- summary: Firewall View
- operationId: getFirewall
+ - Longview
+ summary: Longview Client View
+ description: >
+ Returns a single Longview Client you can access.
+ operationId: getLongviewClient
x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- - firewall:read_only
- description: |
- Get a specific Firewall resource by its ID. The Firewall's Devices will not be
- returned in the response. Instead, use the
- [List Firewall Devices](/docs/api/networking/#firewall-devices-list)
- endpoint to review them.
+ - longview:read_only
responses:
'200':
- description: Returns information about this Firewall.
+ description: The requested Longview Client.
content:
application/json:
schema:
- $ref: '#/components/schemas/Firewall'
+ $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" \
- https://api.linode.com/v4/networking/firewalls/123
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/longview/clients/789
- lang: CLI
source: >
- linode-cli firewalls view 123
+ linode-cli longview view 789
put:
x-linode-grant: read_write
- servers:
- - url: https://api.linode.com/v4
tags:
- - Networking
- summary: Firewall Update
- description: |
- Updates information for a Firewall. Some parts of a Firewall's configuration cannot
- be manipulated by this endpoint:
-
- - A Firewall's Devices cannot be set with this endpoint. Instead, use the
- [Create Firewall Device](/docs/api/networking/#firewall-device-create)
- and [Delete Firewall Device](/docs/api/networking/#firewall-device-delete)
- endpoints to assign and remove this Firewall from Linode services.
-
- - A Firewall's Rules cannot be changed with this endpoint. Instead, use the
- [Update Firewall Rules](/docs/api/networking/#firewall-rules-update)
- endpoint to update your Rules.
-
- - A Firewall's status can be set to `enabled` or `disabled` by this endpoint, but it cannot be
- set to `deleted`. Instead, use the
- [Delete Firewall](/docs/api/networking/#firewall-delete)
- endpoint to delete a Firewall.
-
- If a Firewall's status is changed with this endpoint, a corresponding `firewall_enable` or
- `firewall_disable` Event will be generated.
- operationId: updateFirewall
+ - Longview
+ summary: Longview Client Update
+ 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:
- - firewall:read_write
+ - longview:read_write
requestBody:
- description: The Firewall information to update.
+ description: The fields to update.
+ required: true
content:
application/json:
schema:
- type: object
- properties:
- tags:
- $ref: '#/components/schemas/Firewall/properties/tags'
- label:
- $ref: '#/components/schemas/Firewall/properties/label'
- status:
- $ref: '#/components/schemas/Firewall/properties/status'
+ $ref: '#/components/schemas/LongviewClient'
responses:
'200':
- description: Firewall updated successfully.
+ description: Longview Client updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Firewall'
+ $ref: '#/components/schemas/LongviewClient'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -11147,35 +11259,37 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "status": "disabled"
+ -X POST -d '{
+ "label": "client789"
}' \
- https://api.linode.com/v4/networking/firewalls/123
+ https://api.linode.com/v4/longview/clients/789
- lang: CLI
source: >
- linode-cli firewalls update 123 \
- --status disabled
+ linode-cli longview update 789 \
+ --label client789
delete:
x-linode-grant: read_write
- servers:
- - url: https://api.linode.com/v4
tags:
- - Networking
- summary: Firewall Delete
- operationId: deleteFirewall
+ - Longview
+ summary: Longview Client Delete
+ 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:
- - firewall:read_write
- description: |
- Delete a Firewall resource by its ID. This will remove all of the Firewall's Rules
- from any Linode services that the Firewall was assigned to.
-
- A `firewall_delete` Event is generated when this endpoint returns successfully.
+ - longview:read_write
responses:
'200':
- description: Delete Successful.
+ description: Longview Client deleted successfully.
content:
application/json:
schema:
@@ -11185,305 +11299,257 @@ paths:
x-code-samples:
- lang: Shell
source: >
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
+ curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
- https://api.linode.com/v4/networking/firewalls/123
+ https://api.linode.com/v4/longview/clients/789
- lang: CLI
source: >
- linode-cli firewalls delete 123
- /networking/firewalls/{firewallId}/devices:
- parameters:
- - name: firewallId
- in: path
- description: >
- ID of the Firewall to access.
- required: true
- schema:
- type: integer
- x-linode-cli-command: firewalls
+ linode-cli longview delete 789
+ /longview/plan:
+ x-linode-cli-command: longview
get:
- x-linode-grant: read_only
- servers:
- - url: https://api.linode.com/v4
tags:
- - Networking
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- summary: Firewall Devices List
- description: |
- Returns a paginated list of a Firewall's Devices. A Firewall Device assigns a
- Firewall to a Linode service (referred to as the Device's `entity`). Currently,
- only Devices with an entity of type `linode` are accepted.
- operationId: getFirewallDevices
- x-linode-cli-action: devices-list
+ - Longview
+ summary: Longview Plan View
+ description: >
+ Get the details of your current Longview plan. This returns a `LongviewSubscription` object
+ for your current Longview Pro plan, or an empty set `{}` if your current plan is Longview Free.
+
+
+ You must have at least one of the following `global` [User Grants](/docs/api/account/#users-grants-view)
+ in order to access this endpoint:
+
+ - `"account_access": read_write`
+ - `"account_access": read_only`
+ - `"longview_subscription": true`
+ - `"add_longview": true`
+
+
+ To update your subscription plan, send a request to [Update Longview Plan](/docs/api/longview/#longview-plan-update).
+ operationId: getLongviewPlan
+ x-linode-cli-action: plan-view
security:
- personalAccessToken: []
- oauth:
- - firewall:read_only
+ - longview:read_only
responses:
'200':
- description: A paginated list of Firewall Devices
+ description: The Longview plan details for this account.
content:
application/json:
schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/FirewallDevices'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ $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/networking/firewalls/123/devices
+ https://api.linode.com/v4/longview/plan
- lang: CLI
source: >
- linode-cli firewalls devices-list 123
- post:
- x-linode-grant: read_write
- servers:
- - url: https://api.linode.com/v4
+ linode-cli longview plan-view
+ put:
tags:
- - Networking
- summary: Firewall Device Create
- description: |
- Creates a Firewall Device, which assigns a Firewall to a service (referred to
- as the Device's `entity`) and applies the Firewall's Rules to the device.
+ - Longview
+ summary: Longview Plan Update
+ description: >
+ Update your Longview plan to that of the given subcription ID. This returns a `LongviewSubscription` object for
+ the updated Longview Pro plan, or an empty set `{}` if the updated plan is Longview Free.
- * Currently, only Devices with an entity of type `linode` are accepted.
- * A Firewall can be assigned to multiple Linode instances at a time.
+ You must have `"longview_subscription": true` configured as a `global`
+ [User Grant](/docs/api/account/#users-grants-view) in order to access this endpoint.
- * A Linode instance can have one active, assigned Firewall at a time.
- Additional disabled Firewalls can be assigned to a service, but they cannot be enabled if another active Firewall is already assigned to the same service.
- * A `firewall_device_add` Event is generated when the Firewall Device is added successfully.
- operationId: createFirewallDevice
- x-linode-cli-action: device-create
+ You can send a request to the [List Longview Subscriptions](/docs/api/longview/#longview-subscriptions-list)
+ endpoint to receive the details, including `id`'s, of each plan.
+ operationId: updateLongviewPlan
+ x-linode-cli-action: plan-update
security:
- personalAccessToken: []
- oauth:
- - firewall:read_write
+ - longview:read_write
requestBody:
+ description: Update your Longview subscription plan.
+ required: true
content:
application/json:
schema:
- type: object
- required:
- - id
- - type
- allOf:
- - $ref: '#/components/schemas/FirewallDevices/properties/entity'
+ $ref: '#/components/schemas/LongviewPlan'
responses:
'200':
- description: Returns information about the created Firewall Device.
+ description: The updated Longview plan details for this account.
content:
application/json:
schema:
- $ref: '#/components/schemas/FirewallDevices'
+ $ref: '#/components/schemas/LongviewSubscription'
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": "linode",
- "id": 123
- }' \
- https://api.linode.com/v4/networking/firewalls/123/devices
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X PUT -d '{
+ "longview_subscription": "longview-10"
+ }' \
+ https://api.linode.com/v4/longview/plan
- lang: CLI
source: >
- linode-cli firewalls device-create 123 \
- --id 456 \
- --type "linode"
- /networking/firewalls/{firewallId}/devices/{deviceId}:
- parameters:
- - name: firewallId
- in: path
- description: >
- ID of the Firewall to access.
- required: true
- schema:
- type: integer
- - name: deviceId
- in: path
- description: >
- ID of the Firewall Device to access.
- required: true
- schema:
- type: integer
- x-linode-cli-command: firewalls
+ linode-cli longview plan-update --longview_subscription longview-10
+ /longview/subscriptions:
+ x-linode-cli-command: longview
get:
- x-linode-grant: read_only
- servers:
- - url: https://api.linode.com/v4
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
tags:
- - Networking
- summary: Firewall Device View
- description: |
- Returns information for a Firewall Device, which assigns a Firewall
- to a Linode service (referred to as the Device's `entity`). Currently,
- only Devices with an entity of type `linode` are accepted.
- operationId: getFirewallDevice
- x-linode-cli-action: device-view
- security:
- - personalAccessToken: []
- - oauth:
- - firewall:read_only
+ - Longview
+ summary: Longview Subscriptions List
+ 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: The requested Firewall Device.
+ description: A paginated list of Longview Subscriptions.
content:
application/json:
schema:
- $ref: '#/components/schemas/FirewallDevices'
+ 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/networking/firewalls/123/devices/456
+ https://api.linode.com/v4/longview/subscriptions
- lang: CLI
source: >
- linode-cli firewalls device-view \
- 123 456
- delete:
- x-linode-grant: read_write
- servers:
- - url: https://api.linode.com/v4
+ 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:
- - Networking
- summary: Firewall Device Delete
- operationId: deleteFirewallDevice
- x-linode-cli-action: device-delete
- security:
- - personalAccessToken: []
- - oauth:
- - firewall:read_write
- description: |
- Removes a Firewall Device, which removes a Firewall from the Linode service it was
- assigned to by the Device. This will remove all of the Firewall's Rules from the Linode
- service. If any other Firewalls have been assigned to the Linode service, then those Rules
- will remain in effect.
-
- A `firewall_device_remove` Event is generated when the Firewall Device is removed successfully.
+ - Longview
+ summary: Longview Subscription View
+ description: >
+ Get the Longview plan details as a single `LongviewSubscription` object for the provided subscription ID. This is a public endpoint
+ and requires no authentication.
+ operationId: getLongviewSubscription
+ x-linode-cli-action: subscription-view
responses:
'200':
- description: Delete Successful.
+ description: The requested Longview Subscription details.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/LongviewSubscription'
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/networking/firewalls/123/devices/456
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/longview/subscriptions/longview-10
- lang: CLI
source: >
- linode-cli firewalls device-delete 123 456
- /networking/firewalls/{firewallId}/rules:
- parameters:
- - name: firewallId
- in: path
- description: >
- ID of the Firewall to access.
- required: true
- schema:
- type: integer
- x-linode-cli-command: firewalls
+ linode-cli longview subscription-view \
+ longview-10
+ /managed/contacts:
+ x-linode-cli-command: managed
get:
- x-linode-grant: read_only
- servers:
- - url: https://api.linode.com/v4
+ x-linode-grant: unrestricted only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
tags:
- - Networking
- summary: Firewall Rules List
- description: |
- Returns the inbound and outbound Rules for a Firewall.
- operationId: getFirewallRules
- x-linode-cli-action: rules-list
+ - Managed
+ summary: Managed Contacts List
+ description: >
+ Returns a paginated list of Managed Contacts on your Account.
+ operationId: getManagedContacts
+ x-linode-cli-action: contacts-list
security:
- personalAccessToken: []
- oauth:
- - firewall:read_only
+ - account:read_only
responses:
'200':
- description: The requested Firewall Rules.
+ description: A paginated list of ManagedContacts
content:
application/json:
schema:
- $ref: '#/components/schemas/Firewall/properties/rules'
+ 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/networking/firewalls/123/rules
+ https://api.linode.com/v4/managed/contacts
- lang: CLI
source: >
- linode-cli firewalls rules-list 123
- put:
- x-linode-grant: read_write
- servers:
- - url: https://api.linode.com/v4
+ linode-cli managed contacts-list
+ post:
+ x-linode-grant: unrestricted only
tags:
- - Networking
- summary: Firewall Rules Update
- description: |
- Updates the inbound and outbound Rules for a Firewall.
-
- **Note:** This command replaces all of a Firewall's `inbound` and/or `outbound` rulesets with the values specified in your request.
- operationId: updateFirewallRules
- x-linode-cli-action: rules-update
+ - Managed
+ summary: Managed Contact Create
+ 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:
- - firewall:read_write
+ - account:read_write
requestBody:
- description: The Firewall Rules information to update.
+ description: Information about the contact to create.
content:
application/json:
schema:
- allOf:
- - $ref: '#/components/schemas/Firewall/properties/rules'
- properties:
- inbound:
- required:
- - action
- - addresses
- - protocol
- outbound:
- required:
- - action
- - addresses
- - protocol
+ $ref: '#/components/schemas/ManagedContact'
responses:
'200':
- description: Firewall Rules updated successfully.
+ description: Contact created.
content:
application/json:
schema:
- $ref: '#/components/schemas/Firewall/properties/rules'
+ $ref: '#/components/schemas/ManagedContact'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -11491,150 +11557,173 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "inbound_policy": "DROP",
- "inbound": [
- {
- "protocol": "TCP",
- "ports": "22, 80, 443",
- "addresses": {
- "ipv4": [
- "192.0.2.0/24"
- ],
- "ipv6": [
- "2001:DB8::/32"
- ]
- },
- "action": "ACCEPT",
- "label": "inbound-rule123",
- "description": "An example inbound rule description."
- }
- ],
- "outbound_policy": "DROP",
- "outbound": [
- {
- "protocol": "TCP",
- "ports": "49152-65535",
- "addresses": {
- "ipv4": [
- "192.0.2.0/24"
- ],
- "ipv6": [
- "2001:DB8::/32"
- ]
- },
- "action": "ACCEPT",
- "label": "outbound-rule123",
- "description": "An example outbound rule description."
- }
- ]
+ -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/networking/firewalls/123/rules
+ https://api.linode.com/v4/managed/contacts
- lang: CLI
source: >
- linode-cli firewalls rules-update 123 \
- --inbound '[{"action":"ACCEPT", "protocol": "TCP", "ports": "22, 80, 8080, 443", "addresses": {"ipv4": ["192.0.2.1/32", "192.0.2.0/24"], "ipv6": ["2001:DB8::/32"]}}]' \
- --outbound '[{"action":"DROP","protocol": "TCP", "ports": "49152-65535", "addresses": {"ipv4": ["192.0.2.1/32", "192.0.2.0/24"], "ipv6": ["2001:DB8::/32"]}}]'
- /networking/vlans:
- x-linode-cli-command: vlans
+ 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: read_only
- servers:
- - url: https://api.linode.com/v4beta
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ x-linode-grant: unrestricted only
tags:
- - Networking
- summary: VLANs List
- description: |
- Returns a list of all Virtual Local Area Networks (VLANs) on your Account. VLANs provide
- a mechanism for secure communication between two or more Linodes that are assigned to the
- same VLAN and are both within the same Layer 2 broadcast domain.
-
- VLANs are created and attached to Linodes by using the `interfaces` property for the following endpoints:
-
- - Linode Create ([POST /linode/instances](/docs/api/linode-instances/#linode-create))
- - Configuration Profile Create ([POST /linode/instances/{linodeId}/configs](/docs/api/linode-instances/#configuration-profile-create))
- - Configuration Profile Update ([PUT /linode/instances/{linodeId}/configs/{configId}](/docs/api/linode-instances/#configuration-profile-update))
-
- There are several ways to detach a VLAN from a Linode:
-
- - [Update](/docs/api/linode-instances/#configuration-profile-update) the active Configuration Profile to remove the VLAN interface, then [reboot](/docs/api/linode-instances/#linode-reboot) the Linode.
- - [Create](/docs/api/linode-instances/#configuration-profile-create) a new Configuration Profile without the VLAN interface, then [reboot](/docs/api/linode-instances/#linode-reboot) the Linode into the new Configuration Profile.
- - [Delete](/docs/api/linode-instances/#linode-delete) the Linode.
-
- **Note:** Only Next Generation Network (NGN) data centers support VLANs. Use the Regions ([/regions](/docs/api/regions/)) endpoint to view the capabilities of data center regions.
- If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center,
- the migration or cloning will not initiate. If a Linode cannot be migrated because of an incompatibility,
- you will be prompted to select a different data center or contact support.
-
- **Note:** See our guide on [Getting Started with VLANs](/docs/guides/getting-started-with-vlans/) to view additional [limitations](/docs/guides/getting-started-with-vlans/#limitations).
- operationId: getVLANs
- x-linode-cli-action: list
+ - Managed
+ summary: Managed Contact View
+ description: >
+ Returns a single Managed Contact.
+ operationId: getManagedContact
+ x-linode-cli-action: contact-view
security:
- personalAccessToken: []
- oauth:
- - linodes:read_only
+ - account:read_write
responses:
'200':
- description: The VLANs available on this Account.
+ description: The requested Managed Contact.
content:
application/json:
schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/Vlans'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ $ref: '#/components/schemas/ManagedContact'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4beta/networking/vlans/
+ https://api.linode.com/v4/managed/contacts/567
- lang: CLI
source: >
- linode-cli networking vlans-list
- /nodebalancers:
- x-linode-cli-command: nodebalancers
- get:
- x-linode-grant: read_only
+ linode-cli managed contact-view 567
+ put:
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- summary: NodeBalancers List
+ - Managed
+ summary: Managed Contact Update
description: >
- Returns a paginated list of NodeBalancers you have access to.
- operationId: getNodeBalancers
- x-linode-cli-action: list
+ Updates information about a Managed Contact.
+ operationId: updateManagedContact
+ x-linode-cli-action: contact-update
security:
- personalAccessToken: []
- oauth:
- - nodebalancers:read_only
+ - account:read_write
+ requestBody:
+ description: The fields to update.
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ManagedContact'
responses:
'200':
- description: A paginated list of NodeBalancers.
+ description: Contact updated successfully.
content:
application/json:
schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/NodeBalancer'
- page:
+ $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: Managed Contact Delete
+ 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: Managed Credentials List
+ 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'
@@ -11646,69 +11735,56 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/nodebalancers
+ https://api.linode.com/v4/managed/credentials
- lang: CLI
source: >
- linode-cli nodebalancers list
+ linode-cli managed credentials-list
post:
- x-linode-grant: add_nodebalancers
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- summary: NodeBalancer Create
+ - Managed
+ summary: Managed Credential Create
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
+ 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:
- - nodebalancers:read_write
+ - account:read_write
requestBody:
- description: Information about the NodeBalancer to create.
- required: true
- x-linode-cli-allowed-defaults:
- - region
+ description: Information about the Credential to create.
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'
- configs:
- type: array
- description: >
- The ports to configure this NodeBalancer with on creation.
- Each config must have a unique port and at least one Node.
- items:
- allOf:
- - $ref: '#/components/schemas/NodeBalancerConfig'
- - type: object
- properties:
- nodes:
- type: array
- description: >
- The NodeBalancer Nodes that serve this port. When
- creating a NodeBalancer this way, at least one Node
- is required per configured port.
- items:
- $ref: '#/components/schemas/NodeBalancerNode'
+ - label
+ - password
+ 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
+ description: >
+ The password to use when accessing the Managed Service.
+ example: s3cur3P@ssw0rd
responses:
'200':
- description: NodeBalancer created successfully.
+ description: Credential created.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancer'
+ $ref: '#/components/schemas/ManagedCredential'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -11717,83 +11793,87 @@ paths:
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
- "region": "us-east",
- "label": "balancer12345",
- "client_conn_throttle": 0
+ "label": "prod-password-1",
+ "username": "johndoe",
+ "password": "s3cur3P@ssw0rd"
}' \
- https://api.linode.com/v4/nodebalancers
+ https://api.linode.com/v4/managed/credentials
- lang: CLI
source: >
- linode-cli nodebalancers create \
- --region us-east \
- --label balancer12345 \
- --client_conn_throttle 0
- /nodebalancers/{nodeBalancerId}:
+ linode-cli managed credential-create \
+ --label prod-password-1 \
+ --username johndoe \
+ --password s3cur3P@ssw0rd
+ /managed/credentials/{credentialId}:
parameters:
- - name: nodeBalancerId
+ - name: credentialId
in: path
- description: The ID of the NodeBalancer to access.
required: true
+ description: The ID of the Credential to access.
schema:
type: integer
- x-linode-cli-command: nodebalancers
+ x-linode-cli-command: managed
get:
- x-linode-grant: read_only
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- summary: NodeBalancer View
+ - Managed
+ summary: Managed Credential View
description: >
- Returns a single NodeBalancer you can access.
- operationId: getNodeBalancer
- x-linode-cli-action: view
+ Returns a single Managed Credential.
+ operationId: getManagedCredential
+ x-linode-cli-action: credential-view
security:
- personalAccessToken: []
- oauth:
- - nodebalancers:read_only
+ - account:read_write
responses:
'200':
- description: The requested NodeBalancer object.
+ description: The requested Managed Credential.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancer'
+ $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/nodebalancers/12345
+ https://api.linode.com/v4/managed/credentials/9991
- lang: CLI
source: >
- linode-cli nodebalancers view 12345
+ linode-cli managed credential-view 9991
put:
- x-linode-grant: read_write
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- summary: NodeBalancer Update
+ - Managed
+ summary: Managed Credential Update
description: >
- Updates information about a NodeBalancer you can access.
- operationId: updateNodeBalancer
- x-linode-cli-action: update
+ Updates the label of a Managed Credential. This endpoint
+ does not update the username and password for a Managed Credential.
+ To do this, use the Managed Credential Username and Password Update
+ ([POST /managed/credentials/{credentialId}/update](/docs/api/managed/#managed-credential-username-and-password-update))
+ endpoint instead.
+ operationId: updateManagedCredential
+ x-linode-cli-action: credential-update
security:
- personalAccessToken: []
- oauth:
- - nodebalancers:read_write
+ - account:read_write
requestBody:
- description: The information to update.
+ description: The fields to update.
required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancer'
+ $ref: '#/components/schemas/ManagedCredential'
responses:
'200':
- description: NodeBalancer updated successfully.
+ description: Credential updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancer'
+ $ref: '#/components/schemas/ManagedCredential'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -11802,40 +11882,60 @@ paths:
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
- "label": "balancer12345",
- "client_conn_throttle": 0
+ "label": "prod-password-1"
}' \
- https://api.linode.com/v4/nodebalancers/12345
+ https://api.linode.com/v4/managed/credentials/9991
- lang: CLI
source: >
- linode-cli nodebalancers update 12345 \
- --label balancer12345 \
- --client_conn_throttle 0
- delete:
- x-linode-grant: read_write
- tags:
- - NodeBalancers
- summary: NodeBalancer Delete
- 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
+ linode-cli managed credential-update 9991 \
+ --label prod-password-1
+ /managed/credentials/{credentialId}/update:
+ parameters:
+ - name: credentialId
+ in: path
+ required: true
+ description: The ID of the Credential to update.
+ schema:
+ type: integer
+ x-linode-cli-command: managed
+ post:
+ x-linode-grant: unrestricted only
+ tags:
+ - Managed
+ summary: Managed Credential Username and Password Update
+ description: >
+ Updates the username and password for a Managed Credential.
+ operationId: updateManagedCredentialUsernamePassword
+ x-linode-cli-action: credential-update-username-password
security:
- personalAccessToken: []
- oauth:
- - nodebalancers:read_write
+ - account:read_write
+ requestBody:
+ description: >
+ The new username and password to assign to the
+ Managed Credential.
+ content:
+ application/json:
+ schema:
+ required:
+ - password
+ properties:
+ username:
+ type: string
+ minLength: 0
+ maxLength: 5000
+ description: >
+ The username to use when accessing the Managed Service.
+ example: johndoe
+ password:
+ type: string
+ description: >
+ The password to use when accessing the Managed Service.
+ example: s3cur3P@ssw0rd
responses:
'200':
- description: NodeBalancer deleted successfully.
+ description: Credential username and password updated.
content:
application/json:
schema:
@@ -11845,353 +11945,307 @@ paths:
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/nodebalancers/12345
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "username": "johndoe",
+ "password": "s3cur3P@ssw0rd"
+ }' \
+ https://api.linode.com/v4/managed/credentials/9991/update
- lang: CLI
source: >
- linode-cli nodebalancers delete 12345
- /nodebalancers/{nodeBalancerId}/configs:
+ linode-cli managed credential-update-username-password 9991 \
+ --username johndoe \
+ --password s3cur3P@ssw0rd
+ /managed/credentials/{credentialId}/revoke:
parameters:
- - name: nodeBalancerId
+ - name: credentialId
in: path
- description: The ID of the NodeBalancer to access.
required: true
+ description: The ID of the Credential to access.
schema:
type: integer
- x-linode-cli-command: nodebalancers
- get:
- x-linode-grant: read_only
+ x-linode-cli-command: managed
+ post:
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- summary: Configs List
+ - Managed
+ summary: Managed Credential Delete
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
+ 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:
- - nodebalancers:read_only
+ - account:read_write
responses:
'200':
- description: A paginted list of NodeBalancer Configs
+ description: Credential deleted successfully.
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
+ -X DELETE \
+ https://api.linode.com/v4/managed/credentials/9991
- lang: CLI
source: >
- linode-cli nodebalancers configs-list 12345
- post:
- x-linode-grant: read_write
+ linode-cli managed credential-revoke 9991
+ /managed/credentials/sshkey:
+ x-linode-cli-command: managed
+ get:
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- summary: Config Create
+ - Managed
+ summary: Managed SSH Key View
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
+ Returns the unique SSH public key assigned to your Linode account's
+ Managed service. If you [add this public key](/docs/platform/linode-managed/#adding-the-public-key) to a Linode on your account,
+ Linode special forces will be able to log in to the Linode with this key
+ when attempting to resolve issues.
+ operationId: viewManagedSSHKey
+ x-linode-cli-action: credential-sshkey-view
security:
- personalAccessToken: []
- oauth:
- - nodebalancers:read_write
- requestBody:
- description: Information about the port to configure.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
+ - account:read_only
responses:
'200':
- description: Config created successfully.
+ description: The requested Managed SSH public key.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
+ type: object
+ description: >
+ A unique SSH public key that allows Linode's special forces
+ to access a Managed server to respond to Issues.
+ properties:
+ ssh_key:
+ type: string
+ description: >
+ The unique SSH public key assigned to your Linode account's Managed service.
+ example: ssh-rsa AAAAB...oD2ZQ== managedservices@linode
+ readOnly: true
+ x-linode-cli-display: 1
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,
- "proxy_protocol": "v1",
- "cipher_suite": "recommended"
- }' \
- https://api.linode.com/v4/nodebalancers/12345/configs
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/managed/credentials/sshkey
- 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 \
- --proxy_protocol "v1" \
- --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
+ linode-cli managed credential-sshkey-view
+ /managed/issues:
+ x-linode-cli-command: managed
get:
- x-linode-grant: read_only
+ x-linode-grant: unrestricted only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
tags:
- - NodeBalancers
- summary: Config View
+ - Managed
+ summary: Managed Issues List
description: >
- Returns configuration information for a single port of this
- NodeBalancer.
- operationId: getNodeBalancerConfig
- x-linode-cli-action: config-view
+ 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:
- - nodebalancers:read_only
+ - account:read_only
responses:
'200':
- description: The requested NodeBalancer config.
+ description: >
+ A paginated list of open or ongoing Managed Issues.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
+ 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/nodebalancers/12345/configs/4567
+ https://api.linode.com/v4/managed/issues
- lang: CLI
source: >
- linode-cli nodebalancers config-view \
- 12345 4567
- put:
- x-linode-grant: read_write
- tags:
- - NodeBalancers
- summary: Config Update
+ 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: Managed Issue View
description: >
- Updates the configuration for a single port on a NodeBalancer.
- operationId: updateNodeBalancerConfig
- x-linode-cli-action: config-update
+ 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:
- - nodebalancers:read_write
- requestBody:
- description: The fields to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
+ - account:read_only
responses:
'200':
- description: Config updated successfully.
+ description: The requested issue.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerConfig'
+ $ref: '#/components/schemas/ManagedIssue'
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,
- "proxy_protocol": "v1",
- "cipher_suite": "recommended"
- }' \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/managed/issues/823
- 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 \
- --proxy_protocol "v1" \
- --cipher_suite recommended
- delete:
- x-linode-grant: read_write
+ 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:
- - NodeBalancers
- summary: Config Delete
+ - Managed
+ summary: Managed Linode Settings List
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
+ 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:
- - nodebalancers:read_write
+ - account:read_only
responses:
'200':
- description: NodeBalancer Config deleted successfully.
+ 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" \
- -X DELETE \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567
+ https://api.linode.com/v4/managed/linode-settings
- lang: CLI
source: >
- linode-cli nodebalancers config-delete \
- 12345 4567
- /nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild:
+ linode-cli managed linode-settings-list
+ /managed/linode-settings/{linodeId}:
parameters:
- - name: nodeBalancerId
- in: path
- description: The ID of the NodeBalancer to access.
- required: true
- schema:
- type: integer
- - name: configId
+ - name: linodeId
in: path
- description: The ID of the Config to access.
required: true
+ description: The Linode ID whose settings we are accessing.
schema:
type: integer
- x-linode-cli-command: nodebalancers
- post:
- x-linode-grant: add_nodebalancers
+ x-linode-cli-command: managed
+ get:
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- summary: Config Rebuild
+ - Managed
+ summary: Linode's Managed Settings View
description: >
- Rebuilds a NodeBalancer Config and its Nodes that you have
- permission to modify.
- operationId: rebuildNodeBalancerConfig
- x-linode-cli-action: config-rebuild
+ Returns a single Linode's Managed settings.
+ operationId: getManagedLinodeSetting
+ x-linode-cli-action: linode-setting-view
security:
- personalAccessToken: []
- oauth:
- - nodebalancers:read_write
+ - 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: Linode's Managed Settings Update
+ 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: >
- Information about the NodeBalancer Config to rebuild.
+ description: The settings to update.
required: true
content:
application/json:
schema:
- allOf:
- - $ref: "#/components/schemas/NodeBalancerConfig"
- - type: object
- properties:
- nodes:
- type: array
- description: |
- The NodeBalancer Node(s) that serve this port.
- At least one Node is required per configured port.
-
- Some considerations for Nodes when rebuilding a config:
- * Current Nodes excluded from the request body will be deleted.
- * Current Nodes (identified by their ID) will be updated.
- * New Nodes (included without an ID) will be created.
- items:
- $ref: '#/components/schemas/NodeBalancerNode'
+ $ref: '#/components/schemas/ManagedLinodeSettings'
responses:
'200':
- description: NodeBalancer created successfully.
+ description: Settings updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancer'
+ $ref: '#/components/schemas/ManagedLinodeSettings'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -12199,91 +12253,43 @@ paths:
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,
- "proxy_protocol": "v1",
- "cipher_suite": "recommended",
- "nodes": [
- {
- "address": "192.168.210.120:80",
- "label": "node1",
- "weight": 50,
- "mode": "accept"
- },
- {
- "address": "192.168.210.122:81",
- "label": "node2",
- "weight": 50,
- "mode": "accept"
- },
- ]
+ -X PUT -d '{
+ "ssh": {
+ "access": true,
+ "user": "linode",
+ "ip": "12.34.56.78",
+ "port": 22
+ }
}' \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567/rebuild
+ https://api.linode.com/v4/managed/linode-settings/123
- lang: CLI
source: >
- linode-cli nodebalancers config-rebuild \
- 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 \
- --proxy_protocol "v1" \
- --cipher_suite recommended \
- --nodes '{"address":"192.168.210.120:80","label":"node1","weight":50,"mode":"accept"}' \
- --nodes '{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}'
- /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
+ 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: read_only
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- summary: Nodes List
+ - Managed
+ summary: Managed Services List
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
+ 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:
- - nodebalancers:read_only
+ - account:read_only
responses:
'200':
- description: A paginated list of NodeBalancer nodes.
+ description: A paginated list of Managed Services
content:
application/json:
schema:
@@ -12292,7 +12298,7 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/NodeBalancerNode'
+ $ref: '#/components/schemas/ManagedService'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -12305,43 +12311,43 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes
+ https://api.linode.com/v4/managed/services
- lang: CLI
source: >
- linode-cli nodebalancers nodes-list 12345 4567
+ linode-cli managed services-list
post:
- x-linode-grant: read_write
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- summary: Node Create
+ - Managed
+ summary: Managed Service Create
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
+ Creates a Managed Service. Linode Managed will begin monitoring this
+ service and reporting and attempting to resolve any Issues.
+ operationId: createManagedService
+ x-linode-cli-action: service-create
security:
- personalAccessToken: []
- oauth:
- - nodebalancers:read_write
+ - account:read_write
requestBody:
- description: Information about the Node to create.
- required: true
+ description: Information about the service to monitor.
content:
application/json:
schema:
required:
- label
+ - service_type
- address
+ - timeout
allOf:
- - $ref: '#/components/schemas/NodeBalancerNode'
+ - $ref: '#/components/schemas/ManagedService'
responses:
'200':
- description: Node created successfully.
+ description: Service created.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerNode'
+ $ref: '#/components/schemas/ManagedService'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -12350,100 +12356,96 @@ paths:
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"
+ "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/nodebalancers/12345/configs/4567/nodes
+ https://api.linode.com/v4/managed/services
- 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}:
+ 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: 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
+ - name: serviceId
in: path
- description: The ID of the Node to access
required: true
+ description: The ID of the Managed Service to access.
schema:
type: integer
- x-linode-cli-command: nodebalancers
+ x-linode-cli-command: managed
get:
- x-linode-grant: read_only
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- summary: Node View
+ - Managed
+ summary: Managed Service View
description: >
- Returns information about a single Node, a backend for this
- NodeBalancer's configured port.
- operationId: getNodeBalancerNode
- x-linode-cli-action: node-view
+ Returns information about a single Managed Service on your Account.
+ operationId: getManagedService
+ x-linode-cli-action: service-view
security:
- personalAccessToken: []
- oauth:
- - nodebalancers:read_write
+ - account:read_only
responses:
'200':
- description: A paginated list of NodeBalancer nodes.
+ description: The requested Managed Service.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerNode'
+ $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/nodebalancers/12345/configs/4567/nodes/54321
+ https://api.linode.com/v4/managed/services/9994
- lang: CLI
source: >
- linode-cli nodebalancers node-view 12345 4567 54321
+ linode-cli managed service-view 9994
put:
- x-linode-grant: read_write
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- summary: Node Update
+ - Managed
+ summary: Managed Service Update
description: >
- Updates information about a Node, a backend for this NodeBalancer's
- configured port.
- operationId: updateNodeBalancerNode
- x-linode-cli-action: node-update
+ Updates information about a Managed Service.
+ operationId: updateManagedService
+ x-linode-cli-action: service-update
security:
- personalAccessToken: []
- oauth:
- - nodebalancers:read_write
+ - account:read_write
requestBody:
description: The fields to update.
required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerNode'
+ $ref: '#/components/schemas/ManagedService'
responses:
'200':
- description: Node updated successfully.
+ description: Service updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerNode'
+ $ref: '#/components/schemas/ManagedService'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -12452,41 +12454,46 @@ paths:
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"
+ "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/nodebalancers/12345/configs/4567/nodes/54321
+ https://api.linode.com/v4/managed/services/9994
- lang: CLI
source: >
- linode-cli nodebalancers node-create \
- 12345 4567 54321 \
- --address 192.168.210.120:80 \
- --label node54321 \
- --weight 50 \
- --mode accept
+ 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: read_write
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- summary: Node Delete
+ - Managed
+ summary: Managed Service Delete
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
+ 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:
- - nodebalancers:read_write
+ - account:read_write
responses:
'200':
- description: Node deleted successfully.
+ description: Service deleted successfully.
content:
application/json:
schema:
@@ -12498,64 +12505,163 @@ paths:
source: >
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
- https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
+ https://api.linode.com/v4/managed/services/9994
- lang: CLI
source: >
- linode-cli nodebalancers node-delete \
- 12345 4567 54321
- /nodebalancers/{nodeBalancerId}/stats:
- x-linode-cli-command: nodebalancers
+ linode-cli managed service-delete 9994
+ /managed/services/{serviceId}/disable:
parameters:
- - name: nodeBalancerId
+ - name: serviceId
in: path
- description: The ID of the NodeBalancer to access.
required: true
+ description: The ID of the Managed Service to disable.
schema:
type: integer
- get:
- x-linode-grant: read_only
+ x-linode-cli-command: managed
+ post:
+ x-linode-grant: unrestricted only
tags:
- - NodeBalancers
- summary: NodeBalancer Statistics View
- description: >
- Returns detailed statistics about the requested NodeBalancer.
- x-linode-cli-action: stats
- x-linode-cli-skip: true
+ - Managed
+ summary: Managed Service Disable
+ description: >
+ Temporarily disables monitoring of a Managed Service.
+ operationId: disableManagedService
+ x-linode-cli-action: service-disable
security:
- personalAccessToken: []
- oauth:
- - nodebalancers:read_only
+ - account:read_write
responses:
'200':
- description: The requested stats.
+ description: Service disabled.
content:
application/json:
schema:
- $ref: '#/components/schemas/NodeBalancerStats'
+ $ref: '#/components/schemas/ManagedService'
default:
$ref: '#/components/responses/ErrorResponse'
- /object-storage/buckets:
+ 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: Managed Service Enable
+ 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
+ /managed/stats:
+ x-linode-cli-command: managed
get:
- operationId: getObjectStorageBuckets
- x-linode-cli-skip: true
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Buckets List
+ x-linode-grant: unrestricted only
+ tags:
+ - Managed
+ summary: Managed Stats List
description: |
- Returns a paginated list of all Object Storage Buckets that you own.
+ Returns a list of Managed Stats on your Account in the form of x and y data points.
+ You can use these data points to plot your own graph visualizations. These stats
+ reflect the last 24 hours of combined usage across all managed Linodes on your account
+ giving you a high-level snapshot of data for the following:
- This endpoint is available for convenience. It is recommended that instead you
- use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/serviceops/#list-buckets) directly.
+ * cpu
+ * disk
+ * swap
+ * network in
+ * network out
+ operationId: getManagedStats
+ x-linode-cli-action: stats-list
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: A list of Managed Stats from the last 24 hours.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ data:
+ type: object
+ oneOf:
+ - x-linode-ref-name: "Stats Available"
+ $ref: '#/components/schemas/StatsDataAvailable'
+ - x-linode-ref-name: "Stats Unavailable"
+ $ref: '#/components/schemas/StatsDataUnavailable'
+ discriminator:
+ propertyName: x-linode-ref-name
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/managed/stats
+ - lang: CLI
+ source: >
+ linode-cli managed stats-list
+ /networking/ips:
+ x-linode-cli-command: networking
+ get:
+ x-linode-grant: read_only
tags:
- - Object Storage
+ - Networking
+ summary: IP Addresses List
+ 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:
- - object_storage:read_only
+ - ips:read_only
responses:
'200':
- description: A paginated list of buckets you own.
+ description: A paginated list of IP Addresses.
content:
application/json:
schema:
@@ -12564,7 +12670,7 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/ObjectStorageBucket'
+ $ref: '#/components/schemas/IPAddress'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -12577,81 +12683,64 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/object-storage/buckets/
+ https://api.linode.com/v4/networking/ips
+ - lang: CLI
+ source: >
+ linode-cli networking ips-list
post:
- operationId: createObjectStorageBucket
- x-linode-cli-skip: true
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Bucket Create
- description: |
- Creates an Object Storage Bucket in the cluster specified. If the
- bucket already exists and is owned by you, this endpoint will return a
- `200` response with that bucket as if it had just been created.
-
-
- This endpoint is available for convenience. It is recommended that instead you
- use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket) directly.
+ x-linode-grant: read_write
tags:
- - Object Storage
+ - Networking
+ summary: IP Address Allocate
+ description: >
+ Allocates a new IPv4 Address on your Account. The Linode must be
+ configured to support additional addresses - please
+ [open a support ticket](/docs/api/support/#support-ticket-open) requesting additional
+ addresses before attempting allocation.
+ operationId: allocateIP
+ x-linode-cli-action: ip-add
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
+ - ips:read_write
+ - linodes:read_write
requestBody:
- description: >
- Information about the bucket you want to create.
+ description: Information about the address you are creating.
+ required: true
content:
application/json:
schema:
- type: object
required:
- - label
- - cluster
+ - type
+ - public
+ - linode_id
properties:
- label:
- type: string
- description: >
- The name for this bucket. Must be unique in the cluster you
- are creating the bucket in, or an error will be returned. Labels will be
- reserved only for the cluster that active buckets are created and stored in.
- If you want to reserve this bucket's label in another cluster,
- you must create a new bucket with the same label in the new cluster.
- pattern: ^[a-z0-09][a-z0-9-]*[a-z0-9]?$
- example: example-bucket
- cluster:
+ type:
type: string
+ enum:
+ - ipv4
description: >
- The ID of the Object Storage Cluster where this bucket should
- be created.
- example: us-east-1
- cors_enabled:
+ The type of address you are requesting. Only
+ IPv4 addresses may be allocated through this endpoint.
+ example: ipv4
+ public:
type: boolean
description: >
- If true, the bucket will be created with CORS enabled for all
- origins. For more fine-grained controls of CORS, use the S3
- API directly.
+ Whether to create a public or private IPv4 address.
example: true
- default: false
- acl:
- type: string
- enum:
- - private
- - public-read
- - authenticated-read
- - public-read-write
+ linode_id:
+ type: integer
description: >
- The Access Control Level of the bucket using a canned ACL string.
- For more fine-grained control of ACLs, use the S3 API directly.
- default: private
- example: private
+ The ID of a Linode you you have access to that this address
+ will be allocated to.
+ example: 123
responses:
'200':
- description: The bucket created successfully.
+ description: IP Address allocated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageBucket'
+ $ref: '#/components/schemas/IPAddress'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -12660,207 +12749,268 @@ paths:
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
- "label": "example-bucket",
- "cluster": "us-east-1",
- "cors_enabled": true,
- "acl": "private"
+ "type": "ipv4",
+ "public": true,
+ "linode_id": 123
}' \
- https://api.linode.com/v4/object-storage/buckets/
- /object-storage/buckets/{clusterId}/{bucket}:
+ 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: clusterId
+ - name: address
in: path
- description: The ID of the cluster this bucket exists in.
- required: true
- schema:
- type: string
- - name: bucket
- in: path
- description: The bucket name.
required: true
+ description: The address to operate on.
schema:
type: string
+ format: ip
+ x-linode-cli-command: networking
get:
- operationId: getObjectStorageBucket
- x-linode-cli-skip: true
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Bucket View
- description: |
- Returns a single Object Storage Bucket.
-
-
- This endpoint is available for convenience. It is recommended that instead you
- use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#get-bucket) directly.
+ x-linode-grant: read_only
tags:
- - Object Storage
+ - Networking
+ summary: IP Address View
+ description: >
+ Returns information about a single IP Address on your Account.
+ operationId: getIP
+ x-linode-cli-action: ip-view
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_only
+ - ips:read_only
responses:
'200':
- description: The requested bucket.
+ description: The requested IP Address.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageBucket'
+ $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/object-storage/buckets/us-east-1/example-bucket
- delete:
- operationId: deleteObjectStorageBucket
- x-linode-cli-skip: true
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Bucket Remove
- description: |
- Removes a single bucket.
-
- Bucket objects must be removed prior to removing the bucket. While buckets containing objects _may_ be
- deleted using the [s3cmd command-line tool](/docs/products/storage/object-storage/guides/s3cmd/#delete-a-bucket), such operations
- can fail if the bucket contains too many objects. The recommended
- way to empty large buckets is to use the [S3 API to configure lifecycle policies](https://docs.ceph.com/en/latest/radosgw/bucketpolicy/#) that
- remove all objects, then delete the bucket.
-
- This endpoint is available for convenience. It is recommended that instead you
- use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#delete-bucket) directly.
+ 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:
- - Object Storage
+ - Networking
+ summary: IP Address RDNS Update
+ 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 _ip.linodeusercontent.com_
+ RDNS value.
+ operationId: updateIP
+ x-linode-cli-action: ip-update
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
+ - ips:read_write
+ requestBody:
+ description: The information to update.
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IPAddress'
responses:
'200':
- description: Bucket deleted successfully.
+ description: RDNS set successfully
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/IPAddress'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket
- /object-storage/buckets/{clusterId}:
- parameters:
- - name: clusterId
- in: path
- description: The ID of the cluster this bucket exists in.
- required: true
- schema:
- type: string
- get:
- operationId: getObjectStorageBucketinCluster
- x-linode-cli-skip: true
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Buckets in Cluster List
+ 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/ips/assign:
+ x-linode-cli-command: networking
+ post:
+ x-linode-grant: read_write
+ tags:
+ - Networking
+ summary: Linodes Assign IPs
description: |
- Returns a list of Buckets in this cluster belonging to this Account.
+ Assign multiple IPv4 addresses and/or IPv6 ranges to multiple Linodes in one Region. This allows
+ swapping, shuffling, or otherwise reorganizing IPs to your Linodes.
+ The following restrictions apply:
+ * All Linodes involved must have at least one public IPv4 address after assignment.
+ * Linodes may have no more than one assigned private IPv4 address.
+ * Linodes may have no more than one assigned IPv6 range.
+ * [Open a Support Ticket](/docs/api/support/#support-ticket-open) to request additional IPv4 addresses or IPv6 ranges.
- This endpoint is available for convenience. It is recommended that instead you
- use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#get-bucket) directly.
- tags:
- - Object Storage
+ **Note**: Removing an IP address that has been set as a Managed Linode's `ssh.ip` causes the Managed Linode's SSH access settings to reset to their default values. To view and configure Managed Linode SSH settings, use the **Linode's Managed Settings View** ([GET /managed/linode-settings/{linodeId}](/docs/api/managed/#linodes-managed-settings-view)) and **Linode's Managed Settings Update** ([PUT /managed/linode-settings/{linodeId}](/docs/api/managed/#linodes-managed-settings-update)) commands.
+ operationId: assignIPs
+ x-linode-cli-action: ip-assign
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_only
+ - ips:read_write
+ - linodes:read_write
+ requestBody:
+ description: >
+ Information about what IPv4 address or IPv6 range 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.
+ required:
+ - address
+ - linode_id
+ items:
+ type: object
+ properties:
+ address:
+ type: string
+ format: ipv4|ipv6/prefix_length
+ description: |
+ The IPv4 address or IPv6 range for this assignment.
+ * Must be an IPv4 address or an IPv6 range you can access in the Region specified.
+ * IPv6 ranges must include a prefix length of `/56` or `/64`, for example: `2001:db8:3c4d:15::/64`.
+ * Assignment of an IPv6 range to a Linode updates the route target of the range to the assigned Linode's SLAAC address.
+ * 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: A paginated list of buckets you own in this cluster.
+ description: All assignments completed successfully.
content:
application/json:
schema:
type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/ObjectStorageBucket'
- 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/object-storage/buckets/us-east-1
- /object-storage/buckets/{clusterId}/{bucket}/access:
- parameters:
- - name: clusterId
- in: path
- description: The ID of the cluster this bucket exists in.
- required: true
- schema:
- type: string
- - name: bucket
- in: path
- description: The bucket name.
- required: true
- schema:
- type: string
+ 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": "2001:db8:3c4d:15::/64",
+ "linode_id": 234
+ }
+ ]
+ }' \
+ https://api.linode.com/v4/networking/ips/assign
+ - lang: CLI
+ source: >
+ linode-cli networking ip-assign \
+ --region us-east \
+ --assignments.address 2001:db8:3c4d:15::/64 \
+ --assignments.linode_id 123
+ /networking/ips/share:
+ x-linode-cli-command: networking
post:
- operationId: modifyObjectStorageBucketAccess
- x-linode-cli-skip: true
servers:
+ - url: https://api.linode.com/v4beta
- url: https://api.linode.com/v4
- summary: Object Storage Bucket Access Modify
+ x-linode-grant: read_write
+ tags:
+ - Networking
+ summary: IP Addresses Share
description: |
- Allows changing basic Cross-origin Resource Sharing (CORS) and Access Control Level (ACL) settings.
- Only allows enabling/disabling CORS for all origins, and/or setting canned ACLs.
+ Configure shared IPs.
+
+ IP sharing allows IP address reassignment (also referred to as IP failover) from one Linode to another if
+ the primary Linode becomes unresponsive. This means that requests to the primary Linode's IP address can be
+ automatically rerouted to secondary Linodes at the configured shared IP addresses.
+ IP failover requires configuration of a failover service (such as [Keepalived](/docs/guides/ip-failover-keepalived))
+ within the internal system of the primary Linode.
- For more fine-grained control of both systems, please use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket-acl) directly.
- tags:
- - Object Storage
+ **Note**: IPv6 range sharing has limited availability in certain regions. Please contact customer support for
+ assistance in enabling IPv6 range sharing for your Linodes.
+ operationId: shareIPs
+ x-linode-cli-action: ip-share
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
+ - ips:read_write
+ - linodes:read_write
requestBody:
- description: The changes to make to the bucket's access controls.
+ description: Information about what IPs to share with which Linode.
+ required: true
content:
application/json:
schema:
+ required:
+ - linode_id
+ - ips
properties:
- cors_enabled:
- type: boolean
- description: >
- If true, the bucket will be created with CORS enabled for all
- origins. For more fine-grained controls of CORS, use the S3
- API directly.
- example: true
- acl:
- type: string
- enum:
- - private
- - public-read
- - authenticated-read
- - public-read-write
- - custom
+ linode_id:
+ type: integer
description: >
- The Access Control Level of the bucket, as a canned ACL string.
- For more fine-grained control of ACLs, use the S3 API directly.
- example: private
+ The ID of the primary Linode that the addresses will be shared with.
+ example: 123
+ ips:
+ type: array
+ items:
+ type: string
+ format: ip
+ description: |
+ A list of secondary Linode IPs to share with the primary Linode.
+ * Can include both IPv4 addresses and IPv6 ranges (omit /56 and /64 prefix lengths)
+ * Can include both private and public IPv4 addresses.
+ * You must have access to all of these addresses and they must be in the same Region as the primary
+ Linode.
+ * Enter an empty array to remove all shared IP addresses.
responses:
'200':
- description: Access controls updated.
+ description: IP Address sharing successful.
content:
application/json:
schema:
@@ -12871,58 +13021,90 @@ paths:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "cors_enabled": true,
- "acl": "private"
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "linode_id": 123,
+ "ips": [
+ "192.0.2.1",
+ "2001:db8:3c4d:15::"
+ ]
}' \
- https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/access
- put:
- operationId: updateObjectStorageBucketAccess
- x-linode-cli-skip: true
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Bucket Access Update
- description: |
- Allows changing basic Cross-origin Resource Sharing (CORS) and Access Control Level (ACL) settings.
- Only allows enabling/disabling CORS for all origins, and/or setting canned ACLs.
-
-
- For more fine-grained control of both systems, please use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket-acl) directly.
+ https://api.linode.com/v4beta/networking/ips/share
+ - lang: CLI
+ source: >
+ linode-cli networking ip-share \
+ --linode_id 123 \
+ --ips 192.0.2.1 \
+ --ips 2001:db8:3c4d:15::
+ /networking/ipv4/assign:
+ x-linode-cli-command: networking
+ post:
+ x-linode-grant: read_write
tags:
- - Object Storage
+ - Networking
+ summary: Linodes Assign IPv4s
+ description: >
+ Assign multiple IPv4s 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.
+
+ To assign IPv6 ranges or to use the CLI, see the Linodes Assign IPs ([POST /networking/ips/assign](/docs/api/networking/#linodes-assign-ips)) command.
+ operationId: assignIPv4s
+ x-linode-cli-skip: true
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
+ - ips:read_write
+ - linodes:read_write
requestBody:
- description: The changes to make to the bucket's access controls.
+ description: >
+ Information about what IPv4 address to assign, and to which Linode.
+ required: true
content:
application/json:
schema:
+ required:
+ - region
+ - assignments
properties:
- cors_enabled:
- type: boolean
- description: >
- If true, the bucket will be created with CORS enabled for all
- origins. For more fine-grained controls of CORS, use the S3
- API directly.
- example: true
- acl:
+ region:
type: string
- enum:
- - private
- - public-read
- - authenticated-read
- - public-read-write
- - custom
description: >
- The Access Control Level of the bucket, as a canned ACL string.
- For more fine-grained control of ACLs, use the S3 API directly.
- example: private
+ 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.
+ required:
+ - address
+ - linode_id
+ 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: Access controls updated.
+ description: All assignments completed successfully.
content:
application/json:
schema:
@@ -12933,454 +13115,385 @@ paths:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "cors_enabled": true,
- "acl": "private"
+ -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/object-storage/buckets/us-east-1/example-bucket/access
- /object-storage/buckets/{clusterId}/{bucket}/object-acl:
- parameters:
- - name: clusterId
- in: path
- description: The ID of the cluster this bucket exists in.
- required: true
- schema:
- type: string
- - name: bucket
- in: path
- description: The bucket name.
- required: true
- schema:
- type: string
- get:
- operationId: viewObjectStorageBucketACL
- x-linode-cli-skip: true
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Object ACL Config View
- description: |
- View an Object’s configured Access Control List (ACL) in this Object Storage bucket.
- ACLs define who can access your buckets and objects and specify the level of access
- granted to those users.
-
-
- This endpoint is available for convenience. It is recommended that instead you
- use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#get-object-acl) directly.
+ https://api.linode.com/v4/networking/ipv4/assign
+ /networking/ipv4/share:
+ x-linode-cli-command: networking
+ post:
+ x-linode-grant: read_write
tags:
- - Object Storage
+ - Networking
+ summary: IPv4 Sharing Configure
+ 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: shareIPv4s
+ x-linode-cli-skip: true
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_only
- parameters:
- - name: name
- in: query
+ - ips:read_write
+ - linodes:read_write
+ requestBody:
+ description: Information about what IPs to share with which Linode.
required: true
- description: >
- The `name` of the object for which to retrieve its Access Control List (ACL).
- Use the [Object Storage Bucket Contents List](/docs/api/object-storage/#object-storage-bucket-contents-list)
- endpoint to access all object names in a bucket.
- schema:
- type: string
+ 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: The Object's canned ACL and policy.
+ description: Sharing configured successfully.
content:
application/json:
schema:
type: object
- properties:
- acl:
- type: string
- enum:
- - private
- - public-read
- - authenticated-read
- - public-read-write
- - custom
- description: >
- The Access Control Level of the bucket, as a canned ACL string.
- For more fine-grained control of ACLs, use the S3 API directly.
- example: public-read
- acl_xml:
- type: string
- description: >
- The full XML of the object's ACL policy.
- example: "..."
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/object-acl?name=example.txt
- put:
- operationId: updateObjectStorageBucketACL
- x-linode-cli-skip: true
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Object ACL Config Update
- description: |
- Update an Object's configured Access Control List (ACL) in this Object Storage bucket.
- ACLs define who can access your buckets and objects and specify the level of access
- granted to those users.
-
-
- This endpoint is available for convenience. It is recommended that instead you
- use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#set-object-acl) directly.
+ 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:
- - Object Storage
+ - Networking
+ summary: IPv6 Pools List
+ description: >
+ Displays the IPv6 pools on your Account. A pool of IPv6 addresses are routed to all of your
+ Linodes in a single [Region](/docs/api/regions/#regions-list). Any Linode on your Account may bring up any address in this
+ pool at any time, with no external configuration required.
+ operationId: getIPv6Pools
+ x-linode-cli-action: v6-pools
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
- requestBody:
- description: The changes to make to this Object's access controls.
- content:
- application/json:
- schema:
- required:
- - acl
- - name
- properties:
- acl:
- type: string
- enum:
- - private
- - public-read
- - authenticated-read
- - public-read-write
- - custom
- description: >
- The Access Control Level of the bucket, as a canned ACL string.
- For more fine-grained control of ACLs, use the S3 API directly.
- example: public-read
- name:
- type: string
- description: >
- The `name` of the object for which to update its Access Control List (ACL).
- Use the [Object Storage Bucket Contents List](/docs/api/object-storage/#object-storage-bucket-contents-list)
- endpoint to access all object names in a bucket.
+ - ips:read_only
responses:
'200':
- description: The Object's canned ACL and policy.
+ description: The IPv6 pools on your Account.
content:
application/json:
schema:
type: object
properties:
- acl:
- type: string
- enum:
- - private
- - public-read
- - authenticated-read
- - public-read-write
- - custom
- description: >
- The Access Control Level of the bucket, as a canned ACL string.
- For more fine-grained control of ACLs, use the S3 API directly.
- example: public-read
- acl_xml:
- type: string
- description: >
- The full XML of the object's ACL policy.
- example: "..."
+ 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 "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "acl": "public-read",
- "name": "example.txt"
- }' \
- https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/object-acl
- /object-storage/buckets/{clusterId}/{bucket}/object-list:
- parameters:
- - name: clusterId
- in: path
- description: The ID of the cluster this bucket exists in.
- required: true
- schema:
- type: string
- - name: bucket
- in: path
- description: The bucket name.
- required: true
- schema:
- type: string
+ 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:
- operationId: getObjectStorageBucketContent
- x-linode-cli-skip: true
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Bucket Contents List
- description: |
- Returns the contents of a bucket. The contents are paginated using a `marker`,
- which is the name of the last object on the previous page. Objects may
- be filtered by `prefix` and `delimiter` as well; see Query Parameters for more
- information.
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ tags:
+ - Networking
+ summary: IPv6 Ranges List
+ description: >
+ Displays the IPv6 ranges on your Account.
- This endpoint is available for convenience. It is recommended that instead you
- use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#get-object) directly.
- tags:
- - Object Storage
+ * An IPv6 range is a `/64` or `/54` block of IPv6 addresses routed to a single Linode in a given [Region](/docs/api/regions/#regions-list).
+
+ * Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.
+
+ * Access the IPv6 Range Create ([POST /networking/ipv6/ranges](/docs/api/networking/#ipv6-range-create)) endpoint to add a `/64` or `/56` block of IPv6 addresses to your account.
+ operationId: getIPv6Ranges
+ x-linode-cli-action: v6-ranges
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_only
- parameters:
- - name: marker
- in: query
- required: false
- description: >
- The "marker" for this request, which can be used to paginate through large buckets.
- Its value should be the value of the `next_marker` property returned with the last page.
- Listing bucket contents *does not* support arbitrary page access. See the `next_marker`
- property in the responses section for more details.
- schema:
- type: string
- - name: delimiter
- in: query
- required: false
- description: >
- The delimiter for object names; if given, object names will be returned
- up to the first occurrence of this character. This is most commonly used
- with the `/` character to allow bucket transversal in a manner similar to
- a filesystem, however any delimiter may be used. Use in conjunction with
- `prefix` to see object names past the first occurrence of the delimiter.
- schema:
- type: string
- - name: prefix
- in: query
- required: false
- description: >
- Filters objects returned to only those whose name start with the given
- prefix. Commonly used in conjunction with `delimiter` to allow transversal
- of bucket contents in a manner similar to a filesystem.
- schema:
- type: string
- - $ref: '#/components/parameters/pageSize'
+ - ips:read_only
responses:
'200':
- description: One page of the requested bucket's contents.
+ description: The IPv6 ranges on your Account.
content:
application/json:
schema:
+ type: object
properties:
data:
type: array
- description: This page of objects in the bucket.
items:
- $ref: '#/components/schemas/ObjectStorageObject'
+ $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/object-storage/buckets/us-east-1/example-bucket/object-list
- /object-storage/buckets/{clusterId}/{bucket}/object-url:
- parameters:
- - name: clusterId
- in: path
- description: The ID of the cluster this bucket exists in.
- required: true
- schema:
- type: string
- - name: bucket
- in: path
- description: The bucket name.
- required: true
- schema:
- type: string
+ https://api.linode.com/v4/networking/ipv6/ranges
+ - lang: CLI
+ source: >
+ linode-cli networking v6-ranges
post:
- operationId: createObjectStorageObjectURL
- x-linode-cli-skip: true
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Object URL Create
+ tags:
+ - Networking
+ summary: IPv6 Range Create
description: |
- Creates a pre-signed URL to access a single Object in a bucket. This
- can be used to share objects, and also to create/delete objects by using
- the appropriate HTTP method in your request body's `method` parameter.
-
+ Creates an IPv6 Range and assigns it based on the provided Linode or route target IPv6 SLAAC address. See the `ipv6` property when accessing the Linode View ([GET /linode/instances/{linodeId}](/docs/api/linode-instances/#linode-view)) endpoint to view a Linode's IPv6 SLAAC address.
+ * Either `linode_id` or `route_target` is required in a request.
+ * `linode_id` and `route_target` are mutually exclusive. Submitting values for both properties in a request results in an error.
+ * Upon a successful request, an IPv6 range is created in the [Region](/docs/api/regions/#regions-list) that corresponds to the provided `linode_id` or `route_target`.
+ * Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.
+ * Access the Linodes Assign IPs ([POST /networking/ips/assign](/docs/api/networking/#linodes-assign-ips)) endpoint to re-assign IPv6 Ranges to your Linodes.
- This endpoint is available for convenience. It is recommended that instead you
- use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/)
- directly.
- tags:
- - Object Storage
+ **Note**: The following restrictions apply:
+ * A Linode can only have one IPv6 range targeting its SLAAC address.
+ * An account can only have one IPv6 range in each [Region](/docs/api/regions/#regions-list).
+ * [Open a Support Ticket](/docs/api/support/#support-ticket-open) to request expansion of these restrictions.
+ operationId: postIPv6Range
+ x-linode-cli-action: v6-range-create
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
+ - ips:read_write
+ - linodes:read_write
requestBody:
- description: Information about the request to sign.
+ description: >
+ Information about the IPv6 range to create.
+ required: true
content:
application/json:
schema:
required:
- - name
- - method
+ - prefix_length
properties:
- method:
- type: string
- description: The HTTP method allowed to be used with the pre-signed URL.
- example: GET
- default: GET
- name:
- type: string
- description: >
- The name of the object that will be accessed with the pre-signed URL. This object need not
- exist, and no error will be returned if it doesn't. This behavior is
- useful for generating pre-signed URLs to upload new objects to by
- setting the `method` to "PUT".
- example: example
- content_type:
- type: string
- description: >
- The expected `Content-type` header of the request this signed
- URL will be valid for. If provided, the `Content-type` header
- _must_ be sent with the request when this URL is used, and
- _must_ be the same as it was when the signed URL was created.
- Required for all methods *except* "GET" or "DELETE".
- example: null
- expires_in:
+ linode_id:
type: integer
- minimum: 360
- maximum: 68400
- default: 3600
+ description: |
+ The ID of the Linode to assign this range to. The SLAAC address for the provided Linode is used as the range's `route_target`.
+
+ * **Required** if `route_target` is omitted from the request.
+
+ * Mutually exclusive with `route_target`. Submitting values for both properties in a request results in an error.
+ example: 123
+ prefix_length:
+ type: integer
+ enum:
+ - 56
+ - 64
description: >
- How long this signed URL will be valid for, in seconds. If
- omitted, the URL will be valid for 3600 seconds (1 hour).
- example: null
+ The prefix length of the IPv6 range.
+ route_target:
+ type: string
+ format: ipv6
+ description: |
+ The IPv6 SLAAC address to assign this range to.
+
+ * **Required** if `linode_id` is omitted from the request.
+
+ * Mutually exclusive with `linode_id`. Submitting values for both properties in a request results in an error.
+
+ * **Note**: Omit the `/128` prefix length of the SLAAC address when using this property.
+ example: 2001:0db8::1
responses:
'200':
- description: The URL with which to access your object.
+ description: IPv6 range created successfully.
content:
application/json:
schema:
+ type: object
properties:
- url:
+ range:
type: string
- description: The signed URL to perform the request at.
- example: https://us-east-1.linodeobjects.com/example-bucket/example?Signature=qr98TEucCntPgEG%2BsZQGDsJg93c%3D&Expires=1567609905&AWSAccessKeyId=G4YAF81XWY61DQM94SE0
+ format: ipv6/prefix_length
+ description: >
+ The IPv6 network range, including subnet and prefix length.
+ example: 2001:0db8::/64
+ route_target:
+ type: string
+ format: ipv6
+ description: >
+ The route target IPV6 SLAAC address for this range. Does not include the prefix length.
+ example: 2001:0db8::1
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "method": "GET",
- "name": "example"
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "linode_id": 123,
+ "prefix_length": 64
}' \
- https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/object-url
- /object-storage/clusters:
- x-linode-cli-command: object-storage
+ https://api.linode.com/v4/networking/ipv6/ranges
+ - lang: CLI
+ source: >
+ linode-cli networking v6-range-create \
+ --linode_id 123 \
+ --prefix_length 64
+ /networking/ipv6/ranges/{range}:
+ parameters:
+ - name: range
+ in: path
+ description: |
+ The IPv6 range to access. Corresponds to the `range` property of objects returned from the IPv6 Ranges List ([GET /networking/ipv6/ranges](/docs/api/networking/#ipv6-ranges-list)) command.
+
+ **Note**: Omit the prefix length of the IPv6 range.
+ required: true
+ schema:
+ type: string
+ format: ipv6
+ x-linode-cli-command: networking
get:
- operationId: getObjectStorageClusters
- x-linode-cli-action: clusters-list
- servers:
- - url: https://api.linode.com/v4
- summary: Clusters List
- description: |
- Returns a paginated list of Object Storage Clusters that are available for
- use. Users can connect to the clusters with third party clients to create buckets
- and upload objects.
tags:
- - Object Storage
+ - Networking
+ summary: IPv6 Range View
+ description: |
+ View IPv6 range information.
+ operationId: getIPv6Range
+ x-linode-cli-action: v6-range-view
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read
responses:
'200':
- description: A paginated list of available clusters.
+ description: Returns IPv6 range information.
content:
application/json:
schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/ObjectStorageCluster'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ $ref: '#/components/schemas/IPv6RangeBGP'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/object-storage/clusters
+ curl -H "Authorization: Bearer $TOKEN" https://api.linode.com/v4/networking/ipv6/ranges/2001:0db8::
- lang: CLI
source: >
- linode-cli object-storage clusters-list
- /object-storage/clusters/{clusterId}:
- x-linode-cli-command: object-storage
- parameters:
- - name: clusterId
- in: path
- description: The ID of the Cluster.
- required: true
- schema:
- type: string
- get:
- operationId: getObjectStorageCluster
- x-linode-cli-action: clusters-view
- servers:
- - url: https://api.linode.com/v4
- summary: Cluster View
- description: |
- Returns a single Object Storage Cluster.
+ linode-cli networking v6-range-view 2001:0db8::
+ delete:
tags:
- - Object Storage
+ - Networking
+ summary: IPv6 Range Delete
+ description: |
+ Removes this IPv6 range from your account and disconnects the range from any assigned Linodes.
+
+ **Note:** Shared IPv6 ranges cannot be deleted at this time. Please contact Customer Support for assistance.
+ operationId: deleteIPv6Range
+ x-linode-cli-action: v6-range-delete
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - ips:read_write
responses:
'200':
- description: The requested Cluster
+ description: IPv6 Range deleted.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageCluster'
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/object-storage/clusters/us-east-1
+ -X DELETE \
+ https://api.linode.com/v4/networking/ipv6/ranges/2001:0db8::
- lang: CLI
source: >
- linode-cli object-storage clusters-view us-east-1
- /object-storage/keys:
- x-linode-cli-command: object-storage
+ linode-cli networking v6-range-delete 2001:0db8::
+ /networking/firewalls:
+ x-linode-cli-command: firewalls
get:
- operationId: getObjectStorageKeys
- x-linode-cli-action: keys-list
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
servers:
- url: https://api.linode.com/v4
tags:
- - Object Storage
- summary: Object Storage Keys List
+ - Networking
+ summary: Firewalls List
description: |
- Returns a paginated list of Object Storage Keys for authenticating to
- the Object Storage S3 API.
+ Returns a paginated list of accessible Firewalls.
+ operationId: getFirewalls
+ x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_only
+ - firewall:read_only
responses:
'200':
- description: A paginated list of Object Storage Keys
+ description: Returns an array of Firewalls.
content:
application/json:
schema:
@@ -13389,7 +13502,7 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/ObjectStorageKey'
+ $ref: '#/components/schemas/Firewall'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -13402,181 +13515,287 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/object-storage/keys
+ https://api.linode.com/v4/networking/firewalls
- lang: CLI
source: >
- linode-cli object-storage keys-list
+ linode-cli firewalls list
post:
- operationId: createObjectStorageKeys
- x-linode-cli-action: keys-create
+ x-linode-grant: read_write
servers:
- url: https://api.linode.com/v4
- summary: Object Storage Key Create
+ tags:
+ - Networking
+ summary: Firewall Create
description: |
- Provisions a new Object Storage Key on your account.
+ Creates a Firewall to filter network traffic.
- * To create a Limited Access Key with specific permissions, send a `bucket_access`
- array.
+ * Use the `rules` property to create inbound and outbound access rules.
- * To create a Limited Access Key without access to any buckets, send an empty
- `bucket_access` array.
+ * Use the `devices` property to assign the Firewall to a service and apply its Rules to the device. Requires `read_write` [User's Grants](/docs/api/account/#users-grants-view) to the device.
+ Currently, Firewalls can only be assigned to Linode instances.
- * To create an Access Key with unlimited access to all clusters and all buckets,
- omit the `bucket_access` array.
- tags:
- - Object Storage
+ * A Firewall can be assigned to multiple Linode instances at a time.
+
+ * A Linode instance can have one active, assigned Firewall at a time.
+ Additional disabled Firewalls can be assigned to a service, but they cannot be enabled if another active Firewall is already assigned to the same service.
+
+ * A `firewall_create` Event is generated when this endpoint returns successfully.
+ operationId: createFirewalls
+ x-linode-cli-action: create
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
+ - firewall:read_write
requestBody:
- description: >
- The label of the key to create. This is used to identify the created key.
+ description: Creates a Firewall object that can be applied to a Linode service to filter the service's network traffic.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageKey'
+ allOf:
+ - $ref: '#/components/schemas/Firewall'
+ required:
+ - label
+ - rules
+ properties:
+ devices:
+ type: object
+ description: |
+ Devices to create for this Firewall.
+ When a Device is created, the Firewall is assigned to its associated service.
+ Currently, Devices can only be created for Linode instances.
+ properties:
+ linodes:
+ description: >
+ An array of Linode IDs. A Firewall Device is created for each ID.
+ type: array
+ items:
+ type: integer
+ example:
+ - 123
+ - 456
+ rules:
+ required:
+ - inbound_policy
+ - outbound_policy
+ properties:
+ inbound:
+ required:
+ - action
+ - addresses
+ - protocol
+ outbound:
+ required:
+ - action
+ - addresses
+ - protocol
responses:
'200':
- description: The new keypair. **This is the only time** the secret key is returned.
+ description: Returns information about the created Firewall.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageKey'
+ $ref: '#/components/schemas/Firewall'
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-object-storage-key",
- "bucket_access": [
- {
- "cluster": "ap-south-1",
- "bucket_name": "bucket-example-1",
- "permissions": "read_write"
- },
- {
- "cluster": "us-east-1",
- "bucket_name": "bucket-example-2",
- "permissions": "read_only"
- }
- ]
- }' \
- https://api.linode.com/v4/object-storage/keys
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "label": "firewall123",
+ "rules": {
+ "inbound_policy": "DROP",
+ "inbound": [
+ {
+ "protocol": "TCP",
+ "ports": "22, 80, 443",
+ "addresses": {
+ "ipv4": [
+ "192.0.2.0/24"
+ ],
+ "ipv6": [
+ "2001:DB8::/32"
+ ]
+ },
+ "action": "ACCEPT",
+ "label": "inbound-rule123",
+ "description": "An example inbound rule description."
+ }
+ ],
+ "outbound_policy": "DROP",
+ "outbound": [
+ {
+ "protocol": "TCP",
+ "ports": "49152-65535",
+ "addresses": {
+ "ipv4": [
+ "192.0.2.0/24"
+ ],
+ "ipv6": [
+ "2001:DB8::/32"
+ ]
+ },
+ "action": "ACCEPT",
+ "label": "outbound-rule123",
+ "description": "An example outbound rule description."
+ }
+ ]
+ },
+ "devices": {
+ "linodes": [
+ 123
+ ]
+ },
+ "tags": [
+ "example tag",
+ "another example"
+ ]
+ }' \
+ https://api.linode.com/v4/networking/firewalls
- lang: CLI
source: >
- linode-cli object-storage keys-create \
- --label "my-object-storage-key" \
- --bucket_access '[{"cluster": "ap-south-1", "bucket_name": "bucket-example-1", "permissions": "read_write" }]'
- /object-storage/keys/{keyId}:
- x-linode-cli-command: object-storage
+ linode-cli firewalls create \
+ --label example-firewall \
+ --rules.outbound_policy ACCEPT \
+ --rules.inbound_policy DROP \
+ --rules.inbound '[{"protocol": "TCP", "ports": "22, 80, 8080, 443", "addresses": {"ipv4": ["192.0.2.1", "192.0.2.0/24"], "ipv6": ["2001:DB8::/32"]}, "action": "ACCEPT"}]' \
+ --rules.outbound '[{"protocol": "TCP", "ports": "49152-65535", "addresses": {"ipv4": ["192.0.2.0/24"],"ipv6": ["2001:DB8::/32"]}, "action": "DROP", "label": "outbound-rule123", "description": "An example outbound rule description."}]'
+ /networking/firewalls/{firewallId}:
parameters:
- - name: keyId
+ - name: firewallId
in: path
- description: The key to look up.
+ description: >
+ ID of the Firewall to access.
required: true
schema:
type: integer
+ x-linode-cli-command: firewalls
get:
- operationId: getObjectStorageKey
- x-linode-cli-action: keys-view
+ x-linode-grant: read_only
servers:
- url: https://api.linode.com/v4
- summary: Object Storage Key View
- description: |
- Returns a single Object Storage Key provisioned for your account.
+ tags:
+ - Networking
+ summary: Firewall View
+ operationId: getFirewall
+ x-linode-cli-action: view
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_only
- tags:
- - Object Storage
+ - firewall:read_only
+ description: |
+ Get a specific Firewall resource by its ID. The Firewall's Devices will not be
+ returned in the response. Instead, use the
+ [List Firewall Devices](/docs/api/networking/#firewall-devices-list)
+ endpoint to review them.
responses:
'200':
- description: The keypair
+ description: Returns information about this Firewall.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageKey'
+ $ref: '#/components/schemas/Firewall'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/object-storage/keys/12345
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/networking/firewalls/123
- lang: CLI
source: >
- linode-cli object-storage keys-view \
- --keyId 12345
+ linode-cli firewalls view 123
put:
- operationId: updateObjectStorageKey
- x-linode-cli-action: keys-update
+ x-linode-grant: read_write
servers:
- url: https://api.linode.com/v4
- summary: Object Storage Key Update
+ tags:
+ - Networking
+ summary: Firewall Update
description: |
- Updates an Object Storage Key on your account.
+ Updates information for a Firewall. Some parts of a Firewall's configuration cannot
+ be manipulated by this endpoint:
+
+ - A Firewall's Devices cannot be set with this endpoint. Instead, use the
+ [Create Firewall Device](/docs/api/networking/#firewall-device-create)
+ and [Delete Firewall Device](/docs/api/networking/#firewall-device-delete)
+ endpoints to assign and remove this Firewall from Linode services.
+
+ - A Firewall's Rules cannot be changed with this endpoint. Instead, use the
+ [Update Firewall Rules](/docs/api/networking/#firewall-rules-update)
+ endpoint to update your Rules.
+
+ - A Firewall's status can be set to `enabled` or `disabled` by this endpoint, but it cannot be
+ set to `deleted`. Instead, use the
+ [Delete Firewall](/docs/api/networking/#firewall-delete)
+ endpoint to delete a Firewall.
+
+ If a Firewall's status is changed with this endpoint, a corresponding `firewall_enable` or
+ `firewall_disable` Event will be generated.
+ operationId: updateFirewall
+ x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
- tags:
- - Object Storage
+ - firewall:read_write
requestBody:
- description: The fields to update.
+ description: The Firewall information to update.
content:
application/json:
schema:
type: object
properties:
+ tags:
+ $ref: '#/components/schemas/Firewall/properties/tags'
label:
- type: string
- description: The label for this keypair, for display purposes only.
- example: my-key
+ $ref: '#/components/schemas/Firewall/properties/label'
+ status:
+ $ref: '#/components/schemas/Firewall/properties/status'
responses:
'200':
- description: Update Successful
+ description: Firewall updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageKey'
+ $ref: '#/components/schemas/Firewall'
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-object-storage-key"
- }' \
- https://api.linode.com/v4/object-storage/keys/12345
+ -H "Authorization: Bearer $TOKEN" \
+ -X PUT -d '{
+ "status": "disabled"
+ }' \
+ https://api.linode.com/v4/networking/firewalls/123
- lang: CLI
source: >
- linode-cli object-storage keys-update \
- --keyId 12345
- --label "my-object-storage-key"
+ linode-cli firewalls update 123 \
+ --status disabled
delete:
- operationId: deleteObjectStorageKey
- x-linode-cli-action: keys-delete
+ x-linode-grant: read_write
servers:
- url: https://api.linode.com/v4
- summary: Object Storage Key Revoke
- description: |
- Revokes an Object Storage Key. This keypair will no longer be usable by third-party clients.
+ tags:
+ - Networking
+ summary: Firewall Delete
+ operationId: deleteFirewall
+ x-linode-cli-action: delete
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
- tags:
- - Object Storage
+ - firewall:read_write
+ description: |
+ Delete a Firewall resource by its ID. This will remove all of the Firewall's Rules
+ from any Linode services that the Firewall was assigned to.
+
+ A `firewall_delete` Event is generated when this endpoint returns successfully.
responses:
'200':
- description: Deletion successful
+ description: Delete Successful.
content:
application/json:
schema:
@@ -13586,130 +13805,113 @@ paths:
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/object-storage/keys/12345
- - lang: CLI
- source: >
- linode-cli object-storage keys-delete 12345
- /object-storage/cancel:
- x-linode-cli-command: object-storage
- post:
- operationId: cancelObjectStorage
- x-linode-cli-action: cancel
- servers:
- - url: https://api.linode.com/v4
- summary: Object Storage Cancel
- description: |
- Cancel Object Storage on an Account.
-
- **Warning**: Removes all buckets and their contents from your Account. This data is irretrievable once removed.
- security:
- - personalAccessToken: []
- - oauth:
- - object_storage:read_write
- tags:
- - Object Storage
- responses:
- '200':
- description: Object Storage cancellation successful.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: >
- curl -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/object-storage/cancel
- - lang: CLI
- source: >
- linode-cli object-storage cancel
- /object-storage/buckets/{clusterId}/{bucket}/ssl:
- x-linode-cli-command: object-storage
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/networking/firewalls/123
+ - lang: CLI
+ source: >
+ linode-cli firewalls delete 123
+ /networking/firewalls/{firewallId}/devices:
parameters:
- - name: clusterId
- in: path
- description: The ID of the cluster this bucket exists in.
- required: true
- schema:
- type: string
- - name: bucket
- in: path
- description: The bucket name.
- required: true
- schema:
- type: string
+ - name: firewallId
+ in: path
+ description: >
+ ID of the Firewall to access.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: firewalls
get:
- operationId: getObjectStorageSSL
- x-linode-cli-action: ssl-view
+ x-linode-grant: read_only
servers:
- url: https://api.linode.com/v4
- summary: Object Storage TLS/SSL Cert View
- description: |
- Returns a boolean value indicating if this bucket has a corresponding TLS/SSL certificate that was
- uploaded by an Account user.
tags:
- - Object Storage
+ - Networking
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ summary: Firewall Devices List
+ description: |
+ Returns a paginated list of a Firewall's Devices. A Firewall Device assigns a
+ Firewall to a Linode service (referred to as the Device's `entity`). Currently,
+ only Devices with an entity of type `linode` are accepted.
+ operationId: getFirewallDevices
+ x-linode-cli-action: devices-list
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_only
+ - firewall:read_only
responses:
'200':
- description: >
- Returns a boolean value indicating if this bucket has a corresponding TLS/SSL certificate that was
- uploaded by an Account user.
+ description: A paginated list of Firewall Devices
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageSSLResponse'
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/FirewallDevices'
+ 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/object-storage/buckets/us-east-1/example-bucket/ssl
+ https://api.linode.com/v4/networking/firewalls/123/devices
- lang: CLI
source: >
- linode-cli object-storage ssl-view \
- us-east-1 example-bucket
+ linode-cli firewalls devices-list 123
post:
- operationId: createObjectStorageSSL
- x-linode-cli-action: ssl-upload
+ x-linode-grant: read_write
servers:
- url: https://api.linode.com/v4
- summary: Object Storage TLS/SSL Cert Upload
+ tags:
+ - Networking
+ summary: Firewall Device Create
description: |
- Upload a TLS/SSL certificate and private key to be served when you visit your Object Storage bucket via HTTPS.
- Your TLS/SSL certificate and private key are stored encrypted at rest.
+ Creates a Firewall Device, which assigns a Firewall to a service (referred to
+ as the Device's `entity`) and applies the Firewall's Rules to the device.
+ * Currently, only Devices with an entity of type `linode` are accepted.
- To replace an expired certificate, [delete your current certificate](/docs/api/object-storage/#object-storage-tlsssl-cert-delete)
- and upload a new one.
- tags:
- - Object Storage
+ * A Firewall can be assigned to multiple Linode instances at a time.
+
+ * A Linode instance can have one active, assigned Firewall at a time.
+ Additional disabled Firewalls can be assigned to a service, but they cannot be enabled if another active Firewall is already assigned to the same service.
+
+ * A `firewall_device_add` Event is generated when the Firewall Device is added successfully.
+ operationId: createFirewallDevice
+ x-linode-cli-action: device-create
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
+ - firewall:read_write
requestBody:
- description: Upload this TLS/SSL certificate with its corresponding secret key.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageSSL'
+ type: object
+ required:
+ - id
+ - type
+ allOf:
+ - $ref: '#/components/schemas/FirewallDevices/properties/entity'
responses:
'200':
- description: Returns whether this bucket has a corresponding TLS/SSL certificate that was uploaded by a user.
+ description: Returns information about the created Firewall Device.
content:
application/json:
schema:
- $ref: '#/components/schemas/ObjectStorageSSLResponse'
+ $ref: '#/components/schemas/FirewallDevices'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -13717,153 +13919,191 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X POST -d ‘{
- "certificate": "-----BEGIN CERTIFICATE-----\nMIIDbDCCAlQCCQCl\n-----END CERTIFICATE-----",
- "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADIAQCQI\n-----END PRIVATE KEY-----"
- }’ \
- https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/ssl
+ -X POST -d '{
+ "type": "linode",
+ "id": 123
+ }' \
+ https://api.linode.com/v4/networking/firewalls/123/devices
- lang: CLI
source: >
- linode-cli object-storage ssl-upload \
- us-east-1 example-bucket \
- --certificate "-----BEGIN CERTIFICATE-----\nMIIDbDCCAlQCCQCl\n-----END CERTIFICATE-----" \
- --private_key "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADIAQCQI\n-----END PRIVATE KEY-----"
- delete:
- operationId: deleteObjectStorageSSL
- x-linode-cli-action: ssl-delete
+ linode-cli firewalls device-create 123 \
+ --id 456 \
+ --type "linode"
+ /networking/firewalls/{firewallId}/devices/{deviceId}:
+ parameters:
+ - name: firewallId
+ in: path
+ description: >
+ ID of the Firewall to access.
+ required: true
+ schema:
+ type: integer
+ - name: deviceId
+ in: path
+ description: >
+ ID of the Firewall Device to access.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: firewalls
+ get:
+ x-linode-grant: read_only
servers:
- url: https://api.linode.com/v4
- summary: Object Storage TLS/SSL Cert Delete
- description: |
- Deletes this Object Storage bucket's user uploaded TLS/SSL certificate and private key.
tags:
- - Object Storage
+ - Networking
+ summary: Firewall Device View
+ description: |
+ Returns information for a Firewall Device, which assigns a Firewall
+ to a Linode service (referred to as the Device's `entity`). Currently,
+ only Devices with an entity of type `linode` are accepted.
+ operationId: getFirewallDevice
+ x-linode-cli-action: device-view
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_write
+ - firewall:read_only
responses:
'200':
- description: Deletes this Object Storage bucket's user uploaded TLS/SSL certificate and private key.
+ description: The requested Firewall Device.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/FirewallDevices'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/ssl
+ https://api.linode.com/v4/networking/firewalls/123/devices/456
- lang: CLI
source: >
- linode-cli object-storage ssl-delete \
- us-east-1 example-bucket
- /object-storage/transfer:
- get:
- operationId: getObjectStorageTransfer
- x-linode-cli-skip: true
+ linode-cli firewalls device-view \
+ 123 456
+ delete:
+ x-linode-grant: read_write
servers:
- url: https://api.linode.com/v4
- summary: Object Storage Transfer View
- description: |
- The amount of outbound data transfer used by your account's Object Storage buckets.
- Object Storage adds 1 terabyte of outbound data transfer to your data transfer pool.
- See the [Object Storage Pricing and Limitations](/docs/guides/pricing-and-limitations/)
- guide for details on Object Storage transfer quotas.
-
tags:
- - Object Storage
+ - Networking
+ summary: Firewall Device Delete
+ operationId: deleteFirewallDevice
+ x-linode-cli-action: device-delete
security:
- personalAccessToken: []
- oauth:
- - object_storage:read_only
+ - firewall:read_write
+ description: |
+ Removes a Firewall Device, which removes a Firewall from the Linode service it was
+ assigned to by the Device. This will remove all of the Firewall's Rules from the Linode
+ service. If any other Firewalls have been assigned to the Linode service, then those Rules
+ will remain in effect.
+
+ A `firewall_device_remove` Event is generated when the Firewall Device is removed successfully.
responses:
'200':
- description: >
- Returns the amount of outbound data transfer used by your account's Object Storage buckets.
+ description: Delete Successful.
content:
application/json:
schema:
- properties:
- used:
- type: integer
- description: >
- The amount of outbound data transfer used by your account's Object Storage buckets,
- in bytes, for the current month’s billing cycle.
- example: 12956600198
- readOnly: true
+ type: object
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/object-storage/transfer/
- /profile:
- x-linode-cli-command: profile
- get:
- tags:
- - Profile
- summary: Profile View
- 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
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/networking/firewalls/123/devices/456
+ - lang: CLI
+ source: >
+ linode-cli firewalls device-delete 123 456
+ /networking/firewalls/{firewallId}/rules:
+ parameters:
+ - name: firewallId
+ in: path
+ description: >
+ ID of the Firewall to access.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: firewalls
+ get:
+ x-linode-grant: read_only
+ servers:
+ - url: https://api.linode.com/v4
+ tags:
+ - Networking
+ summary: Firewall Rules List
+ description: |
+ Returns the inbound and outbound Rules for a Firewall.
+ operationId: getFirewallRules
+ x-linode-cli-action: rules-list
security:
- personalAccessToken: []
- - oauth: []
+ - oauth:
+ - firewall:read_only
responses:
'200':
- description: Profile response.
+ description: The requested Firewall Rules.
content:
application/json:
schema:
- $ref: '#/components/schemas/Profile'
+ $ref: '#/components/schemas/Firewall/properties/rules'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/profile
+ https://api.linode.com/v4/networking/firewalls/123/rules
- lang: CLI
source: >
- linode-cli profile view
+ linode-cli firewalls rules-list 123
put:
+ x-linode-grant: read_write
+ servers:
+ - url: https://api.linode.com/v4
tags:
- - Profile
- summary: Profile Update
- description: >
- Update information in your Profile. This endpoint requires the
- "account:read_write" OAuth Scope.
- operationId: updateProfile
- x-linode-cli-action: update
+ - Networking
+ summary: Firewall Rules Update
+ description: |
+ Updates the inbound and outbound Rules for a Firewall.
+
+ **Note:** This command replaces all of a Firewall's `inbound` and/or `outbound` rulesets with the values specified in your request.
+ operationId: updateFirewallRules
+ x-linode-cli-action: rules-update
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - firewall:read_write
requestBody:
- description: The fields to update.
- required: true
+ description: The Firewall Rules information to update.
content:
application/json:
schema:
- $ref: '#/components/schemas/Profile'
+ allOf:
+ - $ref: '#/components/schemas/Firewall/properties/rules'
+ properties:
+ inbound:
+ required:
+ - action
+ - addresses
+ - protocol
+ outbound:
+ required:
+ - action
+ - addresses
+ - protocol
responses:
'200':
- description: Profile updated successfully.
+ description: Firewall Rules updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Profile'
+ $ref: '#/components/schemas/Firewall/properties/rules'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -13872,46 +14112,93 @@ paths:
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
+ "inbound_policy": "DROP",
+ "inbound": [
+ {
+ "protocol": "TCP",
+ "ports": "22, 80, 443",
+ "addresses": {
+ "ipv4": [
+ "192.0.2.0/24"
+ ],
+ "ipv6": [
+ "2001:DB8::/32"
+ ]
+ },
+ "action": "ACCEPT",
+ "label": "inbound-rule123",
+ "description": "An example inbound rule description."
+ }
+ ],
+ "outbound_policy": "DROP",
+ "outbound": [
+ {
+ "protocol": "TCP",
+ "ports": "49152-65535",
+ "addresses": {
+ "ipv4": [
+ "192.0.2.0/24"
+ ],
+ "ipv6": [
+ "2001:DB8::/32"
+ ]
+ },
+ "action": "ACCEPT",
+ "label": "outbound-rule123",
+ "description": "An example outbound rule description."
+ }
+ ]
}' \
- https://api.linode.com/v4/profile
+ https://api.linode.com/v4/networking/firewalls/123/rules
- 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:
- x-linode-cli-command: profile
+ linode-cli firewalls rules-update 123 \
+ --inbound '[{"action":"ACCEPT", "protocol": "TCP", "ports": "22, 80, 8080, 443", "addresses": {"ipv4": ["192.0.2.1/32", "192.0.2.0/24"], "ipv6": ["2001:DB8::/32"]}}]' \
+ --outbound '[{"action":"DROP","protocol": "TCP", "ports": "49152-65535", "addresses": {"ipv4": ["192.0.2.1/32", "192.0.2.0/24"], "ipv6": ["2001:DB8::/32"]}}]'
+ /networking/vlans:
+ x-linode-cli-command: vlans
get:
+ x-linode-grant: read_only
+ servers:
+ - url: https://api.linode.com/v4beta
parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
tags:
- - Profile
- summary: Authorized Apps List
- 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
+ - Networking
+ summary: VLANs List
+ description: |
+ Returns a list of all Virtual Local Area Networks (VLANs) on your Account. VLANs provide
+ a mechanism for secure communication between two or more Linodes that are assigned to the
+ same VLAN and are both within the same Layer 2 broadcast domain.
+
+ VLANs are created and attached to Linodes by using the `interfaces` property for the following endpoints:
+
+ - Linode Create ([POST /linode/instances](/docs/api/linode-instances/#linode-create))
+ - Configuration Profile Create ([POST /linode/instances/{linodeId}/configs](/docs/api/linode-instances/#configuration-profile-create))
+ - Configuration Profile Update ([PUT /linode/instances/{linodeId}/configs/{configId}](/docs/api/linode-instances/#configuration-profile-update))
+
+ There are several ways to detach a VLAN from a Linode:
+
+ - [Update](/docs/api/linode-instances/#configuration-profile-update) the active Configuration Profile to remove the VLAN interface, then [reboot](/docs/api/linode-instances/#linode-reboot) the Linode.
+ - [Create](/docs/api/linode-instances/#configuration-profile-create) a new Configuration Profile without the VLAN interface, then [reboot](/docs/api/linode-instances/#linode-reboot) the Linode into the new Configuration Profile.
+ - [Delete](/docs/api/linode-instances/#linode-delete) the Linode.
+
+ **Note:** Only Next Generation Network (NGN) data centers support VLANs. Use the Regions ([/regions](/docs/api/regions/)) endpoint to view the capabilities of data center regions.
+ If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center,
+ the migration or cloning will not initiate. If a Linode cannot be migrated because of an incompatibility,
+ you will be prompted to select a different data center or contact support.
+
+ **Note:** See our guide on [Getting Started with VLANs](/docs/guides/getting-started-with-vlans/) to view additional [limitations](/docs/guides/getting-started-with-vlans/#limitations).
+ operationId: getVLANs
+ x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - linodes:read_only
responses:
'200':
- description: |
- A paginated list of apps you've authorized.
+ description: The VLANs available on this Account.
content:
application/json:
schema:
@@ -13920,7 +14207,7 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/AuthorizedApp'
+ $ref: '#/components/schemas/Vlans'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -13933,147 +14220,200 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/profile/apps
+ https://api.linode.com/v4beta/networking/vlans/
- 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
+ linode-cli networking vlans-list
+ /nodebalancers:
+ x-linode-cli-command: nodebalancers
get:
+ x-linode-grant: read_only
tags:
- - Profile
- summary: Authorized App View
+ - NodeBalancers
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ summary: NodeBalancers List
description: >
- Returns information about a single app you've authorized to access your
- Account.
- operationId: getProfileApp
- x-linode-cli-action: app-view
+ Returns a paginated list of NodeBalancers you have access to.
+ operationId: getNodeBalancers
+ x-linode-cli-action: list
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - nodebalancers:read_only
responses:
'200':
- description: The app requested.
+ description: A paginated list of NodeBalancers.
content:
application/json:
schema:
- $ref: '#/components/schemas/AuthorizedApp'
+ 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/profile/apps/123
+ https://api.linode.com/v4/nodebalancers
- lang: CLI
source: >
- linode-cli profile app-view 1234
- delete:
+ linode-cli nodebalancers list
+ post:
+ x-linode-grant: add_nodebalancers
tags:
- - Profile
- summary: App Access Revoke
+ - NodeBalancers
+ summary: NodeBalancer Create
description: >
- Expires this app token. This token may no longer be used to
- access your Account.
- operationId: deleteProfileApp
- x-linode-cli-action: app-delete
+ 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:
- - account:read_write
+ - nodebalancers:read_write
+ requestBody:
+ description: Information about the NodeBalancer to create.
+ required: true
+ x-linode-cli-allowed-defaults:
+ - region
+ 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'
+ configs:
+ type: array
+ description: >
+ The ports to configure this NodeBalancer with on creation.
+ Each config must have a unique port and at least one Node.
+ items:
+ allOf:
+ - $ref: '#/components/schemas/NodeBalancerConfig'
+ - type: object
+ properties:
+ nodes:
+ type: array
+ description: >
+ The NodeBalancer Nodes that serve this port. When
+ creating a NodeBalancer this way, at least one Node
+ is required per configured port.
+ items:
+ $ref: '#/components/schemas/NodeBalancerNode'
responses:
'200':
- description: App's authorization has been revoked.
+ description: NodeBalancer created successfully.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/NodeBalancer'
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
+ 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 profile app-delete 123
- /profile/grants:
- x-linode-cli-command: profile
+ 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:
- - Profile
- summary: Grants List
+ - NodeBalancers
+ summary: NodeBalancer View
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
+ Returns a single NodeBalancer you can access.
+ operationId: getNodeBalancer
+ x-linode-cli-action: view
security:
- personalAccessToken: []
- - oauth: []
+ - oauth:
+ - nodebalancers:read_only
responses:
'200':
- description: GrantsResponse
+ description: The requested NodeBalancer object.
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.
+ $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/profile/grants
- /profile/tfa-disable:
- x-linode-cli-command: profile
- post:
+ https://api.linode.com/v4/nodebalancers/12345
+ - lang: CLI
+ source: >
+ linode-cli nodebalancers view 12345
+ put:
+ x-linode-grant: read_write
tags:
- - Profile
- summary: Two Factor Authentication Disable
+ - NodeBalancers
+ summary: NodeBalancer Update
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
+ Updates information about a NodeBalancer you can access.
+ operationId: updateNodeBalancer
+ x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - nodebalancers:read_write
+ requestBody:
+ description: The information to update.
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/NodeBalancer'
responses:
'200':
- description: TFA disabled.
+ description: NodeBalancer updated successfully.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/NodeBalancer'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -14081,138 +14421,91 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/profile/tfa-disable
+ -X PUT -d '{
+ "label": "balancer12345",
+ "client_conn_throttle": 0
+ }' \
+ https://api.linode.com/v4/nodebalancers/12345
- lang: CLI
source: >
- linode-cli profile tfa-disable
- /profile/tfa-enable:
- x-linode-cli-command: profile
- post:
+ linode-cli nodebalancers update 12345 \
+ --label balancer12345 \
+ --client_conn_throttle 0
+ delete:
+ x-linode-grant: read_write
tags:
- - Profile
- summary: Two Factor Secret Create
+ - NodeBalancers
+ summary: NodeBalancer Delete
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](/docs/api/profile/#two-factor-secret-create) (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
+ 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:
- - account:read_write
+ - nodebalancers:read_write
responses:
'200':
- description: Two Factor secret generated
+ description: NodeBalancer deleted successfully.
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
+ 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-enable
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/nodebalancers/12345
- lang: CLI
source: >
- linode-cli profile tfa-enable
- /profile/tfa-enable-confirm:
- x-linode-cli-command: profile
- post:
+ 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:
- - Profile
- summary: Two Factor Authentication Confirm/Enable
+ - NodeBalancers
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ summary: Configs List
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
+ 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:
- - 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
- get:
- tags:
- - Profile
- summary: Personal Access Tokens List
- 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
+ - nodebalancers:read_only
responses:
'200':
- description: A paginated list of active tokens.
+ description: A paginted list of NodeBalancer Configs
content:
application/json:
schema:
@@ -14221,7 +14514,7 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/PersonalAccessToken'
+ $ref: '#/components/schemas/NodeBalancerConfig'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -14234,58 +14527,38 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/profile/tokens
+ https://api.linode.com/v4/nodebalancers/12345/configs
- lang: CLI
source: >
- linode-cli profile tokens-list
+ linode-cli nodebalancers configs-list 12345
post:
+ x-linode-grant: read_write
tags:
- - Profile
- summary: Personal Access Token Create
+ - NodeBalancers
+ summary: Config Create
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
+ 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:
- - account:read_write
+ - nodebalancers:read_write
requestBody:
- description: Information about the requested token.
- required: true
+ description: Information about the port to configure.
content:
application/json:
schema:
- 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'
+ $ref: '#/components/schemas/NodeBalancerConfig'
responses:
'200':
- description: Token created successfully.
+ description: Config created successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/PersonalAccessToken'
+ $ref: '#/components/schemas/NodeBalancerConfig'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -14294,81 +14567,111 @@ paths:
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
- "scopes": "*",
- "expiry": "2018-01-01T13:46:32",
- "label": "linode-cli"
+ "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,
+ "proxy_protocol": "v1",
+ "cipher_suite": "recommended"
}' \
- https://api.linode.com/v4/profile/tokens
+ https://api.linode.com/v4/nodebalancers/12345/configs
- lang: CLI
source: >
- linode-cli profile token-create \
- --scopes '*' \
- --expiry '2018-01-01T13:46:32' \
- --label linode-cli
- /profile/tokens/{tokenId}:
+ 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 \
+ --proxy_protocol "v1" \
+ --cipher_suite recommended
+ /nodebalancers/{nodeBalancerId}/configs/{configId}:
parameters:
- - name: tokenId
+ - name: nodeBalancerId
in: path
- description: The ID of the token to access.
+ description: The ID of the NodeBalancer to access.
required: true
schema:
type: integer
- x-linode-cli-command: profile
+ - 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:
- - Profile
- summary: Personal Access Token View
+ - NodeBalancers
+ summary: Config View
description: >
- Returns a single Personal Access Token.
- operationId: getPersonalAccessToken
- x-linode-cli-action: token-view
+ Returns configuration information for a single port of this
+ NodeBalancer.
+ operationId: getNodeBalancerConfig
+ x-linode-cli-action: config-view
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - nodebalancers:read_only
responses:
'200':
- description: The requested token.
+ description: The requested NodeBalancer config.
content:
application/json:
schema:
- $ref: '#/components/schemas/PersonalAccessToken'
+ $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/profile/tokens/123
+ https://api.linode.com/v4/nodebalancers/12345/configs/4567
- lang: CLI
source: >
- linode-cli profile token-view 123
+ linode-cli nodebalancers config-view \
+ 12345 4567
put:
+ x-linode-grant: read_write
tags:
- - Profile
- summary: Personal Access Token Update
+ - NodeBalancers
+ summary: Config Update
description: >
- Updates a Personal Access Token.
- operationId: updatePersonalAccessToken
- x-linode-cli-action: token-update
+ Updates the configuration for a single port on a NodeBalancer.
+ operationId: updateNodeBalancerConfig
+ x-linode-cli-action: config-update
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - nodebalancers:read_write
requestBody:
description: The fields to update.
required: true
content:
application/json:
schema:
- $ref: '#/components/schemas/PersonalAccessToken'
+ $ref: '#/components/schemas/NodeBalancerConfig'
responses:
'200':
- description: Token updated successfully.
+ description: Config updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/PersonalAccessToken'
+ $ref: '#/components/schemas/NodeBalancerConfig'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -14377,32 +14680,63 @@ paths:
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
- "label": "linode-cli"
+ "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,
+ "proxy_protocol": "v1",
+ "cipher_suite": "recommended"
}' \
- https://api.linode.com/v4/profile/tokens/123
+ https://api.linode.com/v4/nodebalancers/12345/configs/4567
- lang: CLI
source: >
- linode-cli profile token-update 123 \
- --label linode-cli
+ 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 \
+ --proxy_protocol "v1" \
+ --cipher_suite recommended
delete:
+ x-linode-grant: read_write
tags:
- - Profile
- summary: Personal Access Token Revoke
+ - NodeBalancers
+ summary: Config Delete
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
+ 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:
- - account:read_write
+ - nodebalancers:read_write
responses:
'200':
- description: Token revoked successfully.
+ description: NodeBalancer Config deleted successfully.
content:
application/json:
schema:
@@ -14414,113 +14748,162 @@ paths:
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
- /profile/logins:
- x-linode-cli-command: profile
- get:
- tags:
- - Profile
- summary: Logins List
- description: >
- Returns a collection of successful account logins from this user during the last
- 90 days.
- operationId: getProfileLogins
- x-linode-cli-action: logins-list
- security:
- - personalAccessToken: []
- - oauth:
- - account:read_only
- responses:
- '200':
- description: >
- An array of successful account logins from this user during
- the last 90 days.
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/Login'
- 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/logins
+ https://api.linode.com/v4/nodebalancers/12345/configs/4567
- lang: CLI
source: >
- linode-cli profile logins-list
- /profile/logins/{loginId}:
+ linode-cli nodebalancers config-delete \
+ 12345 4567
+ /nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild:
parameters:
- - name: loginId
+ - name: nodeBalancerId
in: path
- description: The ID of the login object to access.
+ description: The ID of the NodeBalancer to access.
required: true
schema:
type: integer
- x-linode-cli-command: profile
- get:
+ - name: configId
+ in: path
+ description: The ID of the Config to access.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: nodebalancers
+ post:
+ x-linode-grant: add_nodebalancers
tags:
- - Profile
- summary: Login View
+ - NodeBalancers
+ summary: Config Rebuild
description: >
- Returns a login object displaying information about a successful
- account login from this user.
- operationId: getProfileLogin
- x-linode-cli-action: login-view
+ Rebuilds a NodeBalancer Config and its Nodes that you have
+ permission to modify.
+ operationId: rebuildNodeBalancerConfig
+ x-linode-cli-action: config-rebuild
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - nodebalancers:read_write
+ requestBody:
+ description: >
+ Information about the NodeBalancer Config to rebuild.
+ required: true
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: "#/components/schemas/NodeBalancerConfig"
+ - type: object
+ properties:
+ nodes:
+ type: array
+ description: |
+ The NodeBalancer Node(s) that serve this port.
+ At least one Node is required per configured port.
+
+ Some considerations for Nodes when rebuilding a config:
+ * Current Nodes excluded from the request body will be deleted.
+ * Current Nodes (identified by their ID) will be updated.
+ * New Nodes (included without an ID) will be created.
+ items:
+ $ref: '#/components/schemas/NodeBalancerNode'
responses:
'200':
- description: The requested login object.
+ description: NodeBalancer created successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Login'
+ $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/profile/logins/1234
+ 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,
+ "proxy_protocol": "v1",
+ "cipher_suite": "recommended",
+ "nodes": [
+ {
+ "address": "192.168.210.120:80",
+ "label": "node1",
+ "weight": 50,
+ "mode": "accept"
+ },
+ {
+ "address": "192.168.210.122:81",
+ "label": "node2",
+ "weight": 50,
+ "mode": "accept"
+ },
+ ]
+ }' \
+ https://api.linode.com/v4/nodebalancers/12345/configs/4567/rebuild
- lang: CLI
source: >
- linode-cli profile login-view 1234
- /profile/devices:
- x-linode-cli-command: profile
+ linode-cli nodebalancers config-rebuild \
+ 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 \
+ --proxy_protocol "v1" \
+ --cipher_suite recommended \
+ --nodes '{"address":"192.168.210.120:80","label":"node1","weight":50,"mode":"accept"}' \
+ --nodes '{"address":"192.168.210.122:80","label":"node2","weight":50,"mode":"accept"}'
+ /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:
- - Profile
- summary: Trusted Devices List
+ - NodeBalancers
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ summary: Nodes List
description: >
- Returns a paginated list of active TrustedDevices for your User.
- Browsers with an active Remember Me Session are logged into your account
- until the session expires or is revoked.
- operationId: getDevices
- x-linode-cli-action: devices-list
+ 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:
- - account:read_only
+ - nodebalancers:read_only
responses:
'200':
- description: Returns a paginated list of TrustedDevice objects.
+ description: A paginated list of NodeBalancer nodes.
content:
application/json:
schema:
@@ -14529,7 +14912,7 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/TrustedDevice'
+ $ref: '#/components/schemas/NodeBalancerNode'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -14541,40 +14924,44 @@ paths:
x-code-samples:
- lang: Shell
source: >
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/profile/devices
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes
- lang: CLI
source: >
- linode-cli profile devices-list
- /profile/devices/{deviceId}:
- x-linode-cli-command: profile
- parameters:
- - name: deviceId
- in: path
- description: The ID of the TrustedDevice
- required: true
- schema:
- type: integer
- get:
+ linode-cli nodebalancers nodes-list 12345 4567
+ post:
+ x-linode-grant: read_write
tags:
- - Profile
- summary: Trusted Device View
+ - NodeBalancers
+ summary: Node Create
description: >
- Returns a single active TrustedDevice for your User.
- operationId: getTrustedDevice
- x-linode-cli-action: device-view
+ 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:
- - account:read_only
+ - nodebalancers:read_write
+ requestBody:
+ description: Information about the Node to create.
+ required: true
+ content:
+ application/json:
+ schema:
+ required:
+ - label
+ - address
+ allOf:
+ - $ref: '#/components/schemas/NodeBalancerNode'
responses:
'200':
- description: The requested TrustedDevice object
+ description: Node created successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/TrustedDevice'
+ $ref: '#/components/schemas/NodeBalancerNode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -14582,78 +14969,101 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/profile/devices/123
- - lang: CLI
- source: >
- linode-cli profile device-view 123
- delete:
+ -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:
- - Profile
- summary: Trusted Device Revoke
+ - NodeBalancers
+ summary: Node View
description: >
- Revoke an active TrustedDevice for your User. Once a TrustedDevice is revoked, this
- device will have to log in again before accessing your Linode account.
- operationId: revokeTrustedDevice
- x-linode-cli-action: device-revoke
+ 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:
- - account:read_write
+ - nodebalancers:read_write
responses:
'200':
- description: Session revoked successfully
+ description: A paginated list of NodeBalancer nodes.
content:
application/json:
schema:
- type: object
+ $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 DELETE \
- https://api.linode.com/v4/profile/devices/123
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
- lang: CLI
source: >
- linode-cli profile device-revoke 123
- /profile/sshkeys:
- x-linode-cli-command: sshkeys
- get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ linode-cli nodebalancers node-view 12345 4567 54321
+ put:
+ x-linode-grant: read_write
tags:
- - Profile
- summary: SSH Keys List
+ - NodeBalancers
+ summary: Node Update
description: >
- Returns a collection of SSH Keys you've added to your Profile.
- operationId: getSSHKeys
- x-linode-cli-action: list
+ Updates information about a Node, a backend for this NodeBalancer's
+ configured port.
+ operationId: updateNodeBalancerNode
+ x-linode-cli-action: node-update
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - nodebalancers:read_write
+ requestBody:
+ description: The fields to update.
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/NodeBalancerNode'
responses:
'200':
- description: Returns a paginated list of SSH Key objects.
+ description: Node updated successfully.
content:
application/json:
schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/SSHKey'
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ $ref: '#/components/schemas/NodeBalancerNode'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -14661,275 +15071,334 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/profile/sshkeys
+ -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 sshkeys list
- post:
+ 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:
- - Profile
- summary: SSH Key Add
+ - NodeBalancers
+ summary: Node Delete
description: >
- Adds an SSH Key to your Account profile.
- operationId: addSSHKey
- x-linode-cli-action: create
+ 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:
- - account:read_write
- requestBody:
- description: Add SSH Key
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/SSHKeyRequest'
+ - nodebalancers:read_write
responses:
'200':
- description: SSH Key associated successfully.
+ description: Node deleted successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/SSHKey'
+ 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 '{
- "label": "My SSH Key"
- "ssh_key": "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
- }' \
- https://api.linode.com/v4/profile/sshkeys
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/nodebalancers/12345/configs/4567/nodes/54321
- lang: CLI
source: >
- linode-cli sshkeys create \
- --label "My SSH Key"
- --ssh_key "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
- /profile/sshkeys/{sshKeyId}:
- x-linode-cli-command: sshkeys
+ linode-cli nodebalancers node-delete \
+ 12345 4567 54321
+ /nodebalancers/{nodeBalancerId}/stats:
+ x-linode-cli-command: nodebalancers
parameters:
- - name: sshKeyId
+ - name: nodeBalancerId
in: path
- description: The ID of the SSHKey
+ description: The ID of the NodeBalancer to access.
required: true
schema:
type: integer
get:
+ x-linode-grant: read_only
tags:
- - Profile
- summary: SSH Key View
+ - NodeBalancers
+ summary: NodeBalancer Statistics View
description: >
- Returns a single SSH Key object identified by `id` that you have access
- to view.
- operationId: getSSHKey
- x-linode-cli-action: view
+ Returns detailed statistics about the requested NodeBalancer.
+ x-linode-cli-action: stats
+ x-linode-cli-skip: true
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - nodebalancers:read_only
responses:
'200':
- description: An SSH Key object
+ description: The requested stats.
content:
application/json:
schema:
- $ref: '#/components/schemas/SSHKey'
+ $ref: '#/components/schemas/NodeBalancerStats'
default:
$ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: >
- curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/profile/sshkeys/42
- - lang: CLI
- source: >
- linode-cli sshkeys view 42
- put:
+ /object-storage/buckets:
+ get:
+ operationId: getObjectStorageBuckets
+ x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Buckets List
+ description: |
+ Returns a paginated list of all Object Storage Buckets that you own.
+
+
+ This endpoint is available for convenience. It is recommended that instead you
+ use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/serviceops/#list-buckets) directly.
tags:
- - Profile
- summary: SSH Key Update
- description: >
- Updates an SSH Key that you have permission to `read_write`.
- operationId: updateSSHKey
- x-linode-cli-action: update
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_write
- requestBody:
- description: >
- The fields to update.
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/SSHKey'
+ - object_storage:read_only
responses:
'200':
- description: SSH Key updated successfully.
+ description: A paginated list of buckets you own.
content:
application/json:
schema:
- $ref: '#/components/schemas/SSHKey'
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/ObjectStorageBucket'
+ 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 "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "label": "my laptop"
- }' \
- https://api.linode.com/v4/profile/sshkey/42
- - lang: CLI
- source: >
- linode-cli sshkey update 42 \
- --label "my laptop"
- delete:
- tags:
- - Profile
- summary: SSH Key Delete
- description: >
- Deletes an SSH Key you have access to.
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/object-storage/buckets/
+ post:
+ operationId: createObjectStorageBucket
+ x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Bucket Create
+ description: |
+ Creates an Object Storage Bucket in the cluster specified. If the
+ bucket already exists and is owned by you, this endpoint will return a
+ `200` response with that bucket as if it had just been created.
- **Note:** deleting an SSH Key will *not* remove it from any Linode or
- Disk that was deployed with `authorized_keys`. In those cases, the keys
- must be manually deleted on the Linode or Disk.
- This endpoint will only delete the key's association from your Profile.
- operationId: deleteSSHKey
- x-linode-cli-action: delete
+ This endpoint is available for convenience. It is recommended that instead you
+ use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket) directly.
+ tags:
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - object_storage:read_write
+ requestBody:
+ description: >
+ Information about the bucket you want to create.
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - label
+ - cluster
+ properties:
+ label:
+ type: string
+ description: >
+ The name for this bucket. Must be unique in the cluster you
+ are creating the bucket in, or an error will be returned. Labels will be
+ reserved only for the cluster that active buckets are created and stored in.
+ If you want to reserve this bucket's label in another cluster,
+ you must create a new bucket with the same label in the new cluster.
+ pattern: ^[a-z0-09][a-z0-9-]*[a-z0-9]?$
+ example: example-bucket
+ cluster:
+ type: string
+ description: >
+ The ID of the Object Storage Cluster where this bucket should
+ be created.
+ example: us-east-1
+ cors_enabled:
+ type: boolean
+ description: >
+ If true, the bucket will be created with CORS enabled for all
+ origins. For more fine-grained controls of CORS, use the S3
+ API directly.
+ example: true
+ default: false
+ acl:
+ type: string
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ description: >
+ The Access Control Level of the bucket using a canned ACL string.
+ For more fine-grained control of ACLs, use the S3 API directly.
+ default: private
+ example: private
responses:
'200':
- description: SSH Key deleted successfully.
+ description: The bucket created successfully.
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/ObjectStorageBucket'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Content-Type: application/json" \
- -H "Authoriztion: Bearer $TOKEN" \
- -X DELETE \
- https://api.linode.com/v4/profile/sshkeys/42
- - lang: CLI
- source: >
- linode-cli sshkey delete 42
- /profile/preferences:
- x-linode-cli-command: profile
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "label": "example-bucket",
+ "cluster": "us-east-1",
+ "cors_enabled": true,
+ "acl": "private"
+ }' \
+ https://api.linode.com/v4/object-storage/buckets/
+ /object-storage/buckets/{clusterId}/{bucket}:
+ parameters:
+ - name: clusterId
+ in: path
+ description: The ID of the cluster this bucket exists in.
+ required: true
+ schema:
+ type: string
+ - name: bucket
+ in: path
+ description: The bucket name.
+ required: true
+ schema:
+ type: string
get:
- x-linode-grant: read_only
- tags:
- - Profile
- summary: User Preferences View
- description: |
- View a list of user preferences tied to the OAuth client that generated
- the token making the request. The user preferences endpoints allow
- consumers of the API to store arbitrary JSON data, such as a user's font
- size preference or preferred display name. User preferences are available
- for each OAuth client registered to your account, and as such an account can
- have multiple user preferences.
- operationId: getUserPreferences
- x-linode-cli-action: preferences-view
+ operationId: getObjectStorageBucket
x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Bucket View
+ description: |
+ Returns a single Object Storage Bucket.
+
+
+ This endpoint is available for convenience. It is recommended that instead you
+ use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#get-bucket) directly.
+ tags:
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - object_storage:read_only
responses:
'200':
- description: Returns an object of user preferences.
+ description: The requested bucket.
content:
application/json:
schema:
- type: object
- description: A dictionary of user preferences.
- example: { "key1": "value1", "key2": "value2"}
+ $ref: '#/components/schemas/ObjectStorageBucket'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X GET \
- https://api.linode.com/v4/profile/preferences
- put:
- tags:
- - Profile
- summary: User Preferences Update
- description: >
- Updates a user's preferences. These preferences are tied to the
- OAuth client that generated the token making the request. The user
- preferences endpoints allow consumers of the API to store arbitrary
- JSON data, such as a user's font size preference or preferred display
- name. An account may have multiple preferences. Preferences, and the
- pertaining request body, may contain any arbitrary JSON data that
- the user would like to store.
- operationId: updateUserPreferences
- x-linode-cli-action: preferences-update
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket
+ delete:
+ operationId: deleteObjectStorageBucket
x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Bucket Remove
+ description: |
+ Removes a single bucket.
+
+ Bucket objects must be removed prior to removing the bucket. While buckets containing objects _may_ be
+ deleted using the [s3cmd command-line tool](/docs/products/storage/object-storage/guides/s3cmd/#delete-a-bucket), such operations
+ can fail if the bucket contains too many objects. The recommended
+ way to empty large buckets is to use the [S3 API to configure lifecycle policies](https://docs.ceph.com/en/latest/radosgw/bucketpolicy/#) that
+ remove all objects, then delete the bucket.
+
+ This endpoint is available for convenience. It is recommended that instead you
+ use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#delete-bucket) directly.
+ tags:
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_write
- requestBody:
- description: >
- The user preferences to update or store.
- required: true
- content:
- application/json:
- schema:
- type: object
- description: |
- Arbitrary JSON of your choosing.
+ - object_storage:read_write
responses:
'200':
- description: Returns an object of user preferences.
+ description: Bucket deleted successfully.
content:
application/json:
schema:
type: object
- description: An object of user preferences.
- example: { "key1": "value1", "key2": "value2"}
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "key1": "value1",
- "key1": "value2"
- }' \
- https://api.linode.com/v4/profile/preferences
-
- /regions:
- x-linode-cli-command: regions
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket
+ /object-storage/buckets/{clusterId}:
+ parameters:
+ - name: clusterId
+ in: path
+ description: The ID of the cluster this bucket exists in.
+ required: true
+ schema:
+ type: string
get:
- tags:
- - Regions
- summary: Regions List
+ operationId: getObjectStorageBucketinCluster
+ x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Buckets in Cluster List
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
+ Returns a list of Buckets in this cluster belonging to this Account.
+
+
+ This endpoint is available for convenience. It is recommended that instead you
+ use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#get-bucket) directly.
+ tags:
+ - Object Storage
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - object_storage:read_only
responses:
'200':
- description: Returns an array of Regions.
+ description: A paginated list of buckets you own in this cluster.
content:
application/json:
schema:
@@ -14938,7 +15407,7 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/Region'
+ $ref: '#/components/schemas/ObjectStorageBucket'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -14950,416 +15419,588 @@ paths:
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
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/object-storage/buckets/us-east-1
+ /object-storage/buckets/{clusterId}/{bucket}/access:
parameters:
- - name: regionId
+ - name: clusterId
in: path
- description: ID of the Region to look up.
+ description: The ID of the cluster this bucket exists in.
required: true
schema:
type: string
- get:
- tags:
- - Regions
- summary: Region View
- 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: Support Tickets List
- 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.
+ - name: bucket
+ in: path
+ description: The bucket name.
+ required: true
+ schema:
+ type: string
+ post:
+ operationId: modifyObjectStorageBucketAccess
+ x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Bucket Access Modify
+ description: |
+ Allows changing basic Cross-origin Resource Sharing (CORS) and Access Control Level (ACL) settings.
+ Only allows enabling/disabling CORS for all origins, and/or setting canned ACLs.
- This collection includes all Support Tickets generated on your Account,
- with open tickets returned first.
- operationId: getTickets
- x-linode-cli-action: list
+
+ For more fine-grained control of both systems, please use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket-acl) directly.
+ tags:
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - object_storage:read_write
+ requestBody:
+ description: The changes to make to the bucket's access controls.
+ content:
+ application/json:
+ schema:
+ properties:
+ cors_enabled:
+ type: boolean
+ description: >
+ If true, the bucket will be created with CORS enabled for all
+ origins. For more fine-grained controls of CORS, use the S3
+ API directly.
+ example: true
+ acl:
+ type: string
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ - custom
+ description: >
+ The Access Control Level of the bucket, as a canned ACL string.
+ For more fine-grained control of ACLs, use the S3 API directly.
+ example: private
responses:
'200':
- description: Returns a paginated list of SupportTicket objects.
+ description: Access controls updated.
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: Support Ticket Open
- description: >
- Open a Support Ticket.
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "cors_enabled": true,
+ "acl": "private"
+ }' \
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/access
+ put:
+ operationId: updateObjectStorageBucketAccess
+ x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Bucket Access Update
+ description: |
+ Allows changing basic Cross-origin Resource Sharing (CORS) and Access Control Level (ACL) settings.
+ Only allows enabling/disabling CORS for all origins, and/or setting canned ACLs.
- 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
+
+ For more fine-grained control of both systems, please use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/#put-bucket-acl) directly.
+ tags:
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - object_storage:read_write
requestBody:
- description: Open a Support Ticket.
+ description: The changes to make to the bucket's access controls.
content:
application/json:
schema:
- $ref: '#/components/schemas/SupportTicketRequest'
+ properties:
+ cors_enabled:
+ type: boolean
+ description: >
+ If true, the bucket will be created with CORS enabled for all
+ origins. For more fine-grained controls of CORS, use the S3
+ API directly.
+ example: true
+ acl:
+ type: string
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ - custom
+ description: >
+ The Access Control Level of the bucket, as a canned ACL string.
+ For more fine-grained control of ACLs, use the S3 API directly.
+ example: private
responses:
'200':
- description: Support Ticket opened.
+ description: Access controls updated.
content:
application/json:
schema:
- $ref: '#/components/schemas/SupportTicket'
+ 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 '{
- "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"
+ -H "Authorization: Bearer $TOKEN" \
+ -X PUT -d '{
+ "cors_enabled": true,
+ "acl": "private"
}' \
- 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}:
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/access
+ /object-storage/buckets/{clusterId}/{bucket}/object-acl:
parameters:
- - name: ticketId
+ - name: clusterId
in: path
- description: The ID of the Support Ticket.
+ description: The ID of the cluster this bucket exists in.
required: true
schema:
- type: integer
- x-linode-cli-command: tickets
+ type: string
+ - name: bucket
+ in: path
+ description: The bucket name.
+ required: true
+ schema:
+ type: string
get:
- x-linode-grant: read_only
+ operationId: viewObjectStorageBucketACL
+ x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Object ACL Config View
+ description: |
+ View an Object’s configured Access Control List (ACL) in this Object Storage bucket.
+ ACLs define who can access your buckets and objects and specify the level of access
+ granted to those users.
+
+
+ This endpoint is available for convenience. It is recommended that instead you
+ use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#get-object-acl) directly.
tags:
- - Support
- summary: Support Ticket View
- description: >
- Returns a Support Ticket under your Account.
- operationId: getTicket
- x-linode-cli-action: view
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - object_storage:read_only
+ parameters:
+ - name: name
+ in: query
+ required: true
+ description: >
+ The `name` of the object for which to retrieve its Access Control List (ACL).
+ Use the [Object Storage Bucket Contents List](/docs/api/object-storage/#object-storage-bucket-contents-list)
+ endpoint to access all object names in a bucket.
+ schema:
+ type: string
responses:
'200':
- description: Returns a single SupportTicket object.
+ description: The Object's canned ACL and policy.
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: Ticket Attachment Create
- 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.
-
- Note: Accepted file extensions include: .gif, .jpg, .jpeg, .pjpg,
- .pjpeg, .tif, .tiff, .png, .pdf, or .txt.
- operationId: createTicketAttachment
+ type: object
+ properties:
+ acl:
+ type: string
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ - custom
+ description: >
+ The Access Control Level of the bucket, as a canned ACL string.
+ For more fine-grained control of ACLs, use the S3 API directly.
+ example: public-read
+ acl_xml:
+ type: string
+ description: >
+ The full XML of the object's ACL policy.
+ example: "..."
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/object-acl?name=example.txt
+ put:
+ operationId: updateObjectStorageBucketACL
x-linode-cli-skip: true
- x-linode-cli-action: upload-attachment
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Object ACL Config Update
+ description: |
+ Update an Object's configured Access Control List (ACL) in this Object Storage bucket.
+ ACLs define who can access your buckets and objects and specify the level of access
+ granted to those users.
+
+
+ This endpoint is available for convenience. It is recommended that instead you
+ use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#set-object-acl) directly.
+ tags:
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - object_storage:read_write
requestBody:
- description: Add an attachment.
- required: true
+ description: The changes to make to this Object's access controls.
content:
- multipart/form-data:
+ application/json:
schema:
required:
- - file
+ - acl
+ - name
properties:
- file:
+ acl:
type: string
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ - custom
description: >
- The local, absolute path to the file you want to attach to
- your Support Ticket.
- example: '/Users/LinodeGuy/pictures/screen_shot.jpg'
+ The Access Control Level of the bucket, as a canned ACL string.
+ For more fine-grained control of ACLs, use the S3 API directly.
+ example: public-read
+ name:
+ type: string
+ description: >
+ The `name` of the object for which to update its Access Control List (ACL).
+ Use the [Object Storage Bucket Contents List](/docs/api/object-storage/#object-storage-bucket-contents-list)
+ endpoint to access all object names in a bucket.
responses:
'200':
- description: Attachment created.
+ description: The Object's canned ACL and policy.
content:
application/json:
schema:
type: object
+ properties:
+ acl:
+ type: string
+ enum:
+ - private
+ - public-read
+ - authenticated-read
+ - public-read-write
+ - custom
+ description: >
+ The Access Control Level of the bucket, as a canned ACL string.
+ For more fine-grained control of ACLs, use the S3 API directly.
+ example: public-read
+ acl_xml:
+ type: string
+ description: >
+ The full XML of the object's ACL policy.
+ example: "..."
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
- curl -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}/close:
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X PUT -d '{
+ "acl": "public-read",
+ "name": "example.txt"
+ }' \
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/object-acl
+ /object-storage/buckets/{clusterId}/{bucket}/object-list:
parameters:
- - name: ticketId
+ - name: clusterId
in: path
- description: The ID of the Support Ticket.
+ description: The ID of the cluster this bucket exists in.
required: true
schema:
- type: integer
- x-linode-cli-command: tickets
- post:
- x-linode-grant: read_write
- tags:
- - Support
- summary: Support Ticket Close
- description: >
- Closes a Support Ticket you have access to modify.
- operationId: closeTicket
- x-linode-cli-action: close
- security:
- - personalAccessToken: []
- - oauth:
- - account:read_write
- responses:
- '200':
- description: Support Ticket closed successfully.
- content:
- application/json:
- schema:
- type: object
- default:
- $ref: '#/components/responses/ErrorResponse'
- x-code-samples:
- - lang: Shell
- source: >
- curl -H "Authorization: Bearer $TOKEN" \
- -X POST \
- https://api.linode.com/v4/support/tickets/11223344/close
- - lang: CLI
- source: >
- linode-cli tickets close 11223344
- /support/tickets/{ticketId}/replies:
- parameters:
- - name: ticketId
+ type: string
+ - name: bucket
in: path
- description: The ID of the Support Ticket.
+ description: The bucket name.
required: true
schema:
- type: integer
- x-linode-cli-command: tickets
+ type: string
get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ operationId: getObjectStorageBucketContent
+ x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Bucket Contents List
+ description: |
+ Returns the contents of a bucket. The contents are paginated using a `marker`,
+ which is the name of the last object on the previous page. Objects may
+ be filtered by `prefix` and `delimiter` as well; see Query Parameters for more
+ information.
+
+
+ This endpoint is available for convenience. It is recommended that instead you
+ use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/objectops/#get-object) directly.
tags:
- - Support
- summary: Replies List
- description: >
- Returns a collection of replies to a Support Ticket on
- your Account.
- operationId: getTicketReplies
- x-linode-cli-action: replies
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - object_storage:read_only
+ parameters:
+ - name: marker
+ in: query
+ required: false
+ description: >
+ The "marker" for this request, which can be used to paginate through large buckets.
+ Its value should be the value of the `next_marker` property returned with the last page.
+ Listing bucket contents *does not* support arbitrary page access. See the `next_marker`
+ property in the responses section for more details.
+ schema:
+ type: string
+ - name: delimiter
+ in: query
+ required: false
+ description: >
+ The delimiter for object names; if given, object names will be returned
+ up to the first occurrence of this character. This is most commonly used
+ with the `/` character to allow bucket transversal in a manner similar to
+ a filesystem, however any delimiter may be used. Use in conjunction with
+ `prefix` to see object names past the first occurrence of the delimiter.
+ schema:
+ type: string
+ - name: prefix
+ in: query
+ required: false
+ description: >
+ Filters objects returned to only those whose name start with the given
+ prefix. Commonly used in conjunction with `delimiter` to allow transversal
+ of bucket contents in a manner similar to a filesystem.
+ schema:
+ type: string
+ - $ref: '#/components/parameters/pageSize'
responses:
'200':
- description: Returns a paginated list of SupportTicketReply objects.
+ description: One page of the requested bucket's contents.
content:
application/json:
schema:
- type: object
properties:
data:
type: array
+ description: This page of objects in the bucket.
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'
+ $ref: '#/components/schemas/ObjectStorageObject'
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: Reply Create
- description: >
- Adds a reply to an existing Support Ticket.
- operationId: createTicketReply
- x-linode-cli-action: reply
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/object-list
+ /object-storage/buckets/{clusterId}/{bucket}/object-url:
+ parameters:
+ - name: clusterId
+ in: path
+ description: The ID of the cluster this bucket exists in.
+ required: true
+ schema:
+ type: string
+ - name: bucket
+ in: path
+ description: The bucket name.
+ required: true
+ schema:
+ type: string
+ post:
+ operationId: createObjectStorageObjectURL
+ x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Object URL Create
+ description: |
+ Creates a pre-signed URL to access a single Object in a bucket. This
+ can be used to share objects, and also to create/delete objects by using
+ the appropriate HTTP method in your request body's `method` parameter.
+
+
+ This endpoint is available for convenience. It is recommended that instead you
+ use the more [fully-featured S3 API](https://docs.ceph.com/en/latest/radosgw/s3/)
+ directly.
+ tags:
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - object_storage:read_write
requestBody:
- description: Add a reply.
- required: true
+ description: Information about the request to sign.
content:
application/json:
schema:
required:
- - description
+ - name
+ - method
properties:
- description:
+ method:
+ type: string
+ description: The HTTP method allowed to be used with the pre-signed URL.
+ example: GET
+ default: GET
+ name:
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!
+ The name of the object that will be accessed with the pre-signed URL. This object need not
+ exist, and no error will be returned if it doesn't. This behavior is
+ useful for generating pre-signed URLs to upload new objects to by
+ setting the `method` to "PUT".
+ example: example
+ content_type:
+ type: string
+ description: >
+ The expected `Content-type` header of the request this signed
+ URL will be valid for. If provided, the `Content-type` header
+ _must_ be sent with the request when this URL is used, and
+ _must_ be the same as it was when the signed URL was created.
+ Required for all methods *except* "GET" or "DELETE".
+ example: null
+ expires_in:
+ type: integer
+ minimum: 360
+ maximum: 86400
+ default: 3600
+ description: >
+ How long this signed URL will be valid for, in seconds. If
+ omitted, the URL will be valid for 3600 seconds (1 hour).
+ example: null
responses:
'200':
- description: Reply created.
+ description: The URL with which to access your object.
content:
application/json:
schema:
- $ref: '#/components/schemas/SupportTicketReply'
+ properties:
+ url:
+ type: string
+ description: The signed URL to perform the request at.
+ example: https://us-east-1.linodeobjects.com/example-bucket/example?Signature=qr98TEucCntPgEG%2BsZQGDsJg93c%3D&Expires=1567609905&AWSAccessKeyId=G4YAF81XWY61DQM94SE0
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!"
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "method": "GET",
+ "name": "example"
}' \
- https://api.linode.com/v4/support/tickets/11223344/replies
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/object-url
+ /object-storage/clusters:
+ x-linode-cli-command: object-storage
+ get:
+ operationId: getObjectStorageClusters
+ x-linode-cli-action: clusters-list
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Clusters List
+ description: |
+ Returns a paginated list of Object Storage Clusters that are available for
+ use. Users can connect to the clusters with third party clients to create buckets
+ and upload objects.
+ tags:
+ - Object Storage
+ responses:
+ '200':
+ description: A paginated list of available clusters.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/ObjectStorageCluster'
+ 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/object-storage/clusters
- 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!"
- /tags:
- x-linode-cli-command: tags
+ linode-cli object-storage clusters-list
+ /object-storage/clusters/{clusterId}:
+ x-linode-cli-command: object-storage
+ parameters:
+ - name: clusterId
+ in: path
+ description: The ID of the Cluster.
+ required: true
+ schema:
+ type: string
get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ operationId: getObjectStorageCluster
+ x-linode-cli-action: clusters-view
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Cluster View
+ description: |
+ Returns a single Object Storage Cluster.
tags:
- - Tags
- summary: Tags List
- description: >
- Tags are User-defined labels attached to objects in your Account, such
- as Linodes. They are used for specifying and grouping attributes of
- objects that are relevant to the User.
-
-
- This endpoint returns a paginated list of Tags on your account.
- operationId: getTags
- x-linode-cli-action: list
+ - Object Storage
+ responses:
+ '200':
+ description: The requested Cluster
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ObjectStorageCluster'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/object-storage/clusters/us-east-1
+ - lang: CLI
+ source: >
+ linode-cli object-storage clusters-view us-east-1
+ /object-storage/keys:
+ x-linode-cli-command: object-storage
+ get:
+ operationId: getObjectStorageKeys
+ x-linode-cli-action: keys-list
+ servers:
+ - url: https://api.linode.com/v4
+ tags:
+ - Object Storage
+ summary: Object Storage Keys List
+ description: |
+ Returns a paginated list of Object Storage Keys for authenticating to
+ the Object Storage S3 API.
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - object_storage:read_only
responses:
'200':
- description: A paginated list of Tags
+ description: A paginated list of Object Storage Keys
content:
application/json:
schema:
@@ -15368,7 +16009,7 @@ paths:
data:
type: array
items:
- $ref: '#/components/schemas/Tag'
+ $ref: '#/components/schemas/ObjectStorageKey'
page:
$ref: '#/components/schemas/PaginationEnvelope/properties/page'
pages:
@@ -15381,450 +16022,314 @@ paths:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/tags
+ https://api.linode.com/v4/object-storage/keys
+ - lang: CLI
+ source: >
+ linode-cli object-storage keys-list
post:
- tags:
- - Tags
- summary: New Tag Create
- description: >
- Creates a new Tag and optionally tags requested objects with it
- immediately.
+ operationId: createObjectStorageKeys
+ x-linode-cli-action: keys-create
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Key Create
+ description: |
+ Provisions a new Object Storage Key on your account.
+
+ * To create a Limited Access Key with specific permissions, send a `bucket_access`
+ array.
+ * To create a Limited Access Key without access to any buckets, send an empty
+ `bucket_access` array.
- **Important**: You must be an unrestricted User in order to add or modify
- Tags.
- operationId: createTag
- x-linode-cli-action: create
+ * To create an Access Key with unlimited access to all clusters and all buckets,
+ omit the `bucket_access` array.
+ tags:
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - object_storage:read_write
requestBody:
description: >
- The tag to create, and optionally the objects to tag.
+ The label of the key to create. This is used to identify the created key.
content:
application/json:
schema:
- type: object
- required:
- - label
- properties:
- label:
- type: string
- description: >
- The new Tag.
- minLength: 3
- maxLength: 50
- example: example tag
- linodes:
- type: array
- items:
- type: integer
- description: >
- A list of Linode IDs to apply the new Tag to. You must be
- allowed to `read_write` all of the requested Linodes, or the
- Tag will not be created and an error will be returned.
- example:
- - 123
- - 456
- domains:
- type: array
- items:
- type: integer
- description: >
- A list of Domain IDs to apply the new Tag to. You must be
- allowed to `read_write` all of the requested Domains, or the
- Tag will not be created and an error will be returned.
- example:
- - 564
- - 565
- volumes:
- type: array
- items:
- type: integer
- description: >
- A list of Volume IDs to apply the new Tag to. You must be
- allowed to `read_write` all of the requested Volumes, or the
- Tag will not be created and an error will be returned.
- example:
- - 9082
- - 10003
- nodebalancers:
- type: array
- items:
- type: integer
- description: >
- A list of NodeBalancer IDs to apply the new Tag to. You must
- be allowed to `read_write` all of the requested NodeBalancers,
- or the Tag will not be created and an error will be returned.
- example:
- - 10301
- - 10501
+ $ref: '#/components/schemas/ObjectStorageKey'
responses:
'200':
- description: The new Tag.
+ description: The new keypair. **This is the only time** the secret key is returned.
content:
application/json:
schema:
- $ref: '#/components/schemas/Tag'
+ $ref: '#/components/schemas/ObjectStorageKey'
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": "example tag",
- "linodes": [123,456],
- "volumes": [9082,10003]
- }' \
- https://api.linode.com/v4/tags
- - lang: CLI
- source: >
- linode-cli tags create \
- --label 'example tag' \
- --linodes 123 \
- --linodes 456 \
- --volumes 9082 \
- --volumes 10003
- /tags/{label}:
- x-linode-cli-command: tags
+ - lang: Shell
+ source: >
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "label": "my-object-storage-key",
+ "bucket_access": [
+ {
+ "cluster": "ap-south-1",
+ "bucket_name": "bucket-example-1",
+ "permissions": "read_write"
+ },
+ {
+ "cluster": "us-east-1",
+ "bucket_name": "bucket-example-2",
+ "permissions": "read_only"
+ }
+ ]
+ }' \
+ https://api.linode.com/v4/object-storage/keys
+ - lang: CLI
+ source: >
+ linode-cli object-storage keys-create \
+ --label "my-object-storage-key" \
+ --bucket_access '[{"cluster": "ap-south-1", "bucket_name": "bucket-example-1", "permissions": "read_write" }]'
+ /object-storage/keys/{keyId}:
+ x-linode-cli-command: object-storage
parameters:
- - name: label
- in: path
- schema:
- type: string
- required: true
+ - name: keyId
+ in: path
+ description: The key to look up.
+ required: true
+ schema:
+ type: integer
get:
- summary: Tagged Objects List
- description: >
- Returns a paginated list of all objects you've tagged with the requested
- Tag. This is a mixed collection of all object types.
- tags:
- - Tags
- operationId: getTaggedObjects
- x-linode-cli-command: view
- x-linode-cli-skip: true
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ operationId: getObjectStorageKey
+ x-linode-cli-action: keys-view
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Key View
+ description: |
+ Returns a single Object Storage Key provisioned for your account.
security:
- personalAccessToken: []
- oauth:
- - account:read_only
+ - object_storage:read_only
+ tags:
+ - Object Storage
responses:
'200':
- description: >
- A paginated list of objects, organized by type, that have been
- tagged with the requested Tag.
+ description: The keypair
content:
application/json:
schema:
- properties:
- data:
- type: array
- items:
- type: object
- properties:
- type:
- type: string
- example: 'linode'
- data:
- oneOf:
- - x-linode-ref-name: "linode"
- $ref: '#/components/schemas/Linode'
- - x-linode-ref-name: "domain"
- $ref: '#/components/schemas/Domain'
- - x-linode-ref-name: "volume"
- $ref: '#/components/schemas/Volume'
- - x-linode-ref-name: "nodeBalancer"
- $ref: '#/components/schemas/NodeBalancer'
- discriminator:
- propertyName: type
- page:
- $ref: '#/components/schemas/PaginationEnvelope/properties/page'
- pages:
- $ref: '#/components/schemas/PaginationEnvelope/properties/pages'
- results:
- $ref: '#/components/schemas/PaginationEnvelope/properties/results'
+ $ref: '#/components/schemas/ObjectStorageKey'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- "https://api.linode.com/v4/tags/example tag"
- delete:
- summary: Tag Delete
- description: >
- Remove a Tag from all objects and delete it.
-
-
- **Important**: You must be an unrestricted User in order to add or modify
- Tags.
- tags:
- - Tags
- operationId: deleteTag
- x-linode-cli-action: delete
+ https://api.linode.com/v4/object-storage/keys/12345
+ - lang: CLI
+ source: >
+ linode-cli object-storage keys-view \
+ --keyId 12345
+ put:
+ operationId: updateObjectStorageKey
+ x-linode-cli-action: keys-update
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Key Update
+ description: |
+ Updates an Object Storage Key on your account.
security:
- personalAccessToken: []
- oauth:
- - account:read_write
+ - object_storage:read_write
+ tags:
+ - Object Storage
+ requestBody:
+ description: The fields to update.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ label:
+ type: string
+ description: The label for this keypair, for display purposes only.
+ example: my-key
responses:
'200':
- description: Tag deleted.
+ description: Update Successful
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/ObjectStorageKey'
default:
$ref: '#/components/responses/ErrorResponse'
- /volumes:
- x-linode-cli-command: volumes
- get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
- summary: Volumes List
- description: >
- Returns a paginated list of Volumes you have permission to view.
- tags:
- - Volumes
- operationId: getVolumes
- x-linode-cli-action: list
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X PUT -d '{
+ "label": "my-object-storage-key"
+ }' \
+ https://api.linode.com/v4/object-storage/keys/12345
+ - lang: CLI
+ source: >
+ linode-cli object-storage keys-update \
+ --keyId 12345
+ --label "my-object-storage-key"
+ delete:
+ operationId: deleteObjectStorageKey
+ x-linode-cli-action: keys-delete
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Key Revoke
+ description: |
+ Revokes an Object Storage Key. This keypair will no longer be usable by third-party clients.
security:
- personalAccessToken: []
- oauth:
- - volumes:read_only
+ - object_storage:read_write
+ tags:
+ - Object Storage
responses:
'200':
- description: Returns an array of all Volumes on your Account.
+ description: Deletion successful
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
+ -X DELETE \
+ https://api.linode.com/v4/object-storage/keys/12345
- lang: CLI
source: >
- linode-cli volumes list
+ linode-cli object-storage keys-delete 12345
+ /object-storage/cancel:
+ x-linode-cli-command: object-storage
post:
- x-linode-charge: true
- x-linode-grant: add_volumes
- summary: Volume Create
- 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.
- tags:
- - Volumes
- operationId: createVolume
- x-linode-cli-action: create
+ operationId: cancelObjectStorage
+ x-linode-cli-action: cancel
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Cancel
+ description: |
+ Cancel Object Storage on an Account.
+
+ **Warning**: Removes all buckets and their contents from your Account. This data is irretrievable once removed.
security:
- personalAccessToken: []
- oauth:
- - volumes:read_write
- requestBody:
- description: The requested initial state of a new Volume.
- required: true
- x-linode-cli-allowed-defaults:
- - region
- content:
- application/json:
- schema:
- type: object
- required:
- - label
- 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
- linode_id:
- type: integer
- description: >
- The Linode this volume should be attached to upon creation.
- If not given, the volume will be created without an attachment.
- example: 123
- size:
- type: integer
- description: >
- The initial size of this volume, in GB. Be aware that volumes
- may only be resized up after creation.
- example: 20
- default: 20
- label:
- type: string
- description: >
- The Volume's label, which is also used in the
- `filesystem_path` of the resulting volume.
- example: my-volume
- minLength: 1
- maxLength: 32
- pattern: '^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$'
- 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. If a
- `linode_id` is sent without a `config_id`, the volume will be
- attached:
-
- * to the Linode's only config if it only has one config.
- * to the Linode's last used config, if possible.
-
- If no config can be selected for attachment, an error will be
- returned.
- example: 23456
- tags:
- x-linode-filterable: true
- description: >
- An array of Tags applied to this object. Tags are for organizational
- purposes only.
- type: array
- items:
- type: string
- example:
- - example tag
- - another example
+ - object_storage:read_write
+ tags:
+ - Object Storage
responses:
'200':
- description: >
- Creating Volume.
+ description: Object Storage cancellation successful.
content:
application/json:
schema:
- $ref: '#/components/schemas/Volume'
+ 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 '{
- "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}:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X POST \
+ https://api.linode.com/v4/object-storage/cancel
+ - lang: CLI
+ source: >
+ linode-cli object-storage cancel
+ /object-storage/buckets/{clusterId}/{bucket}/ssl:
+ x-linode-cli-command: object-storage
parameters:
- - name: volumeId
+ - name: clusterId
in: path
- description: ID of the Volume to look up.
+ description: The ID of the cluster this bucket exists in.
required: true
schema:
- type: integer
- x-linode-cli-command: volumes
+ type: string
+ - name: bucket
+ in: path
+ description: The bucket name.
+ required: true
+ schema:
+ type: string
get:
- x-linode-grant: read_only
- parameters:
- - $ref: '#/components/parameters/pageOffset'
- - $ref: '#/components/parameters/pageSize'
+ operationId: getObjectStorageSSL
+ x-linode-cli-action: ssl-view
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage TLS/SSL Cert View
+ description: |
+ Returns a boolean value indicating if this bucket has a corresponding TLS/SSL certificate that was
+ uploaded by an Account user.
tags:
- - Volumes
- summary: Volume View
- description: >
- Get information about a single Volume.
- operationId: getVolume
- x-linode-cli-action: view
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - volumes:read_only
+ - object_storage:read_only
responses:
'200':
- description: Returns a single Volume object.
+ description: >
+ Returns a boolean value indicating if this bucket has a corresponding TLS/SSL certificate that was
+ uploaded by an Account user.
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'
+ $ref: '#/components/schemas/ObjectStorageSSLResponse'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
- lang: Shell
source: >
curl -H "Authorization: Bearer $TOKEN" \
- https://api.linode.com/v4/volumes/12345
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/ssl
- lang: CLI
source: >
- linode-cli volumes view 12345
- put:
- x-linode-grant: read_write
+ linode-cli object-storage ssl-view \
+ us-east-1 example-bucket
+ post:
+ operationId: createObjectStorageSSL
+ x-linode-cli-action: ssl-upload
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage TLS/SSL Cert Upload
+ description: |
+ Upload a TLS/SSL certificate and private key to be served when you visit your Object Storage bucket via HTTPS.
+ Your TLS/SSL certificate and private key are stored encrypted at rest.
+
+
+ To replace an expired certificate, [delete your current certificate](/docs/api/object-storage/#object-storage-tlsssl-cert-delete)
+ and upload a new one.
tags:
- - Volumes
- summary: Volume Update
- description: >
- Updates a Volume that you have permission to `read_write`.
- operationId: updateVolume
- x-linode-cli-action: update
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - volumes:read_write
+ - object_storage:read_write
requestBody:
- description: >
- If any updated field fails to pass validation, the Volume will not be
- updated.
- required: true
+ description: Upload this TLS/SSL certificate with its corresponding secret key.
content:
application/json:
schema:
- allOf:
- - $ref: '#/components/schemas/Volume'
- - type: object
- properties:
- size:
- readOnly: true
- linode_id:
- readOnly: true
+ $ref: '#/components/schemas/ObjectStorageSSL'
responses:
'200':
- description: The updated Volume.
+ description: Returns whether this bucket has a corresponding TLS/SSL certificate that was uploaded by a user.
content:
application/json:
schema:
- $ref: '#/components/schemas/Volume'
+ $ref: '#/components/schemas/ObjectStorageSSLResponse'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -15832,37 +16337,34 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X PUT -d '{
- "label": "my-volume"
- }' \
- https://api.linode.com/v4/volumes/12345
+ -X POST -d ‘{
+ "certificate": "-----BEGIN CERTIFICATE-----\nMIIDbDCCAlQCCQCl\n-----END CERTIFICATE-----",
+ "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADIAQCQI\n-----END PRIVATE KEY-----"
+ }’ \
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/ssl
- lang: CLI
source: >
- linode-cli volumes update 12345 \
- --label my_volume
+ linode-cli object-storage ssl-upload \
+ us-east-1 example-bucket \
+ --certificate "-----BEGIN CERTIFICATE-----\nMIIDbDCCAlQCCQCl\n-----END CERTIFICATE-----" \
+ --private_key "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADIAQCQI\n-----END PRIVATE KEY-----"
delete:
- x-linode-grant: read_write
- tags:
- - Volumes
- summary: Volume Delete
+ operationId: deleteObjectStorageSSL
+ x-linode-cli-action: ssl-delete
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage TLS/SSL Cert Delete
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.
-
- * Volumes that are migrating cannot be deleted until the migration is finished.
- operationId: deleteVolume
- x-linode-cli-action: delete
+ Deletes this Object Storage bucket's user uploaded TLS/SSL certificate and private key.
+ tags:
+ - Object Storage
security:
- personalAccessToken: []
- oauth:
- - volumes:read_write
+ - object_storage:read_write
responses:
'200':
- description: Volume deletion successful.
+ description: Deletes this Object Storage bucket's user uploaded TLS/SSL certificate and private key.
content:
application/json:
schema:
@@ -15872,143 +16374,116 @@ paths:
x-code-samples:
- lang: Shell
source: >
- curl -H "Content-Type: application/json" \
- -H "Authorization: Bearer $TOKEN" \
+ curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
- https://api.linode.com/v4/volumes/12345
+ https://api.linode.com/v4/object-storage/buckets/us-east-1/example-bucket/ssl
- 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: Volume Attach
- 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.
+ linode-cli object-storage ssl-delete \
+ us-east-1 example-bucket
+ /object-storage/transfer:
+ get:
+ operationId: getObjectStorageTransfer
+ x-linode-cli-skip: true
+ servers:
+ - url: https://api.linode.com/v4
+ summary: Object Storage Transfer View
+ description: |
+ The amount of outbound data transfer used by your account's Object Storage buckets.
+ Object Storage adds 1 terabyte of outbound data transfer to your data transfer pool.
+ See the [Object Storage Pricing and Limitations](/docs/guides/pricing-and-limitations/)
+ guide for details on Object Storage transfer quotas.
+
tags:
- - Volumes
- operationId: attachVolume
- x-linode-cli-action: attach
+ - Object Storage
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_id
- properties:
- linode_id:
- type: integer
- description: The ID of the Linode to attach the volume to.
- 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
- persist_across_boots:
- type: boolean
- description: >
- Defaults to true, if false is provided, the Volume will
- not be attached to the Linode Config. In this case more than
- 8 Volumes may be attached to a Linode if a Linode has
- 16GB of RAM or more. The number of volumes that can be
- attached is equal to the number of GB of RAM that the
- Linode has, up to a maximum of 64. `config_id` should not
- be passed if this is set to false and linode_id must be
- passed. The Linode must be running.
+ - object_storage:read_only
+ responses:
+ '200':
+ description: >
+ Returns the amount of outbound data transfer used by your account's Object Storage buckets.
+ content:
+ application/json:
+ schema:
+ properties:
+ used:
+ type: integer
+ description: >
+ The amount of outbound data transfer used by your account's Object Storage buckets,
+ in bytes, for the current month’s billing cycle.
+ example: 12956600198
+ readOnly: true
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/object-storage/transfer/
+ /profile:
+ x-linode-cli-command: profile
+ get:
+ tags:
+ - Profile
+ summary: Profile View
+ 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: Volume was attached to a Linode.
+ description: Profile response.
content:
application/json:
schema:
- $ref: '#/components/schemas/Volume'
+ $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 POST -d '{
- "linode_id": 12346,
- "config_id": 23456
- }' \
- https://api.linode.com/v4/volumes/12345/attach
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/profile
- 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: Volume Clone
- 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.
-
- * Only Volumes with a `status` of "active" can be cloned.
+ linode-cli profile view
+ put:
tags:
- - Volumes
- operationId: cloneVolume
- x-linode-cli-action: clone
+ - Profile
+ summary: Profile Update
+ description: >
+ Update information in your Profile. This endpoint requires the
+ "account:read_write" OAuth Scope.
+ operationId: updateProfile
+ x-linode-cli-action: update
security:
- personalAccessToken: []
- oauth:
- - volumes:read_write
+ - account:read_write
requestBody:
- description: The requested state your Volume will be cloned into.
+ description: The fields to update.
required: true
content:
application/json:
schema:
- type: object
- required:
- - label
- properties:
- label:
- $ref: '#/components/schemas/Volume/properties/label'
+ $ref: '#/components/schemas/Profile'
responses:
'200':
- description: Clone started.
+ description: Profile updated successfully.
content:
application/json:
schema:
- $ref: '#/components/schemas/Volume'
+ $ref: '#/components/schemas/Profile'
default:
$ref: '#/components/responses/ErrorResponse'
x-code-samples:
@@ -16016,101 +16491,205 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "label": "my-volume"
+ -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/volumes/12345/clone
+ https://api.linode.com/v4/profile
- 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: Volume Detach
- 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.
+ 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:
+ x-linode-cli-command: profile
+ get:
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
tags:
- - Volumes
- operationId: detachVolume
- x-linode-cli-action: detach
+ - Profile
+ summary: Authorized Apps List
+ 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:
- - volumes:read_write
- - linodes:read_write
+ - account:read_only
responses:
'200':
- description: Volume was detached from a Linode.
+ description: |
+ A paginated list of apps you've authorized.
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
+ 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 volumes detach 12345
- /volumes/{volumeId}/resize:
+ linode-cli profile apps-list
+ /profile/apps/{appId}:
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: Volume Resize
+ - 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: Authorized App View
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.
+ 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: App Access Revoke
+ 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: Grants List
+ 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.
- * Volumes can only be resized up.
- * Only Volumes with a `status` of "active" can be resized.
+ 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:
- - Volumes
- operationId: resizeVolume
- x-linode-cli-action: resize
+ - Profile
+ summary: Two Factor Authentication Disable
+ 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:
- - 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'
+ - account:read_write
responses:
'200':
- description: Volume resize started.
+ description: TFA disabled.
content:
application/json:
schema:
@@ -16122,77 +16701,2378 @@ paths:
source: >
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
- -X POST -d '{
- "size": 30
- }' \
- https://api.linode.com/v4/volumes/12345/resize
+ -X POST \
+ https://api.linode.com/v4/profile/tfa-disable
- 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.
- 'firewall:read_only': Allows access to GET information about your Firewalls.
- 'firewall:read_write': Allows acces to all Firewall endpoints.
- '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.
- 'lke:read_only': Allows access to GET LKE Clusters on your Account.
- 'lke:read_write': Allows access to all endpoints related to LKE Clusters on your Account.
- 'longview:read_only': Allows access to GET your Longview Clients.
- 'longview:read_write': Allows access to all endpoints related to your Longview Clients.
- 'maintenance:read_only': Allows access to GET information about Maintenance on your account.
- 'nodebalancers:read_only': Allows access to GET NodeBalancers on your Account.
- 'nodebalancers:read_write': Allows access to all NodeBalancer endpoints.
- 'object_storage:read_only': Allows access to GET information related to your Object Storage.
- 'object_storage:read_write': Allows access to all Object Storage 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:
- AcceptedResponse:
- description: |
- Accepted with warning.
-
- A warnings array is included with the standard 200 response body.
- content:
- application/json:
- schema:
- type: object
- properties:
- warnings:
- type: array
- items:
- $ref: '#/components/schemas/WarningObject'
- DeprecatedResponse:
+ linode-cli profile tfa-disable
+ /profile/tfa-enable:
+ x-linode-cli-command: profile
+ post:
+ tags:
+ - Profile
+ summary: Two Factor Secret Create
description: |
- Request successful. This endpoint is deprecated and may be removed in a future release.
+ Generates a Two Factor secret for your User. To enable TFA for your User, enter the secret obtained from this command with the **Two Factor Authentication Confirm/Enable** ([POST /profile/tfa-enable-confirm](/docs/api/profile/#two-factor-authentication-confirmenable)) command.
+ Once enabled, logins from untrusted computers are required to provide
+ a TFA code before they are successful.
- A warnings array is included with the standard 200 response body.
- content:
- application/json:
- schema:
- type: object
+ **Note**: Before you can enable TFA, security questions must be answered for your User by accessing the **Security Questions Answer** ([POST /profile/security-questions](/docs/api/profile/#security-questions-answer)) command.
+ 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: Two Factor Authentication Confirm/Enable
+ 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
+ get:
+ tags:
+ - Profile
+ summary: Personal Access Tokens List
+ 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: Personal Access Token Create
+ 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:
+ 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}:
+ 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: Personal Access Token View
+ 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: Personal Access Token Update
+ 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: Personal Access Token Revoke
+ 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
+ /profile/logins:
+ x-linode-cli-command: profile
+ get:
+ tags:
+ - Profile
+ summary: Logins List
+ description: >
+ Returns a collection of successful account logins from this user during the last
+ 90 days.
+ operationId: getProfileLogins
+ x-linode-cli-action: logins-list
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: >
+ An array of successful account logins from this user during
+ the last 90 days.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Login'
+ 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/logins
+ - lang: CLI
+ source: >
+ linode-cli profile logins-list
+ /profile/logins/{loginId}:
+ parameters:
+ - name: loginId
+ in: path
+ description: The ID of the login object to access.
+ required: true
+ schema:
+ type: integer
+ x-linode-cli-command: profile
+ get:
+ tags:
+ - Profile
+ summary: Login View
+ description: >
+ Returns a login object displaying information about a successful
+ account login from this user.
+ operationId: getProfileLogin
+ x-linode-cli-action: login-view
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: The requested login object.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Login'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/profile/logins/1234
+ - lang: CLI
+ source: >
+ linode-cli profile login-view 1234
+ /profile/devices:
+ x-linode-cli-command: profile
+ get:
+ tags:
+ - Profile
+ summary: Trusted Devices List
+ description: >
+ Returns a paginated list of active TrustedDevices for your User.
+ Browsers with an active Remember Me Session are logged into your account
+ until the session expires or is revoked.
+ operationId: getDevices
+ x-linode-cli-action: devices-list
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: Returns a paginated list of TrustedDevice objects.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/TrustedDevice'
+ 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 "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/profile/devices
+ - lang: CLI
+ source: >
+ linode-cli profile devices-list
+ /profile/devices/{deviceId}:
+ x-linode-cli-command: profile
+ parameters:
+ - name: deviceId
+ in: path
+ description: The ID of the TrustedDevice
+ required: true
+ schema:
+ type: integer
+ get:
+ tags:
+ - Profile
+ summary: Trusted Device View
+ description: >
+ Returns a single active TrustedDevice for your User.
+ operationId: getTrustedDevice
+ x-linode-cli-action: device-view
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: The requested TrustedDevice object
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TrustedDevice'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/profile/devices/123
+ - lang: CLI
+ source: >
+ linode-cli profile device-view 123
+ delete:
+ tags:
+ - Profile
+ summary: Trusted Device Revoke
+ description: >
+ Revoke an active TrustedDevice for your User. Once a TrustedDevice is revoked, this
+ device will have to log in again before accessing your Linode account.
+ operationId: revokeTrustedDevice
+ x-linode-cli-action: device-revoke
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ responses:
+ '200':
+ description: Session revoked 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 DELETE \
+ https://api.linode.com/v4/profile/devices/123
+ - lang: CLI
+ source: >
+ linode-cli profile device-revoke 123
+ /profile/security-questions:
+ x-linode-cli-command: security-questions
+ get:
+ x-linode-grant: read_only
+ servers:
+ - url: https://api.linode.com/v4
+ tags:
+ - Profile
+ summary: Security Questions List
+ description: >
+ Returns a collection of security questions and their responses, if any, for your User Profile.
+ operationId: getSecurityQuestions
+ x-linode-cli-action: list
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: Returns a list of security questions.
+ content:
+ application/json:
+ x-linode-cli-nested-list: security_questions
+ x-linode-cli-use-schema:
+ type: object
+ properties:
+ security_questions.id:
+ x-linode-cli-display: 1
+ security_questions.question:
+ x-linode-cli-display: 2
+ security_questions.response:
+ x-linode-cli-display: 3
+ schema:
+ $ref: '#/components/schemas/SecurityQuestionsGet'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/profile/security-questions
+ - lang: CLI
+ source: >
+ linode-cli security-questions list
+ post:
+ tags:
+ - Profile
+ summary: Security Questions Answer
+ description: |
+ Adds security question responses for your User.
+
+ Requires exactly three unique questions.
+
+ Previous responses are overwritten if answered or reset to `null` if unanswered.
+
+ **Note**: Security questions must be answered for your User prior to accessing the **Two Factor Secret Create** ([POST /profile/tfa-enable](/docs/api/profile/#two-factor-secret-create)) command.
+ operationId: postSecurityQuestions
+ x-linode-cli-action: answer
+ x-linode-cli-skip: true
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ requestBody:
+ description: Answer Security Questions
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SecurityQuestionsPost'
+ responses:
+ '200':
+ description: Security Questions answered successfully.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SecurityQuestionsPost'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X POST -d '{
+ "security_questions": [
+ {
+ "question_id": 1,
+ "response": "secret answer 1"
+ },
+ {
+ "question_id": 2,
+ "response": "secret answer 2"
+ },
+ {
+ "question_id": 11,
+ "response": "secret answer 3"
+ }
+ ]
+ }' \
+ https://api.linode.com/v4/profile/security-questions
+ /profile/sshkeys:
+ x-linode-cli-command: sshkeys
+ get:
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ tags:
+ - Profile
+ summary: SSH Keys List
+ description: >
+ Returns a collection of SSH Keys you've added to your Profile.
+ operationId: getSSHKeys
+ x-linode-cli-action: list
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: Returns a paginated list of SSH Key objects.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/SSHKey'
+ 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 "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/profile/sshkeys
+ - lang: CLI
+ source: >
+ linode-cli sshkeys list
+ post:
+ tags:
+ - Profile
+ summary: SSH Key Add
+ description: >
+ Adds an SSH Key to your Account profile.
+ operationId: addSSHKey
+ x-linode-cli-action: create
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ requestBody:
+ description: Add SSH Key
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SSHKeyRequest'
+ responses:
+ '200':
+ description: SSH Key associated successfully.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SSHKey'
+ 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 SSH Key"
+ "ssh_key": "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
+ }' \
+ https://api.linode.com/v4/profile/sshkeys
+ - lang: CLI
+ source: >
+ linode-cli sshkeys create \
+ --label "My SSH Key"
+ --ssh_key "ssh-rsa AAAA_valid_public_ssh_key_123456785== user@their-computer"
+ /profile/sshkeys/{sshKeyId}:
+ x-linode-cli-command: sshkeys
+ parameters:
+ - name: sshKeyId
+ in: path
+ description: The ID of the SSHKey
+ required: true
+ schema:
+ type: integer
+ get:
+ tags:
+ - Profile
+ summary: SSH Key View
+ description: >
+ Returns a single SSH Key object identified by `id` that you have access
+ to view.
+ operationId: getSSHKey
+ x-linode-cli-action: view
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: An SSH Key object
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SSHKey'
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ https://api.linode.com/v4/profile/sshkeys/42
+ - lang: CLI
+ source: >
+ linode-cli sshkeys view 42
+ put:
+ tags:
+ - Profile
+ summary: SSH Key Update
+ description: >
+ Updates an SSH Key that you have permission to `read_write`.
+ operationId: updateSSHKey
+ 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/SSHKey'
+ responses:
+ '200':
+ description: SSH Key updated successfully.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SSHKey'
+ 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 laptop"
+ }' \
+ https://api.linode.com/v4/profile/sshkey/42
+ - lang: CLI
+ source: >
+ linode-cli sshkey update 42 \
+ --label "my laptop"
+ delete:
+ tags:
+ - Profile
+ summary: SSH Key Delete
+ description: >
+ Deletes an SSH Key you have access to.
+
+
+ **Note:** deleting an SSH Key will *not* remove it from any Linode or
+ Disk that was deployed with `authorized_keys`. In those cases, the keys
+ must be manually deleted on the Linode or Disk.
+ This endpoint will only delete the key's association from your Profile.
+ operationId: deleteSSHKey
+ x-linode-cli-action: delete
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ responses:
+ '200':
+ description: SSH Key deleted 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 "Authoriztion: Bearer $TOKEN" \
+ -X DELETE \
+ https://api.linode.com/v4/profile/sshkeys/42
+ - lang: CLI
+ source: >
+ linode-cli sshkey delete 42
+ /profile/phone-number:
+ x-linode-cli-command: phone
+ delete:
+ x-linode-grant: read_write
+ tags:
+ - Profile
+ summary: Phone Number Delete
+ description: |
+ Delete the verified phone number for the User making this request.
+
+ Use this command to opt out of SMS messages for the requesting User after a phone number has been verified with the **Phone Number Verify** ([POST /profile/phone-number/verify](/docs/api/profile/#phone-number-verify)) command.
+ operationId: deleteProfilePhoneNumber
+ x-linode-cli-command: delete
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ responses:
+ '200':
+ description: >
+ Phone number deletion request 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/profile/phone-number
+ - lang: CLI
+ source: >
+ linode-cli phone delete
+ post:
+ x-linode-grant: read_write
+ tags:
+ - Profile
+ summary: Phone Number Verification Code Send
+ description: |
+ Send a one-time verification code via SMS message to the submitted phone number. Providing your phone number helps ensure you can securely access your Account in case other ways to connect are lost. Your phone number is only used to verify your identity by sending an SMS message. Standard carrier messaging fees may apply.
+
+ * By accessing this command you are opting in to receive SMS messages. You can opt out of SMS messages by using the **Phone Number Delete** ([DELETE /profile/phone-number](/docs/api/profile/#phone-number-delete)) command after your phone number is verified.
+
+ * Verification codes are valid for 10 minutes after they are sent.
+
+ * Subsequent requests made prior to code expiration result in sending the same code.
+
+ Once a verification code is received, verify your phone number with the **Phone Number Verify** ([POST /profile/phone-number/verify](/docs/api/profile/#phone-number-verify)) command.
+ operationId: postProfilePhoneNumber
+ x-linode-cli-command: sms-code-send
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ requestBody:
+ description: Enter a phone number and country code for verification.
+ content:
+ application/json:
+ schema:
+ required:
+ - iso_code
+ - phone_number
+ type: object
+ properties:
+ iso_code:
+ type: string
+ description: The two-letter ISO 3166 country code associated with the phone number.
+ example: US
+ phone_number:
+ type: string
+ description: A valid phone number.
+ format: phone
+ example: 555-555-5555
+ responses:
+ '200':
+ description: >
+ Phone number verification code request 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 POST -d '{
+ "iso_code": "US",
+ "phone_number": "555-555-5555"
+ }' \
+ https://api.linode.com/v4/profile/phone-number
+ - lang: CLI
+ source: >
+ linode-cli phone sms-code-send \
+ --iso-code US \
+ --phone-number 555-555-5555
+ /profile/phone-number/verify:
+ x-linode-cli-command: phone
+ post:
+ x-linode-grant: read_write
+ tags:
+ - Profile
+ summary: Phone Number Verify
+ description: |
+ Verify a phone number by confirming the one-time code received via SMS message after accessing the **Phone Verification Code Send** ([POST /profile/phone-number](/docs/api/profile/#phone-number-verification-code-send)) command.
+
+ * Verification codes are valid for 10 minutes after they are sent.
+
+ * Only the same User that made the verification code request can use that code with this command.
+
+ Once completed, the verified phone number is assigned to the User making the request. To change the verified phone number for a User, first use the **Phone Number Delete** ([DELETE /profile/phone-number](/docs/api/profile/#phone-number-delete)) command, then begin the verification process again with the **Phone Verification Code Send** ([POST /profile/phone-number](/docs/api/profile/#phone-number-verification-code-send)) command.
+ operationId: postProfilePhoneNumberVerify
+ x-linode-cli-command: verify
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ requestBody:
+ description: Enter a phone verification code for confirmation.
+ content:
+ application/json:
+ schema:
+ required:
+ - otp_code
+ type: object
+ properties:
+ otp_code:
+ type: string
+ description: The one-time code received via SMS message after accessing the **Phone Verification Code Send** ([POST /profile/phone-number](/docs/api/profile/#phone-number-verification-code-send)) command.
+ example: "US"
+ responses:
+ '200':
+ description: >
+ Phone number verification 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 POST -d '{
+ "otp_code": "123456"
+ }' \
+ https://api.linode.com/v4/profile/phone-number/verify
+ - lang: CLI
+ source: >
+ linode-cli phone verify \
+ --otp_code 123456
+ /profile/preferences:
+ x-linode-cli-command: profile
+ get:
+ x-linode-grant: read_only
+ tags:
+ - Profile
+ summary: User Preferences View
+ description: |
+ View a list of user preferences tied to the OAuth client that generated
+ the token making the request. The user preferences endpoints allow
+ consumers of the API to store arbitrary JSON data, such as a user's font
+ size preference or preferred display name. User preferences are available
+ for each OAuth client registered to your account, and as such an account can
+ have multiple user preferences.
+ operationId: getUserPreferences
+ x-linode-cli-action: preferences-view
+ x-linode-cli-skip: true
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: Returns an object of user preferences.
+ content:
+ application/json:
+ schema:
+ type: object
+ description: A dictionary of user preferences.
+ example: { "key1": "value1", "key2": "value2"}
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X GET \
+ https://api.linode.com/v4/profile/preferences
+ put:
+ tags:
+ - Profile
+ summary: User Preferences Update
+ description: >
+ Updates a user's preferences. These preferences are tied to the
+ OAuth client that generated the token making the request. The user
+ preferences endpoints allow consumers of the API to store arbitrary
+ JSON data, such as a user's font size preference or preferred display
+ name. An account may have multiple preferences. Preferences, and the
+ pertaining request body, may contain any arbitrary JSON data that
+ the user would like to store.
+ operationId: updateUserPreferences
+ x-linode-cli-action: preferences-update
+ x-linode-cli-skip: true
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ requestBody:
+ description: >
+ The user preferences to update or store.
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ description: |
+ Arbitrary JSON of your choosing.
+ responses:
+ '200':
+ description: Returns an object of user preferences.
+ content:
+ application/json:
+ schema:
+ type: object
+ description: An object of user preferences.
+ example: { "key1": "value1", "key2": "value2"}
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $TOKEN" \
+ -X PUT -d '{
+ "key1": "value1",
+ "key1": "value2"
+ }' \
+ https://api.linode.com/v4/profile/preferences
+
+ /regions:
+ x-linode-cli-command: regions
+ get:
+ tags:
+ - Regions
+ summary: Regions List
+ 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: Region View
+ 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: Support Tickets List
+ 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: Support Ticket Open
+ 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: Support Ticket View
+ 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: Ticket Attachment Create
+ 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.
+
+ Note: Accepted file extensions include: .gif, .jpg, .jpeg, .pjpg,
+ .pjpeg, .tif, .tiff, .png, .pdf, or .txt.
+ 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 "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}/close:
+ 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: Support Ticket Close
+ description: >
+ Closes a Support Ticket you have access to modify.
+ operationId: closeTicket
+ x-linode-cli-action: close
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ responses:
+ '200':
+ description: Support Ticket closed successfully.
+ content:
+ application/json:
+ schema:
+ type: object
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ x-code-samples:
+ - lang: Shell
+ source: >
+ curl -H "Authorization: Bearer $TOKEN" \
+ -X POST \
+ https://api.linode.com/v4/support/tickets/11223344/close
+ - lang: CLI
+ source: >
+ linode-cli tickets close 11223344
+ /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: Replies List
+ 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: Reply Create
+ 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!"
+ /tags:
+ x-linode-cli-command: tags
+ get:
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ tags:
+ - Tags
+ summary: Tags List
+ description: >
+ Tags are User-defined labels attached to objects in your Account, such
+ as Linodes. They are used for specifying and grouping attributes of
+ objects that are relevant to the User.
+
+
+ This endpoint returns a paginated list of Tags on your account.
+ operationId: getTags
+ x-linode-cli-action: list
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: A paginated list of Tags
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tag'
+ 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/tags
+ post:
+ tags:
+ - Tags
+ summary: New Tag Create
+ description: >
+ Creates a new Tag and optionally tags requested objects with it
+ immediately.
+
+
+ **Important**: You must be an unrestricted User in order to add or modify
+ Tags.
+ operationId: createTag
+ x-linode-cli-action: create
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ requestBody:
+ description: >
+ The tag to create, and optionally the objects to tag.
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - label
+ properties:
+ label:
+ type: string
+ description: >
+ The new Tag.
+ minLength: 3
+ maxLength: 50
+ example: example tag
+ linodes:
+ type: array
+ items:
+ type: integer
+ description: >
+ A list of Linode IDs to apply the new Tag to. You must be
+ allowed to `read_write` all of the requested Linodes, or the
+ Tag will not be created and an error will be returned.
+ example:
+ - 123
+ - 456
+ domains:
+ type: array
+ items:
+ type: integer
+ description: >
+ A list of Domain IDs to apply the new Tag to. You must be
+ allowed to `read_write` all of the requested Domains, or the
+ Tag will not be created and an error will be returned.
+ example:
+ - 564
+ - 565
+ volumes:
+ type: array
+ items:
+ type: integer
+ description: >
+ A list of Volume IDs to apply the new Tag to. You must be
+ allowed to `read_write` all of the requested Volumes, or the
+ Tag will not be created and an error will be returned.
+ example:
+ - 9082
+ - 10003
+ nodebalancers:
+ type: array
+ items:
+ type: integer
+ description: >
+ A list of NodeBalancer IDs to apply the new Tag to. You must
+ be allowed to `read_write` all of the requested NodeBalancers,
+ or the Tag will not be created and an error will be returned.
+ example:
+ - 10301
+ - 10501
+ responses:
+ '200':
+ description: The new Tag.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tag'
+ 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": "example tag",
+ "linodes": [123,456],
+ "volumes": [9082,10003]
+ }' \
+ https://api.linode.com/v4/tags
+ - lang: CLI
+ source: >
+ linode-cli tags create \
+ --label 'example tag' \
+ --linodes 123 \
+ --linodes 456 \
+ --volumes 9082 \
+ --volumes 10003
+ /tags/{label}:
+ x-linode-cli-command: tags
+ parameters:
+ - name: label
+ in: path
+ schema:
+ type: string
+ required: true
+ get:
+ summary: Tagged Objects List
+ description: >
+ Returns a paginated list of all objects you've tagged with the requested
+ Tag. This is a mixed collection of all object types.
+ tags:
+ - Tags
+ operationId: getTaggedObjects
+ x-linode-cli-command: view
+ x-linode-cli-skip: true
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_only
+ responses:
+ '200':
+ description: >
+ A paginated list of objects, organized by type, that have been
+ tagged with the requested Tag.
+ content:
+ application/json:
+ schema:
+ properties:
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ type:
+ type: string
+ example: 'linode'
+ data:
+ oneOf:
+ - x-linode-ref-name: "linode"
+ $ref: '#/components/schemas/Linode'
+ - x-linode-ref-name: "domain"
+ $ref: '#/components/schemas/Domain'
+ - x-linode-ref-name: "volume"
+ $ref: '#/components/schemas/Volume'
+ - x-linode-ref-name: "nodeBalancer"
+ $ref: '#/components/schemas/NodeBalancer'
+ discriminator:
+ propertyName: type
+ 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/tags/example tag"
+ delete:
+ summary: Tag Delete
+ description: >
+ Remove a Tag from all objects and delete it.
+
+
+ **Important**: You must be an unrestricted User in order to add or modify
+ Tags.
+ tags:
+ - Tags
+ operationId: deleteTag
+ x-linode-cli-action: delete
+ security:
+ - personalAccessToken: []
+ - oauth:
+ - account:read_write
+ responses:
+ '200':
+ description: Tag deleted.
+ content:
+ application/json:
+ schema:
+ type: object
+ default:
+ $ref: '#/components/responses/ErrorResponse'
+ /volumes:
+ x-linode-cli-command: volumes
+ get:
+ x-linode-grant: read_only
+ parameters:
+ - $ref: '#/components/parameters/pageOffset'
+ - $ref: '#/components/parameters/pageSize'
+ summary: Volumes List
+ 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: Volume Create
+ 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.
+ 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
+ x-linode-cli-allowed-defaults:
+ - region
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - label
+ 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
+ linode_id:
+ type: integer
+ description: >
+ The Linode this volume should be attached to upon creation.
+ If not given, the volume will be created without an attachment.
+ example: 123
+ size:
+ type: integer
+ description: >
+ The initial size of this volume, in GB. Be aware that volumes
+ may only be resized up after creation.
+ example: 20
+ default: 20
+ label:
+ type: string
+ description: >
+ The Volume's label, which is also used in the
+ `filesystem_path` of the resulting volume.
+ example: my-volume
+ minLength: 1
+ maxLength: 32
+ pattern: '^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$'
+ 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. If a
+ `linode_id` is sent without a `config_id`, the volume will be
+ attached:
+
+ * to the Linode's only config if it only has one config.
+ * to the Linode's last used config, if possible.
+
+ If no config can be selected for attachment, an error will be
+ returned.
+ example: 23456
+ tags:
+ x-linode-filterable: true
+ description: >
+ An array of Tags applied to this object. Tags are for organizational
+ purposes only.
+ type: array
+ items:
+ type: string
+ example:
+ - example tag
+ - another example
+ 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: Volume View
+ 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: Volume Update
+ 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:
+ size:
+ readOnly: true
+ 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: Volume Delete
+ 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.
+
+ * Volumes that are migrating cannot be deleted until the migration is finished.
+ 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: Volume Attach
+ 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_id
+ properties:
+ linode_id:
+ type: integer
+ description: The ID of the Linode to attach the volume to.
+ 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
+ persist_across_boots:
+ type: boolean
+ description: >
+ Defaults to true, if false is provided, the Volume will
+ not be attached to the Linode Config. In this case more than
+ 8 Volumes may be attached to a Linode if a Linode has
+ 16GB of RAM or more. The number of volumes that can be
+ attached is equal to the number of GB of RAM that the
+ Linode has, up to a maximum of 64. `config_id` should not
+ be passed if this is set to false and linode_id must be
+ passed. The Linode must be running.
+
+ responses:
+ '200':
+ description: Volume was attached to a Linode.
+ 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 '{
+ "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: Volume Clone
+ 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.
+
+ * Only Volumes with a `status` of "active" can be cloned.
+ 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:
+ $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"
+ }' \
+ 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: Volume Detach
+ 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: Volume Resize
+ 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.
+
+ * Only Volumes with a `status` of "active" can be resized.
+ 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.
+ 'firewall:read_only': Allows access to GET information about your Firewalls.
+ 'firewall:read_write': Allows acces to all Firewall endpoints.
+ '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.
+ 'lke:read_only': Allows access to GET LKE Clusters on your Account.
+ 'lke:read_write': Allows access to all endpoints related to LKE Clusters on your Account.
+ 'longview:read_only': Allows access to GET your Longview Clients.
+ 'longview:read_write': Allows access to all endpoints related to your Longview Clients.
+ 'maintenance:read_only': Allows access to GET information about Maintenance on your account.
+ 'nodebalancers:read_only': Allows access to GET NodeBalancers on your Account.
+ 'nodebalancers:read_write': Allows access to all NodeBalancer endpoints.
+ 'object_storage:read_only': Allows access to GET information related to your Object Storage.
+ 'object_storage:read_write': Allows access to all Object Storage 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:
+ AcceptedResponse:
+ description: |
+ Accepted with warning.
+
+ A warnings array is included with the standard 200 response body.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ warnings:
+ type: array
+ items:
+ $ref: '#/components/schemas/WarningObject'
+ DeprecatedResponse:
+ description: |
+ Request successful. This endpoint is deprecated and may be removed in a future release.
+
+ A warnings array is included with the standard 200 response body.
+ content:
+ application/json:
+ schema:
+ type: object
properties:
warnings:
type: array
@@ -16288,398 +19168,1193 @@ components:
schemas:
Account:
type: object
- description: Account object
+ description: Account object
+ properties:
+ active_promotions:
+ type: array
+ readOnly: true
+ items:
+ $ref: '#/components/schemas/Promotion'
+ active_since:
+ type: string
+ format: date-time
+ description: The datetime of when the account was activated.
+ example: '2018-01-01T00:01:01'
+ readOnly: true
+ 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
+ balance_uninvoiced:
+ type: number
+ readOnly: true
+ description: >
+ This Account's current estimated invoice in US dollars. This is not
+ your final invoice balance. Transfer charges are not included in
+ the estimate.
+ example: 145
+ x-linode-cli-display: 4
+ billing_source:
+ type: string
+ readOnly: true
+ enum:
+ - akamai
+ - linode
+ description: >
+ The source of service charges for this Account, as determined by its relationship with Akamai.
+
+ Accounts that are associated with Akamai-specific customers return a value of `akamai`.
+
+ All other Accounts return a value of `linode`.
+ example: akamai
+ capabilities:
+ type: array
+ items:
+ type: string
+ description: >
+ A list of capabilities your account supports.
+ example:
+ - Linodes
+ - NodeBalancers
+ - Block Storage
+ - Object Storage
+ readOnly: true
+ 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 ISO 3166 country code of this Account's billing address.
+ 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 (US) or Canada (CA), only the two-letter
+ ISO 3166 State or Province code are accepted. If entering a US military address, state abbreviations (AA, AE, AP) should be entered. If the address is outside
+ the US or CA, this is the Province associated with the Account's billing
+ address.
+ maxLength: 24
+ example: PA
+ 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 an empty string (`""`).
+ maxLength: 25
+ example: ATU99999999
+ euuid:
+ type: string
+ description: >
+ An external unique identifier for this account.
+ format: uuid
+ readOnly: true
+ example: E1AF5EEC-526F-487D-B317EBEB34C87D71
+ zip:
+ type: string
+ description: |
+ The zip code of this Account's billing address. The following restrictions apply:
+
+ - May only consist of letters, numbers, spaces, and hyphens.
+ - Must not contain more than 9 letter or number characters.
+ example: 19102-1234
+ AccountSettings:
+ type: object
+ description: Account Settings object
properties:
- active_promotions:
- type: array
- items:
- $ref: '#/components/schemas/Promotion'
- active_since:
+ 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
+ readOnly: true
+ description: >
+ The Longview Pro tier you are currently subscribed to. The value must be
+ a [Longview Subscription](/docs/api/longview/#longview-subscriptions-list)
+ ID or `null` for Longview Free.
+ example: longview-3
+ 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
+ backups_enabled:
+ type: boolean
+ description: >
+ Account-wide backups default. If `true`, all Linodes created will
+ automatically be enrolled in the Backups service. If `false`, Linodes
+ will not be enrolled by default, but may still be enrolled on creation
+ or later.
+ example: true
+ x-linode-cli-display: 4
+ object_storage:
+ type: string
+ readOnly: true
+ enum:
+ - disabled
+ - suspended
+ - active
+ description: >
+ A string describing the status of this account's Object Storage
+ service enrollment.
+ default: disabled
+ example: active
+ x-linode-cli-display: 5
+ 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: The datetime of when the account was activated.
+ description: When this app was authorized.
example: '2018-01-01T00:01:01'
readOnly: true
- address_1:
+ x-linode-filterable: true
+ x-linode-cli-display: 5
+ expiry:
type: string
- description: First line of this Account's billing address.
- maxLength: 64
- example: 123 Main Street
- address_2:
+ format: date-time
+ description: >
+ When the app's access to your account expires. If `null`, the app's
+ access must be revoked manually.
+ example: '2018-01-15T00:01:01'
+ readOnly: true
+ x-linode-cli-display: 6
+ x-linode-filterable: true
+ nullable: true
+ website:
type: string
- description: Second line of this Account's billing address.
- maxLength: 64
- example: Suite A
- balance:
- type: number
+ format: url
+ description: >
+ The website where you can get more information about this app.
+ example: example.org
readOnly: true
- description: This Account's balance, in US dollars.
- example: 200
x-linode-cli-display: 4
- balance_uninvoiced:
- type: number
+ 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: >
- This Account's current estimated invoice in US dollars. This is not
- your final invoice balance. Transfer charges are not included in
- the estimate.
- example: 145
+ description: The date the Backup was taken.
+ example: '2018-01-15T00:01:01'
x-linode-cli-display: 4
- capabilities:
+ 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
+ nullable: true
+ configs:
type: array
items:
type: string
+ example: My Debian 9 Config
+ readOnly: true
description: >
- A list of capabilities your account supports.
- example:
- - Linodes
- - NodeBalancers
- - Block Storage
- - Object Storage
+ 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
- city:
+ 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
+ - cvv
+ properties:
+ card_number:
type: string
- description: The city for this Account's billing address.
+ description: Your credit card number. No spaces or dashes allowed.
+ minLength: 14
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
+ format: digits
+ example: 4111111111111111
+ expiry_month:
+ type: integer
+ minimum: 1
+ maximum: 12
description: >
- The two-letter ISO 3166 country code of this Account's billing address.
- 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:
+ 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
+ minLength: 4
+ maxLength: 4
+ 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
+ cvv:
type: string
- description: The first name of the person associated with this Account.
- maxLength: 50
- example: John
+ minLength: 3
+ maxLength: 4
+ format: digits
+ description: >
+ CVV (Card Verification Value) of the credit card, typically found on the back of the card.
+ example: '123'
+ Database:
+ type: object
+ description: A general Managed Database instance object containing properties that are identical for all database types.
+ properties:
+ id:
+ type: integer
+ description: A unique ID that can be used to identify and reference the Managed Database.
+ example: 123
x-linode-cli-display: 1
- last_name:
+ readOnly: true
+ label:
type: string
- description: The last name of the person associated with this Account.
- maxLength: 50
- example: Smith
+ maxLength: 32
+ minLength: 3
+ x-linode-filterable: true
+ example: example-db
+ description: A unique, user-defined string referring to the Managed Database.
x-linode-cli-display: 2
- phone:
+ type:
type: string
- description: The phone number associated with this Account.
- maxLength: 32
- example: 215-555-1212
- state:
+ description: The Linode Instance type used by the Managed Database for its nodes.
+ example: g6-dedicated-2
+ x-linode-filterable: true
+ x-linode-cli-display: 4
+ engine:
type: string
- description: >
- If billing address is in the United States (US) or Canada (CA), only the two-letter
- ISO 3166 State or Province code are accepted. If the address is outside
- the US or CA, this is the Province associated with the Account's billing
- address.
- maxLength: 24
- example: PA
- tax_id:
+ enum:
+ - mongodb
+ - mysql
+ - postgresql
+ description: The Managed Database engine type.
+ example: mysql
+ x-linode-filterable: true
+ x-linode-cli-display: 6
+ readOnly: true
+ version:
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
- euuid:
+ description: The Managed Database engine version.
+ example: "8.0.26"
+ x-linode-filterable: true
+ x-linode-cli-display: 7
+ readOnly: true
+ region:
type: string
- description: >
- An external unique identifier for this account.
- format: uuid
+ description: The [Region](/docs/api/regions/) ID for the Managed Database.
+ example: us-east
+ x-linode-filterable: true
+ x-linode-cli-display: 3
+ status:
+ type: string
+ enum:
+ - provisioning
+ - active
+ - suspending
+ - suspended
+ - resuming
+ - restoring
+ - failed
+ - degraded
+ - updating
+ - backing_up
+ description: The operating status of the Managed Database.
+ example: active
+ x-linode-filterable: true
+ x-linode-cli-display: 100
+ x-linode-cli-color:
+ provisioning: yellow
+ active: green
+ resuming: yellow
+ restoring: yellow
+ failed: red
+ degraded: red
+ updating: yellow
+ default_: white
+ readOnly: true
+ encrypted:
+ type: boolean
+ default: false
+ description: Whether the Managed Databases is encrypted.
+ example: false
+ allow_list:
+ type: array
+ example:
+ - "203.0.113.1/32"
+ - "192.0.1.0/24"
+ description: |
+ A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.
+
+ By default, this is an empty array (`[]`), which blocks all connections (both public and private) to the Managed Database.
+ items:
+ type: string
+ format: ipv4/prefix_length
+ pattern: '^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'
+ cluster_size:
+ type: integer
+ enum:
+ - 1
+ - 3
+ example: 3
+ default: 1
+ description: |
+ The number of Linode Instance nodes deployed to the Managed Database.
+
+ Choosing 3 nodes creates a high availability cluster consisting of 1 primary node and 2 replica nodes.
+ x-linode-cli-display: 5
+ hosts:
+ type: object
+ readOnly: true
+ description: The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete.
+ properties:
+ primary:
+ type: string
+ description: The primary host for the Managed Database.
+ example: lin-123-456-mysql-mysql-primary.servers.linodedb.net
+ nullable: true
+ secondary:
+ type: string
+ description: |
+ The secondary/private network host for the Managed Database.
+
+ A private network host and a private IP can only be used to access a Database Cluster from Linodes in the same data center and will not incur transfer costs.
+
+ **Note**: The secondary hostname is publicly viewable and accessible.
+ example: lin-123-456-mysql-primary-private.servers.linodedb.net
+ nullable: true
+ created:
+ type: string
+ format: date-time
+ description: When this Managed Database was created.
+ example: '2022-01-01T00:01:01'
+ readOnly: true
+ updated:
+ type: string
+ format: date-time
+ description: When this Managed Database was last updated.
+ example: '2022-01-01T00:01:01'
+ readOnly: true
+ updates:
+ type: object
+ description: Configuration settings for automated patch update maintenance for the Managed Database.
+ properties:
+ frequency:
+ type: string
+ default: weekly
+ enum:
+ - weekly
+ - monthly
+ description: Whether maintenance occurs on a weekly or monthly basis.
+ example: weekly
+ duration:
+ type: integer
+ minimum: 1
+ maximum: 3
+ description: The maximum maintenance window time in hours.
+ example: 3
+ hour_of_day:
+ type: integer
+ minimum: 0
+ maximum: 23
+ description: The hour to begin maintenance based in UTC time.
+ example: 0
+ day_of_week:
+ type: integer
+ minimum: 1
+ maximum: 7
+ description: The day to perform maintenance. 1=Monday, 2=Tuesday, etc.
+ example: 1
+ week_of_month:
+ type: integer
+ minimum: 1
+ maximum: 4
+ nullable: true
+ description: |
+ The week of the month to perform `monthly` frequency updates. Defaults to `null`.
+
+ * Required for `monthly` frequency updates.
+
+ * Must be `null` for `weekly` frequency updates.
+ example: null
+ instance_uri:
+ type: string
+ example: "/v4/databases/mysql/instances/123"
+ description: |
+ Append this to `https://api.linode.com` to run commands for the Managed Database.
readOnly: true
- example: E1AF5EEC-526F-487D-B317EBEB34C87D71
- zip:
+ DatabaseBackup:
+ type: object
+ description: A database backup object.
+ properties:
+ id:
+ type: integer
+ description: The ID of the database backup object.
+ example: 123
+ x-linode-cli-display: 1
+ type:
+ type: string
+ enum:
+ - snapshot
+ - auto
+ description: The type of database backup, determined by how the backup was created.
+ example: auto
+ x-linode-filterable: true
+ x-linode-cli-display: 3
+ label:
type: string
+ maxLength: 30
description: |
- The zip code of this Account's billing address. The following restrictions apply:
+ The database backup's label, for display purposes only.
- - May only consist of letters, numbers, spaces, and hyphens.
- - Must not contain more than 9 letter or number characters.
- example: 19102-1234
- AccountSettings:
+ Must include only ASCII letters or numbers.
+ example: Scheduled - 02/04/22 11:11 UTC-XcCRmI
+ x-linode-cli-display: 2
+ created:
+ type: string
+ format: datetime
+ example: '2022-01-01T00:01:01'
+ description: A time value given in a combined date and time format that represents when the database backup was created.
+ x-linode-filterable: true
+ x-linode-cli-display: 4
+ DatabaseCredentials:
type: object
- description: Account Settings object
+ description: Managed Database object for database credentials.
properties:
- managed:
- type: boolean
+ username:
+ type: string
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:
+ description: The root username for the Managed Database instance.
+ example: linroot
+ x-linode-cli-display: 1
+ password:
type: string
readOnly: true
- description: >
- The Longview Pro tier you are currently subscribed to. The value must be
- a [Longview Subscription](/docs/api/longview/#longview-subscriptions-list)
- ID or `null` for Longview Free.
- example: longview-3
+ description: The randomly-generated root password for the Managed Database instance.
+ example: s3cur3P@ssw0rd
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
+ DatabaseEngine:
+ type: object
+ description: Managed Database engine object.
+ properties:
+ id:
+ type: string
+ example: mysql/8.0.26
+ description: The Managed Database engine ID in engine/version format.
x-linode-cli-display: 1
- backups_enabled:
- type: boolean
- description: >
- Account-wide backups default. If `true`, all Linodes created will
- automatically be enrolled in the Backups service. If `false`, Linodes
- will not be enrolled by default, but may still be enrolled on creation
- or later.
- example: true
- x-linode-cli-display: 4
- object_storage:
+ engine:
type: string
- readOnly: true
- enum:
- - disabled
- - suspended
- - active
- description: >
- A string describing the status of this account's Object Storage
- service enrollment.
- default: disabled
- example: active
- x-linode-cli-display: 5
- AuthorizedApp:
+ example: mysql
+ description: The Managed Database engine type.
+ x-linode-filterable: true
+ x-linode-cli-display: 2
+ version:
+ type: string
+ example: "8.0.26"
+ description: The Managed Database engine version.
+ x-linode-filterable: true
+ x-linode-cli-display: 3
+ DatabaseMongoDB:
type: object
- description: >
- An application you have authorized access to your Account through OAuth.
+ description: Managed MongoDB Databases object.
properties:
id:
- type: integer
- description: >
- This authorization's ID, used for revoking access.
- example: 123
- readOnly: true
+ $ref: '#/components/schemas/Database/properties/id'
x-linode-cli-display: 1
label:
- type: string
- description: >
- The name of the application you've authorized.
- example: example-app
- readOnly: true
+ $ref: '#/components/schemas/Database/properties/label'
x-linode-cli-display: 2
- thumbnail_url:
+ type:
+ $ref: '#/components/schemas/Database/properties/type'
+ x-linode-cli-display: 4
+ engine:
type: string
- format: url
- description: >
- The URL at which this app's thumbnail may be accessed.
- example: null
+ description: The Managed Database engine type.
+ example: mongodb
+ x-linode-filterable: true
+ x-linode-cli-display: 6
readOnly: true
- scopes:
+ version:
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
+ description: The Managed Database engine version.
+ example: "4.4.10"
+ x-linode-filterable: true
+ x-linode-cli-display: 7
readOnly: true
+ region:
+ $ref: '#/components/schemas/Database/properties/region'
x-linode-cli-display: 3
+ status:
+ $ref: '#/components/schemas/Database/properties/status'
+ x-linode-cli-display: 100
+ x-linode-cli-color:
+ provisioning: yellow
+ active: green
+ resuming: yellow
+ restoring: yellow
+ failed: red
+ degraded: red
+ default_: white
+ encrypted:
+ $ref: '#/components/schemas/Database/properties/encrypted'
+ allow_list:
+ $ref: '#/components/schemas/Database/properties/allow_list'
+ cluster_size:
+ $ref: '#/components/schemas/Database/properties/cluster_size'
+ x-linode-cli-display: 5
+ hosts:
+ type: object
+ readOnly: true
+ description: The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete.
+ properties:
+ primary:
+ type: string
+ description: The primary host for the Managed Database.
+ example: lin-0000-0000.servers.linodedb.net
+ nullable: true
+ secondary:
+ type: string
+ description: |
+ The secondary/private network host for the Managed Database.
+
+ A private network host and a private IP can only be used to access a Database Cluster from Linodes in the same data center and will not incur transfer costs.
+
+ **Note**: The secondary hostname is publicly viewable and accessible.
+ example: null
+ nullable: true
+ peers:
+ type: array
+ description: |
+ An array of peer addresses for this Database.
+ items:
+ type: string
+ description: |
+ The peer address of a Managed MongoDB Database cluster node. Each node in a cluster has its own unique peer address.
+ example:
+ - lin-0000-0000.servers.linodedb.net
+ - lin-0000-0001.servers.linodedb.net
+ - lin-0000-0002.servers.linodedb.net
+ replica_set:
+ nullable: true
+ default: null
+ type: string
+ maxLength: 64
+ description: |
+ Label for configuring a MongoDB [replica set](https://www.mongodb.com/docs/manual/replication/). Choose the same label on multiple Databases to include them in the same replica set.
+
+ If `null`, the Database is not included in any replica set.
+ example: null
+ ssl_connection:
+ type: boolean
+ default: true
+ example: true
+ description: |
+ Whether to require SSL credentials to establish a connection to the Managed Database.
+
+ Use the **Managed MongoDB Database Credentials View** ([GET /databases/mongodb/instances/{instanceId}/credentials](/docs/api/databases/#managed-mongodb-database-credentials-view)) command for access information.
+ compression_type:
+ type: string
+ enum:
+ - none
+ - snappy
+ - zlip
+ default: none
+ example: none
+ description: |
+ The type of data compression for this Database.
+
+ Snappy has a lower comparative compression ratio and resource consumption rate.
+
+ Zlip has a higher comparative compression ratio and resource consumption rate.
+ x-linode-cli-display: 99
+ storage_engine:
+ type: string
+ enum:
+ - mmapv1
+ - wiredtiger
+ default: wiredtiger
+ example: wiredtiger
+ description: |
+ The type of storage engine for this Database.
+
+ **Note:** MMAPV1 is not available for MongoDB versions 4.0 and above.
+ port:
+ type: integer
+ description: The access port for this Managed Database.
+ example: 27017
+ x-linode-cli-display: 98
created:
+ $ref: '#/components/schemas/Database/properties/created'
+ updated:
+ $ref: '#/components/schemas/Database/properties/updated'
+ updates:
+ $ref: '#/components/schemas/Database/properties/updates'
+ DatabaseMongoDBRequest:
+ type: object
+ description: Managed MongoDB Database request object.
+ required:
+ - label
+ - type
+ - engine
+ - region
+ properties:
+ label:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/label'
+ type:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/type'
+ engine:
type: string
- format: date-time
- description: When this app was authorized.
- example: '2018-01-01T00:01:01'
+ example: mongodb/4.4.10
+ description: The Managed Database engine in engine/version format.
+ region:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/region'
+ encrypted:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/encrypted'
+ allow_list:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/allow_list'
+ cluster_size:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/cluster_size'
+ replica_set:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/replica_set'
+ ssl_connection:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/ssl_connection'
+ compression_type:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/compression_type'
+ storage_engine:
+ $ref: '#/components/schemas/DatabaseMongoDB/properties/storage_engine'
+ DatabaseMySQL:
+ type: object
+ description: Managed MySQL Databases object.
+ properties:
+ id:
+ $ref: '#/components/schemas/Database/properties/id'
+ x-linode-cli-display: 1
+ label:
+ $ref: '#/components/schemas/Database/properties/label'
+ x-linode-cli-display: 2
+ type:
+ $ref: '#/components/schemas/Database/properties/type'
+ x-linode-cli-display: 4
+ engine:
+ type: string
+ description: The Managed Database engine type.
+ example: mysql
+ x-linode-filterable: true
+ x-linode-cli-display: 6
readOnly: true
+ version:
+ type: string
+ description: The Managed Database engine version.
+ example: "8.0.26"
x-linode-filterable: true
+ x-linode-cli-display: 7
+ readOnly: true
+ region:
+ $ref: '#/components/schemas/Database/properties/region'
+ x-linode-cli-display: 3
+ status:
+ $ref: '#/components/schemas/Database/properties/status'
+ x-linode-cli-display: 100
+ x-linode-cli-color:
+ provisioning: yellow
+ active: green
+ resuming: yellow
+ restoring: yellow
+ failed: red
+ degraded: red
+ default_: white
+ encrypted:
+ $ref: '#/components/schemas/Database/properties/encrypted'
+ allow_list:
+ $ref: '#/components/schemas/Database/properties/allow_list'
+ cluster_size:
+ $ref: '#/components/schemas/Database/properties/cluster_size'
x-linode-cli-display: 5
- expiry:
+ hosts:
+ $ref: '#/components/schemas/Database/properties/hosts'
+ ssl_connection:
+ type: boolean
+ default: true
+ example: true
+ description: |
+ Whether to require SSL credentials to establish a connection to the Managed Database.
+
+ Use the **Managed MySQL Database Credentials View** ([GET /databases/mysql/instances/{instanceId}/credentials](/docs/api/databases/#managed-mysql-database-credentials-view)) command for access information.
+ replication_type:
type: string
- format: date-time
- description: >
- When the app's access to your account expires. If `null`, the app's
- access must be revoked manually.
- example: '2018-01-15T00:01:01'
- readOnly: true
- x-linode-cli-display: 6
- x-linode-filterable: true
- nullable: true
- website:
+ enum:
+ - none
+ - asynch
+ - semi_synch
+ example: semi_synch
+ description: |
+ The replication method used for the Managed Database.
+
+ Defaults to `none` for a single cluster and `semi_synch` for a high availability cluster.
+
+ Must be `none` for a single node cluster.
+
+ Must be `asynch` or `semi_synch` for a high availability cluster.
+ x-linode-cli-display: 99
+ port:
+ type: integer
+ description: The access port for this Managed Database.
+ example: 3306
+ x-linode-cli-display: 98
+ created:
+ $ref: '#/components/schemas/Database/properties/created'
+ updated:
+ $ref: '#/components/schemas/Database/properties/updated'
+ updates:
+ $ref: '#/components/schemas/Database/properties/updates'
+ DatabaseMySQLRequest:
+ type: object
+ description: Managed MySQL Database request object.
+ required:
+ - label
+ - type
+ - engine
+ - region
+ properties:
+ label:
+ $ref: '#/components/schemas/DatabaseMySQL/properties/label'
+ type:
+ $ref: '#/components/schemas/DatabaseMySQL/properties/type'
+ engine:
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:
+ example: mysql/8.0.26
+ description: The Managed Database engine in engine/version format.
+ region:
+ $ref: '#/components/schemas/DatabaseMySQL/properties/region'
+ encrypted:
+ $ref: '#/components/schemas/DatabaseMySQL/properties/encrypted'
+ allow_list:
+ $ref: '#/components/schemas/DatabaseMySQL/properties/allow_list'
+ cluster_size:
+ $ref: '#/components/schemas/DatabaseMySQL/properties/cluster_size'
+ ssl_connection:
+ $ref: '#/components/schemas/DatabaseMySQL/properties/ssl_connection'
+ replication_type:
+ $ref: '#/components/schemas/DatabaseMySQL/properties/replication_type'
+ DatabasePostgreSQL:
type: object
- description: >
- An object representing a Backup or snapshot for a Linode with Backup service
- enabled.
+ description: Managed PostgreSQL Databases object.
properties:
id:
- type: integer
- readOnly: true
- description: The unique ID of this Backup.
- example: 123456
+ $ref: '#/components/schemas/Database/properties/id'
x-linode-cli-display: 1
+ label:
+ $ref: '#/components/schemas/Database/properties/label'
+ x-linode-cli-display: 2
type:
+ $ref: '#/components/schemas/Database/properties/type'
+ x-linode-cli-display: 4
+ engine:
+ type: string
+ description: The Managed Database engine type.
+ example: postgresql
+ x-linode-filterable: true
+ x-linode-cli-display: 6
+ readOnly: true
+ version:
type: string
- enum:
- - auto
- - snapshot
+ description: The Managed Database engine version.
+ example: "13.2"
+ x-linode-filterable: true
+ x-linode-cli-display: 7
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
+ region:
+ $ref: '#/components/schemas/Database/properties/region'
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
+ $ref: '#/components/schemas/Database/properties/status'
+ x-linode-cli-display: 100
x-linode-cli-color:
- successful: green
+ provisioning: yellow
+ active: green
+ resuming: yellow
+ restoring: yellow
failed: red
- userAborted: f
- default_: yellow
- created:
- type: string
- format: date-time
+ degraded: red
+ default_: white
+ encrypted:
+ $ref: '#/components/schemas/Database/properties/encrypted'
+ allow_list:
+ $ref: '#/components/schemas/Database/properties/allow_list'
+ cluster_size:
+ $ref: '#/components/schemas/Database/properties/cluster_size'
+ x-linode-cli-display: 5
+ hosts:
+ type: object
readOnly: true
- description: The date the Backup was taken.
- example: '2018-01-15T00:01:01'
- x-linode-cli-display: 4
- updated:
+ description: The primary and secondary hosts for the Managed Database. These are assigned after provisioning is complete.
+ properties:
+ primary:
+ type: string
+ description: The primary host for the Managed Database.
+ example: lin-0000-000-pgsql-primary.servers.linodedb.net
+ nullable: true
+ secondary:
+ type: string
+ description: |
+ The secondary/private network host for the Managed Database.
+
+ A private network host and a private IP can only be used to access a Database Cluster from Linodes in the same data center and will not incur transfer costs.
+
+ **Note**: The secondary hostname is publicly viewable and accessible.
+ example: lin-0000-000-pgsql-primary-private.servers.linodedb.net
+ nullable: true
+ ssl_connection:
+ type: boolean
+ default: true
+ example: true
+ description: |
+ Whether to require SSL credentials to establish a connection to the Managed Database.
+
+ Use the **Managed PostgreSQL Database Credentials View** ([GET /databases/postgresql/instances/{instanceId}/credentials](/docs/api/databases/#managed-postgresql-database-credentials-view)) command for access information.
+ replication_type:
type: string
- format: date-time
- readOnly: true
- description: The date the Backup was most recently updated.
- example: '2018-01-15T00:01:01'
- finished:
+ enum:
+ - none
+ - asynch
+ - semi_synch
+ example: semi_synch
+ description: |
+ The replication method used for the Managed Database.
+
+ Defaults to `none` for a single cluster and `semi_synch` for a high availability cluster.
+
+ Must be `none` for a single node cluster.
+
+ Must be `asynch` or `semi_synch` for a high availability cluster.
+ x-linode-cli-display: 99
+ replication_commit_type:
type: string
- format: date-time
- readOnly: true
- description: The date the Backup completed.
- example: '2018-01-15T00:01:01'
+ enum:
+ - on
+ - local
+ - remote_write
+ - remote_apply
+ - off
+ default: local
+ example: local
+ description: |
+ The synchronization level of the replicating server.
+
+ Must be `local` or `off` for the `asynch` replication type.
+
+ Must be `on`, `remote_write`, or `remote_apply` for the `semi_synch` replication type.
+ x-linode-cli-display: 100
+ port:
+ type: integer
+ description: The access port for this Managed Database.
+ example: 3306
+ x-linode-cli-display: 98
+ created:
+ $ref: '#/components/schemas/Database/properties/created'
+ updated:
+ $ref: '#/components/schemas/Database/properties/updated'
+ updates:
+ $ref: '#/components/schemas/Database/properties/updates'
+ DatabasePostgreSQLRequest:
+ type: object
+ description: Managed PostgreSQL Database request object.
+ required:
+ - label
+ - type
+ - engine
+ - region
+ properties:
label:
+ $ref: '#/components/schemas/DatabasePostgreSQL/properties/label'
+ type:
+ $ref: '#/components/schemas/DatabasePostgreSQL/properties/type'
+ engine:
type: string
- description: A label for Backups that are of type `snapshot`.
- example: Webserver-Backup-2018
- x-linode-cli-display: 5
- nullable: true
- 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:
+ example: postgresql/13.2
+ description: The Managed Database engine in engine/version format.
+ region:
+ $ref: '#/components/schemas/DatabasePostgreSQL/properties/region'
+ encrypted:
+ $ref: '#/components/schemas/DatabasePostgreSQL/properties/encrypted'
+ allow_list:
+ $ref: '#/components/schemas/DatabasePostgreSQL/properties/allow_list'
+ cluster_size:
+ $ref: '#/components/schemas/DatabasePostgreSQL/properties/cluster_size'
+ ssl_connection:
+ $ref: '#/components/schemas/DatabasePostgreSQL/properties/ssl_connection'
+ replication_type:
+ $ref: '#/components/schemas/DatabasePostgreSQL/properties/replication_type'
+ replication_commit_type:
+ $ref: '#/components/schemas/DatabasePostgreSQL/properties/replication_commit_type'
+ DatabaseSSL:
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
- - cvv
+ description: Managed Database SSL object.
properties:
- card_number:
+ ca_certificate:
type: string
- description: Your credit card number. No spaces or dashes allowed.
- minLength: 14
- maxLength: 24
- format: digits
- example: 4111111111111111
- expiry_month:
+ format: base64
+ description: The base64-encoded SSL CA certificate for the Managed Database instance.
+ example: LS0tLS1CRUdJ...==
+ x-linode-cli-display: 1
+ DatabaseType:
+ type: object
+ description: Managed Database plan type object.
+ properties:
+ id:
+ type: string
+ description: The ID representing the Managed Database node plan type.
+ readOnly: true
+ example: g6-nanode-1
+ x-linode-cli-display: 1
+ label:
+ type: string
+ description: A human-readable string that describes each plan type. For display purposes only.
+ readOnly: true
+ example: DBaaS - Nanode 1GB
+ x-linode-cli-display: 2
+ engines:
+ type: object
+ properties:
+ mysql:
+ type: array
+ description: Pricing details for MySQL Managed Databases.
+ items:
+ $ref: '#/components/schemas/DatabaseTypeEngine'
+ postgresql:
+ type: array
+ description: Pricing details for PostgreSQL Managed Databases.
+ items:
+ $ref: '#/components/schemas/DatabaseTypeEngine'
+ mongodb:
+ type: array
+ description: Pricing details for MongoDB Managed Databases.
+ items:
+ $ref: '#/components/schemas/DatabaseTypeEngine'
+ memory:
type: integer
- minimum: 1
- maximum: 12
- 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:
+ description: The amount of RAM allocated to Database created of this plan type. The value is represented in megabytes.
+ example: 1024
+ x-linode-cli-display: 3
+ disk:
type: integer
- minLength: 4
- maxLength: 4
- 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
- cvv:
+ description: The amount of disk space set aside for Databases of this plan type. The value is represented in megabytes.
+ example: 25600
+ x-linode-cli-display: 4
+ vcpus:
+ type: integer
+ description: The integer of number CPUs allocated to databases of this plan type.
+ example: 1
+ x-linode-cli-display: 5
+ deprecated:
+ type: boolean
+ description: Whether this Database plan type has been deprecated and is no longer available.
+ example: false
+ x-linode-filterable: true
+ x-linode-cli-display: 6
+ class:
type: string
- minLength: 3
- maxLength: 4
- format: digits
- description: >
- CVV (Card Verification Value) of the credit card, typically found on the back of the card.
- example: '123'
+ description: The compute class category.
+ example: nanode
+ DatabaseTypeEngine:
+ type: object
+ properties:
+ quantity:
+ type: integer
+ enum:
+ - 1
+ - 2
+ - 3
+ description: The number of nodes for the Managed Database cluster for this subscription tier.
+ example: 1
+ price:
+ type: object
+ description: Cost in US dollars, broken down into hourly and monthly charges.
+ properties:
+ hourly:
+ type: number
+ description: Cost (in US dollars) per hour for this subscription tier.
+ example: 0.03
+ monthly:
+ type: number
+ description: Maximum cost (in US dollars) per month for this subscription tier.
+ example: 20
Device:
type: object
description: >
@@ -17222,6 +20897,7 @@ components:
failed: red
pending: yellow
stale: red
+ default_: white
type: string
enum:
- accepted
@@ -17764,6 +21440,7 @@ components:
- TCP
- UDP
- ICMP
+ - IPENCAP
description: >
The type of network traffic to allow.
example: TCP
@@ -17772,16 +21449,12 @@ components:
description: |
A string representing the port or ports on which traffic will be allowed:
- - The string may be a single port, a range of ports, or a comma-separated list
- of single ports and port ranges. A space is permitted following each comma.
- - A range of ports is inclusive of the start and end values for the range. The
- end value of the range must be greater than the start value.
+ - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma.
+ - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value.
- Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port "080" is not allowed.
- - Ports may not be specified if a rule's protocol is `ICMP`. At least one port
- must be specified if a rule's protocol is `TCP` or `UDP`.
- - The ports string can have up to 15 *pieces*, where a single port is treated
- as one piece, and a port range is treated as two pieces. For example,
- the string "22-24, 80, 443" has four pieces.
+ - Ports may not be specified if a rule's protocol is `ICMP` or `IPENCAP`.
+ - At least one port must be specified if a rule's protocol is `TCP` or `UDP`.
+ - The ports string can have up to 15 *pieces*, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces.
example: '22-24, 80, 443'
addresses:
type: object
@@ -17979,6 +21652,10 @@ components:
type: boolean
description: If true, this User may add Firewalls.
example: true
+ add_databases:
+ type: boolean
+ description: if true, this User may add Managed Databases.
+ example: true
linode:
type: array
items:
@@ -18187,6 +21864,21 @@ components:
description: The amount of tax levied on the Invoice in US Dollars.
example: 12.25
x-linode-cli-display: 5
+ tax_summary:
+ type: array
+ readOnly: true
+ description: The amount of tax broken down into subtotals by source.
+ items:
+ type: object
+ properties:
+ tax:
+ type: number
+ description: The amount of tax subtotal attributable to this source.
+ example: 12.25
+ name:
+ type: string
+ description: The source of this tax subtotal.
+ example: PA STATE TAX
total:
type: number
readOnly: true
@@ -19577,7 +23269,7 @@ components:
description: >
The desired Kubernetes version for this Kubernetes cluster in the format of <major>.<minor>,
and the latest supported patch version will be deployed.
- example: "1.21"
+ example: "1.23"
control_plane:
type: object
description: >
@@ -19778,7 +23470,7 @@ components:
A Kubernetes version number available for deployment
to a Kubernetes cluster in the format of <major>.<minor>,
and the latest supported patch version.
- example: "1.21"
+ example: "1.23"
LongviewClient:
type: object
description: >
@@ -20246,29 +23938,41 @@ components:
If true, Linode special forces may access this Linode over
ssh to respond to Issues.
example: true
+ default: true
user:
type: string
minLength: 0
maxLength: 32
- description: >
- The user Linode's special forces should use when accessing this
+ description: |
+ The specific user, if any, Linode's special forces should use when accessing this
Linode to respond to an issue.
+
+ The default `null` value corresponds to the root user.
example: linode
+ default: null
+ nullable: true
ip:
type: string
format: ip
- description: >
+ description: |
The IP Linode special forces should use to access this Linode
when responding to an Issue.
- example: 12.34.56.78
+
+ By default, any of a Linode's IP addresses can be used for incident response access.
+ example: "12.34.56.78"
+ default: any
port:
type: integer
minimum: 1
maximum: 65535
- description: >
+ description: |
The port Linode special forces should use to access this Linode
over ssh to respond to an Issue.
+
+ The default `null` value corresponds to port 22.
example: 22
+ nullable: true
+ default: null
ManagedService:
type: object
description: >
@@ -21618,6 +25322,15 @@ components:
as necessary.
example: example-user@gmail.com
x-linode-cli-display: 2
+ verified_phone_number:
+ type: string
+ format: phone
+ readOnly: true
+ description: |
+ The phone number verified for this Profile with the **Phone Number Verify** ([POST /profile/phone-number/verify](/docs/api/profile/#phone-number-verify)) command.
+
+ `null` if this Profile has no verified phone number.
+ example: "+5555555555"
timezone:
type: string
description: >
@@ -21944,9 +25657,11 @@ components:
This StackScript installs and configures MySQL
images:
type: array
- description: >
+ description: |
An array of Image IDs. These are the images that can be deployed
with this Stackscript.
+
+ `any/all` indicates that all available image distributions are accepted.
items:
type: string
example:
@@ -22552,6 +26267,58 @@ components:
The last IP Address to successfully authenticate with this TrustedDevice.
example: 12.34.56.78
readOnly: true
+ SecurityQuestion:
+ type: object
+ description: Single security question and response object.
+ properties:
+ id:
+ type: integer
+ description: The ID representing the security question.
+ example: 1
+ question:
+ type: string
+ readOnly: true
+ description: The security question.
+ example: "In what city were you born?"
+ response:
+ type: string
+ minLength: 3
+ maxLength: 17
+ description: |
+ The security question response.
+ example: "Gotham City"
+ SecurityQuestionsGet:
+ type: object
+ description: Security questions and responses object for GET operation.
+ properties:
+ security_questions:
+ type: array
+ items:
+ type: object
+ description: Single security question and response object for GET operation.
+ properties:
+ id:
+ $ref: '#/components/schemas/SecurityQuestion/properties/id'
+ question:
+ $ref: '#/components/schemas/SecurityQuestion/properties/question'
+ response:
+ $ref: '#/components/schemas/SecurityQuestion/properties/response'
+ SecurityQuestionsPost:
+ type: object
+ description: Security questions and responses object for POST operation.
+ properties:
+ security_questions:
+ type: array
+ items:
+ type: object
+ description: Single security question and response object for POST operation.
+ properties:
+ question_id:
+ $ref: '#/components/schemas/SecurityQuestion/properties/id'
+ response:
+ $ref: '#/components/schemas/SecurityQuestion/properties/response'
+ security_question:
+ $ref: '#/components/schemas/SecurityQuestion/properties/question'
ServiceTransfer:
type: object
description: >
@@ -22574,6 +26341,7 @@ components:
failed: red
pending: yellow
stale: red
+ default_: white
type: string
enum:
- accepted
@@ -22768,13 +26536,10 @@ components:
* `active` - the Volume is online and available for use.
* `resizing` - the Volume is in the process of upgrading
its current capacity.
- * `contact_support` - there is a problem with your Volume. Please
- [open a Support Ticket](/docs/api/support/#support-ticket-open) to resolve the issue.
enum:
- creating
- active
- resizing
- - contact_support
example: active
readOnly: true
x-linode-cli-display: 3
@@ -22858,6 +26623,8 @@ components:
tags:
- name: Account
description: Use the Account endpoints to manage user settings, billing, and payments. You can also initiate and maintain OAuth client application authentication, enable the Linode Managed service, and create new users on your account.
+ - name: Databases
+ description: Managed Databases is Linode's fully-managed, high-performance database service. Use the Managed Databases endpoints to create and manage database clusters.
- name: Domains
description: Use the Domains endpoints to create and manage domains and domain records on your account.
- name: Images
diff --git a/sources b/sources
index e6c8033..28585e6 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (linode-cli-5.17.1.tar.gz) = 13ce23da45c3d938fa2e1188678695e4ecc8bc6d048995df90862d8f75f2be96edf223fcc33af597097b6a969b512ddf9951a6e60c6f7f33a764ffa7b67ed2d3
+SHA512 (linode-cli-5.23.0.tar.gz) = 1db1bba6bb256a7f75b7117113e14cad1838a8fa20585d78d799d1717530842553f74ffab1a97bd7e2fde1bfa847172e0f3459a07c7dfd59d420e9b46d1cafdd